Sisällysluettelo:

IOT123 - I2C 2CH RELE BRICK: 5 vaihetta (kuvilla)
IOT123 - I2C 2CH RELE BRICK: 5 vaihetta (kuvilla)

Video: IOT123 - I2C 2CH RELE BRICK: 5 vaihetta (kuvilla)

Video: IOT123 - I2C 2CH RELE BRICK: 5 vaihetta (kuvilla)
Video: IOT123 - ICOS10: STRUCTURE 2024, Kesäkuu
Anonim
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE BRICK
IOT123 - I2C 2CH RELE 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 2CH RELAY BRICK laajentaa I2C KY019 BRICK: n toimintoja ja sillä on kaksi luku-/kirjoitusominaisuutta:

2CH RELEET [0] (tosi/epätosi)

2CH RELEET [1] (tosi/epätosi)

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. 2 -kanavainen rele (1)
  2. ATTINY85 20PU (1)
  3. 1 "kaksipuolinen protoboard (1)
  4. Uros Otsikko 90º (3P, 3P)
  5. Urosotsikko (2P, 2P)
  6. Jumper Shunt (1)
  7. Liitäntäjohto (~ 7)
  8. 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äältä saatavaa kirjastoa ja käytä asennettua esimerkkiä "attiny_2ch_relay".

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

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

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

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

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

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

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
  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 musta johto BLACK1: stä BLACK2: een ja juotos.
  7. Jäljitä takana musta johto BLACK3: sta BLACK4: ään ja juotos.
  8. Jäljitä takana oleva punainen johto RED1 - RED2 ja juotos.
  9. Jäljellä on jäljellä paljas lanka RED3: sta RED4: een ja juotos.
  10. Jäljellä on jäljellä paljas lanka HOPEA1 - HOPEA2 ja juote.
  11. Lisää hyppyjohdin 5V- tai 3V3 -linjalle.

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

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

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 0: 1 (siis 15 2 0: 1), CH1 -rele kytkeytyy päälle.

  7. Kun kirjoitat lähetysruutuun 2 0: 0 (siis 15 2 0: 0), CH1 -rele sammuu.
  8. Kun kirjoitat lähetysruutuun 2 1: 1 (siis 15 2 1: 1), CH2 -rele kytkeytyy päälle.
  9. Kun kirjoitat lähetysruutuun 2 1: 0 (siis 15 2 0: 0), CH2 -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

Seuranta-ASSIMILATE ACTOR: 2CH RELAY, joka käyttää tätä tiiliä, on automaattinen Crouton-määritys 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. Muutamia kaavioita on lisätty, mutta on olemassa erilaisia tapoja kytkeä alavirtapiiri riippuen siitä, mitä haluat saavuttaa, joten jätän sen sinulle:)

Suositeltava: