Tartalomjegyzék:

IOT123 - I2C 2CH RELAY BRICK: 5 lépés (képekkel)
IOT123 - I2C 2CH RELAY BRICK: 5 lépés (képekkel)

Videó: IOT123 - I2C 2CH RELAY BRICK: 5 lépés (képekkel)

Videó: IOT123 - I2C 2CH RELAY BRICK: 5 lépés (képekkel)
Videó: IOT123 - ICOS10: STRUCTURE 2024, Június
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

Az IOT123 BRICKS DIY moduláris egységek, amelyeket más IOT123 BRICKS -sel lehet összetörni, hogy funkcionalitást adjunk egy csomóponthoz vagy hordhatóhoz. Ezek alapja a hüvelyk négyzet alakú, kétoldalas protoboards, amelyek átmenő lyukakkal vannak összekötve.

Számos ilyen TÉGLY várhatóan több csomóponton (Master MCU -k - ESP8266 vagy ATTINY84) lesz egy webhelyen. Az MCU -nak nincs szüksége előzetes ismeretekre az érzékelők céljáról vagy a szoftver igényeiről. Keresi az I2C csomópontokat, majd minden slave -től tulajdonságkiírást (érzékelőadatokat) kér. Ezek a BRICK -ek 5,0 V -ot, 3,3 V -ot és egy másik személyre szabható AUX -vezetéket szolgáltatnak.

Ez az I2C 2CH RELAY BRICK kiterjeszti az I2C KY019 BRICK funkcióit, és két olvasási/írási tulajdonsággal rendelkezik:

2CH RELÉK [0] (igaz/hamis)

2CH RELÉK [1] (igaz/hamis)

Az ATTINY85 melletti átmenő lyukakat kihasználatlanul hagytuk, hogy lehetővé tegyük a pogo tűs programozást, miközben a DIP8 forrasztva van a NYÁK-hoz. Egy további absztrakció, a BRICKS -ek kis hengerekbe csomagolása, amelyek D1M WIFI BLOCK hubhoz csatlakoznak, és az értékeket egy MQTT szerverre szivattyúzzák.

Lépés: Anyagok és eszközök

Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök
Anyagok és eszközök

Van egy teljes Bill of Material and Sourcing lista.

  1. 2 csatornás relé (1)
  2. ATTINY85 20PU (1)
  3. 1 "kétoldalas protoboard (1)
  4. Férfi fejléc 90º (3P, 3P)
  5. Férfi fejléc (2P, 2P)
  6. Jumper shunt (1)
  7. Csatlakozó vezeték (~ 7)
  8. Forrasztás és vas (1)

2. lépés: Készítse elő az ATTINY85 -öt

Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -öt

MEGJEGYZÉS: Ha Crouton integrációt kíván használni, kérjük, használja a könyvtárat innen, és használja a telepített "attiny_2ch_relay" példát.

AttinyCore szükséges a Boards Manager -től. Írjon rendszerbetöltőt "EEPROM Retained", "8mHZ Internal" (az összes konfiguráció fent látható).

A kódtár itt található.

A könyvtár ZIP -címe itt található.

Utasítások a "ZIP könyvtár importálásához" itt.

A könyvtár telepítése után megnyithatja az "attiny_2ch_relay" példát.

A firmware ATTINY85-re való feltöltéséhez további részleteket találhat ezekben az utasításokban:

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

A legjobb, ha a folytatás előtt kipróbálja a kenyérsávot.

Ha rendelkezik ASSIMILATE SENSORS -szal, győződjön meg arról, hogy a slave -cím eltérő az SENSOR/MCU Host kombinációban, azaz minden relé -szereplő azonos címmel rendelkezhet, amíg csak egy relé -szereplő van egy MCU -n/csomóponton.

3. lépés: Szerelje össze az áramkört

Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört
Szerelje össze az áramkört
  1. Az elülső oldalon helyezze be az ATTINY85 (1), a 3P 90 fokos hüvelyes fejrészeket (2) (3), a 3P hüvelyes fejrészeket (4) (5) és a forrasztást a hátlapra.
  2. A hátsó részen nyomon kövessen egy sárga vezetéket a SÁRGA1 -től a SÁRGA2 -ig, és forrasztja.
  3. A hátoldalon kövessen egy narancssárga vezetéket az ORANGE1 -től az ORANGE2 -ig és forrasztja.
  4. A hátulján nyomon kell követni egy kék vezetéket a BLUE1 -től a BLUE2 -ig, és forrasztani.
  5. A hátoldalon nyomjon egy zöld vezetéket a ZÖLD1 -től a ZÖLD2 -ig és forrasztja.
  6. A hátoldalon nyomjon egy fekete vezetéket a BLACK1 -től a BLACK2 -ig, és forrasztja.
  7. A hátoldalon nyomjon egy fekete vezetéket a BLACK3 -tól a BLACK4 -ig, és forrasztja.
  8. A hátoldalon nyomjon egy piros vezetéket a RED1 és a RED2 között, és forrasztjon.
  9. A hátoldalon nyomon kövesse a csupasz vezetéket a RED3 -tól a RED4 -ig, és forrasztja.
  10. A hátoldalon kövessen egy csupasz vezetéket az SILVER1 -től az SILVER2 -ig és a forrasztást.
  11. Adjon hozzá egy jumpert az 5V vagy 3V3 vezetékhez.

A relét most közvetlenül a csapjain keresztül a NYÁK -ra vagy vezetékeken keresztül lehet csatlakoztatni a tűszerződésben szereplő pontokhoz.

4. lépés: Tesztelés

Tesztelés
Tesztelés
Tesztelés
Tesztelés
Tesztelés
Tesztelés
Tesztelés
Tesztelés

Számos ilyen TÉGLY várhatóan több csomóponton (MCU - ESP8266 vagy ATTINY84) lesz egy környezetben. Ez egy egység teszt: I2C parancsokat küld az UNO -tól az ATTINY -nak, amely megnyitja vagy bezárja a reléket.

Korábban építettünk egy I2C SHIELD -t az Arduino számára.

Ha inkább panírozni szeretne:

  1. Csatlakoztassa az 5,0 V -ot UNO -n a BRICK VCC -jéhez.
  2. Csatlakoztassa a GND -t az UNO -n a GND -hez a BRICK -en.
  3. Csatlakoztassa az UN5 A5 -öt a BRICK SCL -hez.
  4. Csatlakoztassa az UNO A4 -et a BRICK SDA -hoz.
  5. Csatlakoztasson egy 4K7 felhúzó ellenállást az SDA-ból a VCC-be.
  6. Csatlakoztasson egy 4K7 felhúzó ellenállást SCL-ről VCC-re.

A teszt futtatása

  1. Csatlakoztassa UNO -ját a Dev PC -hez USB -n keresztül.
  2. Töltse fel a kódot az UNO -ba.
  3. Nyissa meg az Arduino konzolt.
  4. Válassza a 9600 baud lehetőséget (indítsa újra az UNO -t, és szükség esetén nyissa meg újra a konzolt).
  5. A slave címe kinyomtatódik a konzolra.
  6. Amikor beírja a küldési mezőbe 2 0: 1 (tehát 15 2 0: 1), és a CH1 relé bekapcsol.

  7. Amikor beírja a küldési mezőbe 2 0: 0 (tehát 15 2 0: 0), és a CH1 relé kikapcsol.
  8. Amikor beírja a küldési mezőbe 2 1: 1 (tehát 15 2 1: 1), és a CH2 relé bekapcsol.
  9. Amikor beírja a küldési mezőbe 2 1: 0 (tehát 15 2 0: 0), és a CH2 relé kikapcsol.

I2C BRICK adhoc parancsok rabszolgákhoz UNO mester

#befoglalni
const bájt _száma = 32;
char _fogadott_száma [_száma_száma]; // tömb a fogadott adatok tárolására
logikai _has_new_data = hamis;
voidsetup () {
Sorozat.kezdet (9600);
Sorozat.println ();
Serial.println ("ASSIMILATE IOT ACTOR/SENSOR EEPROM EDITOR");
Serial.println ("biztosítsa az újsor kiválasztását a konzol ablakában");
Sorozat.println ();
Serial.println ("1. CÍM METADATAVÉTEL MEGFIGYELÉSE N/A (M2M -NEK)");
Serial.println ("2. CÍM ACTOR COMMAND");
Sorozat.println ();
Serial.println ("CÍMEK A BUSZON:");
scan_i2c_addresses ();
Sorozat.println ();
Serial.println ("");
}
voidscan_i2c_addresses () {
int eszköz_szám = 0;
(bájtcím = 8; cím <127; cím ++)
{
Wire.beginTransmission (cím);
const bájt hiba = Wire.endTransmission ();
ha (hiba == 0)
{
Serial.println (cím);
}
}
}
voidloop () {
recv_with_end_marker ();
send_to_i2c ();
}
voidrecv_with_end_marker () {
statikus bájt ndx = 0;
char end_marker = '\ n';
char rc;
while (Serial.available ()> 0 && _has_new_data == false) {
rc = Sorozat.olvasás ();
if (rc! = end_marker) {
_fogadott_táblák [ndx] = rc;
ndx ++;
if (ndx> = _száma_száma) {
ndx = _száma - 1;
}
}
más {
_received_chars [ndx] = '\ 0'; // fejezze be a karakterláncot
ndx = 0;
_has_new_data = igaz;
}
}
}
voidsend_to_i2c () {
char param_buf [16];
const Karakterlánc kapott_string = Karakterlánc (_fogadott_karakterek);
ha (_van_új_adata == igaz) {
int idx1 = fogadott_string.indexOf ('');
Karakterlánc cím = kapott_string.substring (0, idx1);
int address_int = address.toInt ();
if (cím_int <8 || cím_int> 127) {
Serial.println ("ÉRVÉNYTLEN CÍM BEMENET:");
Serial.println (cím);
Visszatérés;
}
int idx2 = fogadott_string.indexOf ('', idx1+1);
Karakterlánc kód;
ha (idx2 == -1) {
kód = kapott_string.substring (idx1+1);
}más{
kód = kapott_string.substring (idx1+1, idx2+1);
}
int code_int = code.toInt ();
if (code_int <0 || code_int> 5) {
Serial.println ("ÉRVÉNYTELEN KÓD BEMENET:");
Serial.println (kód);
Visszatérés;
}
bool has_parameter = idx2> -1;
String paraméter;
if (has_parameter) {
paraméter = kapott_string.substring (idx2 + 1, idx2 + 17); // max. 16 karakter
if (paraméter.length () <1) {
Serial.println ("PARTAMETER MIN. LENGTH 1");
_has_new_data = hamis;
Visszatérés;
}
}más{
if (code_int> 1) {
Serial.println ("PARAMÉTER SZÜKSÉGES!");
_has_new_data = hamis;
Visszatérés;
}
}
Sorozat.println ();
Serial.print ("input orig =");
Soros.println (fogadott_string);
Serial.print ("address =");
Serial.println (cím);
Serial.print ("code =");
Serial.println (kód);
Serial.print ("paraméter =");
Serial.println (paraméter);
// KÜLDÉS I2C
Wire.beginTransmission (cím_int);
Wire.write (code_int);
if (has_parameter) {
paraméter.trim ();
strcpy (param_buf, paraméter.c_str ());
Wire.write (param_buf);
}
Wire.endTransmission ();
Sorozat.println ();
Serial.println ("ELKÜLDETT I2C!");
Sorozat.println ();
Serial.println ("");
_has_new_data = hamis;
}
}

Tekintse meg a rawuno_i2c_command_input.ino webhelyet, amelyet a GitHub ❤ üzemeltet

5. lépés: Következő lépések

Következő lépések
Következő lépések
Következő lépések
Következő lépések
Következő lépések
Következő lépések
Következő lépések
Következő lépések

Ezt a téglát használó ASSIMILATE ACTOR: 2CH RELAY nyomon követés automatikus konfigurációt biztosít a Crouton számára az ATTINY85-ben már telepített metaadatokon keresztül. A Croutonnak küldött JSON csomag az ICOS10 legújabb firmware -jén keresztül kerül elküldésre. A Proof-of-concept elvégezhető egy közönséges ESP8266-on, ha a konstrukció egyelőre túl sok.

A tesztelés során használt UNO vázlat funkciója egy új slave -cím mentése az EEPROM -ba az ATTINY85 -en, ha ütközik a cél I2C buszon. Néhány vázlat hozzáadásra került, de különböző módokon lehet vezetni a downstream áramkört, attól függően, hogy mit szeretne elérni, ezért ezt meghagyom nektek:)

Ajánlott: