Talaan ng mga Nilalaman:
- Hakbang 1: Kailangan ng Mga Bahagi
- Hakbang 2: Ipunin ang Mga Bahagi
- Hakbang 3: Ang Code
- Hakbang 4: Magtipon ng Kahon
Video: Station ng Pagsubaybay na Pinapatakbo ng Arduino Powered Dust: 4 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Maaari mong madaling bumuo ng isang DIY internet ng mga bagay na aparato na sinusubaybayan ang polusyon sa alikabok sa iyong bahay nang mas mababa sa $ 50 at maabisuhan kapag ang antas ng alikabok ay napakataas upang ma-aerate mo ang silid, o maaari mo itong itakda sa labas at maabisuhan kung ito ay ligtas na lumabas sa labas kung nakatira ka sa isang lugar na lubos na marumi.
Ginawa ko ito bilang isang proyekto sa paaralan, kaya wala akong sapat na oras upang maghanap ng serbisyo na kukuha ng mga mensahe sa MQTT at ipadala ito sa iyo tulad ng mga abiso o email.
Tandaan din na ang pagpapanatili ng sensor na pinalakas sa lahat ng oras ay makakabawas sa buhay ng fan.
Hakbang 1: Kailangan ng Mga Bahagi
Kung ano ang kakailanganin mo
- Arduino Uno
- Kalasag ng Arduino Ethernet
- Pag-usapan ang sensor ng bagay na laser (karaniwang pumupunta sa $ 10- $ 30 sa eBay / aliexpress)
- DHT11 temperatura at kahalumigmigan sensor (opsyonal)
- Breadboard
- Mga kable ng jumper
Hakbang 2: Ipunin ang Mga Bahagi
Una, kailangan mong i-plug ang ethernet na kalasag sa Arduino
Ang PM sensor ay may maraming mga wires, ngunit ang kailangan namin ay VCC, GND, TX, RX.
Ikonekta ang VCC at GND sa + at - sa breadboard ayon sa pagkakabanggit.
Ang Arduino ay may mga hardware na RX at TX pin, ngunit gagamitin namin ang software na gayahin ng mga RX at TX pin sa mga pin na 2 at 3 ayon sa pagkakabanggit. I-plug ang RX ng sensor sa TX ng Arduino at TX ng sensor sa RX ng Arduino.
Kung gagamit ka ng sensor ng temperatura, i-plug ang mga linya ng VCC at GND sa + at - sa Breadboard at linya ng data upang i-pin ang 7.
Hakbang 3: Ang Code
Maaari kang mag-install ng MQTT broker sa isang raspberry pi o isang computer na palagi mong nasa bahay, o gumamit ng isang serbisyo ng cloud MQTT, tulad ng Cloud MQTT. Pagkatapos ay maaari kang magsulat ng isang script na nagpapadala ng data bilang HTTP sa isang webhook ng IFTT, dahil hindi pa nila sinusuportahan ang mga webhook ng MQTT at nag-set up ng mga abiso kung kailan masyadong mataas ang antas ng alikabok sa iyong tahanan.
Istasyon ng hangin sa Arduino
# isama |
# isama |
# isama |
# isama |
# isama |
# isama |
# isama |
# isama |
# kahuluganDHT11_PIN7 |
# kahuluganRX_PIN2 |
# tukuyinTX_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"; // Client koneksyon cant ay may parehong pangalan ng koneksyon |
EthernetClient ethClient; |
PubSubClient client (ethClient); |
SoftwareSerial pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
unsignedlong id; |
// File myFile; |
String s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
kung (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Nabigong i-configure ang Ethernet gamit ang DHCP"); |
// pagtatangka gamit ang nakapirming ip addr |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (callback); |
pagkaantala (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; |
halaga ng char; |
char nakaraangValue; |
kung (! client.connected ()) |
{ |
kung (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println ("konektado"); |
} |
} |
habang (pmSerial.available ()) { |
halaga = pmSerial.read (); |
kung ((index == 0 && halaga! = 0x42) || (index == 1 && halaga! = 0x4d)) { |
Serial.println ("Hindi mahanap ang header ng data."); |
bumalik; |
} |
kung (index == 4 || index == 6 || index == 8 || index == 10 || index == 12 || index == 14) { |
nakaraangValue = halaga; |
} |
kung hindi man (index == 5) { |
pm1 = 256 * nakaraangValue + halaga; |
ugat ["pm1"] = abs (pm1); |
} |
kung hindi man (index == 7) { |
pm2_5 = 256 * nakaraangValue + halaga; |
ugat ["pm2_5"] = abs (pm2_5); |
} |
kung hindi man (index == 9) { |
pm10 = 256 * nakaraangValue + halaga; |
ugat ["pm10"] = abs (pm10); |
} |
kung hindi man (index> 15) { |
pahinga; |
} |
index ++; |
} |
habang (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
kung (DHT.temperature == -999 || DHT.humidity == -999) { |
ugat ["temperatura"] = "N / A"; |
ugat ["kahalumigmigan"] = "N / A"; |
} iba pa { |
ugat ["temperatura"] = DHT.temperature; |
ugat ["kahalumigmigan"] = DHT.humidity; |
} |
sendResults (); |
id ++; |
pagkaantala (5000); |
} |
voidsendResults () { |
// i-publish sa MQTT |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish ("arduino", jsonChar)); |
// debug to serial |
root.printTo (Serial); |
Serial.print ('\ n'); |
} |
// Hinahawakan ang mga mensahe sa (mga) naka-subscribe na paksa |
voidcallback (char * topic, byte * payload, unsignedint haba) { |
} |
tingnan ang rawair_quality.ino na naka-host sa ❤ ng GitHub
Hakbang 4: Magtipon ng Kahon
Gumamit lang ako ng isang kahon na nakahiga ako at nag-drill ng isang butas para makakuha ng hangin ang sensor at gupitin ang isang butas para lumabas ang mga kable (bagaman medyo malaki ito).
Gumamit ako ng mga pandikit upang ilakip ang sensor sa kahon, na pinapantay ang butas ng pag-input ng sensor na may drill na butas sa kahon.
Sa wakas, isinaksak ko ang ethernet at mga kable ng kuryente.
Inirerekumendang:
Opisina na Pinapatakbo ng Baterya. Solar System Na May Auto Switching East / West Solar Panels at Wind Turbine: 11 Hakbang (na may Mga Larawan)
Opisina na Pinapatakbo ng Baterya. Solar System Na May Auto Switching East / West Solar Panels at Wind Turbine: Ang Proyekto: Ang isang 200 square ft. Na tanggapan ay kailangang pinapatakbo ng baterya. Dapat ding maglaman ang tanggapan ng lahat ng mga tagakontrol, baterya at sangkap na kinakailangan para sa sistemang ito. Sisingilin ng kuryente ng solar at hangin ang mga baterya. Mayroong isang bahagyang problema lamang
ATtiny85 Nasusuot na Pagsubaybay ng Aktibidad na Pagsubaybay ng Aktibidad at Programming ATtiny85 Sa Arduino Uno: 4 na Hakbang (na may Mga Larawan)
ATtiny85 Nasusuot na Pagsubaybay ng Aktibidad na Pagsubaybay sa Aktibidad at Programming ATtiny85 Sa Arduino Uno: Paano gagawin ang relo ng pagsusuot ng aktibidad na maaaring panoorin? Ito ay isang naisusuot na gadget na dinisenyo upang mag-vibrate kapag nakita nito ang pagwawalang-kilos. Ginugugol mo ba ang karamihan ng iyong oras sa computer na tulad ko? Nakaupo ka ba nang maraming oras nang hindi namamalayan? Pagkatapos ang aparatong ito ay f
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na sa Tamang Daan: 8 Hakbang (na may Mga Larawan)
NaTaLia Weather Station: Arduino Solar Powered Weather Station Tapos na ang Tamang Daan: Matapos ang 1 taon ng matagumpay na operasyon sa 2 magkakaibang mga lokasyon binabahagi ko ang aking mga plano sa proyekto ng istasyon ng solar Powered na solar at ipinapaliwanag kung paano ito nabago sa isang system na maaaring mabuhay nang matagal panahon mula sa solar power. Kung susundin mo
Paano Bumuo ng isang Station ng Sensor ng Pagsubaybay sa Komportable: 10 Hakbang (na may Mga Larawan)
Paano Bumuo ng isang Station ng Sensor ng Pagsubaybay sa Komportable: Ang itinuturo na ito ay naglalarawan sa disenyo at pagtatayo ng isang tinatawag na Comfort Monitoring Station CoMoS, isang pinagsamang sensor aparato para sa mga kondisyon sa paligid, na binuo sa departamento ng Built Environment sa TUK, Technische Universität Ka
Nagmamakaawang Robot na May Pagsubaybay sa Mukha at Pagkontrol ng Xbox Controller - Arduino: 9 Mga Hakbang (na may Mga Larawan)
Nagmamakaawang Robot Sa Pagsubaybay sa Mukha at Pagkontrol ng Xbox Controller - Arduino: Gagawa kami ng isang robot na humihingi. Susubukan ng robot na ito na inisin o makuha ang pansin ng mga dumadaan na tao. Madidiskubre nito ang kanilang mga mukha at susubukan silang kunan ng lasers. Kung bibigyan mo ang robot ng isang barya, kakantahin niya ang isang kanta at sayaw. Mangangailangan ang robot ng isang