Բովանդակություն:

IOT123 - I2C 2CH RELAY BRICK: 5 քայլ (նկարներով)
IOT123 - I2C 2CH RELAY BRICK: 5 քայլ (նկարներով)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 քայլ (նկարներով)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 քայլ (նկարներով)
Video: IOT123 - ICOS10: STRUCTURE 2024, Հունիսի
Anonim
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս
IOT123 - I2C 2CH RELAY Աղյուս

IOT123 Աղյուսները DIY մոդուլային միավորներ են, որոնք կարող են համակցվել այլ IOT123 Աղյուսների հետ ՝ հանգույցին ֆունկցիոնալություն հաղորդելու կամ կրելու համար: Դրանք հիմնված են դյույմ քառակուսի, երկկողմանի նախատախտակների վրա, որոնք փոխկապակցված են անցքերով:

Սպասվում է, որ այս ԿՈICՐԵՐԻ մի մասը կլինեն մի քանի հանգույցների վրա (Master MCUs - ESP8266 կամ ATTINY84) կայքում: MCU- ին սենսորների նպատակի կամ ծրագրակազմի կարիքների մասին նախնական գիտելիքներ պետք չեն: Այն սկանավորում է I2C հանգույցները, այնուհետև յուրաքանչյուր ստրուկից պահանջում է սեփականության աղբանոց (տվիչների տվյալներ): Այս աղյուսները մատակարարում են 5.0V, 3.3V և մեկ այլ AUX գիծ, որը հարմարեցված է:

Այս I2C 2CH RELAY Աղյուսը ընդլայնում է I2C KY019 ԿՈICՐՔԻ ֆունկցիոնալությունը և ունի կարդալու/գրելու երկու հատկություն.

2CH RELAYS [0] (ճշմարիտ/կեղծ):

2CH RELAYS [1] (ճշմարիտ/կեղծ):

ATTINY85- ի հարակից անցքերը մնացել են չօգտագործված, ինչը հնարավորություն է տալիս միացնել pogo- ի ծրագրավորողին, մինչ DIP8- ը կպցված է PCB- ին: Մշակվում է ևս մեկ աբստրակցիա ՝ ԿՈICՐԵՐԸ փաթեթավորելով փոքր բալոններում, որոնք միանում են D1M WIFI BLOCK հանգույցին ՝ արժեքները մղելով MQTT սերվերի վրա:

Քայլ 1: Նյութեր և գործիքներ

Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ

Կա Նյութերի և աղբյուրների ամբողջական օրինագիծ:

  1. 2 ալիքի ռելե (1)
  2. ATTINY85 20PU (1)
  3. 1 "երկկողմանի նախատախտակ (1)
  4. Արական վերնագիր 90º (3P, 3P)
  5. Արական վերնագիր (2P, 2P)
  6. Jատկող շանթ (1)
  7. Միացման մետաղալար (7 ~)
  8. Sոդման և երկաթ (1)

Քայլ 2. Պատրաստեք ATTINY85- ը

Պատրաստեք ATTINY85- ը
Պատրաստեք ATTINY85- ը
Պատրաստեք ATTINY85- ը
Պատրաստեք ATTINY85- ը
Պատրաստեք ATTINY85- ը
Պատրաստեք ATTINY85- ը

Նշում. Եթե մտադիր եք ունենալ Crouton ինտեգրում, խնդրում ենք օգտագործել գրադարանը այստեղից և օգտագործել «attiny_2ch_relay» տեղադրված օրինակը:

Խորհուրդների կառավարիչից անհրաժեշտ է AttinyCore: Այրեք bootloader «EEPROM պահպանված է», «8mHZ ներքին» (բոլորը կազմաձևված են վերևում):

Կոդերի պահեստը կարելի է գտնել այստեղ:

Գրադարանի ZIP- ը կարելի է գտնել այստեղ:

«ZIP գրադարան ներմուծելու» հրահանգներն այստեղ են:

Գրադարանը տեղադրվելուց հետո կարող եք բացել «attiny_2ch_relay» օրինակը:

Սարքաշարը ATTINY85- ում վերբեռնելու համար կարող եք ավելի շատ մանրամասներ գտնել այս հրահանգներում ՝

www.instructables.com/id/How-to-Program-A…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

www.instructables.com/id/Programming-the-…

Շարունակելուց առաջ լավագույնն է փորձարկել հացահատիկի միջոցով:

Եթե դուք ունեք գոյություն ունեցող ASSIMILATE SENSORS, համոզվեք, որ ստրուկի հասցեն տարբերվում է SENSOR/MCU Host- ի համակցությունից, այսինքն ՝ Relay- ի բոլոր դերակատարները կարող են ունենալ նույն հասցեն, քանի դեռ MCU/հանգույցում ունեք միայն մեկ Relay դերասան:

Քայլ 3: Հավաքեք շրջանը

Հավաքեք շրջանը
Հավաքեք շրջանը
Հավաքեք շրջանը
Հավաքեք շրջանը
Հավաքեք շրջանը
Հավաքեք շրջանը
  1. Առջևում տեղադրեք ATTINY85 (1), 3P 90 աստիճանի արական վերնագրեր (2) (3), 3P արական վերնագրերի (4) (5) բաղադրամասերը և զոդեք հետևի մասում:
  2. Հետևի մասում նշեք դեղին մետաղալարը YELLOW1- ից YELLOW2- ից և ամրացրեք:
  3. Հետևի մասում նշեք նարնջագույն մետաղալարեր ORANGE1- ից ORANGE2 և կպցրեք:
  4. Հետևի մասում կապույտ մետաղալարեր գտեք BLUE1- ից մինչև BLUE2 և կպցրեք:
  5. Հետևի մասում հետևեք կանաչ մետաղալարից GREEN1- ից GREEN2 և ամրացրեք:
  6. Հետևի մասում հետևեք սև մետաղալարից BLACK1- ից մինչև BLACK2 և զոդեք:
  7. Հետևի մասում հետևեք սև մետաղալարից BLACK3- ից մինչև BLACK4 և զոդեք:
  8. Հետևի մասում հետևեք կարմիր մետաղալարից RED1- ից մինչև RED2 և ամրացրեք:
  9. Հետևի մասում հետևեք մերկ մետաղալարին RED3- ից մինչև RED4 և ամրացրեք:
  10. Հետևի մասում հետևեք մերկ մետաղալարից SILVER1- ից մինչև SILVER2 և ամրացրեք:
  11. Ավելացրեք jumper 5V կամ 3V3 գծի վրա:

Ռելեն այժմ կարող է ուղղակիորեն միացնել PCB- ին կամ լարերի միջոցով `քորոցային պայմանագրում նշված կետերին:

Քայլ 4: Փորձարկում

Փորձարկում
Փորձարկում
Փորձարկում
Փորձարկում
Փորձարկում
Փորձարկում
Փորձարկում
Փորձարկում

Սպասվում է, որ այս ԿՈICՐԵՐԻ մի մասը կլինեն մի քանի հանգույցների վրա (MCUs - ESP8266 կամ ATTINY84) միջավայրում: Սա միավորի թեստ է. I2C հրամաններ է ուղարկում UNO- ից ATTINY, որը բացում կամ փակում է ռելեները:

Մենք նախկինում կառուցել ենք I2C SHIELD Arduino- ի համար:

Եթե ցանկանում եք դրա փոխարեն սեղան դնել

  1. Միացրեք 5.0V- ը UNO- ում `BRICK- ի VCC- ին:
  2. Միացրեք GND- ը UNO- ին GND- ին `BRICK- ում:
  3. Միացրեք UN5- ի A5- ը SCL- ին BRICK- ով:
  4. Միացրեք UNO- ի A4- ը SDA- ին BRICK- ում:
  5. SDK- ից միացրեք 4K7 ձգման դիմադրություն VCC- ին:
  6. Միացրեք 4K7 քաշվող դիմադրություն SCL- ից VCC- ին:

Թեստը վարելը:

  1. USB- ով միացրեք ձեր UNO- ն ձեր Dev համակարգչին:
  2. Վերբեռնեք կոդը ՄԱԿ -ում:
  3. Բացեք Arduino վահանակը:
  4. Ընտրեք 9600 baud (վերագործարկեք UNO- ն և անհրաժեշտության դեպքում վերաբացեք վահանակը):
  5. Ստրուկի հասցեն տպվելու է վահանակում:
  6. Երբ, մուտքագրեք ուղարկման վանդակում 2 0: 1 (ուրեմն 15 2 0: 1), և CH1 ռելեդը միանում է:

  7. Երբ, մուտքագրեք ուղարկման վանդակում 2 0: 0 (ուրեմն 15 2 0: 0), և CH1 ռելեն անջատվում է:
  8. Երբ, մուտքագրեք ուղարկման տուփ 2 1: 1 (ուրեմն 15 2 1: 1), և CH2 ռելեդը միանում է:
  9. Երբ, մուտքագրեք ուղարկման տուփ 2 1: 0 (ուրեմն 15 2 0: 0), և CH2 ռելեն անջատվում է:

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- ի կողմից

Քայլ 5: Հաջորդ քայլերը

Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը
Հաջորդ քայլերը

Հետևվող ASSIMILATE ACTOR: 2CH RELAY- ն, որն օգտագործում է այս աղյուսը, ունի ավտոմատ կազմաձևում Crouton- ի համար ՝ այստեղ արդեն ATTINY85- ում տեղադրված մետատվյալների միջոցով: Crouton- ին ուղարկված JSON փաթեթը ուղարկվում է ICOS10- ի վերջին որոնվածի միջոցով: Սովորական ESP8266- ի վրա կարող եք կատարել «Proof-of-concept» հասկացությունը, եթե ներկայումս կառուցվածքը չափազանց շատ է:

Փորձարկման ժամանակ օգտագործվող UNO- ի էսքիզը գործառույթ ունի ՝ ATTINY85- ում EEPROM հասցեին նոր ստրուկի հասցե պահպանելու համար, եթե բախում ունեք ձեր թիրախային I2C ավտոբուսում: Ավելացվել են մի քանի սխեմաներ, բայց հոսանքի հոսանքի հոսանքի միացման տարբեր եղանակներ կան ՝ կախված այն բանից, թե ինչի եք ուզում հասնել, այնպես որ դա թողնում եմ ձեզ համար:)

Խորհուրդ ենք տալիս: