Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Forbered Arduino -miljøet for ESP8266
- Trinn 2: Inkluder nødvendige biblioteker
- Trinn 3: Tilpass standardeksempelskissen
- Trinn 4: Last opp webgrensesnittet
- Trinn 5: Legg til BME680 -sensoren
- Trinn 6: Legg til PMS5003 -sensoren
- Trinn 7: Legge til noen nettverksfunksjoner
- Trinn 8: Legge til litt logging
- Trinn 9: Handlinger
- Trinn 10: Bilder og konfigurasjonsfiler
Video: Bygg en intern IoT luftkvalitetssensor Ingen sky kreves: 10 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Kvaliteten på innendørs eller utendørs luft avhenger av mange forurensningskilder og også av været.
Denne enheten fanger noen vanlige og noen av de mest interessante parameterne ved å bruke 2 sensorbrikker.
- Temperatur
- Luftfuktighet
- Press
- Organisk gass
- Mikropartikler
Sensorene som brukes her er BME680 for å få temperatur, fuktighet, trykk og organiske gassverdier og PMS5003 for å få tetthet av mikropartiklene.
Ved å bruke HomeDing -biblioteket er det enkelt å bygge en enhet som bare er koblet til hjemmenettverket ditt og som kan nås og kontrolleres av hvilken som helst nettleser på nettverket. Den kommer med et utvalg av elementer som tillater bruk av de vanligste sensorbrikkene, enhetene og andre tjenester.
Det gir også en komplett løsning for å være vert for en intern side på enheten i stedet for å bruke en skybasert løsning for å vise sensordata og samhandle med enheten.
Rekvisita
Alt du trenger for å bygge dette prosjektet er et ESP8266 -basert kort som nodemcu -kortet og sett med sensorer for å måle luftkvaliteten. HomeDing -biblioteket som ble brukt i dette prosjektet støtter noen av de vanlige sensorbrikkene for temperatur, fuktighet, trykk og kvalitet. Her brukes BMP680 -brikken.
- En USB-kontakt og en mikro-usb-kabel for strømforsyning.
- 1 nodemcu -kort med ESP8266 CPU.
- 1 BME680 sensor breakout board.
- 1 PM2,5 luftpartikkel lasersensor type PMS5003
Det er enkelt å bytte BME680 -sensor med en DHT22 -sensor, ettersom de også støttes av biblioteket blant mange andre.
Trinn 1: Forbered Arduino -miljøet for ESP8266
- Installer siste versjon av Arduino IDE (nåværende versjon 1.8.2).
- Bruk Board Manager for å installere installasjonen av esp8266-støtten. En detaljert instruksjon finner du her:
- Sett opp brettalternativene for en NodeMCU 1.0 med 1MByte SPIFFS File System som vist på skjermbildet
Trinn 2: Inkluder nødvendige biblioteker
HomeDing -biblioteket er avhengig av noen vanlige ekstrabiblioteker for sensorer og skjermer for å fungere.
Når du installerer HomeDing -biblioteket, vil du se en popup med disse nødvendige bibliotekene som kan installeres automatisk og vises på bildet, og det er enkelt å installere dem alle.
Noen ganger (med ukjente årsaker) mislykkes installasjonen av bibliotekene, så alle nødvendige biblioteker må installeres manuelt.
Flere detaljer om de nødvendige bibliotekene finnes på dokumentasjonsnettstedet på
Dette er listen over gjeldende nødvendige biblioteker:
- Adafruit NeoPixel
- LiquidCrystal_PCF8574.h
- ESP8266 og ESP32 Oled Driver for SSD1306 -skjerm
- RotaryEncoder
- DHT -sensorbibliotek for ESPx
- OneWire
PMS5003 luftpartikkel lasersensor kommuniserer ved hjelp av et 9600 baud serielt linjesignal. Dette signalet fanges opp ved å bruke SoftwareSerial -biblioteket som følger med installasjonen av ESP8266 -verktøyene. Sørg for å ikke ha en eldre versjon installert som et bibliotek.
Trinn 3: Tilpass standardeksempelskissen
Standardeksemplet inneholder allerede noen av de mer vanlige sensorene som elementer, så bare noen konfigurasjon vil være nødvendig.
Dette gjelder BME680 -sensoren som støttes av BME680 -elementet.
PMS5003 -sensoren er mindre vanlig og må aktiveres ved å inkludere PMS -elementet i fastvaren. Dette gjøres ved å definere #define HOMEDING_INCLUDE_PMS i elementregisterdelen av skissen
#define HOMEDING_INCLUDE_BME680#definere HOMEDING_INCLUDE_PMS
For enkelhet ved å legge den nye enheten til nettverket kan du legge til SSID og passordfrasen til ditt hjemmenett -WiFi i secrets.h -filen ved siden av standard.ino -skissefilen. Men du kan også bruke den innebygde WiFi Manager til å legge enheten til nettverket uten denne hardkodede konfigurasjonen.
Nå er alt angående implementering av skissen gjort, og fastvaren kan kompileres og lastes opp.
Trinn 4: Last opp webgrensesnittet
Standardeksemplet kommer med en datamappe som inneholder all fil for webgrensesnittet.
Før du laster opp disse filene, vil du kanskje legge til env.json- og config.json -filen du kan finne med denne artikkelen fordi dette vil gjøre ting enklere.
Innholdet i disse filene er det som gjør IoT -enheten spesiell og oppfører seg som en luftkvalitetssensor. Det er forklart i detalj i denne historien.
Bruk opplastingsverktøyet ESP8266 og last opp alle filene. Den trenger en omstart for å aktivere konfigurasjonen.
Trinn 5: Legg til BME680 -sensoren
BME680 -sensoren kommuniserer med kortet ved hjelp av I2C -bussen.
Siden dette muligens deles med andre utvidelser som andre sensorer eller skjermer, er det konfigurert på enhetsnivå i env.json sammen med nettverksnavnet til enheten. Her er et uttrukket utvalg av enhets- og I2C -innstillinger:
"enhet": {
"0": {"name": "airding", "description": "Air Quality Sensor", … "i2c-scl": "D2", "i2c-sda": "D1"}}
På brødbrettet kan du se tilkoblingskablene til sensoren: 3.3V = rød, GND = svart, SCL = gul, SDA = blå
Konfigurasjonen for BME680 kan brukes i config.json:
"bme680": {
"bd": {"address": "0x77", "readtime": "10s"}}
Vi vil legge til handlingene senere.
For å teste oppsettet, bare bruk en nettleser og åpne https://airding/board.htm, og du vil se de faktiske verdiene til sensoren som vises, og de vil bli oppdatert omtrent hvert 10. sekund:
Trinn 6: Legg til PMS5003 -sensoren
Jeg fikk ikke en sensor med en brødbrettvennlig kontakt, så jeg måtte kutte av en av kontaktene på kabelen med loddejernet mitt for å feste den direkte til nodemcu -brettet. Du kan se det fremdeles på de siste bildene.
Strømmen til denne sensoren må tas fra Vin som normalt drives av USB -bussen. GND er det samme, men også tilgjengelig ved siden av Vin -pinnen.
Dataene fra sensoren overføres i et standard 9600 baud serielt format, slik at rx- og tx -pinnene og lesetid må konfigureres:
"pms": {
"pm25": {"description": "pm25 particle sensor", "pinrx": "D6", "pintx": "D5", "readtime": "10s"}}
Vi vil legge til handlingene senere.
For å teste oppsettet igjen, bare start enheten på nytt og bruk en nettleser og åpne https://airding/board.htm, og du vil se den faktiske pm35 -verdien til sensoren, og de vil bli oppdatert omtrent hvert 10. sekund, men denne verdien er normalt ikke endres ofte.
Du kan få høyere verdier ved å plassere et stearinlys ved siden av sensoren et lys produserer mye av disse partiklene.
Nå kan du sette alt i et fint hus fordi alle de andre konfigurasjonene og til og med programvareoppdateringer kan gjøres eksternt.
Trinn 7: Legge til noen nettverksfunksjoner
Følgende konfigurasjonsutdrag i env.json er mulig
- oppdatering av fastvaren over air
- lar detektere nettverket ved hjelp av SSDP -nettverksprotokollen og henter gjeldende tid fra en ntp -server.
{
… "Ota": {"0": {"port": 8266, "passwd": "123", "description": "Lytt etter" over the air "OTA -oppdateringer"}}, "ssdp": {"0 ": {" Manufacturer ":" yourname "}}," ntptime ": {" 0 ": {" readtime ":" 36h "," zone ": 2}}}
Du bør justere tidssonen til posisjonen din. Hvis du er i tvil kan du bruke nettstedet https://www.timeanddate.com/ for å få forskyvningen fra UTC/GMT. "2" er riktig for Tyskland om sommeren.
Du kan også justere ota -passordet etter å ha lest instruksjonene angående lagringsmodus i dokumentasjonen på
Etter en omstart kan du finne airding -enheten på nettverket, og etter å ha fått svar fra ntp -serveren er lokal tid tilgjengelig.
Trinn 8: Legge til litt logging
Bare de faktiske verdiene gir kanskje ikke nok, så noen flere elementer kan brukes.
For denne historien brukes Log -elementet og NPTTime -elementet til å registrere historien til sensorverdier i en loggfil, og Web -brukergrensesnittkortet for dette elementet kan vise det som en graf.
Følgende konfigurasjon oppretter de 2 loggelementene for gass og partikler:
{
"log": {"pm": {"description": "Logg av pm25", "filnavn": "/pmlog.txt", "filesize": "10000"}, "aq": {"description": " Logg over gasskvalitet "," filnavn ":" /aqlog.txt "," filesize ":" 10000 "}}}
Trinn 9: Handlinger
Nå må vi overføre de faktiske verdiene til loggelementene ved å bruke handlinger. Handlingene bruker en URL -notasjon for å overføre en kay og verdi til målelementet. Mange elementer støtter å sende ut handlinger på visse hendelser som skjer som å fange en ny sensorverdi.
Handlinger er konfigurert på elementet som sender ut handlinger. 2 oppføringer er nødvendige:
- Hendelsen pms/p25 onvalue sender den faktiske verdien til logg/pm -elementet ved hjelp av en verdihandling.
- Hendelsen bme680/bd ongas sender den faktiske verdien til logg/pm -elementet ved hjelp av en verdihandling.
{
"pms": {"pm25": {… "onvalue": "log/pm? value = $ v"}}, "bme680": {"bd": {… "ongas": "log/aq? value = $ v "}}}
Nå er alle elementene konfigurert.
Trinn 10: Bilder og konfigurasjonsfiler
Her er noen bilder av min siste IoT luftkvalitetssensor.
Konfigurasjonsfilene for nedlasting må gi nytt navn til *.json (nr. Txt) før de lastes opp.
Lenker og referanser
- HomeDing kildekodelager:
- Dokumentasjon:
- Standardeksempel:
- BME680 Element:
- PMS -element:
- Loggelement:
- NtpTime Element:
Anbefalt:
ESP32-CAM Ta bilder og send via e-post ved hjelp av SPIFF Memmory. -- INGEN SD -kort kreves: 4 trinn
ESP32-CAM Ta bilder og send via e-post ved hjelp av SPIFF Memmory. || INGEN SD-kort kreves: Hei folkens, ESP32-CAM-kortet er et rimelig utviklingskort som kombinerer en ESP32-S-brikke, et OV2640-kamera, flere GPIO-er for å koble til eksterne enheter og et microSD-kortspor. Den har en rekke applikasjoner fra videostreaming webserver, bu
Ettermonter BLE -kontroll til høyeffektbelastninger - Ingen ekstra ledninger kreves: 10 trinn (med bilder)
Ettermonter BLE -kontroll til høyeffektbelastninger - Ingen ekstra ledninger kreves: Oppdatering: 13. juli 2018 - lagt til 3 -terminal regulator for toroidforsyning Denne instruksive dekker BLE (Bluetooth Low Energy) kontroll av en eksisterende belastning i området 10W til> 1000W. Strømmen er ekstern bytte fra Android Mobile via pfodApp. Nei
Slik søker du etter ting i Google Chrome ved hjelp av Microsoft Excel -makroer (INGEN KODING KUNNSKAP KREVES): 10 trinn
Slik søker du etter ting i Google Chrome ved hjelp av Microsoft Excel -makroer (ingen kodende kunnskap påkrevd): Visste du at du enkelt kan legge til en søkefunksjon i Excel -regnearket?! Jeg kan vise deg hvordan du gjør det i et par enkle trinn! For å gjøre dette trenger du følgende: En datamaskin - (CHECK!) Microsoft Excel Google Chrome installert på deg
Gjør Alexa ferdigheter med Cloud9- Ingen kredittkort eller maskinvare kreves: 7 trinn (med bilder)
Gjør Alexa ferdigheter med Cloud9- Ingen kredittkort eller maskinvare kreves: Hei, i dag skal jeg vise deg hvordan du lager din egen Amazon Alexa ferdighet ved hjelp av Cloud9. For de av dere som ikke vet, er Cloud9 en online IDE som støtter mange forskjellige språk, og det er hundre prosent gratis - ingen krav til kredittkort
Null kostnad bærbar kjøler / stativ (ingen lim, ingen boring, ingen muttere og bolter, ingen skruer): 3 trinn
Nullkostnad bærbar kjøler / stativ (uten lim, ingen boring, ingen muttere og bolter, ingen skruer): OPPDATERING: VENNLIGST & STEMMELSE & STEMME FOR MITT INSTRUKTABELT, TAKK ^ _ ^ DU KAN OGSÅ LIKE FOR Å STEMME FOR ANDRE MELD PÅ www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ ELLER KANSKE STEMME FOR MIN BESTE VENN