Sadržaj:

Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak: 10 koraka
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak: 10 koraka

Video: Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak: 10 koraka

Video: Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak: 10 koraka
Video: Physical Therapy Strategies for People with Dysautonomia 2024, Novembar
Anonim
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak
Izgradite kućni IoT senzor kvalitete zraka Nije potreban oblak

Kvaliteta unutarnjeg ili vanjskog zraka ovisi o mnogim izvorima zagađenja, ali i o vremenskim prilikama.

Ovaj uređaj bilježi neke uobičajene i neke od najzanimljivijih parametara pomoću 2 senzorska čipa.

  • Temperature
  • Vlažnost
  • Pritisak
  • Organski gas
  • Mikročestice

Ovdje se koriste senzori BME680 za mjerenje temperature, vlažnosti, pritiska i organskog plina te PMS5003 za dobijanje 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 kontrolirati ga 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.

Donosi i potpuno 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.

Supplies

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. Biblioteka HomeDing korištena u ovom projektu podržava neke od uobičajenih senzorskih čipova za temperaturu, vlažnost, pritisak i kvalitetu. Ovdje se koristi čip BMP680.

  • USB priključak i mikro-USB kabel za napajanje.
  • 1 nodemcu ploča sa ESP8266 CPU -om.
  • 1 BME680 ploča za probijanje senzora.
  • 1 PM2.5 laserski senzor čestica zraka tipa PMS5003

Lako je zamijeniti BME680 senzor sa DHT22 senzorom jer ih biblioteka podržava, između ostalog.

Korak 1: Pripremite Arduino okruženje za ESP8266

Pripremite Arduino okruženje za ESP8266
Pripremite Arduino okruženje za ESP8266
  1. Instalirajte najnoviju verziju Arduino IDE -a (trenutno verzija 1.8.2).
  2. Koristite Board Manager za instalaciju instalacije podrške za esp8266. Detaljna uputstva možete pronaći ovdje:
  3. Postavite opcije ploče za NodeMCU 1.0 sa 1MByte SPIFFS sistemom datoteka kao što je prikazano na slici

Korak 2: Uključite potrebne biblioteke

Uključuje obavezne biblioteke
Uključuje obavezne biblioteke

Biblioteka HomeDing oslanja se na neke uobičajene dodatne biblioteke za rad senzora i ekrana.

Kada instalirate HomeDing biblioteku, vidjet ćete skočni prozor sa ovim potrebnim bibliotekama koje se mogu automatski instalirati, kao što je prikazano na slici, a sve ih je lako instalirati.

Ponekad (iz nepoznatih razloga) instalacija biblioteka ne uspije pa je sve potrebne biblioteke potrebno instalirati ručno.

Više detalja o potrebnim bibliotekama možete pronaći na web stranici dokumentacije na

Ovo je lista trenutno potrebnih biblioteka:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 i ESP32 Oled upravljački program za SSD1306 ekran
  • RotaryEncoder
  • Biblioteka DHT senzora za ESPx
  • OneWire

Laserski osjetnik čestica zraka PMS5003 komunicira pomoću signala serijske linije od 9600 bauda. Ovaj signal se hvata pomoću biblioteke SoftwareSerial koja dolazi s instalacijom alata ESP8266. Budite sigurni da nemate stariju verziju instaliranu kao biblioteku.

Korak 3: Prilagodite standardnu skicu primjera

Prilagodite standardnu skicu primjera
Prilagodite standardnu skicu primjera

Standardni primjer već uključuje neke od uobičajenih senzora kao elemente pa će biti potrebna samo neka konfiguracija.

Ovo se odnosi na BME680 senzor 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 lozinku za kućni WiFi u datoteku secrets.h pored datoteke skice standard.ino. Ali možete koristiti i ugrađeni WiFi Manager za dodavanje uređaja u mrežu bez ove strogo kodirane konfiguracije.

Sada je sve u vezi 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 postavite ove datoteke, možda ćete htjeti 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.

Koristite ESP8266 uslužni program za otpremanje datoteka i prenesite sve datoteke. Za aktiviranje konfiguracije potrebno je ponovno pokretanje.

Korak 5: Dodajte BME680 senzor

Dodajte senzor BME680
Dodajte senzor BME680
Dodajte senzor BME680
Dodajte senzor BME680
Dodajte senzor BME680
Dodajte senzor BME680

Senzor BME680 komunicira s pločom pomoću I2C sabirnice.

Budući da se to dijeli s drugim ekstenzijama, poput drugih senzora ili zaslona, konfigurirano je na razini uređaja u env.json zajedno s mrežnim imenom 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"}}

Radnje ćemo dodati kasnije.

Za testiranje postavki 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 PMS5003 senzor

Dodajte senzor PMS5003
Dodajte senzor PMS5003

Nisam dobio senzor sa konektorom pogodnim za matičnu ploču, pa sam morao presjeći jedan od konektora na kabelu pomoću svog lemilice za direktno pričvršćivanje na nodemcu ploču. To još možete vidjeti na posljednjim slikama.

Napajanje za ovaj senzor mora se uzeti iz Vina koji se normalno napaja putem USB sabirnice. GND je isti, ali dostupan i pored Vin pina.

Podaci sa senzora se prenose u standardnom 9600 baud serijskom formatu pa je potrebno konfigurirati pinove rx i tx i vrijeme čitanja:

"pms": {

"pm25": {"description": "pm25 senzor čestica", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Radnje ćemo dodati kasnije.

Da biste ponovo testirali podešavanje, samo ponovo pokrenite uređaj i upotrijebite preglednik i otvorite https://airding/board.htm i vidjet ćete stvarnu pm35 vrijednost senzora prikazanu i oni će se ažurirati otprilike svakih 10 sekundi, ali ta vrijednost je normalno ne menjaju se često.

Možete dobiti veće vrijednosti postavljanjem svjetla svijeće pored senzora jer svijeća proizvodi veliki dio ovih čestica.

Sada sve možete staviti u lijepo kućište jer se sve ostale konfiguracije, pa čak i ažuriranja softvera mogu obaviti na daljinu.

Korak 7: Dodavanje nekih mrežnih funkcija

Omogućava se sljedeći ekstrakt konfiguracije u env.json

  • bežično ažuriranje firmvera
  • omogućava otkrivanje mreže pomoću SSDP mrežnog protokola i dohvaća trenutno vrijeme s ntp servera.

{

… "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 koristiti web stranicu https://www.timeanddate.com/ da biste dobili pomak od UTC/GMT. "2" je tačno za ljeto Njemačke.

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 servera, 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 kvaliteta plina "," ime datoteke ":" /aqlog.txt "," veličina datoteke ":" 10000 "}}}

Korak 9: Radnje

Akcije
Akcije

Sada moramo prenijeti stvarne vrijednosti na elemente dnevnika pomoću radnji. Radnje koriste notaciju URL -a za prosljeđivanje znaka i vrijednosti ciljnom elementu. Mnogi elementi podržavaju emitiranje akcija 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 koristeći radnju 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

Slike i konfiguracijske datoteke
Slike i konfiguracijske datoteke
Slike i konfiguracijske datoteke
Slike i konfiguracijske datoteke
Slike i konfiguracijske datoteke
Slike i konfiguracijske datoteke

Evo nekoliko slika mog posljednjeg IoT senzora kvalitete zraka.

Konfiguracijske datoteke za preuzimanje potrebno je preimenovati u *.json (no.txt) prije učitavanja.

Linkovi i reference

  • Spremište izvornog koda HomeDing:
  • Dokumentacija:
  • Standardni primjer:
  • BME680 Element:
  • PMS element:
  • Element dnevnika:
  • NtpTime element:

Preporučuje se: