Turinys:
- 1 žingsnis: reikalingos dalys
- 2 žingsnis: Surinkite dalis
- 3 žingsnis: Kodas
- 4 žingsnis: Surinkite dėžutę
Video: „Arduino“dulkių dalelių stebėjimo stotis: 4 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Galite gana lengvai sukurti „pasidaryk pats“daiktų interneto įrenginį, kuris stebi jūsų namų dulkių už mažiau nei 50 USD, ir gauti pranešimą, kai dulkių lygis tampa per didelis, kad galėtumėte vėdinti kambarį, arba galite nustatyti jį lauke ir gauti pranešimą, jei jis saugu išeiti į lauką, jei gyvenate labai užterštoje vietoje.
Tai padariau kaip mokyklos projektą, todėl neturėjau pakankamai laiko surasti paslaugą, kuri priims MQTT pranešimus ir išsiųs juos jums kaip pranešimus ar el.
Taip pat atkreipkite dėmesį, kad jutiklio nuolatinis maitinimas sumažins ventiliatoriaus tarnavimo laiką.
1 žingsnis: reikalingos dalys
Ko jums reikės
- Arduino Uno
- „Arduino Ethernet“skydas
- Kietųjų dalelių lazerinis jutiklis (paprastai kainuoja 10–30 USD „eBay“/„aliexpress“)
- DHT11 temperatūros ir drėgmės jutiklis (neprivaloma)
- Bandomoji Lenta
- Trumpieji kabeliai
2 žingsnis: Surinkite dalis
Pirmiausia turite prijungti „Arduino“eterneto skydą
PM jutiklis turi kelis laidus, tačiau mums reikia VCC, GND, TX, RX.
Prijunkite VCC ir GND prie + ir - duonos lentos.
„Arduino“turi aparatūros RX ir TX kaiščius, tačiau mes naudosime programinę RX ir TX kaiščių emuliaciją atitinkamai 2 ir 3 smeigtukuose. Prijunkite jutiklio RX prie „Arduino“ir „TX“prie „Arduino“.
Jei ketinate naudoti temperatūros jutiklį, prijunkite VCC ir GND linijas prie „ +“ir „Breadboard“, o duomenų linijos - prie 7 kaiščio.
3 žingsnis: Kodas
Galite įdiegti MQTT brokerį į aviečių pi arba kompiuterį, kurį visada turite namuose, arba naudoti debesies MQTT paslaugą, pvz., „Cloud MQTT“. Tada galite parašyti scenarijų, kuris siunčia duomenis kaip HTTP į IFTT žiniatinklio užraktą, nes jie dar nepalaiko MQTT žiniatinklio kabliukų ir nustatyti pranešimus, kai jūsų namuose padidėja dulkių lygis.
Arduino oro stotis
#įtraukti |
#įtraukti |
#įtraukti |
#įtraukti |
#įtraukti |
#įtraukti |
#įtraukti |
#įtraukti |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IP adresas ip (169, 169, 100, 98); |
baitas 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"; // Kliento ryšiai negali turėti to paties ryšio pavadinimo |
„EthernetClient ethClient“; |
PubSubClient klientas (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong ID; |
// Failas myFile; |
Stygos 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 ("Nepavyko konfigūruoti eterneto naudojant DHCP"); |
// bandymas su fiksuotu IP adresu |
„Ethernet.begin“(„mac“, „ip“); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (atšaukimas); |
vėlavimas (2000 m.); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serijinis atspaudas ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
anglies vertė; |
char previousValue; |
jei (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("prijungtas"); |
} |
} |
while (pmSerial.available ()) { |
vertė = pmSerial.read (); |
if ((indeksas == 0 && vertė! = 0x42) || (indeksas == 1 && vertė! = 0x4d)) { |
Serial.println ("Nepavyksta rasti duomenų antraštės."); |
grįžti; |
} |
jei (indeksas == 4 || indeksas == 6 || indeksas == 8 || indeksas == 10 || indeksas == 12 || indeksas == 14) { |
previousValue = vertė; |
} |
elseif (indeksas == 5) { |
pm1 = 256 * previousValue + vertė; |
šaknis ["pm1"] = abs (pm1); |
} |
elseif (indeksas == 7) { |
pm2_5 = 256 * previousValue + vertė; |
šaknis ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeksas == 9) { |
pm10 = 256 * previousValue + vertė; |
šaknis ["pm10"] = abs (pm10); |
} |
elseif (indeksas> 15) { |
pertrauka; |
} |
indeksas ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
jei (DHT.temperatūra == -999 || DHT. drėgmė == -999) { |
šaknis ["temperatūra"] = "N/A"; |
šaknis ["drėgmė"] = "N/A"; |
} Kitas { |
šaknis ["temperatūra"] = DHT.temperatūra; |
šaknis ["drėgmė"] = DHT. drėgmė; |
} |
sendResults (); |
id ++; |
vėlavimas (5000); |
} |
voidsendResults () { |
// paskelbti MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// derinti į serialą |
root.printTo (Serial); |
Serial.print ('\ n'); |
} |
// Tvarko pranešimus, gautus už prenumeruojamą temą (-as) |
voidcallback (char* tema, baitas* naudingoji apkrova, unsignedint ilgis) { |
} |
peržiūrėkite rawair_quality.ino, kurį kartu su ❤ talpina „GitHub“
4 žingsnis: Surinkite dėžutę
Aš tiesiog panaudojau dėžutę, kurią gulėjau, ir išgręžiau skylę jutikliui, kad gautų orą, ir iškirpiau skylę kabeliams išeiti (nors ji buvo šiek tiek per didelė).
Aš naudoju klijų pagalvėles, kad pritvirtinčiau jutiklį prie dėžutės, suderindamas jutiklio įvesties angą su išgręžta skylute ant dėžutės.
Galiausiai prijungiau eterneto ir maitinimo kabelius.
Rekomenduojamas:
Sukurkite energijos stebėjimo įrenginį naudodami dalelių elektroną: 5 žingsniai (su nuotraukomis)
Sukurkite energijos stebėjimo įrenginį naudodami dalelių elektroną: Daugelyje įmonių manome, kad energija yra verslo išlaidos. Sąskaita rodoma mūsų laiškuose ar el. Laiškuose, o mes ją sumokame iki atšaukimo datos. Atsiradus daiktų internetui ir išmaniesiems įrenginiams, „Energy“pradeda užimti naują vietą verslo baloje
„NaTaLia“orų stotis: „Arduino“saulės energija varoma oro stotis padaryta teisingai: 8 žingsniai (su nuotraukomis)
„NaTaLia“orų stotis: „Arduino Solar Powered Weather Station“padaryta teisingai: Po vienerių metų sėkmingo veikimo 2 skirtingose vietose dalinuosi saulės kolektorių projektų planais ir paaiškinu, kaip ji išsivystė į sistemą, kuri tikrai gali išgyventi ilgą laiką laikotarpius nuo saulės energijos. Jei sekate
„Pasidaryk pats“oro stotis ir „WiFi“jutiklių stotis: 7 žingsniai (su nuotraukomis)
„Pasidaryk pats“oro stotis ir „WiFi“jutiklių stotis: Šiame projekte parodysiu, kaip sukurti orų stotį kartu su „WiFi“jutiklių stotimi. Jutiklių stotis matuoja vietos temperatūros ir drėgmės duomenis ir siunčia juos per „WiFi“į orų stotį. Tuomet orų stotis rodo t
Dalelių fotonų daiktų interneto asmeninė oro stotis: 4 žingsniai (su nuotraukomis)
Dalelių fotonų daiktų interneto asmeninė oro stotis:
Kietųjų dalelių užteršto oro kokybės stebėjimo sistema: 4 žingsniai
Kietųjų dalelių taršos oro kokybės stebėjimo sistema: ĮVADAS: 1 Šiame projekte parodysiu, kaip sukurti dalelių detektorių su duomenų rodymu, duomenų atsargine kopija SD kortelėje ir IOT. Vizualiai neopikselių žiedo ekranas rodo oro kokybę. 2 Oro kokybė tampa vis svarbesniu susirūpinimu