Kazalo:

IOT123 - I2C OGLEDNI OGLEDNIK: 4 koraki
IOT123 - I2C OGLEDNI OGLEDNIK: 4 koraki

Video: IOT123 - I2C OGLEDNI OGLEDNIK: 4 koraki

Video: IOT123 - I2C OGLEDNI OGLEDNIK: 4 koraki
Video: SSD1306 OLED display with Arduino 2024, Julij
Anonim
IOT123 - I2C ZGRADNI OGLEDNIK
IOT123 - I2C ZGRADNI OGLEDNIK
IOT123 - I2C OGLEDNI OGLEDNIK JIG
IOT123 - I2C OGLEDNI OGLEDNIK JIG
IOT123 - I2C ZGRADNI OGLEDNIK
IOT123 - I2C ZGRADNI OGLEDNIK

Med razvijanjem ASIMILIRANIH SENZORJEV IN AKTORJEV imam UNO pri roki za pošiljanje adhoc ukazov I2C prototipom, ki se razvijajo. Ena od prednosti I2C BRICKS so standardizirani pinouts. Namesto da vsakič uporabite žice za mizo (glejte Fritzings), se uporablja trden lo-tech ščit.

Korak: Materiali in orodja

Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja
Materiali in orodja
  1. 4 cm x 6 cm Uninersal PCB (1)
  2. Priključna žica (~ 6)
  3. 4K7 upori (2) 6
  4. Moški vzglavnik (12P, 8P)
  5. Ženska glava (9P ali 3P, 3P)
  6. Spajkanje in železo (1)

2. korak: Montaža

Montaža
Montaža
Montaža
Montaža
Montaža
Montaža

Če namesto 1 ženskega glave 9P uporabljate 2 izklopljeni ženski glavi 3P, se POMOČNI SENZOR/DEJAVNIKI prilegajo JIG -u, ne da bi jih razstavili.

Pri ožičenju odstranite do 10 mm na koncih in pokosite same konce.

  1. Na spodnji strani tiskanega vezja vstavite moško glavo (1) (2) in jo spajkajte na vrhu.
  2. Na vrhu tiskanega vezja vstavite žensko glavo (3) in spodaj spajkajte.
  3. Na vrhu skozi rdečo žico v RED1 in RED2.
  4. Na dnu žica skozi RED1 v RED3.
  5. Na dnu žico skozi RED2 v RED5 in spajkajte.
  6. Na vrhu žica skozi RED3 v RED4 in spajkajte.
  7. Na vrhu prebodite rdečo žico v RED6 in RED7.
  8. Na dnu žica skozi RED6 v RED8.
  9. Na dnu žico skozi RED7 v RED10 in spajkajte.
  10. Na vrhu žica skozi RED8 v RED9 in spajkajte.
  11. Na vrhu skozi črno žico skozi BLACK1 in BLACK2.
  12. Na dnu prebodite žico skozi BLACK1 v BLACK3.
  13. Na dnu žico skozi luknjo iz BLACK2 v BLACK5 in spajkajte.
  14. Na vrhu žico skozi luknjo iz BLACK3 v BLACK4 in spajkajte.
  15. Na vrhu prebodite modro žico v modro1 in modro2.
  16. Na dnu skozi žico skozi modro 1 v modro 3.
  17. Na dnu žico skozi modro luknjo iz modrega v modro5 in spajkajte.
  18. Na vrhu prebodite žico skozi MODRO3 v MODRO4 in spajkajte.
  19. Na vrhu prebodite zeleno žico v GREEN1 in GREEN2.
  20. Na dnu žica skozi luknjo iz ZELENE1 v ZELENO3.
  21. Na dnu prebodite žico iz GREEN2 v GREEN5 in spajkajte.
  22. Na vrhu žico skozi luknjo iz ZELENE3 v ZELENO4 in spajkajte.
  23. Na vrhu vstavite upor 4K7 v SILVER3 in SILVER4.
  24. Na dnu prebodite žico iz SREBRNEGA3 v ZELENO5 in spajkajte.
  25. Na dnu žica skozi luknjo iz SREBRNEGA4 v RDEČEGA10 in spajkajte.
  26. Na vrhu vstavite upor 4K7 v SILVER1 in SILVER2.
  27. Na dnu žico skozi luknjo iz SREBRNEGA1 v MODRO5 in spajkajte.
  28. Na dnu žico skozi SERVER2 v RDEČO 10 in spajkajte.

3. korak: Koda za UNO

Koda za UNO
Koda za UNO

Skica tukaj je osnovna. Omogoča vam, da uporabite vnos v ukazno mizo, da UNO pošlje sporočila I2C na zidak ATTINY85 I2C.

Vsa navodila so natisnjena na zaslonu s podprtimi možnostmi.

I2C BRICK adhoc ukazi za sužnje od UNO masterja

#vključi
const byte _num_chars = 32;
char _prejeti_chars [_num_chars]; // polje za shranjevanje prejetih podatkov
logični _has_new_data = false;
voidsetup () {
Serial.begin (9600);
Serial.println ();
Serial.println ("ASIMILIRAJ IOT AKTOR/SENZOR EEPROM UREDNIK");
Serial.println ("zagotovite, da je nova vrstica izbrana v oknu konzole");
Serial.println ();
Serial.println ("NASLOV 1 POTRDI PREJEM METODATKOV N/A (ZA M2M)");
Serial.println ("NASLOV 2 ULOGA AKTORJA");
Serial.println ();
Serial.println ("NASLOVI V AVTOBUSU:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int device_count = 0;
for (naslov bajtov = 8; naslov <127; naslov ++)
{
Wire.beginTransmission (naslov);
napaka bajta const = Wire.endTransmission ();
če (napaka == 0)
{
Serial.println (naslov);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statični bajt ndx = 0;
char end_marker = '\ n';
char rc;
medtem ko (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
if (rc! = end_marker) {
_prejeti_črki [ndx] = rc;
ndx ++;
if (ndx> = _številka_znakov) {
ndx = _številka -znakov - 1;
}
}
drugače {
_received_chars [ndx] = '\ 0'; // prekinimo niz
ndx = 0;
_has_new_data = res;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Niz prejel_string = Niz (_prejeti_črki);
if (_has_new_data == true) {
int idx1 = sprejet_string.indexOf ('');
Naslov niza = prejel_string.substring (0, idx1);
int naslov_int = naslov.toInt ();
if (naslov_int <8 || naslov_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (naslov);
vrnitev;
}
int idx2 = sprejet_string.indexOf ('', idx1+1);
Koda niza;
če (idx2 == -1) {
koda = sprejet_string.substring (idx1+1);
} drugo {
koda = prejeti_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("INVALID CODE INPUT:");
Serial.println (koda);
vrnitev;
}
bool has_parameter = idx2> -1;
Parameter niza;
if (has_parameter) {
parameter = sprejet_string.substring (idx2 + 1, idx2 + 17); // največ 16 znakov
if (parameter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = false;
vrnitev;
}
} drugo {
če (code_int> 1) {
Serial.println ("PARAMETER POTREBEN!");
_has_new_data = false;
vrnitev;
}
}
Serial.println ();
Serial.print ("input orig =");
Serial.println (niz_prejetih);
Serial.print ("naslov =");
Serial.println (naslov);
Serial.print ("code =");
Serial.println (koda);
Serial.print ("parameter =");
Serial.println (parameter);
// POŠLJI PO I2C
Wire.beginTransmission (naslov_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 ("Poslano prek I2C!");
Serial.println ();
Serial.println ("");
_has_new_data = false;
}
}

oglejte si rawuno_i2c_command_input.ino, ki ga gosti ❤ GitHub

4. korak: Naslednji koraki

Iz predstavljenih zgradb je dovolj gibljivih delov, da lahko sestavite lastno ASIMILIRAJO IOT MREŽO.

Vsako od posameznih funkcij vozlišč (senzorjev in akterjev) je mogoče upravljati na decentraliziran način, ne da bi bilo treba od poveljnika MCU vedeti o podprtih funkcijah.

Vsaka aplikacija, ki se poveže z posrednikom MQTT, lahko nadzoruje/opazuje vsako funkcijo vozlišča IOT. To so M2M, spletne aplikacije, IFTTT itd. Veliko preprostejši (ali bogatejši vmesniki) v vaš svet IOT.

Priporočena: