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

IOT123 - I2C Աղյուսի վարպետ JIG: 4 քայլ
IOT123 - I2C Աղյուսի վարպետ JIG: 4 քայլ

Video: IOT123 - I2C Աղյուսի վարպետ JIG: 4 քայլ

Video: IOT123 - I2C Աղյուսի վարպետ JIG: 4 քայլ
Video: #затирка вентканалов 2024, Նոյեմբեր
Anonim
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ
IOT123 - I2C Աղյուսի ՎԱՐՊԵՏ IGԻԳ

ASIMIMATE Սենսորներ և դերասաններ մշակելիս ես UNO- ին ձեռնտու եմ մշակման նախատիպերին adhoc I2C հրամաններ ուղարկելու համար: I2C Աղյուսների առավելություններից մեկը ստանդարտացված քորոցներն են: Ամեն անգամ հացահատիկի լարեր օգտագործելու փոխարեն (տե՛ս Ֆրիտզինգները), օգտագործվում է ուժեղ տեխնոլոգիական վահան:

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

Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
Նյութեր և գործիքներ
  1. 4 սմ x 6 սմ Uninersal PCB (1)
  2. Մալուխ (6 ~)
  3. 4K7 դիմադրիչներ (2) 6
  4. Արական վերնագիր (12P, 8P)
  5. Կին վերնագիր (9P, կամ 3P, 3P)
  6. Sոդման և երկաթ (1)

Քայլ 2: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Եթե դուք օգտագործում եք 2 -ից 3P իգական վերնագրեր ՝ 1 -ից 9P իգական վերնագրի փոխարեն, ASSIMILATE SENSOR/ACTORS- ը կտեղավորվի JIG- ում ՝ առանց դրանք ապամոնտաժելու:

Հաղորդալարերի միջոցով ծայրերից հանեք մինչև 10 մմ և ամրացրեք ծայրերը:

  1. PCB- ի ներքևում տեղադրեք արական վերնագիրը (1) (2) և զոդեք վերևում:
  2. PCB- ի վերևում տեղադրեք էգ վերնագիրը (3) և զոդեք ներքևում:
  3. Վերին մասում կարմիր մետաղալարով անցեք RED1 և RED2:
  4. Ներքևում ՝ անցքից մետաղալար RED1- ից մինչև RED3:
  5. Ներքևում ՝ RED2- ից RED5- ից անցք կատարող մետաղալար և կպցրեք:
  6. Վերևում ՝ RED3- ից RED4- ի միջով անցող մետաղալար և կպցրեք:
  7. Վերին մասում կարմիր մետաղալարով անցեք RED6 և RED7:
  8. Ներքևում ՝ RED6- ից RED8- ով անցք կատարող անցքերի մետաղալարեր:
  9. Ներքևում ՝ անցքով մետաղալարեր RED7- ից RED10- ի և զոդման համար:
  10. Վերևում ՝ անցքերով մետաղալարեր RED8- ից մինչև RED9 և կպցրեք:
  11. Վերևում, անցքով անցեք սև մետաղալարը BLACK1- ի և BLACK2- ի մեջ:
  12. Ներքևում ՝ BLACK1- ից BLACK3 անցքով անցնող մետաղալար:
  13. Ներքևում ՝ BLACK2- ից BLACK5 անցքով անցնող մետաղալար և կպցրեք:
  14. Վերևում ՝ BLACK3- ից BLACK4- ով անցք կատարող մետաղալարով և կպցրեք:
  15. Վերևում կապույտ մետաղալարն անցեք BLUE1- ի և BLUE2- ի մեջ:
  16. Ներքևում ՝ անցք ունեցող մետաղալարեր ՝ BLUE1- ից մինչև BLUE3:
  17. Ներքևում ՝ անցք ունեցող մետաղալար BLUE2- ից մինչև BLUE5, և զոդեք:
  18. Վերևում ՝ անցքից մետաղալար BLUE3- ից մինչև BLUE4, և կպցրեք:
  19. Վերևում կանաչ մետաղալարով անցեք Կանաչ 1 և Կանաչ 2:
  20. Ներքևում ՝ անցքից մետաղալար GREEN1- ից GREEN3- ով:
  21. Ներքևում ՝ անցքից մետաղալար GREEN2- ից GREEN5 և կպցրեք:
  22. Վերևում ՝ GREEN3- ից GREEN4- ի միջով անցքով մետաղալար և կպցրեք:
  23. Վերևում ՝ 4K7 դիմադրության անցքով անցեք SILVER3 և SILVER4:
  24. Ներքևում ՝ SILVER3- ից GREEN5- ի միջոցով անցք կատարող մետաղալար և կպցրեք:
  25. Ներքևում ՝ SILVER4- ից RED10- ի միջոցով անցք կատարող մետաղալար և կպցրեք:
  26. Վերևում ՝ 4K7 դիմադրության անցքով անցեք SILVER1 և SILVER2:
  27. Ներքևում ՝ SILVER1- ից BLUE5- ի միջոցով անցք կատարող մետաղալար և կպցրեք:
  28. Ներքևում ՝ SILVER2- ից RED10- ի միջոցով անցք կատարող մետաղալար և կպցրեք:

Քայլ 3. Կոդ ՄԱԿ -ի համար

Կոդ ՄԱԿ -ի համար
Կոդ ՄԱԿ -ի համար

Էսքիզն այստեղ տարրական է: Այն թույլ է տալիս օգտագործել Console Input- ը ՝ ստիպելու ՄԱԿ -ին I2C հաղորդագրություններ ուղարկել I2C ATTINY85 աղյուսին:

Բոլոր հրահանգները տպվում են էկրանին ՝ օժանդակ ընտրանքներով:

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

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

Ներկայացված կառուցվածքներից բավական շարժական մասեր կան, որպեսզի կարողանաք կառուցել ձեր սեփական ASSIMILATE IOT NETWORK- ը:

Հանգույցների (սենսորների և դերասանների) յուրաքանչյուր գործառույթ վերահսկելի է ապակենտրոնացված ձևով ՝ կախված MCU վարպետից ՝ աջակցվող գործառույթների վերաբերյալ որևէ գիտելիքից:

MQTT բրոքերին միացնող ցանկացած ծրագիր կարող է վերահսկել/դիտել IOT հանգույցի յուրաքանչյուր հատկություն: Դա M2M է, վեբ ծրագրեր, IFTTT և այլն: Շատ ավելի պարզ (կամ հարուստ, եթե ցանկանում եք) ձեր IOT աշխարհին:

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