Sisukord:
Video: Arduino toitega tolmuosakeste seirejaam: 4 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Saate üsna hõlpsalt ehitada asjade Interneti -seadme, mis jälgib teie kodu tolmureostust vähem kui 50 dollari eest, ja saada märku, kui tolmu tase tõuseb liiga kõrgeks, et saaksite ruumi õhutada, või saate selle välja seada ja saada märguande, kui see on turvaline õue minna, kui elate väga saastatud piirkonnas.
Tegin selle kooliprojektina, nii et mul ei olnud piisavalt aega, et leida teenust, mis võtab vastu MQTT -sõnumeid ja saadab need teile nagu märguanded või e -kirjad.
Pange tähele ka seda, et anduri pidev sisselülitamine vähendab ventilaatori eluiga.
Samm: vajalikud osad
Mida vajate
- Arduino Uno
- Arduino Etherneti kilp
- Tahkete osakeste lasersensor (tavaliselt maksab eBay/aliexpress 10–30 dollarit)
- DHT11 temperatuuri ja niiskuse andur (valikuline)
- Leivalaud
- Jumper kaablid
Samm: pange osad kokku
Esiteks peate ühendama Arduino Etherneti kilbi
PM -anduril on mitu juhet, kuid need, mida vajame, on VCC, GND, TX, RX.
Ühendage VCC ja GND vastavalt leivaplaadil olevatele plussidele + ja -.
Arduinol on riistvara RX- ja TX -tihvtid, kuid me kasutame RX- ja TX -nööpnõelte tarkvara emuleerimist vastavalt tihvtidel 2 ja 3. Ühendage anduri RX Arduino TX -ga ja anduri TX Arduino RX -ga.
Kui kavatsete kasutada temperatuuriandurit, ühendage VCC- ja GND -jooned paneelil + ja - ning andmerida tihvtiga 7.
3. samm: kood
Võite installida MQTT maakleri vaarika pi või arvutisse, mis on alati kodus, või kasutada pilv MQTT teenust, näiteks Cloud MQTT. Seejärel saate kirjutada skripti, mis saadab andmed HTTP -vormingus IFTT -i veebihaakesse, kuna need ei toeta veel MQTT -veebihaake ja seadistavad märguanded, kui teie kodus on tolmutase liiga kõrge.
Arduino lennujaam
#kaasake |
#kaasake |
#kaasake |
#kaasake |
#kaasake |
#kaasake |
#kaasake |
#kaasake |
#defineDHT11_PIN7 |
#defineRX_PIN2 |
#defineTX_PIN3 |
IPAdd ip (169, 169, 100, 98); |
bait 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"; // Kliendiühendustel ei saa olla sama ühenduse nimi |
EthernetClient ethClient; |
PubSubClient klient (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
allkirjastamata pikk ID; |
// Fail myFile; |
String s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Seriaalne algus (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
kui (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Etherneti konfigureerimine ebaõnnestus DHCP abil"); |
// proovige fikseeritud ip -aadressiga |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (tagasihelistamine); |
viivitus (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Seeria.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
intindex = 0; |
süsiniku väärtus; |
char previousValue; |
kui (! klient.ühendatud ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("ühendatud"); |
} |
} |
while (pmSerial.available ()) { |
väärtus = pmSerial.read (); |
kui ((indeks == 0 && väärtus! = 0x42) || (indeks == 1 && väärtus! = 0x4d)) { |
Serial.println ("Ei leia andmepäist."); |
tagasipöördumine; |
} |
kui (indeks == 4 || indeks == 6 || indeks == 8 || indeks == 10 || indeks == 12 || indeks == 14) { |
previousValue = väärtus; |
} |
elseif (indeks == 5) { |
pm1 = 256 * eelmineVäärtus + väärtus; |
juur ["pm1"] = abs (pm1); |
} |
elseif (indeks == 7) { |
pm2_5 = 256 * previousValue + väärtus; |
juur ["pm2_5"] = abs (pm2_5); |
} |
elseif (indeks == 9) { |
pm10 = 256 * previousValue + väärtus; |
juur ["pm10"] = abs (pm10); |
} |
elseif (indeks> 15) { |
murda; |
} |
indeks ++; |
} |
while (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
kui (DHT.temperatuur == -999 || DHT.niiskus == -999) { |
juur ["temperatuur"] = "N/A"; |
juur ["niiskus"] = "N/A"; |
} muud { |
juur ["temperatuur"] = DHT.temperatuur; |
juur ["niiskus"] = DHT.niiskus; |
} |
sendResults (); |
id ++; |
viivitus (5000); |
} |
voidsendResults () { |
// avaldada MQTT -le |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// silumine seriaaliks |
root.printTo (jada); |
Serial.print ('\ n'); |
} |
// Käsitleb tellitud teema (te) le saabunud sõnumeid |
voidcallback (sümbol* teema, bait* kasulik koormus, märkimata pikkus) { |
} |
vaadake rawair_quality.ino, mille hostiks on GitHub ❤
Samm: pange kast kokku
Kasutasin lihtsalt kasti, mis mul oli pikali, ja puurisin andurile augu, et sealt õhku saada, ja lõikasin välja augu kaablite väljumiseks (kuigi see oli natuke liiga suur).
Anduri karbi külge kinnitamiseks kasutasin liimipatju, joondades anduri sisendava karbi puuritud avaga.
Lõpuks ühendasin Etherneti ja toitekaablid.
Soovitan:
Arduino toitega multimeeter: 8 sammu (piltidega)
Arduino jõul töötav multimeeter: Selles projektis ehitate voltmeetrit ja oommeetrit, kasutades Arduino funktsiooni DigitalRead. Näidu saate peaaegu iga millisekundi jooksul, mis on palju täpsem kui tavaline multimeeter. Lõpuks pääseb andmetele juurde ka
Arduino ja Raspberry Pi toitega lemmikloomade jälgimissüsteem: 19 sammu (piltidega)
Arduino ja Raspberry Pi Powered Pet Monitoring System: Hiljuti puhkuse ajal mõistsime, et puudub ühendus meie lemmiklooma Beagle'iga. Pärast mõningaid uuringuid leidsime tooted, millel oli staatiline kaamera, mis võimaldas lemmiklooma jälgida ja temaga suhelda. Nendel süsteemidel oli teatud eelised
Arduino toitega, anduriga juhitavad tuhmuvad LED -valgusribad: 6 sammu (piltidega)
Arduino toitega, anduriga juhitavad tuhmuvad LED -valgusribad: hiljuti värskendasin oma kööki ja teadsin, et valgustus tõstab kappide välimust. Valisin valiku „True Handless”, nii et mul on tööpinna all tühimik, samuti on olemas kickboard, kapi all ja kappide ülaosas ning
Tähejälg - Arduino toitega tähemärk ja jälgija: 11 sammu (piltidega)
Tähejälg - Arduino jõul töötav tähemärk ja jälgija: Täherada on Arduino -põhine GoTo -mount inspireeritud tähtede jälgimissüsteem. See võib suunata ja jälgida mis tahes taevas asuvat objekti (sisendiks on taevakoordinaadid) kahe Arduinose, güroskoobi, RTC-mooduli, kahe odava samm-mootoriga ja 3D-prinditud struktuuriga
Automaatne drooni sülearvuti taimer - 3D trükitud, Arduino toitega: 18 sammu (koos piltidega)
Automaatne droonide ringitaimer - 3D -trükitud, Arduino Powered: Mind on üha enam huvitanud droonivõistluse First Person Video (FPV) idee. Olen hiljuti omandanud väikese drooni ja soovinud oma ringide ajastamise viisi - see on selle projekti tulemus. Sellel drooni maandumisplatsil on integreeritud