Satura rādītājs:

IOT123 - I2C BRICK MASTER JIG: 4 soļi
IOT123 - I2C BRICK MASTER JIG: 4 soļi

Video: IOT123 - I2C BRICK MASTER JIG: 4 soļi

Video: IOT123 - I2C BRICK MASTER JIG: 4 soļi
Video: How LEGO Minifigures are made 2024, Jūlijs
Anonim
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG
IOT123 - I2C BRICK MASTER JIG

Izstrādājot ASIMILĀTOS SENSORUS un AKTORUS, man ir UNO pa rokai, lai nosūtītu adhoc I2C komandas izstrādātajiem prototipiem. Viena no I2C BRICKS priekšrocībām ir standartizētās spraudītes. Tā vietā, lai katru reizi izmantotu rīvdēļa vadus (skat. Fritzings), tiek izmantots izturīgs lo-tech vairogs.

1. darbība: materiāli un instrumenti

Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
Materiāli un instrumenti
  1. 4 cm x 6 cm vienpusējs PCB (1)
  2. Savienojuma vads (~ 6)
  3. 4K7 rezistori (2) 6
  4. Galvene vīriešiem (12P, 8P)
  5. Sieviešu galvene (9P vai 3P, 3P)
  6. Lodmetāls un dzelzs (1)

2. solis: montāža

Montāža
Montāža
Montāža
Montāža
Montāža
Montāža

Ja izmantojat 2 izslēgtas 3P sieviešu galvenes, nevis 1 izslēgtas 9P sieviešu galvenes, ASISIMILĀTĀS SENSORS/AKTORI iederēsies JIG, tos neizjaucot.

Izmantojot vadu, noņemiet galus līdz 10 mm un tiniet pašus galus.

  1. PCB apakšā ievietojiet tērauda galviņu (1) (2) un lodējiet virsū.
  2. PCB augšpusē ievietojiet sieviešu galviņu (3) un lodējiet no apakšas.
  3. Augšdaļā caur sarkano vadu RED1 un RED2.
  4. Apakšā, caurums caurumiem no RED1 līdz RED3.
  5. Apakšā, caurums caurumiem no RED2 uz RED5, un lodēt.
  6. Augšpusē, caurums caurumiem no RED3 uz RED4, un lodēt.
  7. Augšpusē caur sarkano vadu RED6 un RED7.
  8. Apakšā, caurums caurumiem no RED6 līdz RED8.
  9. Apakšā, caurums caurumiem no RED7 līdz RED10, un lodēt.
  10. Augšpusē caur caurumu no RED8 uz RED9 un lodēt.
  11. Augšdaļā caur caurumu melns vads BLACK1 un BLACK2.
  12. Apakšā, caurums caurumiem no BLACK1 līdz BLACK3.
  13. Apakšā, caurums caurumiem no BLACK2 uz BLACK5, un lodēt.
  14. Augšpusē, caurums caurumiem no BLACK3 līdz BLACK4, un lodēt.
  15. Augšdaļā caur caurumu zils vads BLUE1 un BLUE2.
  16. Apakšā, caurums caurumiem no BLUE1 līdz BLUE3.
  17. Apakšā, caurums caurumiem no BLUE2 līdz BLUE5, un lodēt.
  18. Augšpusē, caurums caurumiem no BLUE3 līdz BLUE4, un lodēt.
  19. Augšpusē caur zaļo vadu GREEN1 un GREEN2.
  20. Apakšā, caurums caurumiem no GREEN1 līdz GREEN3.
  21. Apakšā, caurums caurumiem no GREEN2 līdz GREEN5, un lodēt.
  22. Augšpusē caur caurumu no GREEN3 uz GREEN4 un lodēt.
  23. Augšpusē caur caurumu 4K7 rezistors SILVER3 un SILVER4.
  24. Apakšā, caurums caurumam no SILVER3 līdz GREEN5, un lodēt.
  25. Apakšā, caurums caurumam no SILVER4 uz RED10, un lodēt.
  26. Augšpusē caur caurumu 4K7 rezistors SILVER1 un SILVER2.
  27. Apakšā, caurums caurumam no SILVER1 uz BLUE5, un lodēt.
  28. Apakšā, caurums caurumam no SILVER2 uz RED10, un lodēt.

3. darbība: UNO kods

UNO kods
UNO kods

Skice šeit ir elementāra. Tas ļauj izmantot konsoles ievadi, lai UNO nosūtītu I2C ziņojumus uz I2C ATTINY85 BRICK.

Visas instrukcijas tiek drukātas uz ekrāna ar atbalstītajām opcijām.

I2C BRICK adhoc komandas vergiem no UNO master

#iekļaut
const baits _num_chars = 32;
char _saņēmu_čalas [_num_chars]; // masīvs saņemto datu glabāšanai
Būla _has_new_data = nepatiess;
voidsetup () {
Sērijas sākums (9600);
Sērijas.println ();
Serial.println ("ASIMILĒT IOT AKTORU/SENSOR EEPROM EDITOR");
Serial.println ("nodrošināt jaunas līnijas izvēli konsoles logā");
Sērijas.println ();
Serial.println ("ADRESE 1 APSTIPRINĀT METADATU SAŅEMŠANU N/A (M2M)");
Serial.println ("ADRESE 2 AKTORA KOMANDA");
Sērijas.println ();
Serial.println ("ADRESES UZ BUS:");
scan_i2c_addresses ();
Sērijas.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
par (baitu adrese = 8; adrese <127; adrese ++)
{
Wire.beginTransmission (adrese);
const baitu kļūda = Wire.endTransmission ();
ja (kļūda == 0)
{
Serial.println (adrese);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statiskais baits ndx = 0;
char end_marker = '\ n';
char rc;
kamēr (Serial.available ()> 0 && _has_new_data == false) {
rc = Sērijas.lasījums ();
ja (rc! = end_marker) {
_saņemti_ieraksti [ndx] = rc;
ndx ++;
ja (ndx> = _num_chars) {
ndx = _skaits_skaits - 1;
}
}
cits {
_received_chars [ndx] = '\ 0'; // izbeigt virkni
ndx = 0;
_has_new_data = taisnība;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Virkne saņemta_virkne = String (_received_chars);
ja (_ has_new_data == true) {
int idx1 = saņēmis_string.indexOf ('');
Virknes adrese = saņemta_string.substring (0, idx1);
int address_int = address.toInt ();
ja (adrese_int <8 || adreses_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (adrese);
atgriešanās;
}
int idx2 = saņēmis_string.indexOf ('', idx1+1);
Virknes kods;
ja (idx2 == -1) {
kods = saņemta_string.substring (idx1+1);
} vēl {
kods = saņemta_string.substring (idx1+1, idx2+1);
}
int kods_int = kods.toInt ();
ja (kods_int <0 || kods_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (kods);
atgriešanās;
}
bool has_parameter = idx2> -1;
String parametrs;
if (has_parameter) {
parametrs = saņemta_string.substring (idx2 + 1, idx2 + 17); // maks. 16 rakstzīmes
ja (parametrs.garums () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = nepatiess;
atgriešanās;
}
} vēl {
ja (kods_int> 1) {
Serial.println ("OBLIGĀTS PARAMETRS!");
_has_new_data = nepatiess;
atgriešanās;
}
}
Sērijas.println ();
Serial.print ("ievades orig =");
Sērijas.println (saņemta_virkne);
Serial.print ("adrese =");
Serial.println (adrese);
Serial.print ("kods =");
Serial.println (kods);
Serial.print ("parametrs =");
Serial.println (parametrs);
// SŪTĪT I2C
Wire.beginTransmission (address_int);
Wire.write (kods_int);
if (has_parameter) {
parametrs.trim ();
strcpy (param_buf, parametrs.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Sērijas.println ();
Serial.println ("SŪTĪTS I2C!");
Sērijas.println ();
Serial.println ("");
_has_new_data = nepatiess;
}
}

apskatīt rawuno_i2c_command_input.ino, kuru mitina GitHub ar ❤

4. darbība. Nākamās darbības

No piedāvātajām konstrukcijām ir pietiekami daudz kustīgu detaļu, lai jūs varētu izveidot savu ASSIMILATE IOT TĪKLU.

Katru mezglu (sensoru un aktieru) atsevišķo funkciju var kontrolēt decentralizēti, nevis atkarībā no MCU meistara zināšanām par atbalstītajām funkcijām.

Jebkura lietotne, kas savienojas ar MQTT brokeri, var kontrolēt/novērot visas IOT mezgla funkcijas. Tas ir M2M, tīmekļa lietojumprogrammas, IFTTT un tā tālāk. Daudz vienkāršākas (vai bagātākas, ja vēlaties) saskarnes ar jūsu IOT pasauli.

Ieteicams: