Tartalomjegyzék:

IOT123 - I2C KY019 BRICK: 5 lépés
IOT123 - I2C KY019 BRICK: 5 lépés

Videó: IOT123 - I2C KY019 BRICK: 5 lépés

Videó: IOT123 - I2C KY019 BRICK: 5 lépés
Videó: Keyboard PCB | Serial output | Alphabet Numbers Signs 2024, Július
Anonim
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 BRICK
IOT123 - I2C KY019 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 KY019 BRICK az első SZÍNÉSZ, és egy olvasási/írási tulajdonsággal rendelkezik:

Váltás (igaz/hamis)

A Keyes típusú érzékelő téglákat először absztrahálják, mivel vitaminokat tartalmaznak (extra komponensek szükségesek), és viszonylag szuperek (37 -et vettem 10AUD -ért). Más kártyákat/áramköröket is bevezetnek az I2C BRICKS -be.

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. KY-019 relé (1)
  2. ATTINY85 20PU (1)
  3. 1 "kétoldalas protoboard (1)
  4. Férfi fejléc 90º (3P, 3P)
  5. Csatlakozó vezeték (~ 7)
  6. 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 az "attiny_ky019" telepített 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_ky019" példát.

A firmware ATTINY85 -re történő feltöltéséhez további részleteket találhat az alábbi utasításokban:

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…

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
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), és a hátoldalon forrasztja le az alkatrészeket.
  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átulján nyomon kell követni egy kék vezetéket a BLUE1 -től a BLUE2 -ig, és forrasztani.
  4. A hátoldalon nyomjon egy zöld vezetéket a ZÖLD1 -től a ZÖLD2 -ig és forrasztja.
  5. A hátoldalon nyomjon egy fekete vezetéket a BLACK1 -től a BLACK2 -ig, és forrasztja.
  6. A hátoldalon nyomjon egy fekete vezetéket a BLACK3 -tól a BLACK4 -ig, és forrasztja.
  7. A hátoldalon nyomjon egy piros vezetéket a RED1 és a RED2 között, és forrasztjon.
  8. A hátoldalon nyomon kövessen egy piros vezetéket a RED3 -tól a RED4 -ig, és forrasztja.

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

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ét.

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. 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).
  4. A slave címe kinyomtatódik a konzolra.
  5. Mikor írja be a küldési mezőbe 2 1 (tehát 12 2 1), és a relé bekapcsol.
  6. Amikor beírja a küldési mezőbe 2 0 (tehát 12 2 0), és a 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

A következő ASSIMILATE ACTOR: KY019, amely ezt a téglát használja, automatikusan konfigurálja a Crouton-t 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: