Indholdsfortegnelse:
Video: Arduino Powered Dust Particles Monitoring Station: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Du kan nogenlunde nemt bygge en DIY internet of things -enhed, der overvåger støvforurening i dit hjem for mindre end $ 50 og få besked, når støvniveauet bliver for højt, så du kan lufte rummet, eller du kan stille det udenfor og få besked, hvis det er sikkert at gå udenfor, hvis du bor i et meget forurenet område.
Jeg lavede dette som et skoleprojekt, så jeg havde ikke tid nok til at finde en service, der vil tage MQTT -beskeder og sende dem til dig som notifikationer eller e -mails.
Bemærk også, at hvis du holder sensoren tændt hele tiden, reduceres ventilatorens levetid.
Trin 1: Nødvendige dele
Hvad du skal bruge
- Arduino Uno
- Arduino Ethernet -skjold
- Partikelflasersensor (koster normalt $ 10- $ 30 på eBay/aliexpress)
- DHT11 temperatur- og fugtighedsføler (valgfrit)
- Brødbræt
- Jumper kabler
Trin 2: Saml delene
Først skal du tilslutte ethernet -skjoldet på Arduino
PM -sensoren har flere ledninger, men dem vi har brug for er VCC, GND, TX, RX.
Tilslut VCC og GND til henholdsvis + og - på brødbrættet.
Arduino har hardware RX og TX ben, men vi bruger softwareemulering af RX og TX ben på henholdsvis ben 2 og 3. Tilslut sensorens RX til TX på Arduino og TX på sensoren til RX på Arduino.
Hvis du skal bruge temperatursensoren, skal du tilslutte VCC- og GND -linjerne til + og - på brødbrættet og datalinjen til pin 7.
Trin 3: Koden
Du kan enten installere MQTT -mægler på en hindbærpi eller en computer, du altid har på derhjemme, eller bruge en MQTT -tjeneste i skyen, som Cloud MQTT. Derefter kan du skrive et script, der sender dataene som HTTP til et IFTT -webhook, da de endnu ikke understøtter MQTT -webhooks og konfigurerer meddelelser om, hvornår støvniveauer i dit hjem bliver for høje.
Arduino luftstation
#omfatte |
#omfatte |
#omfatte |
#omfatte |
#omfatte |
#omfatte |
#omfatte |
#omfatte |
#defineDHT11_PIN7 |
#definereRX_PIN2 |
#definereTX_PIN3 |
IPAddress ip (169, 169, 100, 98); |
byte mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
constint mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Klientforbindelser kan ikke have det samme forbindelsesnavn |
EthernetClient ethClient; |
PubSubClient -klient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
// Filer minFile; |
Strenge s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
hvis (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Kunne ikke konfigurere Ethernet ved hjælp af DHCP"); |
// forsøg med fast ip addr |
Ethernet.begynder (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (tilbagekald); |
forsinkelse (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
kulværdi; |
char previousValue; |
hvis (! client.connected ()) |
{ |
hvis (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("tilsluttet"); |
} |
} |
mens (pmSerial.available ()) { |
værdi = pmSerial.read (); |
hvis ((indeks == 0 && værdi! = 0x42) || (indeks == 1 && værdi! = 0x4d)) { |
Serial.println ("Kan ikke finde dataoverskriften."); |
Vend tilbage; |
} |
hvis (indeks == 4 || indeks == 6 || indeks == 8 || indeks == 10 || indeks == 12 || indeks == 14) { |
previousValue = værdi; |
} |
elseif (indeks == 5) { |
pm1 = 256 * previousValue + værdi; |
root ["pm1"] = abs (pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * previousValue + værdi; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * foregående værdi + værdi; |
root ["pm10"] = abs (pm10); |
} |
elseif (indeks> 15) { |
pause; |
} |
indeks ++; |
} |
mens (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
hvis (DHT.temperatur == -999 || DHT.fugtighed == -999) { |
root ["temperatur"] = "Ikke relevant"; |
root ["luftfugtighed"] = "Ikke relevant"; |
} andet { |
root ["temperatur"] = DHT.temperatur; |
root ["fugtighed"] = DHT.fugtighed; |
} |
sendResults (); |
id ++; |
forsinkelse (5000); |
} |
voidsendResults () { |
// offentliggøre til MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// debug til seriel |
root.printTo (seriel); |
Serial.print ('\ n'); |
} |
// Håndterer meddelelser, der er ankommet om emner, der er tilmeldt |
voidcallback (tegn* emne, byte* nyttelast, usigneret længde) { |
} |
se rawair_quality.ino hostet af ❤ af GitHub
Trin 4: Saml æsken
Jeg brugte bare en kasse jeg havde liggende og borede et hul til sensoren for at få luft fra og skar et hul ud for at kablerne skulle gå ud (selvom det var lidt for stort).
Jeg brugte limpuder til at fastgøre sensoren til kassen, så sensorens inputhul blev tilpasset det borede hul på kassen.
Endelig tilsluttede jeg ethernet og strømkabler.
Anbefalede:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: 8 trin (med billeder)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjorde den rigtige vej: Efter 1 års vellykket drift på 2 forskellige steder deler jeg mine solcelledrevne vejrstation projektplaner og forklarer, hvordan det udviklede sig til et system, der virkelig kan overleve over lang tid perioder fra solenergi. Hvis du følger
DIY Weather Station & WiFi Sensor Station: 7 trin (med billeder)
DIY Weather Station & WiFi Sensor Station: I dette projekt vil jeg vise dig, hvordan du opretter en vejrstation sammen med en WiFi -sensorstation. Sensorstationen måler lokale temperatur- og fugtighedsdata og sender den via WiFi til vejrstationen. Vejrstationen viser derefter t
Arduino og Raspberry Pi Powered Pet Monitoring System: 19 trin (med billeder)
Arduino og Raspberry Pi Powered Pet Monitoring System: For nylig, mens vi var på ferie, indså vi den manglende forbindelse med vores kæledyr Beagle. Efter nogle undersøgelser fandt vi produkter med et statisk kamera, der tillod en at overvåge og kommunikere med sit kæledyr. Disse systemer havde visse fordele ved
Solar Powered WiFi Weather Station V1.0: 19 trin (med billeder)
Solcelledrevet WiFi vejrstation V1.0: I denne instruktør vil jeg vise dig, hvordan du bygger en solcelledrevet WiFi vejrstation med et Wemos -kort. Wemos D1 Mini Pro har en lille formfaktor og en lang række plug-and-play-skjolde, der gør den til en ideel løsning til hurtigt at få
IoT Plant Monitoring System (Med IBM IoT Platform): 11 trin (med billeder)
IoT Plant Monitoring System (Med IBM IoT Platform): Oversigt Plant Monitoring System (PMS) er en applikation bygget med personer, der er i arbejderklassen med en grøn tommelfinger i tankerne. I dag har arbejdende personer travlt end nogensinde før; fremme deres karriere og styre deres økonomi