किसी भी वेदर स्टेशन के निर्माण और पर्यावरणीय परिस्थितियों को मापने के लिए आर्द्रता, तापमान और दबाव तीन बुनियादी पैरामीटर हैं। हमने पहले Arduino का उपयोग करके एक मिनी वेदर स्टेशन बनाया है और इस बार हम रास्पबेरी पाई के साथ मौसम स्टेशन का विस्तार कर रहे हैं । यह IoT आधारित प्रोजेक्ट एलसीडी पर वर्तमान आर्द्रता, तापमान और दबाव के मापदंडों के साथ-साथ रास्पबेरी पाई का उपयोग करके इंटरनेट सर्वर पर दिखाने का लक्ष्य रखता है, जो इसे रास्पबेरी पाई वेदर स्टेशन बनाता है । आप इस सेटअप को कहीं भी स्थापित कर सकते हैं और इंटरनेट पर दुनिया में कहीं से भी उस स्थान की मौसम की स्थिति की निगरानी कर सकते हैं, यह न केवल वर्तमान डेटा दिखाएगा, बल्कि ग्राफ़ के रूप में पिछले मान भी दिखा सकता है।
हमने बैरोमीटर के दबाव को मापने के लिए तापमान और BM180 प्रेशर सेंसर मॉड्यूल को संवेदन के लिए DHT11 आर्द्रता और तापमान सेंसर का उपयोग किया है। यह सेल्सियस स्केल थर्मामीटर और प्रतिशत स्केल आर्द्रता मीटर एक एलसीडी डिस्प्ले के माध्यम से परिवेश के तापमान और आर्द्रता को प्रदर्शित करता है और बैरोमीटर का दबाव मिलीबार या एचपीए (हेक्टोपस्कल) में प्रदर्शित होता है। यह सारा डेटा इंटरनेट पर दुनिया भर में कहीं से भी लाइव मॉनिटरिंग के लिए थिंगस्पीक सर्वर पर भेजा जाता है । इस ट्यूटोरियल के अंत में दिए गए प्रदर्शन वीडियो और पायथन प्रोग्राम की जाँच करें ।
कार्य और थिंगस्पीक सेटअप:
इस IoT आधारित परियोजना के चार खंड हैं। सबसे पहले DHT11 सेंसर को आर्द्रता और तापमान डेटा और BM180 सेंसर वायुमंडलीय दबाव को मापता है। दूसरे रास्पबेरी पाई ने DHT11 सेंसर मॉड्यूल के आउटपुट को एकल वायर प्रोटोकॉल और बीएम 180 प्रेशर सेंसर के आउटपुट का उपयोग करके I2C प्रोटोकॉल का उपयोग किया और दोनों सेंसर मूल्यों को प्रतिशत (आर्द्रता), सेल्सियस स्केल (तापमान), हेक्टो पास्कल या मिलिबार (दबाव) में एक उपयुक्त संख्या में निकाला। । तीसरा, इन मूल्यों को रास्पबेरी पाई 3 के इनबिल्ट वाई-फाई का उपयोग करके थिंगस्पीक सर्वर पर भेजा जाता है । और अंत में थिंगस्पीक डेटा का विश्लेषण करता है और इसे ग्राफ रूप में दिखाता है। इन मूल्यों को स्थानीय रूप से प्रदर्शित करने के लिए एक एलसीडी का भी उपयोग किया जाता है।
थिंगस्पीक आईओटी आधारित परियोजनाओं के लिए बहुत अच्छा उपकरण प्रदान करता है। ThingSpeak वेबसाइट का उपयोग करके, हम अपने डेटा की निगरानी कर सकते हैं और ThingSpeak द्वारा प्रदान किए गए चैनल और वेबपृष्ठों का उपयोग करके इंटरनेट पर अपने सिस्टम को नियंत्रित कर सकते हैं। थिंगस्पीक सेंसर से डेटा एकत्र करता है, प्रतिक्रिया का ट्रिगर करके डेटा और 'अधिनियम' का विश्लेषण और कल्पना करता है। हमने पहले ThingSpeak को डेटा भेजने के बारे में विस्तार से बताया है, आप वहां देख सकते हैं। यहां हम इस रास्पबेरी पाई वेदर स्टेशन के लिए थिंगस्पीक का उपयोग करने के बारे में संक्षेप में बता रहे हैं।
सबसे पहले आपको ThingSpeak वेबसाइट पर अकाउंट बनाना होगा और उसमें एक 'न्यू चैनल' बनाना होगा। नए चैनल में आपको उन डेटा के लिए कुछ फ़ील्ड्स को परिभाषित करना होगा जिन्हें आप मॉनिटर करना चाहते हैं, जैसे कि इस प्रोजेक्ट में हम आर्द्रता, तापमान और दबाव डेटा के लिए तीन फ़ील्ड बनाएंगे।
अब 'एपीआई कीज' टैब पर क्लिक करें और राइट एंड रीड एपीआई कीज को सेव करें, यहां हम केवल राइट की का उपयोग कर रहे हैं। आपको इस कुंजी को कोड में 'कुंजी' चर में कॉपी करना होगा।
इसके बाद, 'डेटा आयात / निर्यात' पर क्लिक करें और अपडेट चैनल फ़ीड प्राप्त करें अनुरोध URL की प्रतिलिपि बनाएँ, जो है:
api.thingspeak.com/update?api_key=30BCDSRQ52AOI3UA&field1=0
अब हमें "Api.thingspeak.com" खोलने के लिए अपने पायथन कोड में इस 'फीड गेट रिक्वेस्ट यूआरएल' की आवश्यकता है और फिर क्वेरी स्ट्रिंग के रूप में इस फ़ीड अनुरोध का उपयोग करके डेटा भेजें। और डेटा भेजने से पहले उपयोगकर्ता को इस क्वेरी में प्रोग्राम में चर का उपयोग करके इस क्वेरी में तापमान, आर्द्रता और दबाव डेटा दर्ज करने की आवश्यकता है, इस लेख के अंत में कोड में जांचें।
URL = 'https://api.thingspeak.com/update?api_key=%s'% प्रमुख फ़ाइनलर = URL + "और फ़ील्ड 1 =% s & फ़ील्ड 2 =% s"% (हमी, अस्थायी) + "और फ़ील्ड 3 =% s"% (दबाव)
DHT11 का कार्य DHT11 से डेटा लाने के लिए सिंगल वायर सीरियल कम्युनिकेशन पर आधारित है। यहाँ हमने रास्पबेरी पाई के साथ DHT11 को जोड़ने के लिए AdaFruit DHT11 लाइब्रेरी का उपयोग किया है । रास्पबेरी पाई यहां DHT11 से आर्द्रता और तापमान डेटा और BMP180 सेंसर से वायुमंडलीय दबाव एकत्र करती है और फिर इसे 16x2 एलसीडी और थिंगस्पीक सर्वर पर भेजती है। ThingSpeak नीचे के रूप में ग्राफ़ के रूप में डेटा प्रदर्शित करता है:
आप DHT11 सेंसर और इसके इंटरफैसिंग के बारे में यहाँ Arduino से अधिक जान सकते हैं ।
सर्किट आरेख:
रास्पबेरी पाई कॉन्फ़िगरेशन और पायथन प्रोग्राम:
हम यहां कार्यक्रम के लिए पायथन भाषा का उपयोग कर रहे हैं । कोडिंग से पहले, उपयोगकर्ता को रास्पबेरी पाई को कॉन्फ़िगर करने की आवश्यकता होती है। आप रास्पबेरी पाई के साथ शुरू करने और पाई में रास्पबियन जेसी ओएस को स्थापित करने और कॉन्फ़िगर करने के लिए हमारे पिछले ट्यूटोरियल की जांच कर सकते हैं।
सबसे पहले हमें रास्पबेरी पाई पर इस परियोजना को चलाने के लिए Adafruit Python DHT Sensor Library फ़ाइलों को स्थापित करना होगा। ऐसा करने के लिए हमें दी गई आज्ञाओं का पालन करना होगा:
sudo apt-get install git-core sudo apt-get update git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_Dy sudo apt-get install-Essential python-dev sudo python setup.py स्थापित करें
इसके बाद, उपयोगकर्ता को आरपीआई सॉफ्टवेयर कॉन्फ़िगरेशन टू में जाकर रास्पबेरी पाई I2C को सक्षम करना होगा:
सुडो रससि-विन्यास
फिर 'एडवांस ऑप्शन' पर जाएं, 'I2C' और 'Enable' को चुनें।
इस परियोजना का प्रोग्रामिंग हिस्सा सभी कार्यों को करने के लिए बहुत महत्वपूर्ण भूमिका निभाता है। सबसे पहले हम सभी आवश्यक पुस्तकालयों, Initiaze चर और एलसीडी और DHT11 के लिए पिन को परिभाषित करते हैं।
आयात sys आयात RPi.GPIO के रूप में GPIO आयात ओएस आयात Adafruit_DHT आयात urllib2 आयात smtb आयात समय ctypes से आयात c_short #Register पता regCall = 0xAA…………
में डीईएफ़ मुख्य (): समारोह, नीचे दिए गए कोड लगातार में, सर्वर से डेटा भेजने और एलसीडी पर प्रदर्शित करने के लिए प्रयोग किया जाता है , जबकि पाश।
def main (): प्रिंट 'सिस्टम रेडी…' URL = 'https://api.thingspeak.com/update?api_key=%s'% key प्रिंट "Wait…." जबकि True: (humi, temp): = URL + "और फ़ील्ड 1 =% s & फ़ील्ड 2 =% s"% (हमी, अस्थायी) + "और फ़ील्ड 3 =% s"% (दबाव) प्रिंट फ़ाइनलुर s = urllib2.urlopen (finalURL); प्रिंट humi + "" + अस्थायी + "" + दबाव s.close () time.sleep (10)
एलसीडी के लिए, डीईएफ़ lcd_init () समारोह चार बिट मोड में एलसीडी प्रारंभ करने में प्रयोग किया जाता है, डीईएफ़ lcdcmd (ch) समारोह, एलसीडी के लिए आदेश भेजने के लिए प्रयोग किया जाता है डीईएफ़ lcddata (ch) समारोह एलसीडी को डाटा भेजने और के लिए प्रयोग किया जाता है डीईएफ़ lcdstring (Str ) फ़ंक्शन का उपयोग एलसीडी में डेटा स्ट्रिंग भेजने के लिए किया जाता है। आप बाद में दिए गए कोड में इन सभी कार्यों की जांच कर सकते हैं।
डीईएफ़ को देखते हुए () readDHT समारोह पढ़ने DHT11 सेंसर के लिए प्रयोग किया जाता है:
def readDHT (): humi, temp = Adafruit_DHT.read_retry (Adafruit_DHT.DHT11, DHTpin) वापसी (str (int (humi)), str (int (अस्थायी)))
def readbmp180 फ़ंक्शन का उपयोग BM180 सेंसर से दबाव पढ़ने के लिए किया जाता है। BM180 सेंसर भी तापमान दे सकता है लेकिन यहां हमने केवल दबाव की गणना के लिए इसका उपयोग किया है।
def readBmp180 (addr = deviceAdd): value = bus.read_i2c_block_data (addr, regCall, 22) # अंशांकन डेटा पढ़ें # शब्द बाइट डेटा को मानों AC1 = Convert1 (मान, 0) AC2 = Convert1 (मान, 2) AC3 = Convert1 में बदलें। (मान, ४) एसी ४ = रूपांतर २ (मान, ६)……………………..
तो यह मूल रास्पबेरी पाई वेदर स्टेशन है, आप इसे विभिन्न मौसम संबंधी मापदंडों जैसे हवा की गति, मिट्टी का तापमान, रोशनी (लक्स), वर्षा, वायु की गुणवत्ता आदि को मापने के लिए आगे बढ़ा सकते हैं।