विषयसूची:

Arduino संचालित धूल कण निगरानी स्टेशन: 4 कदम (चित्रों के साथ)
Arduino संचालित धूल कण निगरानी स्टेशन: 4 कदम (चित्रों के साथ)

वीडियो: Arduino संचालित धूल कण निगरानी स्टेशन: 4 कदम (चित्रों के साथ)

वीडियो: Arduino संचालित धूल कण निगरानी स्टेशन: 4 कदम (चित्रों के साथ)
वीडियो: High Density 2022 2024, नवंबर
Anonim
Arduino संचालित धूल कण निगरानी स्टेशन
Arduino संचालित धूल कण निगरानी स्टेशन

आप आसानी से एक DIY इंटरनेट ऑफ़ थिंग्स डिवाइस बना सकते हैं जो आपके घर में $50 से कम के लिए धूल प्रदूषण पर नज़र रखता है और जब धूल का स्तर बहुत अधिक हो जाता है तो आपको सूचित किया जाता है ताकि आप कमरे को हवा दे सकें, या आप इसे बाहर सेट कर सकते हैं और सूचित कर सकते हैं यदि यह है यदि आप अत्यधिक प्रदूषित क्षेत्र में रहते हैं तो बाहर जाना सुरक्षित है।

मैंने इसे एक स्कूल प्रोजेक्ट के रूप में बनाया था, इसलिए मेरे पास ऐसी सेवा खोजने के लिए पर्याप्त समय नहीं था जो MQTT संदेशों को ले लेगी और उन्हें आपको सूचनाएं या ईमेल भेज देगी।

यह भी ध्यान दें कि सेंसर को हर समय चालू रखने से पंखे का जीवनकाल कम हो जाएगा।

चरण 1: आवश्यक भागों

भागों की जरूरत
भागों की जरूरत

आपको किस चीज़ की ज़रूरत पड़ेगी

  • Arduino Uno
  • Arduino ईथरनेट शील्ड
  • पार्टिकुलेट मैटर लेजर सेंसर (आमतौर पर eBay / aliexpress पर $ 10- $ 30 के लिए जाता है)
  • DHT11 तापमान और आर्द्रता सेंसर (वैकल्पिक)
  • ब्रेड बोर्ड
  • जंपर केबल

चरण 2: भागों को इकट्ठा करें

भागों को इकट्ठा करो
भागों को इकट्ठा करो

सबसे पहले, आपको Arduino पर ईथरनेट शील्ड को प्लग करना होगा

पीएम सेंसर में कई तार होते हैं, लेकिन हमें जिनकी जरूरत होती है, वे हैं वीसीसी, जीएनडी, TX, आरएक्स।

ब्रेडबोर्ड पर क्रमशः VCC और GND को + और - से कनेक्ट करें।

Arduino में हार्डवेयर RX और TX पिन हैं, लेकिन हम क्रमशः पिन 2 और 3 पर RX और TX पिन के सॉफ़्टवेयर एमुलेशन का उपयोग करेंगे। सेंसर के RX को Arduino के TX और सेंसर के TX को Arduino के RX में प्लग करें।

यदि आप तापमान संवेदक का उपयोग करने जा रहे हैं, तो VCC और GND लाइनों को + और - ब्रेडबोर्ड पर और डेटा लाइन को पिन 7 पर प्लग करें।

चरण 3: कोड

आप या तो रास्पबेरी पाई पर एमक्यूटीटी ब्रोकर स्थापित कर सकते हैं या एक कंप्यूटर जो आपके पास हमेशा घर पर होता है, या क्लाउड एमक्यूटीटी सेवा का उपयोग कर सकते हैं, जैसे क्लाउड एमक्यूटीटी। फिर आप एक स्क्रिप्ट लिख सकते हैं जो डेटा को HTTP के रूप में IFTT वेबहुक पर भेजती है, क्योंकि वे अभी तक MQTT वेबहुक का समर्थन नहीं करते हैं और जब आपके घर में धूल का स्तर बहुत अधिक हो जाता है, तो इसके लिए सूचनाएं सेट करें।

अरुडिनो एयर स्टेशन

#शामिल

#शामिल
#शामिल
#शामिल
#शामिल
#शामिल

#शामिल

#शामिल
#defineDHT11_PIN7
#defineRX_PIN2
#defineTX_PIN3
आईपीएड्रेस आईपी(१६९, १६९, १००, ९८);
बाइट मैक = {
0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x02
};
कॉन्सचर *mqtt_server = "m23.cloudmqtt.com";
स्थिरांक mqtt_port = ११८९५;
constchar *mqtt_user = "jhetjewk";
constchar *mqtt_pass = "QB2p9PiMV6pn";
constchar *mqtt_client_name = "arduinoClient1"; // क्लाइंट कनेक्शन में समान कनेक्शन नाम नहीं हो सकता है
ईथरनेट क्लाइंट एथ क्लाइंट;
पबसुब क्लाइंट क्लाइंट (एथ क्लाइंट);
सॉफ्टवेयर सीरियल pmSerial (RX_PIN, TX_PIN);
डीएचटी डीएचटी;
इंट pm1;
इंट pm2_5;
इंट pm10;
अहस्ताक्षरित आईडी;
// फाइल मायफाइल;
स्ट्रिंग एस;
स्टेटिकजेसनबफर <200> जेसनबफर;
JsonObject और रूट = jsonBuffer.createObject ();
व्यर्थ व्यवस्था() {
सीरियल.बेगिन (57600);
pmSerial.begin (९६००);
आईडी = 0;
दोपहर 1 = 0;
अपराह्न २_५ = ०;
दोपहर 10 = 0;
अगर (ईथरनेट.बेगिन (मैक) == 0)
{
Serial.println ("डीएचसीपी का उपयोग करके ईथरनेट को कॉन्फ़िगर करने में विफल");
// फिक्स्ड आईपी एड्र के साथ प्रयास करें
ईथरनेट.बेगिन (मैक, आईपी);
}
client.setServer (mqtt_server, mqtt_port);
क्लाइंट.सेट कॉलबैक (कॉलबैक);
देरी (2000);
Serial.println (ईथरनेट.लोकलआईपी ());
client.connect("arduinoClient", mqtt_user, mqtt_pass);
सीरियल.प्रिंट ("आरसी =");
सीरियल.प्रिंट (क्लाइंट.स्टेट ());
सीरियल.प्रिंट ("\ n");
}
शून्य लूप () {
इंइंडेक्स = 0;
चार मूल्य;
चार पिछलावैल्यू;
अगर (! क्लाइंट। कनेक्टेड ())
{
अगर (क्लाइंट.कनेक्ट ("arduinoClient", mqtt_user, mqtt_pass)) {
Serial.println ("कनेक्टेड");
}
}
जबकि (pmSerial.उपलब्ध ()) {
मूल्य = pmSerial.read ();
अगर ((सूचकांक == 0 && मान! = 0x42) || (सूचकांक == 1 && मान! = 0x4d)) {
Serial.println ("डेटा हेडर नहीं ढूँढ सकता।");
वापसी;
}
अगर (इंडेक्स == 4 || इंडेक्स == 6 || इंडेक्स == 8 || इंडेक्स == 10 || इंडेक्स == 12 || इंडेक्स == 14) {
पिछलावैल्यू = मान;
}
अन्य (सूचकांक == 5) {
pm1 = 256 * पिछला मान + मान;
रूट ["pm1"] = एब्स (pm1);
}
अन्य (सूचकांक == 7) {
pm2_5 = 256 * पिछला मान + मान;
रूट ["pm2_5"] = एब्स (pm2_5);
}
अन्य (सूचकांक == 9) {
pm10 = 256 * पिछला मान + मान;
रूट ["pm10"] = एब्स (pm10);
}
एल्सिफ़ (इंडेक्स>15) {
टूटना;
}
सूचकांक++;
}
जबकि (pmSerial.उपलब्ध ()) pmSerial.read ();
int chk = DHT.read11 (DHT11_PIN);
अगर (DHT.temperature == -999 || DHT.humidity == -999) {
जड़ ["तापमान"] = "एन/ए";
जड़ ["आर्द्रता"] = "एन/ए";
} अन्यथा {
जड़ ["तापमान"] = DHT.तापमान;
जड़ ["आर्द्रता"] = DHT.आर्द्रता;
}
भेजें परिणाम ();
आईडी ++;
देरी (5000);
}
voidsendResults() {
// एमक्यूटीटी पर प्रकाशित करें
चार जेसनचर [१००];
root.printTo(jsonChar);
Serial.println(client.publish("arduino", jsonChar));
// सीरियल के लिए डिबग करें
root.printTo (सीरियल);
सीरियल.प्रिंट ('\ n');
}
// सब्सक्राइब किए गए विषय (विषयों) पर आने वाले संदेशों को संभालता है
voidcallback(char* विषय, बाइट* पेलोड, अहस्ताक्षरित लंबाई) {
}

देखें rawair_quality.ino GitHub द्वारा ❤ के साथ होस्ट किया गया

चरण 4: बॉक्स को इकट्ठा करें

बॉक्स को इकट्ठा करो
बॉक्स को इकट्ठा करो
बॉक्स को इकट्ठा करो
बॉक्स को इकट्ठा करो
बॉक्स को इकट्ठा करो
बॉक्स को इकट्ठा करो

मैंने बस एक बॉक्स का उपयोग किया था जिसके चारों ओर मैं लेटा था और सेंसर से हवा निकालने के लिए एक छेद ड्रिल किया और केबलों को बाहर जाने के लिए एक छेद काट दिया (हालाँकि यह थोड़ा बहुत बड़ा था)।

मैंने सेंसर को बॉक्स में संलग्न करने के लिए गोंद पैड का उपयोग किया, बॉक्स पर ड्रिल किए गए छेद के साथ सेंसर के इनपुट छेद को संरेखित किया।

अंत में, मैंने ईथरनेट और पावर केबल्स में प्लग किया।

सिफारिश की: