Kazalo:

IOT123 - 2 -kanalni relejni zidak: 5 korakov (s slikami)
IOT123 - 2 -kanalni relejni zidak: 5 korakov (s slikami)

Video: IOT123 - 2 -kanalni relejni zidak: 5 korakov (s slikami)

Video: IOT123 - 2 -kanalni relejni zidak: 5 korakov (s slikami)
Video: WIFI МОДУЛЬ ДИСТАНЦИОННОГО УПРАВЛЕНИЯ на ESP8266 от ICStation.com 2024, November
Anonim
IOT123 - I2C 2CH RELEJNA OGLEDNA
IOT123 - I2C 2CH RELEJNA OGLEDNA
IOT123 - 2CH RELEJNA OGLEDNA I2C
IOT123 - 2CH RELEJNA OGLEDNA I2C
IOT123 - 2CH RELEJNA OGLEDNA I2C
IOT123 - 2CH RELEJNA OGLEDNA I2C
IOT123 - I2C 2CH RELEJNA OGLEDNA
IOT123 - I2C 2CH RELEJNA OGLEDNA

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 2 -kanalni relejni zidak I2C razširja funkcionalnost opeke I2C KY019 in ima dve lastnosti branja/pisanja:

2CH RELAYS [0] (true/false)

2CH RELEJI [1] (res/napačno)

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

Obstaja celoten seznam gradiva in virov.

  1. 2 -kanalni rele (1)
  2. ATTINY85 20PU (1)
  3. 1 "dvostranska protoboard (1)
  4. Moški vzglavnik 90º (3P, 3P)
  5. Moška glava (2P, 2P)
  6. Skakalec (1)
  7. Priključna žica (~ 7)
  8. Spajkanje in železo (1)

2. korak: 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_2ch_relay".

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

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

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

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 gostitelja SENSOR/MCU, kar pomeni, da imajo lahko vsi relejni igralci isti naslov, če imate na MCU/vozlišču le enega relejnega igralca.

3. korak: Sestavite vezje

Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
  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 črno žico od BLACK1 do BLACK2 in spajkajte.
  7. Na zadnji strani poiščite črno žico od BLACK3 do BLACK4 in spajkajte.
  8. Na zadnji strani poiščite rdečo žico od RED1 do RED2 in spajkajte.
  9. Na zadnji strani poiščite golo žico od RED3 do RED4 in spajkajte.
  10. Na zadnji strani poiščite golo žico od SREBRNEGA1 do SREBRNEGA2 in spajkajte.
  11. Dodajte mostiček na linijo 5V ali 3V3.

Rele je zdaj mogoče priključiti neposredno preko svojih zatičev na tiskano vezje ali preko žic, na točke, prikazane v pogodbi o zatičih.

4. 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 odpre ali zapre releje.

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. Kdaj vnesite v polje za pošiljanje 2 0: 1 (torej 15 2 0: 1) in rele CH1 se vklopi.

  7. Kdaj vnesite v polje za pošiljanje 2 0: 0 (torej 15 2 0: 0) in rele CH1 se izklopi.
  8. Kdaj vnesite v polje za pošiljanje 2 1: 1 (torej 15 2 1: 1) in rele CH2 se vklopi.
  9. Kdaj vnesite v polje za pošiljanje 2 1: 0 (torej 15 2 0: 0) in rele CH2 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

5. korak: Naslednji koraki

Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki
Naslednji koraki

Nadaljnji podporni akter: 2-kanalni rele, 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. Nekaj shem je bilo dodanih, vendar obstajajo različni načini za ožičenje spodnjega tokokroga, odvisno od tega, kaj želite doseči, zato bom to pustil za vas:)

Priporočena: