Բովանդակություն:
- Քայլ 1: Նյութեր և գործիքներ
- Քայլ 2. Պատրաստեք ATTINY85- ը
- Քայլ 3. theուցանիշների հավաքում
- Քայլ 4: Հիմնական շղթայի հավաքում
- Քայլ 5: Փորձարկում
- Քայլ 6: Հաջորդ քայլերը
Video: IOT123 - I2C ԱՌՈՈԹՅԱՆ ԿՈICՐ `6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
IOT123 Աղյուսները DIY մոդուլային միավորներ են, որոնք կարող են համակցվել այլ IOT123 Աղյուսների հետ ՝ հանգույցին ֆունկցիոնալություն հաղորդելու կամ կրելու համար: Դրանք հիմնված են դյույմ քառակուսի, երկկողմանի նախատախտակների վրա, որոնք փոխկապակցված են անցքերով:
Սպասվում է, որ այս ԿՈICՐԵՐԻ մի մասը կլինեն մի քանի հանգույցների վրա (Master MCUs - ESP8266 կամ ATTINY84) կայքում: MCU- ին սենսորների նպատակի կամ ծրագրակազմի կարիքների մասին նախնական գիտելիքներ պետք չեն: Այն սկանավորում է I2C հանգույցները, այնուհետև յուրաքանչյուր ստրուկից պահանջում է սեփականության աղբանոց (տվիչների տվյալներ): Այս աղյուսները մատակարարում են 5.0V, 3.3V և մեկ այլ AUX գիծ, որը հարմարեցված է:
Այս I2C HEARTBEAT աղյուսը ցույց է տալիս, արդյոք ATTINY ստրուկը կենդանի է, ինչպես նաև I2C երթևեկը և ունի մեկ հատկություն.
ՍՏԱՏՈUSՍ («ՈIԻVE»)
PB1 (սպիտակ) ցույց է տալիս ATTINY առողջությունը:
PB3 (դեղին) միացնում է վարպետի I2C հարցումները:
PB4 (նարնջագույն) միանում է վարպետից ստացվող I2C- ով:
ATTINY85- ի հարակից անցքերը մնացել են չօգտագործված, ինչը հնարավորություն է տալիս միացնել pogo- ի ծրագրավորողին, մինչ DIP8- ը կպցված է PCB- ին: Մշակվում է ևս մեկ աբստրակցիա ՝ ԿՈICՐԵՐԸ փաթեթավորելով փոքր բալոններում, որոնք միանում են D1M WIFI BLOCK հանգույցին ՝ արժեքները մղելով MQTT սերվերի վրա:
Քայլ 1: Նյութեր և գործիքներ
Կա Նյութերի և աղբյուրների ամբողջական օրինագիծ:
- Թղթե PCB (7 x 7 անցք)
- LEDS (կարմիր, կանաչ, կապույտ)
- Ռեզիստորներ (3 հատ 1 Կ)
- ATTINY85 20PU (1)
- 1 "երկկողմանի նախատախտակ (1)
- Արական վերնագիր 90º (3P, 3P)
- Արական վերնագիր (2P, 2P)
- Jատկող շանթ (1)
- Միացման մետաղալար (7 ~)
- Sոդման և երկաթ (1)
Քայլ 2. Պատրաստեք ATTINY85- ը
Նշում. Եթե մտադիր եք ունենալ Crouton ինտեգրում, խնդրում ենք օգտագործել գրադարանը այստեղից և օգտագործել «attiny_heartbeat» տեղադրված օրինակը:
Խորհուրդների կառավարիչից անհրաժեշտ է AttinyCore: Այրեք bootloader «EEPROM պահպանված է», «8mHZ ներքին» (բոլորը կազմաձևված են վերևում):
Կոդերի պահեստը կարելի է գտնել այստեղ:
Գրադարանի ZIP- ը կարելի է գտնել այստեղ:
«ZIP գրադարան ներմուծելու» հրահանգներն այստեղ են:
Գրադարանը տեղադրվելուց հետո կարող եք բացել «attiny_heartbeat» օրինակը:
Սարքաշարը ATTINY85- ում վերբեռնելու համար կարող եք ավելի մանրամասն տեղեկություններ գտնել այս հրահանգներում:
www.instructables.com/id/Programming-the-….
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
www.instructables.com/id/How-to-Program-A…
www.instructables.com/id/Programming-the-…
Շարունակելուց առաջ լավագույնն է փորձարկել հացահատիկի միջոցով:
Եթե ունեք առկա ASSIMILATE SENSORS, համոզվեք, որ ստրուկի հասցեն տարբերվում է SENSOR/MCU Host- ի համադրությունից, օրինակ. էստաֆետի բոլոր դերակատարները կարող են ունենալ նույն հասցեն, քանի դեռ MCU/հանգույցում ունեք միայն մեկ փոխանցումային դերասան:
Քայլ 3. theուցանիշների հավաքում
Theուցանիշները պետք է լիովին կարգավորելի լինեն: Դա իրադարձությունների ազդանշաններն են հիմնական միացումից, որոնք դիտվում են որպես Սրտի բաբախում: Այս կառուցման համար մենք կօգտագործենք LED ցուցիչներ; ձեր կառուցվածքը կարող է օգտագործել ռելեներ (այո, VCC- ն կոտրված է) կամ տեսողական/ազդանշանի վրա հիմնված մեկ այլ ցուցիչ: Դիմադրության արժեքները կախված կլինեն անձնական նախասիրությունից, թե որքան պայծառ եք դրանք ցանկանում:
- Վերևում տեղադրեք կապույտ լուսադիոդ ՝ RED1 (+) և BLACK1 (G) մեջ, իսկ ներքևում ՝ զոդ:
- Ներքևում թեքեք կապարը RED1- ից, որպեսզի այն դիպչի SILVER8- ի պղնձե բարձիկին և զարդարեք այն:
- Ներքևում կտրեք կապարը BLACK1- ից ՝ զոդման վերևում:
- Վերևում տեղադրեք կանաչ LED- ը RED2 (+) և BLACK2 (G) մեջ, իսկ ներքևում ՝ զոդեք:
- Ներքևում, կապարը թեքեք RED2- ից, որպեսզի այն դիպչի SILVER9- ի պղնձե բարձիկին և կտրեք այն:
- Ներքևի մասում կտրեք կապարը BLACK2- ից ՝ զոդման վերևում:
- Վերևում տեղադրեք կարմիր LED- ը RED3 (+) և BLACK3 (G) մեջ, իսկ ներքևում ՝ զոդեք:
- Ներքևում, կապարը թեքեք RED3- ից, որպեսզի այն դիպչի SILVER10- ի պղնձե բարձիկին և եզրին:
- Ներքևում կտրեք կապարը BLACK3- ից ՝ զոդման վերևում:
- Վերևում տեղադրեք 1K դիմադրություն SILVER1 և SILVER4 անցքերի մեջ:
- Ներքևի մասում հետևեք, կտրեք և կպցրեք կապարը SILVER1- ից BLACK1- ի վրա:
- Վերևում տեղադրեք 1K դիմադրություն SILVER2 և SILVER4 անցքերի մեջ:
- Ներքևում SILVER2- ից BLACK2- ի վրա հետևեք, կտրեք և կպցրեք կապարը:
- Վերևում տեղադրեք 1K դիմադրություն SILVER3 և SILVER4 անցքերի մեջ:
- Ներքևում SILVER3- ից հետևեք, զարդարեք և կպցրեք կապարը BLACK3- ի վրա:
- Ստորին մասում, մետաղալարերը կպցրեք SILVER4- ի վրա և կտրեք մոտ 5 մմ երկարությամբ:
- Ներքևում սև մետաղալար կպցրեք SILVER4- ի վրա:
- Ստորին մասում մի սպիտակ մետաղալար կպցրեք SILVER5- ի վրա `ապահովելով կապույտ կապի շարունակությունը RED1- ից:
- Ստորին մասում, դեղին մետաղալար կպցրեք SILVER6- ի մեջ `ապահովելով կապույտության շարունակականությունը RED2- ից:
- Ներքևում մի նարնջագույն մետաղալար կպցրեք SILVER7- ի մեջ ՝ ապահովելով կապույտության շարունակականությունը RED3- ից:
Քայլ 4: Հիմնական շղթայի հավաքում
Վեհաժողով:
- Առջևում տեղադրեք ATTINY85 (1), 3P 90 աստիճանի արական վերնագրեր (2) (3), 3P արական վերնագրերի (4) (5) բաղադրամասերը և զոդեք հետևի մասում:
- Հետևի մասում նշեք դեղին մետաղալարը YELLOW1- ից YELLOW2- ից և ամրացրեք:
- Հետևի մասում նշեք նարնջագույն մետաղալարեր ORANGE1- ից ORANGE2 և կպցրեք:
- Հետևի մասում կապույտ մետաղալարեր գտեք BLUE1- ից մինչև BLUE2 և կպցրեք:
- Հետևի մասում հետևեք կանաչ մետաղալարից GREEN1- ից GREEN2 և ամրացրեք:
- Հետևի մասում նշեք սպիտակ մետաղալարեր WHITE1- ից մինչև WHITE2 և կպցրեք:
- Հետևի մասում հետևեք սև մետաղալարից BLACK1- ից մինչև BLACK2 և զոդեք:
- Հետևի մասում հետևեք սև մետաղալարից BLACK3- ից մինչև BLACK4 և զոդեք:
- Հետևի մասում հետևեք կարմիր մետաղալարից RED1- ից մինչև RED2 և ամրացրեք:
- Հետևի մասում հետևեք մերկ մետաղալարին RED3- ից մինչև RED4 և ամրացրեք:
- Հետևի մասում հետևեք մերկ մետաղալարից SILVER1- ից մինչև SILVER2 և ամրացրեք:
- Ավելացրեք jumper 5V կամ 3V3 գծի վրա:
Եթե օգտագործում եք վերը նշված ցուցանիշները (տե՛ս pinout դիագրամը)
- Հետևի մասում սպիտակ մետաղալարը կպցրեք PB1- ի:
- Հետևի մասում դեղին մետաղալարը կպցրեք PB3- ի:
- Հետևի մասում նարնջագույն մետաղալարը կպցրեք PB4- ի:
- Հետևի մասում սև մետաղալարը կպցրեք GND- ի:
Քայլ 5: Փորձարկում
Սպասվում է, որ այս ԿՈICՐԵՐԻ մի մասը կլինեն մի քանի հանգույցների վրա (MCUs - ESP8266 կամ ATTINY84) միջավայրում: Սա միավորի թեստ է. Ուղարկում է I2C հրամաններ UNO- ից ATTINY- ին, որը միացնում է Receive LED- ը: ATTINY ALIVE LED- ը մնում է միացված:
Մենք նախկինում կառուցել ենք I2C SHIELD Arduino- ի համար:
Եթե ցանկանում եք դրա փոխարեն սեղան դնել
- Միացրեք 5.0V- ը UNO- ում `BRICK- ի VCC- ին:
- Միացրեք GND- ը UNO- ին GND- ին `BRICK- ում:
- Միացրեք UN5- ի A5- ը SCL- ին BRICK- ով:
- Միացրեք UNO- ի A4- ը SDA- ին BRICK- ում:
- SDK- ից միացրեք 4K7 ձգման դիմադրություն VCC- ին:
- Միացրեք 4K7 քաշվող դիմադրություն SCL- ից VCC- ին:
Թեստը վարելը:
- USB- ով միացրեք ձեր UNO- ն ձեր Dev համակարգչին:
- Վերբեռնեք կոդը ՄԱԿ -ում:
- Բացեք Arduino վահանակը:
- Ընտրեք 9600 baud (վերագործարկեք UNO- ն և անհրաժեշտության դեպքում վերաբացեք վահանակը):
- Ստրուկի հասցեն տպվելու է վահանակում:
- Երբ, մուտքագրեք ուղարկման տուփ 2 1 (ուրեմն 16 2 1), և ստացվող LED- ը միանում է:
- Երբ, մուտքագրեք ուղարկման վանդակում 2 0 (ուրեմն 16 2 0), և Receive LED- ն անջատվում է:
I2C BRICK adhoc հրամաններ ստրուկների համար ՄԱԿ -ի տիրոջ կողմից:
#ներառում |
const byte _num_chars = 32; |
char _ստացված_դասարաններ [_num_chars]; // ստացված տվյալները պահելու զանգված |
բուլյան _has_new_data = false; |
voidsetup () { |
Serial.begin (9600); |
Serial.println (); |
Serial.println («ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR»); |
Serial.println («ապահովել վահանակի պատուհանում ընտրված նոր տողը»); |
Serial.println (); |
Serial.println ("ՀԱՍRԵ 1 ՀԱՍՏԱՏՈ MԹՅԱՆ ՄԵՏԱԴԵՏԱՅԻ ՀԱՅՏԱՐԱՐՈ NԹՅՈՆԸ N/A (M2M- ի համար)"); |
Serial.println («Հասցե 2 դերասանի հրահանգ»); |
Serial.println (); |
Serial.println ("ՀԱՍRԵՆԵՐԸ Ավտոբուսում."); |
scan_i2c_ հասցեներ (); |
Serial.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int սարքի_հաշիվ = 0; |
համար (բայտ հասցե = 8; հասցե <127; հասցե ++) |
{ |
Wire.beginTransmission (հասցե); |
const byte սխալ = 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 (); |
եթե (rc! = end_marker) { |
_ընդունված_դարձեր [ndx] = rc; |
ndx ++; |
եթե (ndx> = _num_chars) { |
ndx = _num_chars - 1; |
} |
} |
ուրիշ { |
_received_chars [ndx] = '\ 0'; // դադարեցնել տողը |
ndx = 0; |
_has_new_data = true; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const Լարված ստացված_լար = Լար (_ստացված_շարքեր); |
եթե (_has_new_data == true) { |
int idx1 = ստացվել է_լարը.indexOf (''); |
Լարային հասցե = ստացված_ստրինգ. Ենթալար (0, idx1); |
int address_int = address.toInt (); |
if (address_int <8 || address_int> 127) { |
Serial.println ("ԱՆՎALԱՐ ՀԱՍRԵ ՄՏԱՈՄ."); |
Serial.println (հասցե); |
վերադարձ; |
} |
int idx2 = ստացվել է_լարը.indexOf ('', idx1+1); |
Լարային կոդ; |
եթե (idx2 == -1) { |
կոդ = ստացված_թել. ենթալար (idx1+1); |
} ուրիշ { |
կոդ = ստացված_թել. ենթալար (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
if (code_int <0 || code_int> 5) { |
Serial.println ("ԱՆՎALԱՐ ԿՈԴԻ ՄՈPՏՔ."); |
Serial.println (ծածկագիր); |
վերադարձ; |
} |
bool has_parameter = idx2> -1; |
Լարային պարամետր; |
եթե (պարամետր ունի) { |
պարամետր = ստացված_թել. ենթաշերտ (idx2 + 1, idx2 + 17); // առավելագույնը 16 նիշ |
if (parameter.length () <1) { |
Serial.println ("ՄԱՍՆԱԿՈ MԹՅԱՆ ԱՌԱՆ ԼԵՆԳ 1"); |
_has_new_data = false; |
վերադարձ; |
} |
} ուրիշ { |
եթե (code_int> 1) { |
Serial.println ("ՊԱՐԱՄԵՏՐԸ ՊԱՐՏԱԴԻՐ է"); |
_has_new_data = false; |
վերադարձ; |
} |
} |
Serial.println (); |
Serial.print ("input orig ="); |
Serial.println (ստացված_լար); |
Serial.print ("հասցե ="); |
Serial.println (հասցե); |
Serial.print ("կոդը ="); |
Serial.println (ծածկագիր); |
Serial.print ("պարամետր ="); |
Serial.println (պարամետր); |
// ՈENDԱՐԿԵԼ VIA I2C- ով |
Wire.beginTransmission (address_int); |
Wire.write (code_int); |
եթե (պարամետր ունի) { |
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 = false; |
} |
} |
դիտել rawuno_i2c_command_input.ino- ն, որը տեղակայված է it -ի կողմից GitHub- ի կողմից
Քայլ 6: Հաջորդ քայլերը
Հետևյալ ASSIMILATE ACTOR: HEARTBEAT- ը, որն օգտագործում է այս աղյուսը, ունի ավտոմատ կազմաձևում Crouton- ի համար `այստեղ արդեն ATTINY85- ում տեղադրված մետատվյալների միջոցով: Crouton- ին ուղարկված JSON փաթեթը ուղարկվում է ICOS10- ի վերջին որոնվածի միջոցով: Սովորական ESP8266- ի վրա կարող եք կատարել «Proof-of-concept» հասկացությունը, եթե ներկայումս կառուցվածքը չափազանց շատ է:
Փորձարկման ժամանակ օգտագործվող UNO- ի էսքիզը գործառույթ ունի ՝ ATTINY85- ում EEPROM հասցեին նոր ստրուկի հասցե պահպանելու համար, եթե բախում ունեք ձեր թիրախային I2C ավտոբուսում:
Խորհուրդ ենք տալիս:
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
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- ի համար: ՌԴ հաղորդիչները/ընդունիչները թույլ են տալիս ESP8266- ին մուտք գործել առկա տան/արդյունաբերական ավտոմատացում: Այս պատյանն ապահովում է 433
IOT123 - D1M BLOCK - GY521 հավաքում. 8 քայլ
IOT123 - D1M BLOCK - GY521 Համագումար. D1M BLOCKS- ը ավելացնում է շոշափելի պատյաններ, պիտակներ, բևեռայնության ուղեցույցներ և ճեղքեր հանրաճանաչ Wemos D1 Mini SOC/Shields/Clones- ի համար: Այս D1M BLOCK- ը պարզ միացում է տալիս Wemos D1 Mini- ի և GY-521 մոդուլի միջև (հասցեի և ընդհատման քորոցները կարող են կցվել
IOT123 - D1M BLOCK - ADXL345 Մոնտաժ ՝ 8 քայլ
IOT123 - D1M BLOCK - ADXL345 Համակցում. D1M BLOCKS- ը ավելացնում է շոշափելի պատյաններ, պիտակներ, բևեռայնության ուղեցույցներ և ճեղքեր հանրաճանաչ Wemos D1 Mini SOC/Shields/Clones- ի համար: Այս D1M BLOCK- ը պարզ միացում է տալիս Wemos D1 Mini- ի և ADXL345 արագացուցիչի մոդուլի միջև: initialարգացման իմ նախնական մոտիվացիան