Բովանդակություն:
Video: Arduino սնուցվող փոշու մասնիկների մոնիտորինգի կայան. 4 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Դուք կարող եք բավականին հեշտությամբ սարքել սարքերի ինտերնետ, որը վերահսկում է ձեր տանը փոշու աղտոտվածությունը 50 դոլարից ցածր գնով և ծանուցվել, երբ փոշու մակարդակը չափազանց բարձր է, այնպես որ կարող եք օդափոխել սենյակը, կամ կարող եք այն դրսում դնել և տեղեկանալ, եթե դա անվտանգ է դուրս գալը, եթե ապրում եք խիստ աղտոտված տարածքում:
Ես դա արել եմ որպես դպրոցական նախագիծ, այնպես որ ես չունեի բավարար ժամանակ գտնելու ծառայություն, որը կվերցնի MQTT հաղորդագրությունները և դրանք կուղարկի ձեզ ծանուցումների կամ էլ.
Նաև նշեք, որ սենսորը մշտապես սնուցված պահելը կնվազեցնի երկրպագուի կյանքը:
Քայլ 1: Անհրաժեշտ մասեր
Այն, ինչ ձեզ հարկավոր կլինի
- Արդուինո Ունո
- Arduino Ethernet վահան
- Մանր մասնիկների լազերային սենսոր (սովորաբար eBay/aliexpress- ում վճարվում է $ 10-$ 30)
- DHT11 ջերմաստիճանի և խոնավության տվիչ (ըստ ցանկության)
- Breadboard
- Թռիչքային մալուխներ
Քայլ 2: Հավաքեք մասերը
Նախ, անհրաժեշտ է միացնել ethernet վահանը Arduino- ին
PM սենսորն ունի բազմաթիվ լարեր, բայց մեզ անհրաժեշտ են VCC, GND, TX, RX:
Միացրեք VCC- ն և GND- ը համապատասխանաբար + և - սեղանի վրա:
Arduino- ն ունի ապարատային RX և TX կապիչներ, բայց մենք կօգտագործենք համապատասխանաբար 2 և 3 կապում RX և TX կապերի ծրագրային նմանակում: Միացրեք սենսորի RX- ը Arduino- ի TX- ին և սենսորի TX- ը Arduino- ի RX- ին:
Եթե դուք պատրաստվում եք օգտագործել ջերմաստիճանի տվիչը, VCC և GND տողերը միացրեք + և - ին Breadboard- ի վրա և տվյալների տողը ՝ 7 -ի կապում:
Քայլ 3: Կոդ
Դուք կարող եք կամ տեղադրել MQTT բրոքեր ազնվամորու pi- ի կամ համակարգչի վրա, որը միշտ ունեք տանը, կամ օգտագործել ամպային MQTT ծառայություն, ինչպես Cloud MQTT- ը: Այնուհետև կարող եք գրել մի սցենար, որը տվյալները փոխանցում է որպես HTTP IFTT վեբհուք, քանի որ դրանք դեռ չեն աջակցում MQTT վեբ -բռնակներին և ծանուցումներ են ստեղծում, երբ ձեր տանը փոշու մակարդակը չափազանց բարձր է դառնում:
Արդուինո ավիաընկերություն
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#սահմանել DHT11_PIN7 |
#սահմանելRX_PIN2 |
#սահմանելTX_PIN3 |
IPAddress ip (169, 169, 100, 98); |
բայթ mac = { |
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02 |
}; |
constchar *mqtt_server = "m23.cloudmqtt.com"; |
սահմանափակում mqtt_port = 11895; |
constchar *mqtt_user = "jhetjewk"; |
constchar *mqtt_pass = "QB2p9PiMV6pn"; |
constchar *mqtt_client_name = "arduinoClient1"; // Հաճախորդի կապերը չեն կարող ունենալ նույն կապի անունը |
EthernetClient ethClient; |
PubSubClient հաճախորդ (ethClient); |
Softwareրագրային ապահովում Սերիա pmSerial (RX_PIN, TX_PIN); |
dht DHT; |
int pm1; |
int pm2_5; |
int pm10; |
անստորագիր id; |
// ֆայլ myFile; |
Լարային s; |
StaticJsonBuffer <200> jsonBuffer; |
JsonObject & root = jsonBuffer.createObject (); |
voidsetup () { |
Serial.begin (57600); |
pmSerial.begin (9600); |
id = 0; |
pm1 = 0; |
pm2_5 = 0; |
pm10 = 0; |
եթե (Ethernet.begin (mac) == 0) |
{ |
Serial.println ("Չհաջողվեց կարգավորել Ethernet- ը DHCP- ի միջոցով"); |
// փորձ ՝ ֆիքսված ip հավելիչով |
Ethernet.begin (mac, ip); |
} |
client.setServer (mqtt_server, mqtt_port); |
client.setCallback (հետադարձ); |
ուշացում (2000); |
Serial.println (Ethernet.localIP ()); |
client.connect ("arduinoClient", mqtt_user, mqtt_pass); |
Serial.print ("rc ="); |
Serial.print (client.state ()); |
Serial.print ("\ n"); |
} |
voidloop () { |
ինտինդեքս = 0; |
char արժեքը; |
char previousValue; |
եթե (! client.connected ()) |
{ |
if (client.connect ("arduinoClient", mqtt_user, mqtt_pass)) { |
Serial.println («կապված»); |
} |
} |
իսկ (pmSerial.available ()) { |
արժեք = pmSerial.read (); |
if ((index == 0 && value! = 0x42) || (index == 1 && value! = 0x4d)) { |
Serial.println ("Հնարավոր չէ գտնել տվյալների վերնագիրը"); |
վերադարձ; |
} |
եթե (ինդեքս == 4 || ինդեքս == 6 || ինդեքս == 8 || ինդեքս == 10 || ինդեքս == 12 || ցուցանիշ == 14) { |
previousValue = արժեք; |
} |
elseif (ինդեքս == 5) { |
pm1 = 256 * նախորդԱրժեք + արժեք; |
արմատ ["pm1"] = abs (pm1); |
} |
elseif (ինդեքս == 7) { |
pm2_5 = 256 * նախորդԱրժեք + արժեք; |
արմատ ["pm2_5"] = abs (pm2_5); |
} |
elseif (ինդեքս == 9) { |
pm10 = 256 * նախորդԱրժեք + արժեք; |
արմատ ["pm10"] = abs (pm10); |
} |
elseif (ինդեքս> 15) { |
ընդմիջում; |
} |
ցուցանիշ ++; |
} |
իսկ (pmSerial.available ()) pmSerial.read (); |
int chk = DHT.read11 (DHT11_PIN); |
եթե (DHT.temperature == -999 || DHT.humidity == -999) { |
արմատ ["ջերմաստիճան"] = "Չ/Ա"; |
արմատ ["խոնավություն"] = "Չ/Ա"; |
} ուրիշ { |
արմատ ["ջերմաստիճան"] = DHT.temperature; |
արմատ ["խոնավություն"] = DHT. խոնավություն; |
} |
sendResults (); |
id ++; |
ուշացում (5000); |
} |
voidsendResults () { |
// հրապարակել MQTT- ում |
char jsonChar [100]; |
root.printTo (jsonChar); |
Serial.println (client.publish («arduino», jsonChar)); |
// կարգաբերում դեպի սերիա |
root.printTo (Սերիա); |
Serial.print ('\ n'); |
} |
// Բռնում է բաժանորդագրված թեմայի (թեմաների) վերաբերյալ ստացված հաղորդագրությունները |
voidcallback (char* թեմա, բայթ* բեռնվածություն, անստորագիր երկարություն) { |
} |
դիտեք rawair_quality.ino- ն hosted -ի հետ հյուրընկալված GitHub- ի կողմից
Քայլ 4: Հավաքեք տուփը
Ես պարզապես օգտագործեցի մի տուփ, որի շուրջը պառկած էի և սենսորի համար անցք բացեցի, որպեսզի օդը դուրս գա, և մալուխների դուրս գալու համար անցք կտրեցի (չնայած այն մի փոքր չափազանց մեծ էր):
Օգտագործեցի սոսինձ բարձիկներ `սենսորը տուփին ամրացնելու համար, սենսորի մուտքի անցքը հավասարեցնելով տուփի վրա փորված անցքի հետ:
Ի վերջո, ես միացրեցի ethernet և հոսանքի մալուխները:
Խորհուրդ ենք տալիս:
Դյուրակիր մանր մասնիկների չափում. 4 քայլ (նկարներով)
Դյուրակիր մանր մասնիկների չափում. Այս նախագծի նպատակն է չափել օդի որակը `չափելով մանր մասնիկների քանակը: Իր դյուրատարության շնորհիվ հնարավոր կլինի չափումներ կատարել տանը կամ տեղաշարժվելիս: Օդի որակը և նուրբ մասնիկները. Մասնիկավոր նյութեր (
DIY եղանակային կայան և WiFi սենսորային կայան. 7 քայլ (նկարներով)
DIY եղանակային կայան և WiFi սենսորային կայան. Այս նախագծում ես ձեզ ցույց կտամ, թե ինչպես կարելի է եղանակային կայան ստեղծել WiFi սենսորային կայանի հետ միասին: Սենսորային կայանը չափում է տեղական ջերմաստիճանի և խոնավության տվյալները և այն WiFi- ի միջոցով ուղարկում է եղանակային կայանին: Օդերևութաբանական կայանն այնուհետև ցուցադրում է
Արևային մասնիկների անալիզատոր. 5 քայլ (նկարներով)
Արևային մասնիկների վերլուծիչ. Վերջերս ես մասնակցեցի Ալյասկայի Ֆերբենքս համաժողովին, որտեղ ածուխի տեղական ընկերությունը (Usibelli Coal Mine) հովանավորում էր նորարարներին `մտածելու օդի որակի բարելավման ուղիների մասին: Ակնհայտորեն հեգնական, բայց նաև իսկապես հիանալի: Կարծես հետազոտողը չէր
Arduino փոշու ուսումնասիրություն. 8 քայլ
Arduino փոշու ուսումնասիրություն. Ինչպիսի՞ն կլիներ ապրել Մարսի վրա: Օդը շնչո՞ւմ է: Արդյո՞ք դա անվտանգ է: Որքա՞ն փոշի կա: Որքա՞ն հաճախ են փոթորիկները: Երբևէ մտածե՞լ եք այս հարցերից որևէ մեկի պատասխանը:
Ինչպես կառուցել հարմարավետության մոնիտորինգի տվիչների կայան. 10 քայլ (նկարներով)
Ինչպես կառուցել հարմարավետության մոնիտորինգի սենսորային կայան. Այս հրահանգը նկարագրում է այսպես կոչված Comfort Monitoring Station CoMoS- ի նախագծումը և կառուցումը, շրջակա միջավայրի պայմանների համակցված սենսորային սարք, որը մշակվել է TUK- ի, Technische Universität Ka