Мазмуну:
- 1 -кадам: материалдар жана инструменттер
- 2 -кадам: ATTINY85ти даярдаңыз
- 3 -кадам: Районду чогултуңуз
- 4 -кадам: Тестирлөө
- 5 -кадам: Кийинки кадамдар
Video: IOT123 - I2C KY019 КИРПИЧ: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
IOT123 КИРПИЧтери - бул модулдук бирдиктер, алар IOT123 КИРПИЧТЕРИ менен биригип, түйүнгө функционалдык мүмкүнчүлүктү кошууга болот. Алар дюймдук чарчы, тешиктер аркылуу бири-бири менен байланышкан эки жактуу протоборлорго негизделген.
Бул BRICKS бир катар сайтта бир нече түйүндөрдө болушу күтүлүүдө (Master MCUs - ESP8266 же ATTINY84). MCU сенсорлордун максаты же программалык камсыздоо муктаждыктары жөнүндө алдын ала билимге муктаж эмес. Ал I2C түйүндөрүн издейт, андан кийин ар бир кулдан мулк таштандысын (сенсордук маалыматтарды) сурайт. Бул BRICKs 5.0V, 3.3V жана настройкаланган башка AUX линиясын беришет.
Бул I2C KY019 КИРПИЧИ АКТОРЛОРДУН биринчиси жана бир окуу/жазуу касиети бар:
Которуу (чыныгы/жалган)
Keyes тибиндеги кирпичтер биринчи абстракцияланышат, анткени алар витаминдер менен келет (кошумча компоненттер керек) жана салыштырмалуу чийки (мен 37 AUD үчүн сатып алдым). Башка такталар/схемалар I2C BRICKSке киргизилет.
ATTINY85 жанындагы тешиктер DIP8 ПХБга ширетилип жатканда, пого пин программистти иштетүү үчүн колдонулбай калган. Дагы бир абстракция, D1M WIFI BLOCK хабына туташтырылган кичинекей цилиндрлерге кирпичтерди таңгактоо, баалуулуктарды MQTT серверине чыгаруу.
1 -кадам: материалдар жана инструменттер
Материалдардын жана булактардын толук тизмеси бар.
- KY-019 Реле (1)
- ATTINY85 20PU (1)
- 1 "Эки тараптуу протобер (1)
- Эркек Башы 90º (3P, 3P)
- Байланыш зымы (~ 7)
- Лайнер жана Темир (1)
2 -кадам: ATTINY85ти даярдаңыз
ЭСКЕРТҮҮ: Crouton интеграциясын колдонууну кааласаңыз, ушул жерден китепкананы колдонуңуз жана "attiny_ky019" орнотулган мисалын колдонуңуз.
Такта менеджеринен AttinyCore керек. "EEPROM Retained", "8mHZ Internal" жүктөгүчүн күйгүзүңүз (бардык конфигурация жогоруда көрсөтүлгөн).
Коддун кампасын бул жерден тапса болот.
Китепкананын ZIP кодун бул жерден тапса болот.
"ZIP китепканасын импорттоо" үчүн инструкциялар бул жерде.
Китепкана орнотулгандан кийин "attiny_ky019" мисалын ача аласыз.
ATTINY85ке камтылган программаны жүктөө үчүн, бул көрсөтмөлөрдөн кененирээк маалымат таба аласыз:
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/How-to-Program-AT…
www.instructables.com/id/How-to-program-th…
www.instructables.com/id/Programming-the-A…
www.instructables.com/id/Programming-an-At…
Улантуудан мурун нан тактасы аркылуу тестирлөө эң жакшы.
Эгерде сизде ASSIMILATE SENSORS бар болсо, анда SENSOR/MCU Host комбинациясында кул дареги башкача экенин текшериңиз, башкача айтканда, MCE/түйүнүндө бир гана Релейлик актер болгондо, Эстафетанын бардык актерлору бир эле дарекке ээ боло алышат.
3 -кадам: Районду чогултуңуз
- Алдыңкы бөлүктө ATTINY85 (1), 3P 90deg эркек баш (2) (3) компоненттерин салыңыз жана арткы жагында ширетүү.
- Арткы жагында сары зымды САРЫ 1ден САРЫ2ге чейин издеп, ширетүү керек.
- Арткы жагында, BLUE1ден BLUE2ге чейин көк зымды караңыз жана solder.
- Арткы жагында GREEN1ден GREEN2ге чейинки жашыл зымды байкап көрүңүз.
- Арткы жагында BLACK1ден BLACK2ге чейин кара зымды караңыз жана ширетүү.
- Арткы жагында BLACK3төн BLACK4ке чейин кара зымды караңыз жана ширетүү.
- Арткы жагында кызыл зымды RED1ден RED2ге чейин жана ширетүүнү издеңиз.
- Арткы жагында кызыл зымды RED3төн RED4кө чейин жана ширетүүнү издеңиз.
Эстафета эми анын пинтери аркылуу ПХБга же зымдар аркылуу, пин келишиминде көрсөтүлгөн пункттарга туташтырылышы мүмкүн.
4 -кадам: Тестирлөө
Бул BRICKS бир катар чөйрөдө бир нече түйүндөрдө (MCUs - ESP8266 же ATTINY84) болушу күтүлүүдө. Бул тест бирдиги: I2C командаларын UNOдон ATTINYге жөнөтөт, ал релени ачат же жабат.
Биз мурун Arduino үчүн I2C SHIELD курганбыз.
Эгерде сиз анын ордуна нан жегиси келсе:
- БУУдагы 5.0Вды БРИККтеги VCCге туташтырыңыз.
- БУУдагы GNDди БРИККтеги GNDге туташтырыңыз.
- A5ти БУУда SCL менен BRICKке туташтырыңыз.
- БУУдагы А4ты БРИКК боюнча SDAга туташтырыңыз.
- SDAдан VCCге 4K7 тартма каршылыгын туташтырыңыз.
- SCLден VCCге 4K7 тартма каршылыгын туташтырыңыз.
Тестти иштетүү
- UNOну USB менен Dev PCке туташтырыңыз.
- Кодду БУУга жүктөңүз.
- Arduino консолун ачыңыз. 9600 baudду тандаңыз (БУУну кайра баштаңыз жана керек болсо консолун кайра ачыңыз).
- Кулдун дареги консолго басып чыгарылат.
- Качан, жөнөтүү кутучасына 2 1 киргизиңиз (ошондо 12 2 1), жана реле күйөт.
- Качан, жөнөтүү кутучасына 2 0 киргизиңиз (ошондо 12 2 0), реле өчөт.
UNO кожоюнунун кулдары үчүн I2C BRICK adhoc буйруктары
#кошуу |
const байт _num_chars = 32; |
char _received_chars [_num_chars]; // алынган маалыматтарды сактоо үчүн массив |
логикалык _has_new_data = жалган; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println ("IOT ACTOR/SENSOR EEPROM EDITOR СОНУН"); |
Serial.println ("консоль терезесинде жаңы сызыктын тандалышын камсыз кылуу"); |
Serial.println (); |
Serial.println ("ADRESS 1 METADATA RECEIPT N/A (M2M ҮЧҮН) ЫРАСТАНДЫ"); |
Serial.println ("АДРЕС 2 АКТОР КОМАНДАСЫ"); |
Serial.println (); |
Serial.println ("АВТОБУСТАГЫ АДРЕСТЕР:"); |
scan_i2c_addresses (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int device_count = 0; |
үчүн (байт дареги = 8; дарек <127; дарек ++) |
{ |
Wire.beginTrmission (дарек); |
const байт катасы = Wire.endTransmission (); |
эгер (ката == 0) |
{ |
Serial.println (дареги); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
статикалык байт ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
if (rc! = end_marker) { |
_received_chars [ndx] = rc; |
ndx ++; |
эгер (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
башка { |
_received_chars [ndx] = '\ 0'; // сапты токтотуу |
ndx = 0; |
_has_new_data = чындык; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const String алынды_сап = Стринг (_received_chars); |
эгер (_has_new_data == true) { |
int idx1 = алынды_string.indexOf (''); |
Стринг дареги = алынды_string.substring (0, idx1); |
int address_int = address.toInt (); |
эгер (address_int <8 || address_int> 127) { |
Serial.println ("ЖАРАКСЫЗ АДРЕС КИРИШИ:"); |
Serial.println (дареги); |
кайтуу; |
} |
int idx2 = алынды_string.indexOf ('', idx1+1); |
Стринг коду; |
эгер (idx2 == -1) { |
код = алынды_стринг.substring (idx1+1); |
} башка { |
код = алынды_стринг.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("ЖАРАКСЫЗ КОД КИРИШИ:"); |
Serial.println (код); |
кайтуу; |
} |
bool has_parameter = idx2> -1; |
String parameter; |
if (has_parameter) { |
параметр = алынды_сап.substring (idx2 + 1, idx2 + 17); // максимум 16 тамга |
if (parameter.length () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = жалган; |
кайтуу; |
} |
} башка { |
эгер (code_int> 1) { |
Serial.println ("ПАРАМЕТР КЕРЕК!"); |
_has_new_data = жалган; |
кайтуу; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (алынган_сап); |
Serial.print ("дарек ="); |
Serial.println (дареги); |
Serial.print ("код ="); |
Serial.println (код); |
Serial.print ("parameter ="); |
Serial.println (параметр); |
// I2C аркылуу жөнөтүү |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
if (has_parameter) { |
parameter.trim (); |
strcpy (param_buf, parameter.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Serial.println (); |
Serial.println ("I2C МЕНЕН ЖӨНӨТҮЛДҮ!"); |
Serial.println (); |
Serial.println (""); |
_has_new_data = жалган; |
} |
} |
GitHub тарабынан ❤ уюштурулган rawuno_i2c_command_input.ino караңыз
5 -кадам: Кийинки кадамдар
Кийинки ASSIMILATE ACTOR: KY019 бул кирпичти колдонот, буга чейин ATTINY85те орнотулган метадайындар аркылуу Crouton үчүн автоматтык конфигурациясы бар. Крутонго жөнөтүлгөн JSON пакети ICOS10 үчүн эң акыркы программалык камсыздоо аркылуу жөнөтүлөт. Эгерде сиз азырынча өтө эле көп болсоңуз, анда кадимки ESP8266 боюнча Proof-of-концепциясын жасай аласыз.
Сыноодо колдонулган UNO эскизи, эгерде сиз максаттуу I2C автобусунда кагылышуу болсо, ATTINY85те EEPROMга жаңы кул дарегин сактоо функциясына ээ.
Бир нече схемалар кошулду, бирок сиз каалаган нерсеге жараша ылдыйкы схеманы өткөрүүнүн ар кандай жолдору бар, ошондуктан мен муну сизге калтырам:)
Сунушталууда:
Акустикалык левитация Arduino Uno менен кадам-кадам (8-кадам): 8 кадам
Акустикалык левитация менен Arduino Uno Step-by-Step (8-кадам): ультрадыбыштуу үн өткөргүчтөр L298N Dc аял адаптеринин электр энергиясы менен камсыздоосу эркек токту Arduino UNOBreadboard Бул кантип иштейт: Биринчиден, сиз Arduino Uno кодун жүктөп бересиз (бул санарип менен жабдылган микроконтроллер) жана аналогдук порттор кодду айландыруу үчүн (C ++)
Arduino кирпич түстүү сорттоочу долбоору: 5 кадам
Arduino кирпич түстүү сорттоочу долбоору: Бул Arduino үйрөткүчүндө, биз Arduino жана TCS3200 Color Sensor колдонуп, менин оюнчугумдун түстөрүн кантип аныктоону үйрөнөбүз. Көбүрөөк маалымат алуу үчүн төмөндө жазылган окуу куралын окуй аласыз.Материалдар: Arduino Leonardo x 1TCS3200 x 1Картон 180 180 Servo
IOT123 - D1M BLOCK - 2xAMUX Ассамблеясы: 7 кадам (Сүрөттөр менен)
IOT123 - D1M BLOCK - 2xAMUX Ассамблеясы: D1M BLOCKS популярдуу Wemos D1 Mini SOC/Shields/Clones үчүн тактилдик корпустарды, этикеткаларды, полярдык көрсөтмөлөрдү жана үзүлүштөрдү кошот. ESP8266 чипиндеги көйгөйлөрдүн бири - анын бир гана аналогдук IO пини бар. Бул көрсөтмө 2xAны кантип чогултууну көрсөтөт
IOT123 - D1M BLOCK - RFTXRX Ассамблеясы: 8 кадам
IOT123 - D1M BLOCK - RFTXRX Ассамблеясы: D1M BLOCKS популярдуу Wemos D1 Mini SOC/Shields/Clones үчүн тактилдик корпустарды, этикеткаларды, полярдык көрсөтмөлөрдү жана үзүлүштөрдү кошот. RF өткөргүчтөрү/кабылдагычтары ESP8266га учурдагы үй/өндүрүштүк автоматташтырууга мүмкүнчүлүк берет. Бул корпус 433
IOT123 - АКТИССЕРДИ ЖАКШЫ КӨРҮҮ: KY019: 4 кадам
IOT123 - АКТИССЕРДИ ЖАКШЫ КӨРҮҮ: KY019: Бул DC / AC сигналын башкара ала турган 5V TIL башкаруу сигналы менен. I2C KY019 КИРПИШке негизделген. Эгер сизге 2 канал керек болсо, мен бул актёрду 2CH RELAY BRICK менен алмаштырууну сунуштайм. АССИМДИК АКТОРЛОР/СЕНСОРЛОР - айлана -чөйрөнүн катышуучулары/сенсо