Sisukord:

IOT123 - I2C 2CH RELAY BRICK: 5 sammu (piltidega)
IOT123 - I2C 2CH RELAY BRICK: 5 sammu (piltidega)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 sammu (piltidega)

Video: IOT123 - I2C 2CH RELAY BRICK: 5 sammu (piltidega)
Video: IOT123 - ICOS10: STRUCTURE 2024, Juuni
Anonim
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK
IOT123 - I2C 2CH RELAY BRICK

IOT123 BRICKS on isetehtud moodulüksused, mida saab teiste IOT123 BRICKS -ga kokku segada, et lisada sõlmele või kantavale funktsionaalsust. Nende aluseks on tolli ruudukujulised kahepoolsed protoplaadid, mis on omavahel ühendatud aukudega.

Arvatakse, et paljud neist tellistest asuvad saidil mitmes sõlmes (peamised MCU -d - ESP8266 või ATTINY84). MCU ei vaja eelteadmisi andurite otstarbest ega tarkvara vajadustest. See otsib I2C sõlme ja taotleb seejärel igalt orjalt atribuudi väljavõtet (anduri andmed). Need tellised tarnivad 5,0 V, 3,3 V ja teist AUX -liini, mida saab kohandada.

See I2C 2CH RELAY BRICK laiendab I2C KY019 BRICK funktsioone ja sellel on kaks lugemis-/kirjutamisomadust:

2CH RELEED [0] (tõene/vale)

2CH RELEED [1] (tõene/vale)

ATTINY85-ga külgnevad augud on jäetud kasutamata, et võimaldada pogo-tihvtidega programmeerimist, kui DIP8 on trükkplaadile joodetud. Edasine väljatöötamine, BRICKIDE pakkimine väikestesse silindritesse, mis ühendatakse D1M WIFI BLOCK jaoturiga, pumpades väärtused MQTT serverisse.

Samm: materjalid ja tööriistad

Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad
Materjalid ja tööriistad

Materjalide ja allikate nimekiri on täielik.

  1. 2 kanaliga relee (1)
  2. ATTINY85 20PU (1)
  3. 1 "kahepoolne protoboard (1)
  4. Isane päis 90º (3P, 3P)
  5. Isane päis (2P, 2P)
  6. Jumper Shunt (1)
  7. Ühendusjuhe (~ 7)
  8. Jootmine ja triikraud (1)

Samm: valmistage ette ATTINY85

Valmistage ette ATTINY85
Valmistage ette ATTINY85
Valmistage ette ATTINY85
Valmistage ette ATTINY85
Valmistage ette ATTINY85
Valmistage ette ATTINY85

MÄRKUS. Kui soovite Croutoni integreerida, kasutage siit raamatukogu ja kasutage installitud näidet "attiny_2ch_relay".

Vajalik on juhatuse liige AttinyCore. Põletage alglaadur "EEPROM Retained", "8mHZ Internal" (kõik konfiguratsioonid on näidatud ülal).

Koodide hoidla leiate siit.

Raamatukogu ZIP -i leiate siit.

Siit leiate juhised "ZIP -kogu importimiseks".

Kui kogu on installitud, saate avada näite "attiny_2ch_relay".

Püsivara ATTINY85-sse üleslaadimiseks leiate lisateavet nendest juhenditest:

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

Enne jätkamist on parem testida leivalaua kaudu.

Kui teil on olemasolevad ASSIMILATE SENSORid, siis veenduge, et SENSOR/MCU hostikombinatsiooni alam -aadress on erinev, st kõigil Relay -näitlejatel võib olla sama aadress, kui teil on MCU/sõlmes ainult üks Relay -näitleja.

Samm: pange vooluring kokku

Pange vooluring kokku
Pange vooluring kokku
Pange vooluring kokku
Pange vooluring kokku
Pange vooluring kokku
Pange vooluring kokku
  1. Esipaneelil sisestage komponendid ATTINY85 (1), 3P 90 kraadi isased päised (2) (3), 3P isased päised (4) (5) ja jootke tagaküljele.
  2. Tagaküljel jälgige kollast traati YELLOW1 kuni YELLOW2 ja jootke.
  3. Tagaküljel jälgige oranži juhet ORANGE1 kuni ORANGE2 ja jootke.
  4. Tagaküljel jälgige sinist juhet BLUE1 kuni BLUE2 ja jootke.
  5. Tagaküljel jälgige rohelist traati GREEN1 kuni GREEN2 ja jootke.
  6. Tagaküljel jälgige musta juhet BLACK1 kuni BLACK2 ja jootet.
  7. Tagaküljel jälgige musta juhet BLACK3 kuni BLACK4 ja jootet.
  8. Tagaküljel jälgige punast traati RED1 kuni RED2 ja jootke.
  9. Tagaküljel jälgige paljast traati RED3 -lt RED4 -le ja jootke.
  10. Tagaküljel jälgige paljast traati SILVER1 kuni SILVER2 ja jootet.
  11. Lisage 5V või 3V3 liinile hüppaja.

Relee saab nüüd ühendada otse oma tihvtide kaudu trükkplaadiga või juhtmete kaudu tihvtide lepingus näidatud punktidega.

4. samm: testimine

Testimine
Testimine
Testimine
Testimine
Testimine
Testimine
Testimine
Testimine

Arvatakse, et paljud neist tellistest asuvad keskkonnas mitmes sõlmes (MCU -d - ESP8266 või ATTINY84). See on üksuse test: saadab UNO -lt I2C käsud ATTINY -le, mis avab või sulgeb releed.

Oleme varem Arduino jaoks ehitanud I2C SHIELDi.

Kui soovite selle asemel leiba panna, toimige järgmiselt

  1. Ühendage UNO 5,0 V BRICKi VCC -ga.
  2. Ühendage UNO GND ja BRICK GND.
  3. Ühendage A5 UNO -l BRICK -i SCL -iga.
  4. Ühendage A4 UNO -l ja BRICK SDA.
  5. Ühendage tõmbetakistus 4K7 SDA-st VCC-ga.
  6. Ühendage tõmbetakistus 4K7 SCL-st VCC-ga.

Testi läbiviimine

  1. Ühendage UNO oma USB -seadmega arvutiga.
  2. Laadige kood UNO -sse.
  3. Avage Arduino konsool.
  4. Valige 9600 baud (taaskäivitage UNO ja vajadusel avage konsool uuesti).
  5. Alam aadress trükitakse konsoolile.
  6. Kui sisestate saatekasti 2 0: 1 (seega 15 2 0: 1) ja CH1 relee lülitub sisse.

  7. Kui sisestate saatekasti 2 0: 0 (seega 15 2 0: 0) ja CH1 relee lülitub välja.
  8. Kui sisestate saatekasti 2 1: 1 (seega 15 2 1: 1) ja CH2 relee lülitub sisse.
  9. Kui sisestate saatekasti 2 1: 0 (seega 15 2 0: 0) ja CH2 relee lülitub välja.

I2C BRICK adhoc käsud orjade jaoks UNO isandalt

#kaasake
const bait _num_chars = 32;
süsi _saanud_süklid [_arv_süsi]; // massiiv vastuvõetud andmete salvestamiseks
boolean _has_new_data = vale;
voidsetup () {
Seriaalne algus (9600);
Serial.println ();
Serial.
Serial.println ("veenduge, et konsooliaknas oleks valitud uus rida");
Serial.println ();
Serial.println ("AADRESS 1 KINNITA METADATAHETUSE N/A (M2M jaoks)");
Serial.println ("AADRESS 2 ACTOR COMMAND");
Serial.println ();
Serial.println ("AADRESSID BUSSIL:");
scan_i2c_addresses ();
Serial.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int seadme_arv = 0;
jaoks (bait -aadress = 8; aadress <127; aadress ++)
{
Wire.beginTransmission (aadress);
const baidi viga = Wire.endTransmission ();
kui (viga == 0)
{
Serial.println (aadress);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
staatiline bait ndx = 0;
char end_marker = '\ n';
char rc;
samas (Serial.available ()> 0 && _has_new_data == false) {
rc = Serial.read ();
if (rc! = end_marker) {
_laekunud_karbid [ndx] = rc;
ndx ++;
kui (ndx> = _numbrite arv) {
ndx = _arvude_arv - 1;
}
}
muu {
_received_chars [ndx] = '\ 0'; // lõpetada string
ndx = 0;
_has_new_data = tõsi;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const String vastuvõetud_string = String (_saadatud_märgid);
if (_ has_new_data == true) {
int idx1 = vastuvõetud_string.indexOf ('');
Stringi aadress = vastuvõetud_string.alamstring (0, idx1);
int address_int = aadress.toInt ();
kui (aadress_int <8 || aadress_int> 127) {
Serial.println ("INVALID ADDRESS INPUT:");
Serial.println (aadress);
tagasipöördumine;
}
int idx2 = saanud_string.indexOf ('', idx1+1);
String kood;
kui (idx2 == -1) {
kood = vastuvõetud_string.alamstring (idx1+1);
} muud {
kood = vastuvõetud_string.alamstring (idx1+1, idx2+1);
}
int kood_int = kood.toInt ();
kui (kood_int <0 || kood_int> 5) {
Serial.println ("VÄÄRATUD KOODISISEND:");
Serial.println (kood);
tagasipöördumine;
}
bool has_parameter = idx2> -1;
String parameeter;
if (has_parameter) {
parameeter = vastuvõetud_string.alamstring (idx2 + 1, idx2 + 17); // max 16 märki
kui (parameeter.pikkus () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = vale;
tagasipöördumine;
}
} muud {
kui (kood_int> 1) {
Serial.println ("PARAMETER ON VAJALIK!");
_has_new_data = vale;
tagasipöördumine;
}
}
Serial.println ();
Serial.print ("sisend orig =");
Seeria.println (saadud_string);
Serial.print ("aadress =");
Serial.println (aadress);
Serial.print ("kood =");
Serial.println (kood);
Serial.print ("parameeter =");
Serial.println (parameeter);
// SAADA I2C kaudu
Wire.beginTransmission (aadress_int);
Wire.write (kood_int);
if (has_parameter) {
parameeter.trim ();
strcpy (param_buf, parameeter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Serial.println ();
Serial.println ("SAATIS I2C VIA!");
Serial.println ();
Serial.println ("");
_has_new_data = vale;
}
}

vaata rawuno_i2c_command_input.ino, mille hostiks on GitHub ❤

Samm: järgmised sammud

Järgmised sammud
Järgmised sammud
Järgmised sammud
Järgmised sammud
Järgmised sammud
Järgmised sammud
Järgmised sammud
Järgmised sammud

Järelkontroll ASSIMILATE ACTOR: 2CH RELAY, mis kasutab seda tellist, on Croutoni jaoks automaatne konfiguratsioon, kasutades siin juba ATTINY85-sse installitud metaandmeid. Croutonile saadetud JSON -pakett saadetakse ICOS10 uusima püsivara kaudu. Saate teha tõestuskontseptsiooni tavalise ESP8266-ga, kui ehitamine on praegu liiga palju.

Testimisel kasutatud UNO visandil on funktsioon uue alam -aadressi salvestamiseks ATTINY85 EEPROM -i, kui teie sihtmärgi I2C siinil on kokkupõrge. Lisatud on mõned skeemid, kuid olenevalt sellest, mida soovite saavutada, on allavoolu ahela juhtimiseks erinevaid viise, nii et jätan selle teile:)

Soovitan: