Sisällysluettelo:

IOT123 - I2C KY019 BRICK: 5 vaihetta
IOT123 - I2C KY019 BRICK: 5 vaihetta

Video: IOT123 - I2C KY019 BRICK: 5 vaihetta

Video: IOT123 - I2C KY019 BRICK: 5 vaihetta
Video: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, Marraskuu
Anonim
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 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 KY019 BRICK on ensimmäinen TOIMIJOISTA, ja sillä on yksi luku/kirjoitus -ominaisuus:

Vaihda (tosi/epätosi)

Keyes -tyyppiset anturikivet otetaan ensin, koska ne sisältävät vitamiineja (lisäkomponentteja tarvitaan) ja ovat suhteellisen kevyitä (ostin 37 hintaan 10AUD). Muut levyt/piirit esitetään I2C BRICKSissä.

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

Aineiston ja hankintojen luettelo on täynnä.

  1. KY-019 Rele (1)
  2. ATTINY85 20PU (1)
  3. 1 "kaksipuolinen protoboard (1)
  4. Uros Otsikko 90º (3P, 3P)
  5. Liitäntäjohto (~ 7)
  6. Juotos ja rauta (1)

Vaihe 2: Valmista ATTINY85

Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85
Valmista ATTINY85

HUOMAUTUS: Jos aiot käyttää Crouton -integraatiota, käytä tästä saatavaa kirjastoa ja käytä asennettua esimerkkiä "attiny_ky019".

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_ky019".

Jos haluat ladata laiteohjelmiston ATTINY85 -laitteeseen, saat lisätietoja näistä ohjeista:

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/How-to-Program-AT…

www.instructables.com/id/How-to-program-th…

www.instructables.com/id/Programming-the-A…

www.instructables.com/id/Programming-an-At…

Paras testata leipälevyn kautta ennen kuin jatkat.

Jos sinulla on olemassa ASISIMILAATTI -ANTURIT, varmista, että orjaosoite on eri SENSOR/MCU -isäntäyhdistelmässä eli kaikilla välittäjillä voi olla sama osoite, kunhan sinulla on vain yksi välittäjä MCU: ssa/solmussa.

Vaihe 3: Kokoa piiri

Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
Kokoa piiri
  1. Aseta etuosaan osat ATTINY85 (1), 3P 90deg urospäät (2) (3) ja juota pois takaa.
  2. Jäljitä takana oleva keltainen lanka KELTAISESTA 1 KELTAISEKSI2 ja juota.
  3. Jäljitä takana oleva sininen johto BLUE1 - BLUE2 ja juotos.
  4. Jäljitä takana oleva vihreä johto GREEN1: stä GREEN2: een ja juota.
  5. Jäljitä takana musta johto BLACK1: stä BLACK2: een ja juotos.
  6. Jäljitä takana musta johto BLACK3: sta BLACK4: ään ja juotos.
  7. Jäljitä takana oleva punainen johto RED1 - RED2 ja juotos.
  8. Jäljitä takana oleva punainen johto RED3 - RED4 ja juotos.

Rele voidaan nyt liittää suoraan nastojensa kautta piirilevyyn tai johtojen kautta tappisopimuksessa esitettyihin kohtiin.

Vaihe 4: 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: sta ATTINYlle, joka avaa tai sulkee releen.

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. Valitse 9600 baudia (käynnistä UNO uudelleen ja avaa konsoli tarvittaessa uudelleen).
  4. Orjan osoite tulostetaan konsolille.
  5. Kun kirjoitat lähetysruutuun 2 1 (eli 12 2 1), rele kytkeytyy päälle.
  6. Kun kirjoitat lähetysruutuun 2 0 (eli 12 2 0), rele 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 5: Seuraavat vaiheet

Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet
Seuraavat vaiheet

Seuraavassa ASSIMILATE ACTOR: KY019: ssä, joka käyttää tätä tiiliä, on Croutonin automaattinen määritys metatietojen kautta, jotka on jo asennettu ATTINY85: een. 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.

Muutamia kaavioita on lisätty, mutta on olemassa erilaisia tapoja kytkeä alavirtapiiri riippuen siitä, mitä haluat saavuttaa, joten jätän sen sinulle:)

Suositeltava: