Sisällysluettelo:

IOT123 - I2C HEARTBEAT BRICK: 6 vaihetta
IOT123 - I2C HEARTBEAT BRICK: 6 vaihetta

Video: IOT123 - I2C HEARTBEAT BRICK: 6 vaihetta

Video: IOT123 - I2C HEARTBEAT BRICK: 6 vaihetta
Video: Zaful Bikini HAUL 2018 | TRY ON | Valerie pac 2024, Kesäkuu
Anonim
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK
IOT123 - I2C HEARTBEAT BRICK

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

Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut
Materiaalit ja työkalut

Aineiston ja hankintojen luettelo on täynnä.

  1. Paperi -piirilevy (7 x 7 reikää)
  2. LEDit (punainen, vihreä, sininen)
  3. Vastukset (3 pois 1K)
  4. ATTINY85 20PU (1)
  5. 1 "kaksipuolinen protoboard (1)
  6. Uros Otsikko 90º (3P, 3P)
  7. Urosotsikko (2P, 2P)
  8. Jumper Shunt (1)
  9. Liitäntäjohto (~ 7)
  10. Juotos ja rauta (1)

Vaihe 2: Valmista ATTINY85

Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
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

Indikaattoreiden kokoaminen
Indikaattoreiden kokoaminen
Indikaattoreiden kokoaminen
Indikaattoreiden kokoaminen
Indikaattoreiden kokoaminen
Indikaattoreiden 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.

  1. Aseta yläosassa oleva sininen LED PUNAISIIN 1 (+) ja MUSTA1 (G) ja juotos alaosaan.
  2. Taivuta alhaalta RED1: n johto niin, että se koskettaa SILVER8: n kuparityynyä ja leikkaa.
  3. Pohjassa leikkausjohto BLACK1 -juotteen yläpuolelta.
  4. Aseta yläosassa oleva vihreä LED PUNAISIIN (+) ja MUSTAAN (G) ja juotos alaosaan.
  5. Taivuta RED2: n johto alhaalta niin, että se koskettaa HOPEA9: n kuparityynyä ja leikkaa.
  6. Pohjassa leikkausjohto BLACK2 -juotteen yläpuolelta.
  7. Aseta ylhäällä punainen LED -valo PUNAISIIN (+) ja MUSTAA3 (G) ja juotos alaosaan.
  8. Taivuta alhaalta RED3: n johto niin, että se koskettaa SILVER10: n kuparityynyä ja leikkaa.
  9. Pohjassa leikkausjohto BLACK3 -juotteen yläpuolelta.
  10. Aseta yläosassa oleva 1K-vastus läpireikiin SILVER1 ja SILVER4.
  11. Jäljitä, leikkaa ja juota pohjassa SILVER1: stä MUSTAAN1.
  12. Aseta yläosassa oleva 1K-vastus läpireikiin SILVER2 ja SILVER4.
  13. Jäljitä, leikkaa ja juota pohjassa SILVER2: sta BLACK2: een.
  14. Aseta yläosassa oleva 1K-vastus läpireikiin SILVER3 ja SILVER4.
  15. Jäljitä, leikkaa ja juota pohjassa SILVER3: sta BLACK3: een.
  16. Pohjassa juotetaan SILVER4 -johdot ja leikataan noin 5 mm: n pituudelta.
  17. Pohjassa juotetaan musta lanka SILVER4: lle.
  18. Juottaa pohjassa valkoinen lanka SILVER5: een varmistaen jatkuvuuden johtavan PUNAISESTA 1.
  19. Juotos alareunassa keltainen lanka SILVER6: een varmistaen jatkuvuuden johtavan RED2: sta.
  20. Pohjassa juotetaan oranssi lanka SILVER7: een varmistaen jatkuvuuden johtavan RED3: sta.

Vaihe 4: Päävirtapiirin kokoaminen

Pääpiirin kokoaminen
Pääpiirin kokoaminen
Pääpiirin kokoaminen
Pääpiirin kokoaminen
Pääpiirin kokoaminen
Pääpiirin kokoaminen

Kokoonpano:

  1. Aseta etuosaan osat ATTINY85 (1), 3P 90deg urospäät (2) (3), 3P urospäät (4) (5) ja juota pois takaa.
  2. Jäljitä takana oleva keltainen lanka KELTAISESTA 1 KELTAISEKSI2 ja juota.
  3. Jäljitä takana oleva oranssi lanka ORANGE1: stä ORANGE2: een ja juota.
  4. Jäljitä takana oleva sininen johto BLUE1 - BLUE2 ja juotos.
  5. Jäljitä takana oleva vihreä johto GREEN1: stä GREEN2: een ja juota.
  6. Jäljitä takana valkoinen lanka VALKOISESTA VALKOISEKSI2 ja juota.
  7. Jäljitä takana musta johto BLACK1: stä BLACK2: een ja juotos.
  8. Jäljitä takana musta johto BLACK3: sta BLACK4: ään ja juotos.
  9. Jäljitä takana oleva punainen johto RED1 - RED2 ja juotos.
  10. Jäljellä on jäljellä paljas lanka RED3: sta RED4: een ja juotos.
  11. Jäljellä on jäljellä paljas lanka HOPEA1 - HOPEA2 ja juote.
  12. Lisää hyppyjohdin 5V- tai 3V3 -linjalle.

Jos käytät yllä olevia ilmaisimia (katso pinout -kaavio):

  1. Takaosassa juota valkoinen johto PB1: een.
  2. Takaosassa juotetaan keltainen johto PB3: een.
  3. Takaosassa juotetaan oranssi johto PB4: ään.
  4. Takaosassa juota musta johto GND: hen.

Vaihe 5: Testaus

Testaus
Testaus
Testaus
Testaus
Testaus
Testaus
Testaus
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:

  1. Kytke UNO: n 5,0 V BRICKin VCC: hen.
  2. Yhdistä GND UNO: lla GND on BRICK.
  3. Liitä A5 UNO: ssa SCL on BRICK.
  4. Liitä UNO: n A4 -levy BRICKin SDA -liittimeen.
  5. Liitä 4K7-vetovastus SDA: sta VCC: hen.
  6. Liitä 4K7-vetovastus SCL: stä VCC: hen.

Testin suorittaminen

  1. Yhdistä UNO -laite Dev -tietokoneeseen USB: n avulla.
  2. Lähetä koodi UNO: hon.
  3. Avaa Arduino -konsoli.
  4. Valitse 9600 baudia (käynnistä UNO uudelleen ja avaa konsoli tarvittaessa uudelleen).
  5. Orjan osoite tulostetaan konsoliin.
  6. Kun kirjoitat lähetysruutuun 2 1 (eli 16 2 1), niin Vastaanoton merkkivalo syttyy.
  7. 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

Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
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.

Suositeltava: