Kazalo:
- Korak: Materiali in orodja
- 2. korak: Pripravite ATTINY85
- 3. korak: Sestavite vezje
- 4. korak: Testiranje
- 5. korak: Naslednji koraki
Video: IOT123 - I2C KY019 ZIDA: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
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 opeka I2C KY019 je prvi izmed igralcev in ima eno lastnost branja/pisanja:
Preklopi (true/false)
Senzorske opeke tipa Keyes bodo najprej odvzete, saj so opremljene z vitamini (potrebne so dodatne komponente) in so relativno poceni (kupil sem 37 za 10 AUD). Druge plošče/vezja bodo predstavljene z I2C ZIDAMI.
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
Obstaja celoten seznam gradiva in virov.
- Rele KY-019 (1)
- ATTINY85 20PU (1)
- 1 "dvostranska protoboard (1)
- Moški vzglavnik 90º (3P, 3P)
- Priključna žica (~ 7)
- Spajkanje in železo (1)
2. korak: Pripravite ATTINY85
OPOMBA: Če nameravate imeti Croutonovo integracijo, uporabite knjižnico od tu in uporabite nameščen primer "attiny_ky019".
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_ky019".
Če želite naložiti vdelano programsko opremo v ATTINY85, lahko najdete več podrobnosti v teh navodilih:
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…
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
- Na sprednji strani vstavite komponente ATTINY85 (1), moške glave 3P 90 stopinj (2) (3) in spajkajte na zadnji strani.
- Na zadnji strani potegnite rumeno žico od RUMENE1 do RUMENE2 in spajkajte.
- Na zadnji strani poiščite modro žico od MODRE1 do MODRE2 in spajkajte.
- Na zadnji strani potegnite zeleno žico od ZELENE1 do ZELENE2 in spajkajte.
- Na zadnji strani poiščite črno žico od BLACK1 do BLACK2 in spajkajte.
- Na zadnji strani poiščite črno žico od BLACK3 do BLACK4 in spajkajte.
- Na zadnji strani poiščite rdečo žico od RED1 do RED2 in spajkajte.
- Na zadnji strani poiščite rdečo žico od RED3 do RED4 in spajkajte.
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
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 rele.
Pred tem smo za Arduino zgradili I2C SHIELD.
Če ga želite namesto tega narediti:
- Priključite 5.0V na UNO na VCC na BRICK.
- Povežite GND na UNO z GND na BRICK.
- Povežite A5 na UNO s SCL na BRICK.
- Povežite A4 na UNO s SDA na BRICK.
- Priključite vlečni upor 4K7 iz SDA na VCC.
- Priključite vlečni upor 4K7 iz SCL v VCC.
Izvajanje testa
- Povežite svoj UNO z računalnikom Dev prek USB -ja.
- Naložite kodo v UNO.
- Odprite konzolo Arduino, izberite 9600 baud (znova zaženite UNO in znova odprite konzolo, če je potrebno).
- Naslov podrejenega se natisne na konzolo.
- Kdaj vnesite v polje za pošiljanje 2 1 (torej 12 2 1) in rele se vklopi.
- Ko vnesite v polje za pošiljanje 2 0 (torej 12 2 0) in se rele 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
Nadaljnji podporni igralec: KY019, 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:
IOT123 - D1M BLOK - 2xAMUX sklop: 7 korakov (s slikami)
IOT123 - D1M BLOK - 2xAMUX Montaža: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in odlomke za priljubljene Wemos D1 Mini SOC/ščite/klone. Ena od težav s čipom ESP8266 je, da ima na voljo le en analogni IO pin. Ta navodila kažejo, kako sestaviti 2xA
IOT123 - D1M BLOK - RFTXRX Sklop: 8 korakov
IOT123 - D1M BLOK - Sklop RFTXRX: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in odlomke za priljubljene Wemos D1 Mini SOC/ščite/klone. RF oddajniki/sprejemniki omogočajo ESP8266 dostop do obstoječe domače/industrijske avtomatizacije. To ohišje zagotavlja odmike za 433/
IOT123 - D1M BLOK - GY521 Montaža: 8 korakov
IOT123 - D1M BLOK - GY521 Montaža: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in prekinitve za priljubljene Wemos D1 Mini SOC/ščite/klone. Ta blok D1M omogoča preprosto povezavo med Wemos D1 Mini in modulom GY-521 (nožice za naslov in prekinitev lahko priključite
IOT123 - D1M BLOK - ADXL345 Montaža: 8 korakov
IOT123 - D1M BLOK - ADXL345 Montaža: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in odlomke za priljubljene Wemos D1 Mini SOC/ščite/klonove. Ta blok D1M omogoča preprosto povezavo med Wemos D1 Mini in modulom pospeška ADXL345. Moja začetna motivacija za razvoj
IOT123 - POMOŽNI AKTOR: KY019: 4 koraki
IOT123 - POMOČNI DEJAVNIK: KY019: S krmilnim signalom 5V TIL, ki lahko nadzoruje signal DC / AC. Ta konstrukcija temelji na opeki I2C KY019. Če potrebujete 2 kanala, priporočam, da tega igralca zamenjate za 2CH RELAY BRICK. POMOČNI AKTORJI/SENZORJI so okoljski akterji/senzorji