Sadržaj:
- Pribor
- Korak 1: Pripremite Arduino okruženje za ESP8266
- Korak 2: Uključite potrebne knjižnice
- Korak 3: Prilagodite standardnu primjernu skicu
- Korak 4: Prenesite web sučelje
- Korak 5: Dodajte senzor BME680
- Korak 6: Dodajte senzor PMS5003
- Korak 7: Dodavanje nekih mrežnih značajki
- Korak 8: Dodavanje zapisnika
- Korak 9: Radnje
- Korak 10: Slike i konfiguracijske datoteke
Video: Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak: 10 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Kvaliteta unutarnjeg ili vanjskog zraka ovisi o mnogim izvorima zagađenja, a također i o vremenu.
Ovaj uređaj bilježi neke uobičajene i neke od najzanimljivijih parametara pomoću 2 senzorska čipa.
- Temperatura
- Vlažnost
- Pritisak
- Organski plin
- Mikročestice
Ovdje se koriste senzori BME680 za mjerenje temperature, vlage, tlaka i organskog plina te PMS5003 za dobivanje gustoće mikro čestica.
Korištenjem biblioteke HomeDing lako je izgraditi uređaj koji je spojen samo na vašu kućnu mrežu i do kojeg može doći i upravljati bilo koji preglednik na mreži. Dolazi s izborom elemenata koji omogućuju korištenje najčešćih senzorskih čipova, uređaja i drugih usluga.
Također donosi cjelovito rješenje za smještaj web strane unutar uređaja umjesto korištenja rješenja zasnovanog na oblaku za prikaz podataka senzora i interakciju s uređajem.
Pribor
Sve što vam je potrebno za izgradnju ovog projekta je ploča zasnovana na ESP8266 poput ploče nodemcu i set senzora za mjerenje kvalitete zraka. Knjižnica HomeDing korištena u ovom projektu podržava neke od uobičajenih senzorskih čipova za temperaturu, vlažnost, tlak i kvalitetu. Ovdje se koristi čip BMP680.
- USB utikač i mikro-USB kabel za napajanje.
- 1 nodemcu ploča s ESP8266 CPU -om.
- 1 BME680 ploča za probijanje senzora.
- 1 PM2.5 laserski osjetnik čestica zraka tipa PMS5003
Lako je zamijeniti BME680 senzor s DHT22 senzorom jer ih knjižnica podržava i između mnogih drugih.
Korak 1: Pripremite Arduino okruženje za ESP8266
- Instalirajte najnoviju verziju Arduino IDE -a (trenutno verzija 1.8.2).
- Pomoću Upravitelja ploče instalirajte instalaciju podrške za esp8266. Detaljne upute možete pronaći ovdje:
- Postavite opcije ploče za NodeMCU 1.0 s 1MByte SPIFFS datotečnim sustavom kako je prikazano na snimci zaslona
Korak 2: Uključite potrebne knjižnice
Knjižnica HomeDing oslanja se na neke uobičajene dodatne knjižnice za rad senzora i zaslona.
Kad instalirate knjižnicu HomeDing, vidjet ćete skočni prozor s ovim potrebnim knjižnicama koje se mogu automatski instalirati, kao što je prikazano na slici, a sve ih je lako instalirati.
Ponekad (iz nepoznatih razloga) instalacija knjižnica ne uspije pa je sve potrebne knjižnice potrebno instalirati ručno.
Više pojedinosti o potrebnim knjižnicama možete pronaći na web stranici dokumentacije na
Ovo je popis trenutno potrebnih knjižnica:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- ESP8266 i ESP32 Oled upravljački program za zaslon SSD1306
- RotaryEncoder
- Knjižnica DHT senzora za ESPx
- OneWire
Laserski osjetnik čestica zraka PMS5003 komunicira pomoću signala serijske linije od 9600 bauda. Ovaj se signal hvata pomoću biblioteke SoftwareSerial koja dolazi s instalacijom alata ESP8266. Pazite da nemate stariju verziju instaliranu kao knjižnicu.
Korak 3: Prilagodite standardnu primjernu skicu
Standardni primjer već uključuje neke od uobičajenih senzora kao elemente pa će biti potrebna samo neka konfiguracija.
To se odnosi na senzor BME680 koji podržava BME680 Element.
Senzor PMS5003 je rjeđi i potrebno ga je aktivirati uključivanjem PMS elementa u firmver. To se postiže definiranjem #define HOMEDING_INCLUDE_PMS u odjeljku registra elemenata skice
#define HOMEDING_INCLUDE_BME680#define HOMEDING_INCLUDE_PMS
Radi jednostavnosti dodavanja novog uređaja na mrežu, možete dodati SSID i zaporku svoje kućne WiFi mreže u datoteku secrets.h pored datoteke skice standard.ino. No, možete koristiti i ugrađeni WiFi Manager za dodavanje uređaja u mrežu bez ove strogo kodirane konfiguracije.
Sada je sve što se tiče implementacije skice završeno, a firmver se može sastaviti i učitati.
Korak 4: Prenesite web sučelje
Standardni primjer dolazi s podatkovnom mapom koja sadrži sve datoteke za web sučelje.
Prije nego što učitate ove datoteke, možda želite dodati datoteke env.json i config.json koje možete pronaći u ovom članku jer će vam to olakšati stvari.
Sadržaj ovih datoteka čini IoT uređaj posebnim i ponaša se kao senzor kvalitete zraka. To je detaljno objašnjeno u ovoj priči.
Upotrijebite uslužni program za prijenos datoteka ESP8266 i prenesite sve datoteke. Za aktiviranje konfiguracije potrebno je ponovno pokretanje.
Korak 5: Dodajte senzor BME680
Senzor BME680 komunicira s pločom pomoću I2C sabirnice.
Budući da se to može dijeliti s drugim proširenjima, poput drugih senzora ili zaslona, konfigurirano je na razini uređaja u env.json zajedno s mrežnim nazivom uređaja. Evo izdvojenog uzorka postavki uređaja i I2C:
"uređaj": {
"0": {"name": "airding", "description": "Senzor kvalitete zraka",… "i2c-scl": "D2", "i2c-sda": "D1"}}
Na matičnoj ploči možete vidjeti priključne kabele na senzor: 3,3 V = crveno, GND = crno, SCL = žuto, SDA = plavo
Konfiguracija za BME680 može se koristiti u config.json:
"bme680": {
"bd": {"address": "0x77", "readtime": "10s"}}
Kasnije ćemo dodati radnje.
Za testiranje postavljanja samo upotrijebite preglednik i otvorite https://airding/board.htm i vidjet ćete stvarne vrijednosti senzora prikazane i ažurirat će se svakih 10 sekundi:
Korak 6: Dodajte senzor PMS5003
Nisam dobio senzor s konektorom prikladnim za matičnu ploču pa sam morao odrezati jedan od konektora na kabelu pomoću lemilice za izravno pričvršćivanje na ploču nodemcu. Još se može vidjeti na posljednjim slikama.
Napajanje ovog senzora mora se uzeti iz Vina koji se normalno napaja putem USB sabirnice. GND je isti, ali dostupan i pored Vin pin -a.
Podaci sa senzora prenose se u standardnom serijskom formatu od 9600 bauda pa je potrebno konfigurirati px i tx pinove i vrijeme čitanja:
"pms": {
"pm25": {"description": "pm25 sensor sensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Radnje ćemo dodati kasnije.
Da biste ponovno testirali postavljanje, samo ponovno pokrenite uređaj i upotrijebite preglednik i otvorite https://airding/board.htm i vidjet ćete prikazanu stvarnu vrijednost PM35 senzora koja će se ažurirati otprilike svakih 10 sekundi, ali ta je vrijednost normalno ne mijenja se često.
Veće vrijednosti možete dobiti postavljanjem svjetla svijeće pored senzora jer svijeća proizvodi velik dio tih čestica.
Sada sve možete staviti u lijepo kućište jer se sve ostale konfiguracije, pa čak i ažuriranja softvera mogu izvršiti na daljinu.
Korak 7: Dodavanje nekih mrežnih značajki
Sljedeći ekstrakt konfiguracije u env.json omogućuje
- ažuriranje firmvera bežičnim putem
- omogućuje otkrivanje mreže pomoću SSDP mrežnog protokola i dohvaća trenutno vrijeme s ntp poslužitelja.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Slušajte OTA ažuriranja" bežično "OTA"}}, "ssdp": {"0 ": {" Proizvođač ":" vaše ime "}}," ntptime ": {" 0 ": {" vrijeme čitanja ":" 36h "," zona ": 2}}}
Vremensku zonu trebate prilagoditi svojoj lokaciji. Ako ste u nedoumici, možete upotrijebiti web stranicu https://www.timeanddate.com/ kako biste dobili pomak od UTC/GMT. "2" je točno za Njemačku ljeti.
Ota lozinku možete prilagoditi i nakon što pročitate upute o načinu spremanja u dokumentaciji na
Nakon ponovnog pokretanja možete pronaći uređaj za provjetravanje na mreži, a nakon što dobijete odgovor od ntp poslužitelja, lokalno vrijeme je dostupno.
Korak 8: Dodavanje zapisnika
Samo stvarne vrijednosti možda neće dati dovoljno pa se mogu koristiti još neki elementi.
Za ovu priču element Log i NPTTime Element koriste se za bilježenje povijesti vrijednosti senzora u datoteci dnevnika, a kartica web korisničkog sučelja za ovaj element može ga prikazati kao grafikon.
Sljedeća konfiguracija stvara 2 dnevnička elementa za plin i čestice:
{
"log": {"pm": {"description": "Dnevnik pm25", "filename": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Dnevnik kvalitete plina "," naziv datoteke ":" /aqlog.txt "," veličina datoteke ":" 10000 "}}}
Korak 9: Radnje
Sada moramo prenijeti stvarne vrijednosti u elemente dnevnika pomoću radnji. Radnje koriste oznaku URL -a za prosljeđivanje znaka i vrijednosti ciljnom elementu. Mnogi elementi podržavaju emitiranje radnji na određene događaje koji se događaju poput snimanja nove vrijednosti senzora.
Radnje su konfigurirane na elementu koji emitira radnje potrebna su 2 unosa:
- Događaj pms/p25 onvalue šalje stvarnu vrijednost elementu log/pm pomoću radnje vrijednosti.
- Događaj na plinu bme680/bd šalje stvarnu vrijednost elementu log/pm pomoću radnje vrijednosti.
{
"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}
Sada su svi elementi konfigurirani.
Korak 10: Slike i konfiguracijske datoteke
Evo nekoliko slika mog posljednjeg IoT senzora kvalitete zraka.
Konfiguracijske datoteke za preuzimanje moraju se prenijeti u *.json (no.txt) prije prijenosa.
Linkovi i reference
- Spremište izvornog koda HomeDing:
- Dokumentacija:
- Standardni primjer:
- BME680 Element:
- PMS element:
- Element dnevnika:
- NtpTime element:
Preporučeni:
Automatski prekidač u trgovini Vac (nije potreban Arduino): 7 koraka
Automatski prekidač za kupovinu u trgovini Vac (nije potreban Arduino): Kao i mnogi ljubitelji stolarije, na stolnu pilu imam pričvršćen vakuum u trgovini i svaki put kad želim izvesti rez moram ga uključiti prije nego upalim pilu. Ovo može izgledati glupo, ali bol je u vratu uključivati i isključivati usisavač što više
Neoboard lampa - nije potreban SD i 3D ispis: 3 koraka (sa slikama)
Neoboard lampa - SD nije potrebna i 3D ispisana: Nakon što je izgradio Minecraft lampu za svoje sedmogodišnje dijete, njegov mlađi brat želio je nešto slično. Više voli SuperMario nego Minecraft, pa će njegovo noćno svjetlo prikazivati duhove videoigara. Ovaj se projekt temelji na projektu Neoboard, ali
Automatska kućna automatizacija s glasovnim upravljanjem (poput Alexa ili Google Home, nije potreban Wifi ili Ethernet): 4 koraka
Kućna automatizacija s glasovnom kontrolom (poput Alexa ili Google Home, nije potreban Wifi ili Ethernet): To su u osnovi arduino upravljani releji zasnovani na SMS -u s postavkom google asistenta za slanje poruka putem glasovnih uputa. Vrlo je jednostavno i jeftino i radi poput Alexa oglasa s vašim postojeći električni aparati (ako imate Moto -X smartp
HRV (kućni izmjenjivač zraka) Arduino kontroler s ekonomizatorom zraka: 7 koraka (sa slikama)
HRV (Kućni izmjenjivač zraka) Arduino kontroler s ekonomizatorom zraka: HRV Arduino kontroler s ekonomizatorom zrakaMoja povijest s ovim projektom je da živim u Minnesoti i moja je ploča pečena na mom LifeBreath 155Max HRV -u. Nisam htio platiti 200 dolara za novu. Uvijek sam htio nešto s grijehom ekonomizatora zraka
AirPi - osjetnik kvalitete zraka: 8 koraka
AirPi - senzor kvalitete zraka: Jeste li se ikada zapitali zašto vas boli glava? A ako je to zbog loše kvalitete zraka? Pomoću ovog uređaja možete provjeriti je li to slučaj. Ovaj uređaj mjeri CO2 vrijednost, TVOC vrijednost, temperaturu i vlažnost. Možete vidjeti zrak q