Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Forbered Arduino -miljø til ESP8266
- Trin 2: Inkluder påkrævede biblioteker
- Trin 3: Tilpas standardeksempelskitsen
- Trin 4: Upload webgrænsefladen
- Trin 5: Tilføj BME680 -sensoren
- Trin 6: Tilføj PMS5003 -sensoren
- Trin 7: Tilføjelse af nogle netværksfunktioner
- Trin 8: Tilføjelse af noget logning
- Trin 9: Handlinger
- Trin 10: Billeder og konfigurationsfiler
![Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin](https://i.howwhatproduce.com/images/006/image-16348-j.webp)
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: Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet: 10 trin](https://i.ytimg.com/vi/3OFUg4fjfjw/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
![Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet](https://i.howwhatproduce.com/images/006/image-16348-1-j.webp)
![Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet](https://i.howwhatproduce.com/images/006/image-16348-2-j.webp)
![Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet](https://i.howwhatproduce.com/images/006/image-16348-3-j.webp)
![Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet Byg en intern IoT luftkvalitetssensor Ingen sky påkrævet](https://i.howwhatproduce.com/images/006/image-16348-4-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-5-j.webp)
- Installer nyeste version af Arduino IDE (aktuelt version 1.8.2).
- Brug Board Manager til at installere installationen af esp8266-supporten. En detaljeret instruktion findes her:
- 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](https://i.howwhatproduce.com/images/006/image-16348-6-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-7-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-8-j.webp)
![Tilføj BME680 -sensoren Tilføj BME680 -sensoren](https://i.howwhatproduce.com/images/006/image-16348-9-j.webp)
![Tilføj BME680 -sensoren Tilføj BME680 -sensoren](https://i.howwhatproduce.com/images/006/image-16348-10-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-11-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-12-j.webp)
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](https://i.howwhatproduce.com/images/006/image-16348-13-j.webp)
![Billeder og konfigurationsfiler Billeder og konfigurationsfiler](https://i.howwhatproduce.com/images/006/image-16348-14-j.webp)
![Billeder og konfigurationsfiler Billeder og konfigurationsfiler](https://i.howwhatproduce.com/images/006/image-16348-15-j.webp)
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:
Shop Vac Auto Switch (ingen Arduino påkrævet): 7 trin
![Shop Vac Auto Switch (ingen Arduino påkrævet): 7 trin Shop Vac Auto Switch (ingen Arduino påkrævet): 7 trin](https://i.howwhatproduce.com/images/002/image-4736-j.webp)
Shop Vac Auto Switch (ingen Arduino påkrævet): Som mange hobbyfolk træværkere har jeg et butiksvakuum fastgjort til min bordsav, og hver gang jeg vil udføre et snit, skal jeg tænde det, før jeg tænder saven. Det kan se fjollet ud, men det er ondt i nakken at tænde og slukke butiksvakuummet så mange
Neoboardlampe - Ingen SD påkrævet og 3D -printet: 3 trin (med billeder)
![Neoboardlampe - Ingen SD påkrævet og 3D -printet: 3 trin (med billeder) Neoboardlampe - Ingen SD påkrævet og 3D -printet: 3 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-1471-17-j.webp)
Neoboard -lampe - Ingen SD påkrævet og 3D -printet: Efter at have bygget en Minecraft -lampe til mit 7 -årige barn, ville hans lillebror have noget lignende. Han er mere til SuperMario end til Minecraft, så hans natlys vil vise videospil sprites. Dette projekt er baseret på The Neoboard -projektet, men pa
Føj en ventilator til en computerkølelegeme - ingen skruer påkrævet: 5 trin
![Føj en ventilator til en computerkølelegeme - ingen skruer påkrævet: 5 trin Føj en ventilator til en computerkølelegeme - ingen skruer påkrævet: 5 trin](https://i.howwhatproduce.com/images/002/image-5028-2-j.webp)
Føj en ventilator til en computerkølelegeme - ingen skruer påkrævet: Problemet: Jeg har (haft) et bundkort på min filserver med en ventilatorfri køleplade over, hvad jeg mener er nordbroen. Ifølge sensorprogrammet (ksensorer), jeg havde kørt i Fedora, holdt bundkortets temperatur omkring 190F. Mit skød
Chrome webudvidelse - Ingen forudgående kodningserfaring påkrævet: 6 trin
![Chrome webudvidelse - Ingen forudgående kodningserfaring påkrævet: 6 trin Chrome webudvidelse - Ingen forudgående kodningserfaring påkrævet: 6 trin](https://i.howwhatproduce.com/images/002/image-5763-j.webp)
Chrome webudvidelse - Ingen forudgående kodningsoplevelse nødvendig: Chrome -udvidelser er små programmer, der er bygget til at forbedre brugernes browseroplevelse. For mere information om kromudvidelser, gå til https://developer.chrome.com/extensions.For at lave en Chrome Webudvidelse kræves kodning, så det er meget nyttigt at gennemgå HT
Laptop -køler / stativ uden omkostninger (ingen lim, ingen boring, ingen møtrikker og bolte, ingen skruer): 3 trin
![Laptop -køler / stativ uden omkostninger (ingen lim, ingen boring, ingen møtrikker og bolte, ingen skruer): 3 trin Laptop -køler / stativ uden omkostninger (ingen lim, ingen boring, ingen møtrikker og bolte, ingen skruer): 3 trin](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11132735-zero-cost-laptop-cooler-stand-no-glue-no-drilling-no-nuts-and-bolts-no-screws-3-steps-j.webp)
Nul omkostninger bærbar køler / stativ (ingen lim, ingen boring, ingen møtrikker og bolte, ingen skruer): OPDATERING: VENLIGST STEMNING FOR MIN & INSTRUKTABEL, TAK ^ _ ^ DU KAN OGSÅ LIGE STEMME FOR MINE ANDRE TILMELD DIG PÅ www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ ELLER KAN STEMME FOR MIN BEDSTE VENNES