Sadržaj:

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

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

Video: Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak: 10 koraka
Video: Architecture Kata #1 - Разбор с экспертом [Как работает настоящий Solution Architect] #ityoutubersru 2024, Lipanj
Anonim
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak
Izgradite kućni IoT osjetnik kvalitete zraka Nije potreban oblak

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

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. Pomoću Upravitelja ploče instalirajte instalaciju podrške za esp8266. Detaljne upute možete pronaći ovdje:
  3. 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

Uključite potrebne knjižnice
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

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.

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

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 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

Dodajte senzor PMS5003
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

Radnje
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

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 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: