Sadržaj:
- Korak 1: Materijal i alati
- Korak 2: Pripremite ATTINY85
- Korak 3: Sastavite krug
- Korak 4: Testiranje
- Korak 5: Sljedeći koraci
Video: IOT123 - I2C MQ2 CIGLA: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
IOT123 CIGLE su DIY modularne jedinice koje se mogu kombinirati s drugim IOT123 CIGLAMA, za dodavanje funkcionalnosti čvoru ili nosivom uređaju. Zasnivaju se na inčnim kvadratnim, dvostranim proto-pločama sa međusobno povezanim rupama.
Očekuje se da će se određeni broj ovih CIGLA nalaziti na više čvorova (glavni MCU -ovi - ESP8266 ili ATTINY84) na web lokaciji. MCU -u nije potrebno prethodno znanje o namjeni senzora ili softverskim potrebama. Skenira I2C čvorove, a zatim traži dump svojstva (podatke senzora) od svakog slave -a. Ove cigle napajaju 5.0V, 3.3V i još jednu AUX liniju koja se može prilagoditi.
Ova I2C MQ2 OPEKA odlaže 3 nekretnine:
TNG (dijelovi na milion), CO (PPM), DIM (PPM)
Ovaj je senzor pružio zanimljiv scenarij: potrebno mu je najmanje 2 minute (do 5 minuta) da se zagrije, a zatim ga je potrebno kalibrirati 20 sekundi prije upotrebe. Kako je MCU hosta samo zamišljen za dobivanje parova ime/vrijednost (i poruku za nastavak), uveli smo svojstvo "PREPARE". Kako je poruka o nastavljanju "1" (slijedi još), MCU domaćina će nastaviti ispitivati CIGLU sve dok ne bude spreman. Takođe se preporučuje da "uključite" MQ2 pre upotrebe, tj. Ostavite 24 sata priključenim na 5V krug.
Opeke tipa senzora tipa Keyes prvo će se apstrahovati jer dolaze sa uključenim vitaminima (potrebne su dodatne komponente) i relativno su jeftine (kupio sam 37 za 10 AUD). Ostale ploče/kola bit će predstavljene I2C CIGLAMA.
Prolazne rupe uz ATTINY85 su ostavljene neiskorištene, kako bi se omogućio pogo pin programator dok je DIP8 lemljen na PCB.
Razvija se daljnja apstrakcija, pakiranje CIGLA u male cilindre koji se spajaju u D1M WIFI BLOCK čvorište, upumpavajući vrijednosti na MQTT poslužitelj.
Korak 1: Materijal i alati
Postoji potpuna lista materijala i izvora.
- MQ2 senzorska cigla (1)
- ATTINY85 20PU (1)
- 1 "dvostrana protoboard (1)
- Muški zaglavlje 90º (3P, 3P)
- Muški zaglavlje (2P, 2P)
- Džemper šant (1)
- Priključna žica (~ 7)
- Lemljenje i gvožđe (1)
Korak 2: Pripremite ATTINY85
Potreban je AttinyCore od upravitelja odbora. Snimite bootloader "EEPROM zadržan", "8mHZ Interni" (sve konfiguracije prikazane gore).
Koristite uključeni izvor; kompajlirati i programirati na ATtiny85.
GIST je ovdje:
gist.github.com/IOT-123/4c501046d365d01a60…
Više detalja možete pronaći u ovim uputama:
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 testirati putem matične ploče prije nastavka.
Ako imate postojeće ASSIMILATE SENSORS, provjerite je li slave adresa drugačija u kombinaciji SENSOR/MCU Host, tj. Svi temperaturni senzori mogu imati istu adresu sve dok imate samo jedan temperaturni senzor na MCU/čvoru.
Korak 3: Sastavite krug
- Na prednjoj strani umetnite komponente ATTINY85 (1), 3P 90deg muške zaglavlje (2) (3), 2P muške zaglavlje (4) (5) i lemite na stražnjoj strani.
- Na stražnjoj strani ucrtajte narančastu žicu od NARANDŽE1 do NARANČE2 i lemite.
- Na stražnjoj strani nacrtajte plavu žicu od PLAVE1 do PLAVE2 i lemite.
- Sa stražnje strane trasirajte zelenu žicu od ZELENE1 do ZELENE2 i lemite.
- Sa stražnje strane ocrtajte golu žicu od SILVER1 do SILVER2 i lemite.
- Sa stražnje strane ocrtajte golu žicu od SREBRNOG3 do SREBRNOG4 i lemite.
- Na stražnjoj strani navucite crnu žicu od BLACK1 do BLACK2 i lemite.
- Na stražnjoj strani ucrtajte crnu žicu od BLACK3 do BLACK4 i lemite.
- Na stražnjoj strani ucrtajte crvenu žicu od RED1 do RED2 i lemite.
- Na stražnjoj strani crtajte crvenu žicu od RED3 do RED4 i lemite.
- Na stražnjoj strani ucrtajte žutu žicu od ŽUTE1 do ŽUTE2 i lemite.
Senzor se sada može priključiti izravno na svoje PCB -ove ili putem žica na točke prikazane u ugovoru s pinovima.
Korak 4: Testiranje
Očekuje se da će se određeni broj ovih CIGLA nalaziti na više čvorova (MCU -ovi - ESP8266 ili ATTINY84) u okruženju. Ovo je jedinični test: provjerava UNO zahtjeve/odgovore sve dok se svi podaci ne izbace, a zatim zanemaruje I2C slave.
- Postavite UNO kôd na svoj UNO testni pojas. Uvjerite se da ADDRESS_SLAVE odgovara I2C adresi BRICK -a.
- Priključite 5.0V na UNO na VCC na BRICK.
- Uverite se da je kratkospojnik za tu iglu uključen.
- Spojite GND na UNO na GND na BRICK.
- Spojite A5 na UNO na SCL na BRICK.
- Povežite A4 na UNO sa SDA na BRICK.
- Spojite 4K7 pull-up otpornik sa SDA na VCC.
- Spojite 4K7 pull-up otpornik sa SCL na VCC.
- Povežite svoj UNO sa svojim Dev računarom putem USB -a.
- Otvorite Arduino konzolu. Odaberite 9600 bauda (ponovno pokrenite UNO i ponovo otvorite konzolu ako morate).
- Imena svojstava i vrijednosti trebaju se ispisati na konzoli jednom, a zatim se ponavlja riječ sleep.
Ako vidite "setup", tada se ponavljaju 3 reda smeća, možda imate svoje SDA i SCL linije naprijed.
I2C Master logovanje sa I2C slave -a sa podrškom za crtanje/metapodatke
#include |
#defineADDRESS_SLAVE10 |
bool _outputPlotterOnly = false; |
bool _confirmedMetadata = false; |
int _packetSegment = 0; |
bool _i2cNodeProcessed = false; |
char _property [2] [24] = {"name", "value"}; |
voidsetup () { |
Wire.begin (); // pridruživanje i2c sabirnici (adresa opcionalna za master) |
Serial.begin (9600); // pokretanje serijskog izlaza |
kašnjenje (1000); |
if (! _outputPlotterOnly) { |
Serial.println ("postavljanje"); |
Serial.println (); |
} |
} |
voidloop () { |
if (_i2cNodeProcessed) { |
if (! _confirmedMetadata) {// obavijestite slave da počne slati podatke senzora |
kašnjenje (1); |
Wire.beginTransmission (ADDRESS_SLAVE); |
Wire.write (1); |
Wire.endTransmission (); |
kašnjenje (100); |
_confirmedMetadata = true; |
} |
_i2cNodeProcessed = false; |
if (! _outputPlotterOnly) { |
Serial.println (); |
} |
return; |
} |
Wire.requestFrom (ADDRESS_SLAVE, 16); |
_packetSegment ++; |
char paket [16]; |
intindex = 0; |
bool isContinueSegment = false; // continueSegment (3.) 1 = više, 0 = posljednje |
while (Wire.available ()) {// slave može poslati manje od traženog |
char c = Wire.read (); |
paket [indeks] = int (c)> -1? c: ''; // nevažeće znakove zamijenite razmacima |
if (_packetSegment == 3) { |
_packetSegment = 0; |
isContinueSegment = true; |
//Serial.println("------------- "); |
//Serial.println(int(c)); |
//Serial.println("------------- "); |
if (int (c) == 48 || int (c) == 86) {// 0 na zadnjem svojstvu |
_i2cNodeProcessed = true; |
// šalje vrijednosti u MQTT |
break; |
} |
} |
index ++; |
} |
if (! isContinueSegment) { |
if (! _outputPlotterOnly) { |
Serial.println (paket); |
} |
strcpy (_property [_packetSegment - 1], paket); // postavi lokalnu var s imenom/vrijednošću |
} else { |
if (_outputPlotterOnly && _confirmedMetadata) { |
if (_i2cNodeProcessed) { |
Serial.println (_property [1]); |
} else { |
Serial.print (_property [1]); |
Serial.print (""); |
} |
} |
} |
} |
pogledaj rawuno_i2c_generic_sensor_test_w_plotter_v2.ino hostirano sa ❤ od GitHub -a
Korak 5: Sljedeći koraci
Osnovni raspored kola i I2C sloj softvera je povezan sa mnogim različitim senzorima. Glavna stvar s kojom možete započeti je paketni ugovor između master -a i slave -a.
Napravio sam/pokrenuo (3D štampanu) zapakiranu mrežu senzora koji koriste ovaj okvir i koji će se povezivati s njim nakon objavljivanja dijelova.
Ovaj BLOK koristi MQ2 ASISIMILATNI SENZOR.
Preporučuje se:
IOT123 - D1M BLOK - 2xAMUX Sklop: 7 koraka (sa slikama)
IOT123 - D1M BLOK - 2xAMUX sklop: D1M BLOKOVI dodaju taktilne futrole, naljepnice, vodiče za polaritet i proboje za popularne Wemos D1 Mini SOC/štitove/klonove. Jedan od problema sa čipom ESP8266 je to što ima na raspolaganju samo jedan analogni IO pin. Ovo uputstvo pokazuje kako sastaviti 2xA
IOT123 - D1M BLOK - RFTXRX Sklop: 8 koraka
IOT123 - D1M BLOK - RFTXRX Sklop: D1M BLOKOVI dodaju taktilne futrole, naljepnice, vodiče za polaritet i proboje za popularne Wemos D1 Mini SOC/štitove/klonove. RF predajnici/prijemnici omogućuju ESP8266 pristup postojećoj kućnoj/industrijskoj automatizaciji. Ovo kućište osigurava proboje za 433
IOT123 - SENZOR ZA ASIMILACIJU: MQ2: 4 koraka
IOT123 - SENZOR ZA ASIMILACIJU: MQ2: ASISIMILATNI SENZORI su senzori okruženja koji imaju dodani sloj apstrakcije hardvera i softvera, što omogućava da se potpuno novi tipovi dodaju na ASSIMILATE SENSOR HUB i očitavanja prenose na MQTT server bez dodatnog koda
IOT123 - LIR2032 BATERIJSKA CIGLA: 4 koraka
IOT123 - LIR2032 BATERIJSKA CIGLA: IOT123 CIGLE su DIY modularne jedinice koje se mogu kombinirati s drugim IOT123 CigLAma, za dodavanje funkcionalnosti čvoru ili nosivom uređaju. Zasnivaju se na inčnim kvadratnim, dvostranim protoboardama koje su međusobno povezane rupama. Iako upute
IOT123 - 5PIN ATTINY85 NRF24L01 CigLA: 4 koraka
IOT123 - 5PIN ATTINY85 NRF24L01 CIKLA: AŽURIRANJE: Ova postavka je uglavnom akademska ili je osnova za testiranje softvera/napajanja. Čak i kada je PB5 onemogućen kao RESET, on ne čita točno vrijednosti pomoću analogRead: glavnog slučaja upotrebe za očitanja senzora. Razmotrit će postavljanje ATTINY84