Kazalo:
- Korak: Material in orodja
- 2. korak: Pripravite ATTINY85
- 3. korak: Sestavite vezje
- 4. korak: Testiranje
- 5. korak: Naslednji koraki
Video: IOT123 - I2C MQ2 OPEKA: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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
Obstaja celoten seznam gradiva in virov.
- Senzorska opeka MQ2 (1)
- ATTINY85 20PU (1)
- 1 "dvostranska protoboard (1)
- Moški vzglavnik 90º (3P, 3P)
- Moška glava (2P, 2P)
- Skakalec (1)
- Priključna žica (~ 7)
- Spajkanje in železo (1)
2. korak: 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
- 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.
- Na zadnji strani poiščite oranžno žico od ORANGE1 do ORANGE2 in spajkajte.
- Na zadnji strani poiščite modro žico od MODRE1 do MODRE2 in spajkajte.
- Na zadnji strani potegnite zeleno žico od ZELENE1 do ZELENE2 in spajkajte.
- Na zadnji strani poiščite golo žico od SREBRNEGA1 do SREBRNEGA2 in spajkajte.
- Na zadnji strani poiščite golo žico od SREBRNEGA3 do SREBRNEGA4 in spajkajte.
- Na zadnji strani poiščite črno žico od BLACK1 do BLACK2 in spajkajte.
- Na zadnji strani poiščite črno žico od BLACK3 do BLACK4 in spajkajte.
- Na zadnji strani poiščite rdečo žico od RED1 do RED2 in spajkajte.
- Na zadnji strani poiščite rdečo žico od RED3 do RED4 in spajkajte.
- 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
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.
- Kodo UNO naložite v svoj preskusni pas UNO. Poskrbite, da se ADDRESS_SLAVE ujema z naslovom I2C BRICK.
- Priključite 5.0V na UNO na VCC na BRICK.
- Prepričajte se, da je mostiček za ta zatič vklopljen.
- Povežite GND na UNO z GND na BRICK.
- Povežite A5 na UNO s SCL na BRICK.
- Povežite A4 na UNO s SDA na BRICK.
- Priključite vlečni upor 4K7 iz SDA na VCC.
- Priključite vlečni upor 4K7 iz SCL v VCC.
- Povežite svoj UNO z računalnikom Dev prek USB -ja.
- Odprite konzolo Arduino, izberite 9600 baud (znova zaženite UNO in znova odprite konzolo, če je potrebno).
- 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:
Opeka za baterijo mobilnega telefona: 6 korakov
Opeka za baterijo mobilnega telefona: To je lep, preprost vikend projekt, ki vam daje priložnost, da se še naprej učite spajkati na majhne plošče. Uporablja poceni in enostaven dostop do delov, tako da je to odličen projekt za začetnike za vsakogar, ki se ukvarja s projekti DIY
500 LED-Pixel RGB-opeka: 9 korakov (s slikami)
500 LED-Pixel RGB-Brick: Pred časom sem zgradil 10x10 LED-Coffetable z nekaterimi od teh LED WS2812, vendar tudi če je mogoče igrati starošolsko igro Snake s pametnim telefonom, povezanim z njo, želim nekaj več poseben. Zato sem se odločil, da mu dam še nekaj LED, aranžma
IOT123 - D1M BLOK - 2xAMUX sklop: 7 korakov (s slikami)
IOT123 - D1M BLOK - 2xAMUX Montaža: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in odlomke za priljubljene Wemos D1 Mini SOC/ščite/klone. Ena od težav s čipom ESP8266 je, da ima na voljo le en analogni IO pin. Ta navodila kažejo, kako sestaviti 2xA
IOT123 - D1M BLOK - RFTXRX Sklop: 8 korakov
IOT123 - D1M BLOK - Sklop RFTXRX: D1M BLOKI dodajo taktilne etuije, nalepke, vodila za polariteto in odlomke za priljubljene Wemos D1 Mini SOC/ščite/klone. RF oddajniki/sprejemniki omogočajo ESP8266 dostop do obstoječe domače/industrijske avtomatizacije. To ohišje zagotavlja odmike za 433/
IOT123 - SENZOR ZA ASIMILACIJO: MQ2: 4 koraki
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSOR so okoljski senzorji, ki imajo dodan sloj strojne in programske abstrakcije, kar omogoča dodajanje popolnoma novih tipov na ASSIMILATE SENSOR HUB in odčitke črpa na strežnik MQTT brez dodane kode