Tartalomjegyzék:

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

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

Videó: IOT123 - I2C MQ2 BRICK: 5 lépés
Videó: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Július
Anonim
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 BRICK
IOT123 - I2C MQ2 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 MQ2 BRICK 3 tulajdonságot dob ki:

LPG (milliomodrész), CO (PPM), FÜST (PPM)

Ez az érzékelő érdekes forgatókönyvet biztosított: Legalább 2 perc (legfeljebb 5 perc) szükséges a felmelegedéshez, majd használat előtt 20 másodpercig kalibrálnia kell. Mivel a gazda MCU csak a név/érték párok (és a folytatás üzenet) beolvasásában van, ezért bevezetettünk egy "PREPARE" tulajdonságot. Mivel a folytatás üzenete "1" (továbbiak érkeznek), a fogadó MCU folyamatosan lekérdezi a BRICK -t, amíg készen áll. Szintén ajánlott az MQ2 "beégetése" használat előtt, azaz hagyja 24 órán keresztül csatlakoztatva az 5 V-os áramkörhöz.

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: Anyag és eszközök

Anyag és eszközök
Anyag és eszközök
Anyag és eszközök
Anyag és eszközök
Anyag és eszközök
Anyag és eszközök

Van egy teljes Bill of Material and Sourcing lista.

  1. MQ2 érzékelő tégla (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
Készítse elő az ATTINY85 -öt
Készítse elő az ATTINY85 -ö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ó).

Használja a mellékelt forrást; fordítsa le és programozza be az ATtiny85 -be.

A GIST itt található:

gist.github.com/IOT-123/4c501046d365d01a60…

További részleteket találhat ezekben az 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ón, azaz minden hőmérséklet -érzékelő ugyanazt a címet kaphatja, amíg csak egy hőmérséklet -érzékelő van az 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őlapon helyezze be az alkatrészeket ATTINY85 (1), 3P 90 fokos hüvely (2) (3), 2P dugófej (4) (5), és forrasztja le a hátlapot.
  2. A hátoldalon kövessen egy narancssárga vezetéket az ORANGE1 -től az ORANGE2 -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 kövessen egy csupasz vezetéket az SILVER1 -től az SILVER2 -ig és a forrasztást.
  6. A hátoldalon kövessen egy csupasz vezetéket az SILVER3 -tól az SILVER4 -ig és a forrasztást.
  7. A hátoldalon nyomjon egy fekete vezetéket a BLACK1 -től a BLACK2 -ig, és forrasztja.
  8. A hátoldalon nyomjon egy fekete vezetéket a BLACK3 -tól a BLACK4 -ig, és forrasztja.
  9. A hátoldalon nyomjon egy piros vezetéket a RED1 és a RED2 között, és forrasztjon.
  10. A hátoldalon nyomon kövessen egy piros vezetéket a RED3 -tól a RED4 -ig, és forrasztja.
  11. A hátsó részen nyomon kövessen egy sárga vezetéket a SÁRGA1 -től a SÁRGA2 -ig, és forrasztja.

Az érzékelő most közvetlenül a csapjain keresztül a NYÁK -ra vagy vezetékeken keresztül csatlakoztatható 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: ellenőrzi az UNO kéréseket/válaszokat, amíg az összes adat ki nem kerül, majd figyelmen kívül hagyja az I2C slave -t.

  1. Töltse fel az UNO kódot az UNO tesztkötegére. Győződjön meg arról, hogy az ADDRESS_SLAVE megfelel a BRICK I2C címének.
  2. Csatlakoztassa az 5,0 V -ot UNO -n a BRICK VCC -jéhez.
  3. Győződjön meg arról, hogy az adott csap jumperje be van kapcsolva.
  4. Csatlakoztassa a GND -t az UNO -n a GND -hez a BRICK -en.
  5. Csatlakoztassa az UN5 A5 -öt a BRICK SCL -hez.
  6. Csatlakoztassa az UNO A4 -et a BRICK SDA -hoz.
  7. Csatlakoztasson egy 4K7 felhúzó ellenállást az SDA-ból a VCC-be.
  8. Csatlakoztasson egy 4K7 felhúzó ellenállást SCL-ről VCC-re.
  9. Csatlakoztassa UNO -ját a Dev PC -hez USB -n keresztül.
  10. 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).
  11. A tulajdonságneveket és értékeket ki kell nyomtatni a konzolra, majd meg kell ismételni az alvó szót.

Ha a "beállítás" feliratot látja, akkor 3 sor szemét ismétlődik, előfordulhat, hogy az SDA és az SCL vonalak elöl vannak.

I2C Master naplózás I2C slave -ből plotter/metaadat támogatással

#befoglalni
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = hamis;
bool _confirmMetadata = hamis;
int _packetSegment = 0;
bool _i2cNodeProcessed = hamis;
char _property [2] [24] = {"név", "érték"};
voidsetup () {
Wire.begin (); // csatlakozzon az i2c buszhoz (a cím opcionális a mester számára)
Sorozat.kezdet (9600); // sorozat indítása a kimenethez
késleltetés (1000);
if (! _outputPlotterOnly) {
Serial.println ("beállítás");
Sorozat.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmMetadata) {// értesítse a slave -t, hogy megkezdje az érzékelőadatok küldését
késleltetés (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
késleltetés (100);
_confirmMetadata = igaz;
}
_i2cNodeProcessed = hamis;
if (! _outputPlotterOnly) {
Sorozat.println ();
}
Visszatérés;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
széncsomag [16];
intindex = 0;
bool isContinueSegment = false; // folytassaSegmentum (a 3.) 1 = több, 0 = utolsó
míg (Wire.available ()) {// a slave kevesebbet küldhet a kértnél
char c = Drót.olvasás ();
csomag [index] = int (c)> -1? c: ''; // cserélje ki az érvénytelen karaktereket szóközökkel
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = igaz;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
ha (int (c) == 48 || int (c) == 86) {// 0 az utolsó tulajdonságon
_i2cNodeProcessed = igaz;
// értékek küldése az MQTT -nek
szünet;
}
}
index ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (csomag);
}
strcpy (_property [_packetSegment - 1], csomag); // állítsa be a helyi változót névvel/értékkel
}más{
if (_outputPlotterOnly && _confirmMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_tulajdonság [1]);
}más{
Serial.print (_tulajdonság [1]);
Serial.print ("");
}
}
}
}

Tekintse meg a rawuno_i2c_generic_sensor_test_w_plotter_v2.ino szolgáltatást, amelyet a GitHub ❤ üzemeltet

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

Az áramkör alapvető elrendezése és a szoftver I2C rétege számos különböző érzékelőhöz kapcsolódik. A kezdéshez a legfontosabb dolog a master és a slave közötti csomagszerződés.

Feldolgoztam/elindítottam egy (3D nyomtatott) csomagban lévő érzékelők hálózatát, amelyek ezt a keretrendszert használják, és az alkatrészek közzétételekor hivatkoznak rá.

Ezt a blokkot az MQ2 ASSIMILATE SENSOR használja.

Ajánlott: