Sisällysluettelo:
Video: IOT123 - I2C HEARTBEAT BRICK: 6 vaihetta
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
IOT123 BRICKS ovat DIY -modulaarisia yksiköitä, jotka voidaan murskata muiden IOT123 -tiilien kanssa lisätäkseen toiminnallisuutta solmuun tai puettavaan. Ne perustuvat tuuman neliön muotoisiin kaksipuolisiin protoboardeihin, joissa on toisiinsa yhdistetyt reiät.
Useiden näiden TILIKOIDEN odotetaan olevan sivuston useissa solmuissa (pää MCU: t - ESP8266 tai ATTINY84). MCU ei tarvitse ennakkotietoa antureiden tarkoituksesta tai ohjelmistotarpeista. Se etsii I2C -solmuja ja pyytää sitten ominaisuustodistusta (anturitiedot) jokaiselta orjalta. Nämä BRICK -virtalähteet tarjoavat 5,0 V: n, 3,3 V: n ja toisen AUX -linjan, joka on muokattavissa.
Tämä I2C HEARTBEAT BRICK osoittaa, onko ATTINY -orja elossa, myös I2C -liikenne, ja sillä on yksi ominaisuus:
TILA ("ELÄVÄ")
PB1 (valkoinen) osoittaa ATTINY -terveyttä.
PB3 (keltainen) vaihtaa isännän I2C -pyyntöihin.
PB4 (oranssi) vaihtaa päälaitteen I2C -vastaanoton kanssa.
ATTINY85: n vieressä olevat läpireiät on jätetty käyttämättä, jotta pogo-nastainen ohjelmoija voidaan ottaa käyttöön, kun DIP8 on juotettu piirilevyyn. Jatkuvasti kerrotaan myös BRICKSien pakkaamista pieniin sylintereihin, jotka kytketään D1M WIFI BLOCK -keskittimeen ja pumpataan arvot MQTT -palvelimelle.
Vaihe 1: Materiaalit ja työkalut
Aineiston ja hankintojen luettelo on täynnä.
- Paperi -piirilevy (7 x 7 reikää)
- LEDit (punainen, vihreä, sininen)
- Vastukset (3 pois 1K)
- ATTINY85 20PU (1)
- 1 "kaksipuolinen protoboard (1)
- Uros Otsikko 90º (3P, 3P)
- Urosotsikko (2P, 2P)
- Jumper Shunt (1)
- Liitäntäjohto (~ 7)
- Juotos ja rauta (1)
Vaihe 2: Valmista ATTINY85
HUOMAUTUS: Jos aiot käyttää Crouton -integraatiota, käytä kirjastoa täältä ja käytä asennettua esimerkkiä "attiny_heartbeat"
Hallituksen johtajan AttinyCore tarvitaan. Polta käynnistyslatain "EEPROM Retained", "8mHZ Internal" (kaikki kokoonpanot on esitetty yllä).
Koodivarasto löytyy täältä.
ZIP -kirjasto löytyy täältä.
Ohjeet ZIP -kirjaston tuomiseen täältä.
Kun kirjasto on asennettu, voit avata esimerkin "attiny_heartbeat".
Jos haluat ladata laiteohjelmiston ATTINY85 -laitteeseen, saat lisätietoja näistä ohjeista:
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-…
Paras testata leipälevyn kautta ennen kuin jatkat.
Jos sinulla on ASISIMILAATTI -ANTURIT, varmista, että orjaosoite on erilainen SENSOR/MCU -isäntäyhdistelmässä, esim. kaikilla reletoimijoilla voi olla sama osoite, kunhan sinulla on vain yksi välittäjä MCU: ssa/solmussa.
Vaihe 3: Merkkivalojen kokoaminen
Indikaattorit on tarkoitettu täysin muokattaviksi. Pääpiirin tapahtumasignaalit nähdään sydämenlyönteinä. Tätä rakennetta varten käytämme LED -ilmaisimia; rakennuksesi voi käyttää releitä (kyllä, VCC on hajonnut) tai muuta visuaalista/signaalipohjaista ilmaisinta. Vastusarvot riippuvat henkilökohtaisista mieltymyksistä sen mukaan, kuinka kirkkaita haluat.
- Aseta yläosassa oleva sininen LED PUNAISIIN 1 (+) ja MUSTA1 (G) ja juotos alaosaan.
- Taivuta alhaalta RED1: n johto niin, että se koskettaa SILVER8: n kuparityynyä ja leikkaa.
- Pohjassa leikkausjohto BLACK1 -juotteen yläpuolelta.
- Aseta yläosassa oleva vihreä LED PUNAISIIN (+) ja MUSTAAN (G) ja juotos alaosaan.
- Taivuta RED2: n johto alhaalta niin, että se koskettaa HOPEA9: n kuparityynyä ja leikkaa.
- Pohjassa leikkausjohto BLACK2 -juotteen yläpuolelta.
- Aseta ylhäällä punainen LED -valo PUNAISIIN (+) ja MUSTAA3 (G) ja juotos alaosaan.
- Taivuta alhaalta RED3: n johto niin, että se koskettaa SILVER10: n kuparityynyä ja leikkaa.
- Pohjassa leikkausjohto BLACK3 -juotteen yläpuolelta.
- Aseta yläosassa oleva 1K-vastus läpireikiin SILVER1 ja SILVER4.
- Jäljitä, leikkaa ja juota pohjassa SILVER1: stä MUSTAAN1.
- Aseta yläosassa oleva 1K-vastus läpireikiin SILVER2 ja SILVER4.
- Jäljitä, leikkaa ja juota pohjassa SILVER2: sta BLACK2: een.
- Aseta yläosassa oleva 1K-vastus läpireikiin SILVER3 ja SILVER4.
- Jäljitä, leikkaa ja juota pohjassa SILVER3: sta BLACK3: een.
- Pohjassa juotetaan SILVER4 -johdot ja leikataan noin 5 mm: n pituudelta.
- Pohjassa juotetaan musta lanka SILVER4: lle.
- Juottaa pohjassa valkoinen lanka SILVER5: een varmistaen jatkuvuuden johtavan PUNAISESTA 1.
- Juotos alareunassa keltainen lanka SILVER6: een varmistaen jatkuvuuden johtavan RED2: sta.
- Pohjassa juotetaan oranssi lanka SILVER7: een varmistaen jatkuvuuden johtavan RED3: sta.
Vaihe 4: Päävirtapiirin kokoaminen
Kokoonpano:
- Aseta etuosaan osat ATTINY85 (1), 3P 90deg urospäät (2) (3), 3P urospäät (4) (5) ja juota pois takaa.
- Jäljitä takana oleva keltainen lanka KELTAISESTA 1 KELTAISEKSI2 ja juota.
- Jäljitä takana oleva oranssi lanka ORANGE1: stä ORANGE2: een ja juota.
- Jäljitä takana oleva sininen johto BLUE1 - BLUE2 ja juotos.
- Jäljitä takana oleva vihreä johto GREEN1: stä GREEN2: een ja juota.
- Jäljitä takana valkoinen lanka VALKOISESTA VALKOISEKSI2 ja juota.
- Jäljitä takana musta johto BLACK1: stä BLACK2: een ja juotos.
- Jäljitä takana musta johto BLACK3: sta BLACK4: ään ja juotos.
- Jäljitä takana oleva punainen johto RED1 - RED2 ja juotos.
- Jäljellä on jäljellä paljas lanka RED3: sta RED4: een ja juotos.
- Jäljellä on jäljellä paljas lanka HOPEA1 - HOPEA2 ja juote.
- Lisää hyppyjohdin 5V- tai 3V3 -linjalle.
Jos käytät yllä olevia ilmaisimia (katso pinout -kaavio):
- Takaosassa juota valkoinen johto PB1: een.
- Takaosassa juotetaan keltainen johto PB3: een.
- Takaosassa juotetaan oranssi johto PB4: ään.
- Takaosassa juota musta johto GND: hen.
Vaihe 5: Testaus
Useiden näiden TILIKOIDEN odotetaan olevan useissa solmuissa (MCU: t - ESP8266 tai ATTINY84) ympäristössä. Tämä on yksikkötesti: lähettää I2C -komentoja UNO: lta ATTINYlle, joka vaihtaa vastaanotto -LEDin. ATTINY ALIVE -merkkivalo palaa.
Olemme aiemmin rakentaneet I2C SHIELD: n Arduinolle.
Jos haluat leikata sen sen sijaan:
- Kytke UNO: n 5,0 V BRICKin VCC: hen.
- Yhdistä GND UNO: lla GND on BRICK.
- Liitä A5 UNO: ssa SCL on BRICK.
- Liitä UNO: n A4 -levy BRICKin SDA -liittimeen.
- Liitä 4K7-vetovastus SDA: sta VCC: hen.
- Liitä 4K7-vetovastus SCL: stä VCC: hen.
Testin suorittaminen
- Yhdistä UNO -laite Dev -tietokoneeseen USB: n avulla.
- Lähetä koodi UNO: hon.
- Avaa Arduino -konsoli.
- Valitse 9600 baudia (käynnistä UNO uudelleen ja avaa konsoli tarvittaessa uudelleen).
- Orjan osoite tulostetaan konsoliin.
- Kun kirjoitat lähetysruutuun 2 1 (eli 16 2 1), niin Vastaanoton merkkivalo syttyy.
- Kun kirjoitat lähetysruutuun 2 0 (eli 16 2 0), vastaanotto -LED sammuu.
I2C BRICK adhoc -komennot orjille UNO -isännältä
#sisältää |
const tavu _num_chars = 32; |
char _saapuneet_merkit [_numero_sarjat]; // matriisi vastaanotetun datan tallentamiseksi |
boolean _has_new_data = epätosi; |
voidsetup () { |
Sarja.alku (9600); |
Sarja.println (); |
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR"); |
Serial.println ("varmista, että uusi rivi on valittu konsoli -ikkunasta"); |
Sarja.println (); |
Serial.println ("OSOITE 1 VAHVISTA METATIETOSUOJA N/A (M2M: lle)"); |
Serial.println ("OSOITE 2 ACTOR COMMAND"); |
Sarja.println (); |
Serial.println ("OSOITTEET BUSSISSA:"); |
scan_i2c_addresses (); |
Sarja.println (); |
Serial.println (""); |
} |
voidscan_i2c_addresses () { |
int laitteen_luku = 0; |
(tavuosoite = 8; osoite <127; osoite ++) |
{ |
Wire.beginTransmission (osoite); |
const tavuvirhe = Wire.endTransmission (); |
jos (virhe == 0) |
{ |
Serial.println (osoite); |
} |
} |
} |
voidloop () { |
recv_with_end_marker (); |
send_to_i2c (); |
} |
voidrecv_with_end_marker () { |
staattinen tavu ndx = 0; |
char end_marker = '\ n'; |
char rc; |
while (Serial.available ()> 0 && _has_new_data == false) { |
rc = Serial.read (); |
jos (rc! = end_marker) { |
_vastaanotetut_merkit [ndx] = rc; |
ndx ++; |
jos (ndx> = _numerot) { |
ndx = _luku_merkkiä - 1; |
} |
} |
muu { |
_received_chars [ndx] = '\ 0'; // lopettaa merkkijono |
ndx = 0; |
_has_new_data = tosi; |
} |
} |
} |
voidsend_to_i2c () { |
char param_buf [16]; |
const Jono vastaanotettu_merkkijono = Merkkijono (_vastaanotetut_merkit); |
jos (_ has_new_data == true) { |
int idx1 = vastaanotettu_merkkijono.indexOf (''); |
Merkkijonon osoite = vastaanotettu_merkkijono.substring (0, idx1); |
int address_int = address.toInt (); |
jos (address_int <8 || address_int> 127) { |
Serial.println ("VÄÄRÄ OSOITTEEN TULO:"); |
Serial.println (osoite); |
palata; |
} |
int idx2 = vastaanotettu_merkkijono.indexOf ('', idx1+1); |
Merkkijonokoodi; |
jos (idx2 == -1) { |
koodi = vastaanotettu_merkkijono.substring (idx1+1); |
}muu{ |
koodi = vastaanotettu_merkkijono.substring (idx1+1, idx2+1); |
} |
int code_int = code.toInt (); |
jos (code_int <0 || code_int> 5) { |
Serial.println ("INVALID CODE INPUT:"); |
Serial.println (koodi); |
palata; |
} |
bool has_parameter = idx2> -1; |
Jono -parametri; |
if (has_parameter) { |
parametri = vastaanotettu_merkkijono.substring (idx2 + 1, idx2 + 17); // enintään 16 merkkiä |
jos (parametri.pituus () <1) { |
Serial.println ("PARTAMETER MIN. LENGTH 1"); |
_has_new_data = epätosi; |
palata; |
} |
}muu{ |
jos (code_int> 1) { |
Serial.println ("PARAMETRI VAATII!"); |
_has_new_data = epätosi; |
palata; |
} |
} |
Sarja.println (); |
Serial.print ("input orig ="); |
Sarja.println (vastaanotettu_merkkijono); |
Serial.print ("address ="); |
Serial.println (osoite); |
Serial.print ("code ="); |
Serial.println (koodi); |
Serial.print ("parametri ="); |
Serial.println (parametri); |
// LÄHETÄ I2C |
Wire.beginTransmission (osoite_int); |
Wire.write (code_int); |
if (has_parameter) { |
parametri.trim (); |
strcpy (param_buf, parametri.c_str ()); |
Wire.write (param_buf); |
} |
Wire.endTransmission (); |
Sarja.println (); |
Serial.println ("LÄHETETTY I2C!"); |
Sarja.println (); |
Serial.println (""); |
_has_new_data = epätosi; |
} |
} |
katso rawuno_i2c_command_input.ino, jota isännöi GitHub ❤ kanssa
Vaihe 6: Seuraavat vaiheet
Seuraavassa ASSIMILATE ACTOR: HEARTBEAT: ssä, joka käyttää tätä tiiliä, on Croutonin automaattinen konfigurointi ATTINY85: een jo asennettujen metatietojen kautta. Croutonille lähetetty JSON -paketti lähetetään ICOS10: n uusimman laiteohjelmiston kautta. Voit tehdä Proof-of-concept -konseptin tavallisella ESP8266-laitteella, jos rakenne on toistaiseksi liikaa.
Testauksessa käytetyssä UNO -luonnoksessa on toiminto, joka tallentaa uuden orjaosoitteen EEPROM -laitteeseen ATTINY85 -laitteessa, jos kohde -I2C -väylässäsi on ristiriita.