Kazalo:

IOT123 - OGLED I2C SRČNEGA BITA: 6 korakov
IOT123 - OGLED I2C SRČNEGA BITA: 6 korakov

Video: IOT123 - OGLED I2C SRČNEGA BITA: 6 korakov

Video: IOT123 - OGLED I2C SRČNEGA BITA: 6 korakov
Video: arduino oled i2c tutorial : 0.96" 128 X 32 for beginners 2024, Junij
Anonim
IOT123 - OGLED I2C SRCA
IOT123 - OGLED I2C SRCA
IOT123 - OGLED I2C SRCEV
IOT123 - OGLED I2C SRCEV
IOT123 - OGLED I2C SRCA
IOT123 - OGLED I2C SRCA

IOT123 BRICS so modularne enote DIY, ki jih je mogoče združiti z drugimi IOT123 opekami, da vozlišču ali nosljivemu delu dodajo funkcionalnost. Temeljijo na palčnih kvadratnih, obojestranskih ploščah, ki so med seboj povezane skozi luknje.

Pričakuje se, da bodo številne te ZDRAVILE na več vozliščih (glavni MCU -ji - ESP8266 ali ATTINY84) na spletnem mestu. MCU ne potrebuje predhodnega znanja o namenu senzorjev ali potrebah po programski opremi. Skenira vozlišča I2C, nato od vsakega podrejenega zahteva izpis lastnosti (podatki senzorja). Te OPIČKE napajajo 5.0V, 3.3V in drugo linijo AUX, ki je prilagodljiva.

Ta I2C HEARTBEAT BRICK označuje, ali je pomožni element ATTINY živ, prav tako promet I2C in ima eno lastnost:

STATUS ("ŽIVO")

PB1 (bela) označuje zdravje ATTINY.

PB3 (rumena) preklaplja z zahtevami I2C od glavnega.

PB4 (oranžna) preklaplja, ko I2C sprejema od glavnega.

Skozi luknje, ki mejijo na ATTINY85, niso bile uporabljene, da bi omogočili programer pogo pin, medtem ko je DIP8 spajkan na tiskano vezje. Razvija se nadaljnja abstrakcija, pakiranje OPEK v majhne jeklenke, ki se priključijo na vozlišče D1M WIFI BLOCK in črpajo vrednosti na strežnik MQTT.

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

Obstaja celoten seznam gradiva in virov.

  1. PCB iz papirja (7 x 7 lukenj)
  2. LED (rdeča, zelena, modra)
  3. Upori (3 od 1K)
  4. ATTINY85 20PU (1)
  5. 1 "dvostranska protoboard (1)
  6. Moški vzglavnik 90º (3P, 3P)
  7. Moška glava (2P, 2P)
  8. Skakalec (1)
  9. Priključna žica (~ 7)
  10. Spajkanje in železo (1)

2. korak: Pripravite ATTINY85

Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85

OPOMBA: Če nameravate imeti Croutonovo integracijo, uporabite knjižnico od tu in uporabite primer nameščenega "attiny_heartbeat"

Potreben je AttinyCore upravitelja upravnih odborov. Zapiši zagonski nalagalnik "EEPROM zadržan", "8mHZ Notranji" (vse konfiguracije prikazane zgoraj).

Shrambo kod najdete tukaj.

ZIP datoteko knjižnice najdete tukaj.

Navodila za "Uvoz knjižnice ZIP" tukaj.

Ko je knjižnica nameščena, lahko odprete primer "attiny_heartbeat".

Če želite naložiti vdelano programsko opremo v ATTINY85, lahko najdete več podrobnosti v teh navodilih:

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-…

Najbolje je, da pred nadaljevanjem preizkusite prek mize.

Če imate obstoječe ASSIMILATE SENSORS, se prepričajte, da je podrejeni naslov drugačen v kombinaciji SENSOR/MCU Host, npr. vsi igralci releja imajo lahko isti naslov, če imate le enega igralca releja na MCU/vozlišču.

3. korak: Sestavljanje kazalnikov

Sestavljanje kazalnikov
Sestavljanje kazalnikov
Sestavljanje kazalnikov
Sestavljanje kazalnikov
Sestavljanje kazalnikov
Sestavljanje kazalnikov

Kazalniki naj bi bili v celoti prilagodljivi. Signali dogodkov iz glavnega tokokroga so vidni kot utripi srca. Za to gradnjo bomo uporabili LED indikatorje; vaša zgradba lahko uporablja releje (ja, VCC je izklopljen) ali drug vizualni/signalni indikator. Vrednosti upora bodo odvisne od osebnih želja glede na to, kako svetle jih želite.

  1. Na vrhu vstavite modro LED v RED1 (+) in ČRNO1 (G) in spajkajte na dnu.
  2. Na dnu upognite vodnik iz RED1 tako, da se dotakne bakrene blazinice na SREBRNEM8 in ga obreže.
  3. Na spodnji strani obrežite kabel iz BLACK1 nad spajkanjem.
  4. Na vrhu vstavite zeleno LED v RDEČI (+) in ČRNI2 (G), spodaj pa spajkajte.
  5. Na dnu upognite vodnik iz RED2, tako da se dotakne bakrene blazinice na SREBRNEM9 in ga obrežite.
  6. Spodaj obrežite kabel iz BLACK2 nad spajkanjem.
  7. Na vrhu vstavite rdečo LED v RDEČE (+) in ČRNO3 (G), spodaj pa spajkajte.
  8. Na dnu upognite svinec iz RED3 tako, da se dotakne bakrene blazinice na SILVER10 in jo obreže.
  9. Spodaj obrežite kabel iz BLACK3 nad spajkanjem.
  10. Na vrhu vstavite 1K upor v luknje SILVER1 in SILVER4.
  11. Na dnu poiščite, obrežite in spajkajte kabel od SREBRNEGA1 do ČRNEGA1.
  12. Na vrhu vstavite 1K upor v luknje SILVER2 in SILVER4.
  13. Na dnu poiščite, obrežite in spajkajte svinec od SREBRNEGA2 do ČRNEGA2.
  14. Na vrhu vstavite 1K upor v luknje SILVER3 in SILVER4.
  15. Na dnu poiščite, obrežite in spajkajte kabel od SREBRNEGA3 do ČRNEGA3.
  16. Na dnu spajkajte žice na SILVER4 in jih obrežite na približno 5 mm.
  17. Na dnu spajkajte črno žico na SILVER4.
  18. Na dnu spajkajte belo žico v SILVER5, kar zagotavlja neprekinjeno vodenje od RED1.
  19. Na dnu spajkajte rumeno žico v SILVER6, da zagotovite neprekinjeno vodenje od RED2.
  20. Na dnu spajkajte oranžno žico v SREBRNO7 in tako zagotovite neprekinjeno vodenje iz RED3.

4. korak: Sestavljanje glavnega vezja

Sestavljanje glavnega vezja
Sestavljanje glavnega vezja
Sestavljanje glavnega vezja
Sestavljanje glavnega vezja
Sestavljanje glavnega vezja
Sestavljanje glavnega vezja

Montaža:

  1. Na sprednji strani vstavite komponente ATTINY85 (1), 3P 90deg moške glave (2) (3), 3P moške glave (4) (5) in spajkajte na zadnji strani.
  2. Na zadnji strani potegnite rumeno žico od RUMENE1 do RUMENE2 in spajkajte.
  3. Na zadnji strani poiščite oranžno žico od ORANGE1 do ORANGE2 in spajkajte.
  4. Na zadnji strani poiščite modro žico od MODRE1 do MODRE2 in spajkajte.
  5. Na zadnji strani potegnite zeleno žico od ZELENE1 do ZELENE2 in spajkajte.
  6. Na zadnji strani poiščite belo žico od BELEGA1 do BELEGA2 in spajkajte.
  7. Na zadnji strani poiščite črno žico od BLACK1 do BLACK2 in spajkajte.
  8. Na zadnji strani poiščite črno žico od BLACK3 do BLACK4 in spajkajte.
  9. Na zadnji strani poiščite rdečo žico od RED1 do RED2 in spajkajte.
  10. Na zadnji strani poiščite golo žico od RED3 do RED4 in spajkajte.
  11. Na zadnji strani poiščite golo žico od SREBRNEGA1 do SREBRNEGA2 in spajkajte.
  12. Dodajte mostiček na linijo 5V ali 3V3.

Če uporabljate zgornje indikatorje (glejte diagram izklopa):

  1. Belo žico na zadnji strani spajkajte v PB1.
  2. Na zadnji strani rumeno žico spajkajte v PB3.
  3. Na zadnji strani oranžno žico spajkajte v PB4.
  4. Na zadnji strani spajkajte črno žico v GND.

5. korak: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Pričakuje se, da bodo številne te ZDRAVILE na več vozliščih (MCU -ji - ESP8266 ali ATTINY84) v okolju. To je test enote: pošilja ukaze I2C iz UNO na ATTINY, ki preklopi LED za sprejem. LED ATTINY ALIVE sveti.

Pred tem smo za Arduino zgradili I2C SHIELD.

Če ga želite namesto tega narediti:

  1. Priključite 5.0V na UNO na VCC na BRICK.
  2. Povežite GND na UNO z GND na BRICK.
  3. Povežite A5 na UNO s SCL na BRICK.
  4. Povežite A4 na UNO s SDA na BRICK.
  5. Priključite vlečni upor 4K7 iz SDA na VCC.
  6. Priključite vlečni upor 4K7 iz SCL v VCC.

Izvajanje testa

  1. Povežite svoj UNO z računalnikom Dev prek USB -ja.
  2. Naložite kodo v UNO.
  3. Odprite konzolo Arduino.
  4. Izberite 9600 baudov (znova zaženite UNO in znova odprite konzolo, če je potrebno).
  5. Naslov podrejenega se natisne na konzolo.
  6. Ko vnesite v polje za pošiljanje 2 1 (torej 16 2 1) in LED za sprejem se prižge.
  7. Ko vnesite v polje za pošiljanje 2 0 (torej 16 2 0) in LED za sprejem se izklopi.

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

Korak 6: Naslednji koraki

Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki

Nadaljnji igralec ASSIMILATE ACTOR: HEARTBEAT, ki uporablja to opeko, ima samodejno konfiguracijo za Croutona prek metapodatkov, ki so že nameščeni v ATTINY85 tukaj. Paket JSON, poslan Croutonu, se pošlje prek najnovejše vdelane programske opreme za ICOS10. Proof-of-concept lahko naredite na običajnem ESP8266, če je gradnja zaenkrat preveč.

Skica UNO, uporabljena pri preskušanju, ima funkcijo za shranjevanje novega podrejenega naslova v EEPROM na ATTINY85, če pride do spopada na ciljnem vodilu I2C.

Priporočena: