Kazalo:

IOT123 - I2C MQ2 OPEKA: 5 korakov
IOT123 - I2C MQ2 OPEKA: 5 korakov

Video: IOT123 - I2C MQ2 OPEKA: 5 korakov

Video: IOT123 - I2C MQ2 OPEKA: 5 korakov
Video: MQ-2 датчик газов и дыма подключаем к Arduino 2024, Julij
Anonim
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2
IOT123 - OGLED I2C MQ2

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 MQ2 odlaga 3 lastnosti:

LPG (deli na milijon), CO (PPM), DIMNI (PPM)

Ta senzor je ponudil zanimiv scenarij: za ogrevanje potrebuje vsaj 2 minuti (do 5 minut), nato pa ga mora pred uporabo kalibrirati 20 sekund. Ker gostiteljski MCU samo zanima pridobivanje parov ime/vrednost (in sporočilo za nadaljevanje), smo uvedli lastnost "PREPARE". Ker je njegovo sporočilo za nadaljevanje "1" (sledi še), bo gostiteljski MCU še naprej razpisoval OGLED, dokler ni pripravljen. Priporočljivo je tudi, da MQ2 pred uporabo "vžgete", tj. Pustite 24 ur priključeno na 5-voltno vezje.

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: Material in orodja

Material in orodje
Material in orodje
Material in orodje
Material in orodje
Material in orodje
Material in orodje

Obstaja celoten seznam gradiva in virov.

  1. Senzorska opeka MQ2 (1)
  2. ATTINY85 20PU (1)
  3. 1 "dvostranska protoboard (1)
  4. Moški vzglavnik 90º (3P, 3P)
  5. Moška glava (2P, 2P)
  6. Skakalec (1)
  7. Priključna žica (~ 7)
  8. Spajkanje in železo (1)

2. korak: Pripravite ATTINY85

Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85
Pripravite ATTINY85

Potreben je AttinyCore upravitelja upravnih odborov. Zapiši zagonski nalagalnik "EEPROM zadržan", "8mHZ Notranji" (vse konfiguracije prikazane zgoraj).

Uporabite priloženi vir; prevesti in programirati v ATtiny85.

GIST je tukaj:

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

Več podrobnosti lahko najdete 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 SENSOR/MCU Host, to pomeni, da imajo lahko vsi temperaturni senzorji isti naslov, če imate samo en temperaturni senzor na MCU/vozlišču.

3. korak: Sestavite vezje

Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
Sestavite vezje
  1. Na sprednji strani vstavite komponente ATTINY85 (1), 3P 90deg moške glave (2) (3), 2P moške glave (4) (5) in spajkajte na zadnji strani.
  2. Na zadnji strani poiščite oranžno žico od ORANGE1 do ORANGE2 in spajkajte.
  3. Na zadnji strani poiščite modro žico od MODRE1 do MODRE2 in spajkajte.
  4. Na zadnji strani potegnite zeleno žico od ZELENE1 do ZELENE2 in spajkajte.
  5. Na zadnji strani poiščite golo žico od SREBRNEGA1 do SREBRNEGA2 in spajkajte.
  6. Na zadnji strani poiščite golo žico od SREBRNEGA3 do SREBRNEGA4 in spajkajte.
  7. Na zadnji strani poiščite črno žico od BLACK1 do BLACK2 in spajkajte.
  8. Na zadnji strani poiščite črno žico od BLACK3 do BLACK4 in spajkajte.
  9. Na zadnji strani poiščite rdečo žico od RED1 do RED2 in spajkajte.
  10. Na zadnji strani poiščite rdečo žico od RED3 do RED4 in spajkajte.
  11. Na zadnji strani potegnite rumeno žico od RUMENE1 do RUMENE2 in spajkajte.

Senzor lahko zdaj prek svojih zatičev priključite neposredno na tiskano vezje ali preko žic na točke, prikazane v pogodbi o zatičih.

4. korak: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje
Testiranje
Testiranje

Pričakuje se, da bodo številne te ZDRAVILE na več vozliščih (MCU -ji - ESP8266 ali ATTINY84) v okolju. To je test na enoto: preverja zahteve/odgovore UNO, dokler niso izpisani vsi podatki, nato zanemarja pomožno enoto I2C.

  1. Kodo UNO naložite v svoj preskusni pas UNO. Poskrbite, da se ADDRESS_SLAVE ujema z naslovom I2C BRICK.
  2. Priključite 5.0V na UNO na VCC na BRICK.
  3. Prepričajte se, da je mostiček za ta zatič vklopljen.
  4. Povežite GND na UNO z GND na BRICK.
  5. Povežite A5 na UNO s SCL na BRICK.
  6. Povežite A4 na UNO s SDA na BRICK.
  7. Priključite vlečni upor 4K7 iz SDA na VCC.
  8. Priključite vlečni upor 4K7 iz SCL v VCC.
  9. Povežite svoj UNO z računalnikom Dev prek USB -ja.
  10. Odprite konzolo Arduino, izberite 9600 baud (znova zaženite UNO in znova odprite konzolo, če je potrebno).
  11. Imena lastnosti in vrednosti je treba enkrat natisniti na konzolo, nato se beseda spanje ponovi.

Če vidite "setup", se 3 vrstice smeti ponovijo, morda imate svoje vrstice SDA in SCL spredaj.

I2C Master beleženje iz podrejenega I2C s podporo za ploter/metapodatke

#vključi
#defineADDRESS_SLAVE10
bool _outputPlotterOnly = false;
bool _confirmedMetadata = false;
int _packetSegment = 0;
bool _i2cNodeProcessed = false;
char _property [2] [24] = {"ime", "vrednost"};
voidsetup () {
Wire.begin (); // pridruži se vodilu i2c (naslov neobvezen za glavnega)
Serial.begin (9600); // zaženemo serijski izhod
zamuda (1000);
if (! _outputPlotterOnly) {
Serial.println ("nastavitev");
Serial.println ();
}
}
voidloop () {
if (_i2cNodeProcessed) {
if (! _confirmedMetadata) {// sporočite podrejenemu, da začne pošiljati podatke senzorja
zamuda (1);
Wire.beginTransmission (ADDRESS_SLAVE);
Wire.write (1);
Wire.endTransmission ();
zamuda (100);
_confirmedMetadata = res;
}
_i2cNodeProcessed = false;
if (! _outputPlotterOnly) {
Serial.println ();
}
vrnitev;
}
Wire.requestFrom (ADDRESS_SLAVE, 16);
_packetSegment ++;
paket char [16];
intindex = 0;
bool isContinueSegment = false; // continueSegment (3.) 1 = več, 0 = zadnji
while (Wire.available ()) {// podrejen lahko pošlje manj, kot je zahtevano
char c = Wire.read ();
paket [indeks] = int (c)> -1? c: ''; // neveljavne znake zamenjamo s presledki
if (_packetSegment == 3) {
_packetSegment = 0;
isContinueSegment = true;
//Serial.println("------------- ");
//Serial.println(int(c));
//Serial.println("------------- ");
if (int (c) == 48 || int (c) == 86) {// 0 na zadnji lastnosti
_i2cNodeProcessed = res;
// pošiljamo vrednosti v MQTT
prekiniti;
}
}
indeks ++;
}
if (! isContinueSegment) {
if (! _outputPlotterOnly) {
Serial.println (paket);
}
strcpy (_property [_packetSegment - 1], paket); // nastavimo lokalno var z imenom/vrednostjo
} drugo {
if (_outputPlotterOnly && _confirmedMetadata) {
if (_i2cNodeProcessed) {
Serial.println (_property [1]);
} drugo {
Serial.print (_property [1]);
Serial.print ("");
}
}
}
}

oglejte si rawuno_i2c_generic_sensor_test_w_plotter_v2.ino, ki ga gosti ❤ GitHub

5. korak: Naslednji koraki

Osnovna postavitev vezja in sloja I2C programske opreme je povezana z različnimi senzorji. Glavna stvar, s katero lahko začnete, je paketna pogodba med glavnim in podrejenim.

Načrtoval/začel sem (3D tiskano) zapakirano mrežo senzorjev, ki uporabljajo ta okvir in se bodo nanj povezovali, ko bodo objavljeni deli.

To BLOK uporablja senzor asimilacije MQ2.

Priporočena: