Innholdsfortegnelse:
Video: Arduino Powered Dust Particles Monitoring Station: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Du kan ganske enkelt bygge en DIY -enhet for ting som overvåker støvforurensning i hjemmet ditt for mindre enn $ 50 og bli varslet når støvnivået blir for høyt, slik at du kan lufte rommet, eller du kan sette det utenfor og bli varslet om det er trygt å gå utenfor hvis du bor i et sterkt forurenset område.
Jeg laget dette som et skoleprosjekt, så jeg hadde ikke nok tid til å finne en tjeneste som tar MQTT -meldinger og sender dem til deg som varsler eller e -post.
Vær også oppmerksom på at det å holde sensoren drevet til enhver tid vil redusere viftens levetid.
Trinn 1: Nødvendige deler
Hva du trenger
- Arduino Uno
- Arduino Ethernet -skjerm
- Partikkelmateriale lasersensor (koster vanligvis $ 10- $ 30 på eBay/aliexpress)
- DHT11 temperatur- og fuktighetssensor (valgfritt)
- Brødbrett
- Hoppekabler
Trinn 2: Monter delene
Først må du koble ethernet -skjoldet på Arduino
PM -sensoren har flere ledninger, men de vi trenger er VCC, GND, TX, RX.
Koble VCC og GND til henholdsvis + og - på brødbrettet.
Arduino har maskinvare RX og TX pins, men vi bruker programvareemulering av henholdsvis RX og TX pins på pins 2 og 3. Koble sensorens RX til TX på Arduino og TX på sensoren til RX på Arduino.
Hvis du skal bruke temperatursensoren, kobler du VCC- og GND -linjene til + og - på brødbrettet og datalinjen til pinne 7.
Trinn 3: Koden
Du kan enten installere MQTT -megler på en bringebærpi eller en datamaskin du alltid har på hjemme, eller bruke en MQTT -tjeneste i skyen, som Cloud MQTT. Deretter kan du skrive et skript som sender dataene som HTTP til en IFTT webhook, ettersom de ennå ikke støtter MQTT webhooks og konfigurerer varsler for når støvnivåer i hjemmet ditt blir for høyt.
Arduino flystasjon
#inkludere |
#inkludere |
#inkludere |
#inkludere |
#inkludere |
#inkludere |
#inkludere |
#inkludere |
#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 ha samme tilkoblingsnavn |
EthernetClient ethClient; |
PubSubClient -klient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
usignert lang ID; |
// Fil myFile; |
Streng 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 hjelp av DHCP"); |
// forsøk med fast ip addr |
Ethernet.begynner (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (tilbakeringing); |
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; |
røye verdi; |
char previousValue; |
hvis (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("tilkoblet"); |
} |
} |
while (pmSerial.available ()) { |
verdi = pmSerial.read (); |
hvis ((indeks == 0 && verdi! = 0x42) || (indeks == 1 && verdi! = 0x4d)) { |
Serial.println ("Kan ikke finne dataoverskriften."); |
komme tilbake; |
} |
hvis (indeks == 4 || indeks == 6 || indeks == 8 || indeks == 10 || indeks == 12 || indeks == 14) { |
previousValue = verdi; |
} |
elseif (indeks == 5) { |
pm1 = 256 * forrige verdi + verdi; |
root ["pm1"] = abs (pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * forrige verdi + verdi; |
root ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * forrige verdi + verdi; |
root ["pm10"] = abs (pm10); |
} |
elseif (indeks> 15) { |
gå i stykker; |
} |
indeks ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
hvis (DHT.temperatur == -999 || DHT.fuktighet == -999) { |
root ["temperatur"] = "Ikke relevant"; |
root ["fuktighet"] = "N/A"; |
} annet { |
root ["temperatur"] = DHT.temperatur; |
root ["fuktighet"] = DHT.fuktighet; |
} |
sendResults (); |
id ++; |
forsinkelse (5000); |
} |
voidsendResults () { |
// publiser til MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// debug to serial |
root.printTo (seriell); |
Serial.print ('\ n'); |
} |
// Håndterer meldinger som kommer om emne (r) som abonnerer |
voidcallback (tegn* emne, byte* nyttelast, usignert lengde) { |
} |
se rawair_quality.ino hostet av ❤ av GitHub
Trinn 4: Monter esken
Jeg brukte bare en boks jeg hadde liggende og boret et hull for sensoren for å få luft fra og kuttet ut et hull for at kablene skulle gå ut (selv om det var litt for stort).
Jeg brukte limputer for å feste sensoren til esken, og justere inngangshullet til sensoren med det borede hullet på esken.
Til slutt koblet jeg til ethernet og strømkabler.
Anbefalt:
Arduino Soil Moisture Monitoring Stick - Glem aldri å vanne plantene dine: 4 trinn (med bilder)
Arduino Soil Moisture Monitoring Stick - Glem aldri å vanne plantene dine: Glemmer du ofte å vanne innendørs planter? Eller kanskje du gir dem for mye oppmerksomhet og over vann dem? Hvis du gjør det, bør du lage deg en batteridrevet jordfuktighetsovervåkingspinne. Denne skjermen bruker en kapasitiv jordfuktighet
Solar Powered WiFi Weather Station V1.0: 19 trinn (med bilder)
Solar Powered WiFi Weather Station V1.0: I denne instruksen skal jeg vise deg hvordan du bygger en soldrevet WiFi Weather Station med et Wemos -kort. Wemos D1 Mini Pro har en liten formfaktor og et bredt utvalg av plug-and-play-skjold som gjør den til en ideell løsning for raskt å få
Portable Micro Particles Counter PM1 PM2.5 PM10: 20 trinn (med bilder)
Portable Micro Particles Counter PM1 PM2.5 PM10: I dag er luftforurensning allestedsnærværende og mer spesielt i byene våre. Store byer er byttedyr hele året med forurensningsnivåer som noen ganger når (og ofte for visse) nivåer som er veldig farlige for menneskers helse. Barn er ekstremt følsomme for
IoT Plant Monitoring System (Med IBM IoT Platform): 11 trinn (med bilder)
IoT Plant Monitoring System (Med IBM IoT Platform): Oversikt Plant Monitoring System (PMS) er et program bygget med enkeltpersoner som er i arbeiderklassen med en grønn tommel i tankene. I dag er arbeidsindivider travlere enn noen gang før; fremme karrieren og administrere økonomien
Smart Home Monitoring Bruke Alexa og Arduino: 9 trinn (med bilder)
Overvåking av smarthus ved hjelp av Alexa og Arduino: I nåtiden tilbringer folk mer tid på arbeidsplassen enn i hjemmet. Derfor er det behov for et hjemmemonitoreringssystem hvor folk kan bli kjent med husets forhold mens de er på jobb. Det ville vært enda bedre hvis en