Indholdsfortegnelse:

Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin

Video: Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin

Video: Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin
Video: Путин: государство поддержит компании, занимающиеся Big Data, IoT и ИИ 2024, Juni
Anonim
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet
Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet

Kvaliteten af indendørs eller udendørs luft afhænger af mange forureningskilder og også af vejret.

Denne enhed fanger nogle af de almindelige og nogle af de mest interessante parametre ved hjælp af 2 sensorchips.

  • Temperatur
  • Fugtighed
  • Tryk
  • Organisk gas
  • Mikropartikler

De sensorer, der bruges her, er BME680 til at få temperatur, fugtighed, tryk og organiske gasværdier og PMS5003 for at få tætheden af mikropartiklerne.

Ved at bruge HomeDing -biblioteket er det let at bygge en enhed, der kun er forbundet til dit hjemmenetværk og kan nås og kontrolleres af enhver browser på netværket. Det leveres med et udvalg af elementer, der gør det muligt at bruge de mest almindelige sensorchips, enheder og andre tjenester.

Det bringer også en komplet løsning til hosting af en intern side på enheden i stedet for at bruge en skybaseret løsning til at vise sensordata og interagere med enheden.

Forbrugsvarer

Alt hvad du behøver for at bygge dette projekt er et ESP8266 -baseret kort som nodemcu -kortet og et sæt sensorer til måling af luftkvaliteten. HomeDing -biblioteket, der bruges i dette projekt, understøtter nogle af de almindelige sensorchips for temperatur, fugtighed, tryk og kvalitet. Her bruges BMP680 -chippen.

  • Et USB-stik og et mikro-usb-kabel til strømforsyning.
  • 1 nodemcu -kort med ESP8266 CPU.
  • 1 BME680 sensor breakout board.
  • 1 PM2,5 luftpartikellasersensor type PMS5003

Det er let at skifte BME680 -sensoren med en DHT22 -sensor, da de også understøttes af biblioteket blandt mange andre.

Trin 1: Forbered Arduino -miljø til ESP8266

Forbered Arduino -miljø til ESP8266
Forbered Arduino -miljø til ESP8266
  1. Installer nyeste version af Arduino IDE (aktuelt version 1.8.2).
  2. Brug Board Manager til at installere installationen af esp8266-supporten. En detaljeret instruktion findes her:
  3. Konfigurer tavlemulighederne for en NodeMCU 1.0 med 1MByte SPIFFS File System som vist på skærmbilledet

Trin 2: Inkluder påkrævede biblioteker

Inkluder påkrævede biblioteker
Inkluder påkrævede biblioteker

HomeDing -biblioteket er afhængigt af nogle almindelige ekstrabiblioteker, hvor sensorer og skærme fungerer.

Når du installerer HomeDing -biblioteket, vil du se en popup med disse påkrævede biblioteker, der kan installeres automatisk, og som vises på billedet, og det er let at installere dem alle.

Nogle gange (med ukendte årsager) mislykkes installationen af bibliotekerne, så alle de nødvendige biblioteker skal installeres manuelt.

Flere detaljer om de nødvendige biblioteker findes på dokumentationswebstedet på

Dette er listen over aktuelle nødvendige biblioteker:

  • Adafruit NeoPixel
  • LiquidCrystal_PCF8574.h
  • ESP8266 og ESP32 Oled Driver til SSD1306 -skærm
  • RotaryEncoder
  • DHT -sensorbibliotek til ESPx
  • OneWire

PMS5003 luftpartikellasersensoren kommunikerer ved hjælp af et 9600 baud serielt linjesignal. Dette signal fanges ved hjælp af SoftwareSerial -biblioteket, der følger med installationen af ESP8266 -værktøjerne. Sørg for ikke at have en ældre version installeret som et bibliotek.

Trin 3: Tilpas standardeksempelskitsen

Tilpas standardeksempelskitsen
Tilpas standardeksempelskitsen

Standardeksemplet indeholder allerede nogle af de mere almindelige sensorer som elementer, så der kræves kun en vis konfiguration.

Dette gælder for BME680 -sensoren, der understøttes af BME680 -elementet.

PMS5003 -sensoren er mindre almindelig og skal aktiveres ved at inkludere PMS -elementet i firmwaren. Dette gøres ved at definere #define HOMEDING_INCLUDE_PMS i elementregisterdelen af skitsen

#define HOMEDING_INCLUDE_BME680#definere HOMEDING_INCLUDE_PMS

For nemheds skyld at tilføje den nye enhed til netværket kan du tilføje SSID og adgangskode til dit WiFi i hjemmet i filen secrets.h ved siden af standard.ino -skitsefilen. Men du kan også bruge den indbyggede WiFi Manager til at føje enheden til netværket uden denne hårdkodede konfiguration.

Nu er alt vedrørende implementering af skitsen udført, og firmwaren kan kompileres og uploades.

Trin 4: Upload webgrænsefladen

Standardeksemplet leveres med en datamappe, der indeholder alle filer til webgrænsefladen.

Inden du uploader disse filer, kan du tilføje env.json- og config.json -filen, som du kan finde med denne artikel, fordi dette vil gøre tingene lettere.

Indholdet i disse filer er det, der gør IoT -enheden speciel og fungerer som en luftkvalitetssensor. Det forklares detaljeret i denne historie.

Brug ESP8266 -filoverførselsværktøjet, og upload alle filerne. Det kræver en genstart for at aktivere konfigurationen.

Trin 5: Tilføj BME680 -sensoren

Tilføj BME680 -sensoren
Tilføj BME680 -sensoren
Tilføj BME680 -sensoren
Tilføj BME680 -sensoren
Tilføj BME680 -sensoren
Tilføj BME680 -sensoren

BME680 -sensoren kommunikerer med kortet ved hjælp af I2C -bussen.

Da dette muligvis deles med andre udvidelser som andre sensorer eller skærme, er det konfigureret på enhedsniveau i env.json sammen med enhedens netværksnavn. Her er en udtrukket prøve af enheds- og I2C -indstillinger:

"enhed": {

"0": {"name": "airding", "description": "Air Quality Sensor", … "i2c-scl": "D2", "i2c-sda": "D1"}}

På brødbrættet kan du se tilslutningskablerne til sensoren: 3.3V = rød, GND = sort, SCL = gul, SDA = blå

Konfigurationen til BME680 kan bruges i config.json:

"bme680": {

"bd": {"address": "0x77", "readtime": "10s"}}

Vi tilføjer handlingerne senere.

For at teste opsætningen skal du bare bruge en browser og åbne https://airding/board.htm, og du vil se sensorens faktiske værdier, og de vil blive opdateret cirka hvert 10. sekund:

Trin 6: Tilføj PMS5003 -sensoren

Tilføj PMS5003 -sensoren
Tilføj PMS5003 -sensoren

Jeg fik ikke en sensor med et brødbræt -venligt stik, så jeg var nødt til at skære et af stikene på kablet med mit loddejern til at fastgøre det direkte til nodemcu -kortet. Du kan stadig se det på de sidste billeder.

Strømmen til denne sensor skal tages fra Vin, der normalt drives af USB -bussen. GND er den samme, men også tilgængelig ved siden af Vin pin.

Dataene fra sensoren overføres i et standard 9600 baud serielt format, så rx- og tx -benene og læsetiden skal konfigureres:

"pms": {

"pm25": {"description": "pm25 partikelsensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}

Vi tilføjer handlingerne senere.

For at teste opsætningen igen skal du bare genstarte enheden og bruge en browser og åbne https://airding/board.htm, og du vil se den faktiske pm35 -værdi af sensoren vist, og de vil blive opdateret cirka hvert 10. sekund, men denne værdi er normalt ikke ændrer sig ofte.

Du kan få højere værdier ved at placere et stearinlys ved siden af sensoren, da et lys producerer meget af disse partikler.

Nu kan du lægge alt i et pænt hus, fordi alle de andre konfigurationer og endda softwareopdateringer kan foretages eksternt.

Trin 7: Tilføjelse af nogle netværksfunktioner

Følgende konfigurationsuddrag i env.json er aktiverende

  • opdatering af firmwaren via luften
  • tillader registrering af netværket ved hjælp af SSDP -netværksprotokollen og henter den aktuelle tid fra en ntp -server.

{

… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Lyt efter 'over the air' OTA -opdateringer"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}

Du bør justere tidszonen til din placering. Hvis du er i tvivl, kan du bruge webstedet https://www.timeanddate.com/ til at få forskydningen fra UTC/GMT. "2" er det rigtige for Tyskland om sommeren.

Du kan også justere ota -adgangskoden efter at have læst instruktionerne vedrørende gemmetilstand i dokumentationen på

Efter en genstart finder du muligvis airding -enheden på netværket, og efter at have modtaget et svar fra ntp -serveren er den lokale tid tilgængelig.

Trin 8: Tilføjelse af noget logning

Bare de faktiske værdier giver muligvis ikke nok, så nogle flere elementer kan bruges.

Til denne historie bruges logelementet og NPTTime -elementet til at registrere sensorværdiernes historie i en logfil, og web -UI -kortet for dette element kan vise det som en graf.

Følgende konfiguration opretter de 2 logelementer for gas og partikler:

{

"log": {"pm": {"description": "Log over pm25", "filnavn": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Log over gaskvalitet "," filnavn ":" /aqlog.txt "," filesize ":" 10000 "}}}

Trin 9: Handlinger

Handlinger
Handlinger

Nu skal vi overføre de faktiske værdier til logelementerne ved hjælp af handlinger. Handlingerne bruger en URL -notation til at videregive en kaj og værdi til målelementet. Mange elementer understøtter udsendelse af handlinger på bestemte begivenheder, der sker som at fange en ny sensorværdi.

Handlinger er konfigureret på det element, der udsender handlinger. 2 poster kræves:

  • Hændelsen pms/p25 onvalue sender den faktiske værdi til log/pm -elementet ved hjælp af en værdihandling.
  • Hændelsen bme680/bd ongas sender den faktiske værdi til log/pm -elementet ved hjælp af en værdihandling.

{

"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}

Nu er alle elementerne konfigureret.

Trin 10: Billeder og konfigurationsfiler

Billeder og konfigurationsfiler
Billeder og konfigurationsfiler
Billeder og konfigurationsfiler
Billeder og konfigurationsfiler
Billeder og konfigurationsfiler
Billeder og konfigurationsfiler

Her er et billede af min sidste IoT luftkvalitetssensor.

Konfigurationsfilerne til download skal omdøbes til *.json (nr. Txt), før de uploades.

Links og referencer

  • HomeDing -kildekodeopbevaring:
  • Dokumentation:
  • Standardeksempel:
  • BME680 Element:
  • PMS -element:
  • Logelement:
  • NtpTime Element:

Anbefalede: