Innehållsförteckning:
Video: Arduino Powered Dust Particles Monitoring Station: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Du kan ganska enkelt bygga en DIY -enhet för saker som övervakar dammföroreningar i ditt hem för mindre än $ 50 och få ett meddelande när dammnivån blir för hög så att du kan lufta rummet, eller så kan du ställa det utanför och få ett meddelande om det är säkert att gå ut om du bor i ett mycket förorenat område.
Jag gjorde detta som ett skolprojekt, så jag hade inte tillräckligt med tid att hitta en tjänst som tar MQTT -meddelanden och skickar dem till dig som meddelanden eller e -postmeddelanden.
Observera också att när du håller sensorn påslagen hela tiden minskar fläktens livslängd.
Steg 1: Delar som behövs
Vad du behöver
- Arduino Uno
- Arduino Ethernet -sköld
- Partikelsensorsensor (kostar vanligtvis $ 10- $ 30 på eBay/aliexpress)
- DHT11 temperatur- och fuktsensor (tillval)
- Bakbord
- Startkablar
Steg 2: Montera delarna
Först måste du ansluta ethernet -skärmen på Arduino
PM -sensorn har flera ledningar, men de vi behöver är VCC, GND, TX, RX.
Anslut VCC och GND till + och - på brödbrädan.
Arduino har hårdvaru -RX- och TX -stift, men vi kommer att använda programvaruemulering av RX- och TX -stift på stift 2 respektive 3. Anslut sensorns RX till TX på Arduino och TX på sensorn till RX på Arduino.
Om du ska använda temperatursensorn, anslut VCC- och GND -linjerna till + och - på brödbrädan och dataraden till stift 7.
Steg 3: Koden
Du kan antingen installera MQTT -mäklare på en hallon -pi eller en dator som du alltid har på hemma, eller använda en moln -MQTT -tjänst, som Cloud MQTT. Sedan kan du skriva ett skript som skickar data som HTTP till en IFTT -webhook, eftersom de ännu inte stöder MQTT -webhooks och ställer in aviseringar för när dammnivåer i ditt hem blir för höga.
Arduino flygstation
#omfatta |
#omfatta |
#omfatta |
#omfatta |
#omfatta |
#omfatta |
#omfatta |
#omfatta |
#definieraDHT11_PIN7 |
#definieraRX_PIN2 |
#definieraTX_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"; // Klientanslutningar kan inte ha samma anslutningsnamn |
EthernetClient etClient; |
PubSubClient -klient (etClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
osignerat långt id; |
// File myFile; |
Sträng s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
if (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Det gick inte att konfigurera Ethernet med DHCP"); |
// försök med fast ip addr |
Ethernet. Börjar (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (återuppringning); |
fördröjning (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; |
röding värde; |
char previousValue; |
om (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("ansluten"); |
} |
} |
medan (pmSerial.available ()) { |
värde = pmSerial.read (); |
if ((index == 0 && värde! = 0x42) || (index == 1 && värde! = 0x4d)) { |
Serial.println ("Kan inte hitta datahuvudet."); |
lämna tillbaka; |
} |
if (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
föregående värde = värde; |
} |
elseif (index == 5) { |
pm1 = 256 * föregående värde + värde; |
root ["pm1"] = abs (pm1); |
} |
elseif (index == 7) { |
pm2_5 = 256 * föregående värde + värde; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (index == 9) { |
pm10 = 256 * föregående värde + värde; |
root ["pm10"] = abs (pm10); |
} |
elseif (index> 15) { |
ha sönder; |
} |
index ++; |
} |
medan (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
om (DHT.temperatur == -999 || DHT.fuktighet == -999) { |
root ["temperatur"] = "Ej tillgängligt"; |
root ["fuktighet"] = "Ej tillgängligt"; |
} annat { |
root ["temperatur"] = DHT.temperatur; |
root ["fuktighet"] = DHT.fuktighet; |
} |
sendResults (); |
id ++; |
fördröjning (5000); |
} |
voidsendResults () { |
// publicera till MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// felsöka till seriell |
root.printTo (seriell); |
Serial.print ('\ n'); |
} |
// Hanterar meddelanden som kommit till ämnen som prenumererar |
voidcallback (karaktär* ämne, byte* nyttolast, osignerad längd) { |
} |
visa rawair_quality.ino värd med ❤ av GitHub
Steg 4: Montera lådan
Jag använde bara en låda som jag hade liggande och borrade ett hål för sensorn för att få luft från och skar ut ett hål för att kablarna skulle gå ut (även om det var lite för stort).
Jag använde limkuddar för att fästa sensorn i lådan och anpassa sensorns ingångshål med det borrade hålet på lådan.
Slutligen kopplade jag in ethernet och strömkablarna.
Rekommenderad:
NaTaLia Weather Station: Arduino Solar Powered Weather Station Gjord på rätt sätt: 8 steg (med bilder)
NaTaLia väderstation: Arduino soldriven väderstation gjord på rätt sätt: Efter 1 års framgångsrik drift på 2 olika platser delar jag mina solcellsdrivna väderstationsprojektplaner och förklarar hur det utvecklades till ett system som verkligen kan överleva över lång tid perioder från solenergi. Om du följer
DIY Weather Station & WiFi Sensor Station: 7 steg (med bilder)
DIY Weather Station & WiFi Sensor Station: I det här projektet kommer jag att visa dig hur du skapar en väderstation tillsammans med en WiFi -sensorstation. Sensorstationen mäter lokala temperatur- och luftfuktighetsdata och skickar den via WiFi till väderstationen. Väderstationen visar sedan t
Arduino och Raspberry Pi Powered Pet Monitoring System: 19 steg (med bilder)
Arduino och Raspberry Pi Powered Pet Monitoring System: Nyligen under semestern insåg vi bristen på anslutning till vår pet Beagle. Efter en del undersökningar hittade vi produkter med en statisk kamera som gjorde det möjligt för en att övervaka och kommunicera med sitt husdjur. Dessa system hade vissa fördelar med
Solar Powered WiFi Weather Station V1.0: 19 steg (med bilder)
Solar Powered WiFi Weather Station V1.0: I den här instruktionsboken ska jag visa dig hur du bygger en soldriven WiFi -väderstation med ett Wemos -kort. Wemos D1 Mini Pro har en liten formfaktor och ett brett utbud av plug-and-play-skärmar som gör den till en idealisk lösning för att snabbt få
Portable Micro Particles Counter PM1 PM2.5 PM10: 20 Steg (med bilder)
Portable Micro Particles Counter PM1 PM2.5 PM10: Numera är luftföroreningar allestädes närvarande och mer särskilt i våra städer. Stora städer är byte hela året med föroreningsnivåer som ibland når (och ofta för vissa) nivåer som är mycket farliga för människors hälsa. Barn är extremt känsliga för