Përmbajtje:
Video: Stacioni i monitorimit të grimcave të pluhurit me Arduino: 4 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Ju mund të krijoni me lehtësi një pajisje DIY të gjërave që monitoron ndotjen e pluhurit në shtëpinë tuaj për më pak se 50 dollarë dhe të njoftoheni kur niveli i pluhurit të jetë shumë i lartë, kështu që ju mund të ajrosni dhomën, ose mund ta vendosni jashtë dhe të njoftoheni nëse është e sigurt për të dalë jashtë nëse jetoni në një zonë shumë të ndotur.
E bëra këtë si një projekt shkollor, kështu që nuk kisha kohë të mjaftueshme për të gjetur një shërbim që do të merrte mesazhe MQTT dhe do t'ju dërgonte si njoftime ose email.
Gjithashtu vini re se mbajtja e sensorit të ndezur gjatë gjithë kohës do të zvogëlojë jetëgjatësinë e ventilatorit.
Hapi 1: Pjesët e nevojshme
Ajo që do t'ju duhet
- Arduino Uno
- Mburoja Arduino Ethernet
- Sensori lazer i grimcave (zakonisht shkon për $ 10-$ 30 në eBay/aliexpress)
- Sensori i temperaturës dhe lagështisë DHT11 (opsional)
- Breadboard
- Kabllo kërcyes
Hapi 2: Mblidhni Pjesët
Së pari, duhet të lidhni mburojën ethernet në Arduino
Sensori PM ka tela të shumtë, por ato që na duhen janë VCC, GND, TX, RX.
Lidhni VCC dhe GND përkatësisht me + dhe - në panelin e bukës.
Arduino ka kunja harduerike RX dhe TX, por ne do të përdorim emulimin e softuerit të kunjave RX dhe TX në kunjat 2 dhe 3 respektivisht. Lidheni RX të sensorit me TX të Arduino dhe TX të sensorit me RX të Arduino.
Nëse do të përdorni sensorin e temperaturës, lidhni linjat VCC dhe GND në + dhe - në Breadboard dhe linja e të dhënave në pin 7.
Hapi 3: Kodi
Ju ose mund të instaloni ndërmjetësin MQTT në një pi mjedër ose një kompjuter që keni gjithmonë në shtëpi, ose të përdorni një shërbim cloud MQTT, si Cloud MQTT. Pastaj mund të shkruani një skenar që dërgon të dhënat si HTTP në një webhook IFTT, pasi ato ende nuk mbështesin lidhëset e internetit MQTT dhe vendosni njoftime kur nivelet e pluhurit në shtëpinë tuaj bëhen shumë të larta.
Stacioni ajror Arduino
#përfshi |
#përfshi |
#përfshi |
#përfshi |
#përfshi |
#përfshi |
#përfshi |
#përfshi |
#përcaktoDHT11_PIN7 |
#përcaktoRX_PIN2 |
#përcaktoTX_PIN3 |
Adresa IP IP (169, 169, 100, 98); |
byte mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
përmbajtja mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Lidhjet me klientët nuk mund të kenë të njëjtin emër lidhjeje |
EthernetClient ethClient; |
Klienti PubSubClient (ethClient); |
SoftueriSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
ID e panënshkruar; |
// Dosja myFile; |
Varg s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.filloj (57600); |
pmSerial.filloj (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
nëse (Ethernet.filloj (mac) == 0) |
{ |
Serial.println ("Konfigurimi i Ethernet dështoi duke përdorur DHCP"); |
// përpjekje me shtues ip fiks |
Ethernet.filloj (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (kthim në telefon); |
vonesa (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindeksi = 0; |
vlerë char; |
char previousVlera; |
nëse (! klienti.lidhur ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("i lidhur"); |
} |
} |
ndërsa (pmSerial. në dispozicion ()) { |
vlera = pmSerial.read (); |
nëse ((indeksi == 0 && vlera! = 0x42) || (indeksi == 1 && vlera! = 0x4d)) { |
Serial.println ("Nuk mund të gjej kokën e të dhënave."); |
kthim; |
} |
nëse (indeksi == 4 || indeksi == 6 || indeksi == 8 || indeksi == 10 || indeksi == 12 || indeksi == 14) { |
previousVlera = vlera; |
} |
elseif (indeksi == 5) { |
pm1 = 256 * vlera e mëparshme + vlera; |
rrënjë ["pm1"] = abs (pm1); |
} |
elseif (indeksi == 7) { |
pm2_5 = 256 * vlera e mëparshmeVlera +; |
rrënjë ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeksi == 9) { |
pm10 = 256 * vlera e mëparshme + vlera; |
rrënjë ["pm10"] = abs (pm10); |
} |
elseif (indeksi> 15) { |
pushim; |
} |
indeks ++; |
} |
ndërsa (pmSerial.disponueshëm ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
nëse (DHT.temperatura == -999 || DHT. lagështia == -999) { |
rrënja ["temperatura"] = "N/A"; |
rrënja ["lagështia"] = "N/A"; |
} tjetër { |
rrënja ["temperatura"] = DHT.temperatura; |
rrënjë ["lagështia"] = DHT. lagështi; |
} |
sendResults (); |
id ++; |
vonesa (5000); |
} |
voidsendResults () { |
// publikoni në MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// korrigjim në serial |
root.printTo (Serial); |
Serial.print ('\ n'); |
} |
// Trajton mesazhet e mbërritura në temat (et) e regjistruara |
voidcallback (tema* e karakterit, bajti* ngarkesa, gjatësia pa shenjë) { |
} |
shikoni rawair_quality.ino të organizuar me ❤ nga GitHub
Hapi 4: Mblidhni Kutinë
Unë sapo përdor një kuti që kisha shtrirë përreth dhe shpova një vrimë për sensorin që të merrte ajër dhe preva një vrimë që kabllot të dilnin (megjithëse ishte pak shumë e madhe).
Kam përdorur jastëkë zam për të bashkuar sensorin në kuti, duke e lidhur vrimën hyrëse të sensorit me vrimën e shpuar në kuti.
Më në fund, futa kabllot e ethernetit dhe energjisë.
Recommended:
Matja e grimcave të imëta portative: 4 hapa (me fotografi)
Matja e grimcave të imëta portative: Qëllimi i këtij projekti është të matë cilësinë e ajrit duke matur sasinë e grimcave të imëta. Falë transportueshmërisë së tij, do të jetë e mundur të kryhen matje në shtëpi ose në lëvizje. Cilësia e ajrit dhe grimcat e imëta: Lëndë e grimcuar (
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit DIY & Stacioni i sensorit WiFi: 7 hapa (me fotografi)
DIY Weather Station & WiFi Sensor Station: Në këtë projekt do t'ju tregoj se si të krijoni një stacion moti së bashku me një stacion sensor WiFi. Stacioni i sensorit mat të dhënat e temperaturës dhe lagështisë lokale dhe i dërgon ato, përmes WiFi, në stacionin e motit. Stacioni i motit më pas shfaq t
Studimi i pluhurit Arduino: 8 hapa
Studimi i pluhurit Arduino: Si do të ishte të jetosh në Mars? A thith ajri? A eshte e sigurt? Sa pluhur ka? Sa të shpeshta janë stuhitë? A keni menduar ndonjëherë përgjigjen e ndonjë prej këtyre pyetjeve?
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH i ngritur: 3 hapa
Stacioni i energjisë në konvikte/Stacioni i karikimit NiMH: Unë kam një rrëmujë të një stacioni të energjisë. Doja të kondensoja gjithçka që ngarkohej në një tavolinë pune dhe të kisha vend për të bashkuar/etj në të. Lista e gjërave të energjisë: Telefoni celular (i prishur, por ngarkon bateritë e telefonit tim, kështu që është gjithmonë i kyçur dhe rrjedh karikime