विषयसूची:

यूसीएल - IIOT ग्रीनहाउस: 11 कदम
यूसीएल - IIOT ग्रीनहाउस: 11 कदम

वीडियो: यूसीएल - IIOT ग्रीनहाउस: 11 कदम

वीडियो: यूसीएल - IIOT ग्रीनहाउस: 11 कदम
वीडियो: Webinar on Application of IoT in Agriculture | Yuktix® Technologies | IoT for Agriculture 2024, नवंबर
Anonim
यूसीएल - IIOT ग्रीनहाउस
यूसीएल - IIOT ग्रीनहाउस

यह परियोजना ग्रीनहाउस (https://www.instructables.com/id/EAL-EMBEDDED-GREE…) के साथ हमारी पिछली परियोजना का विस्तार है।

इस परियोजना में हमने एक डेटाबेस जोड़ा है, जहां हम अपने सभी डेटा को लॉग करते हैं और फिर अधिक अवलोकन के लिए नोड-रेड के साथ इसकी कल्पना करते हैं।

हम अपने डेटाबेस में जिस सामग्री को लॉग इन करते हैं वह मिट्टी की आर्द्रता, तापमान और नमी है, जिसे विभिन्न आरेखों में दिखाया गया है।

dataloggin के अलावा हम यह भी नियंत्रित करने में सक्षम हैं कि कौन सा प्रोफ़ाइल ग्रीनहाउस में सक्रिय है और इसे दूरस्थ रूप से नियंत्रित करता है।

तब हम पंप और पंखे को मैन्युअल रूप से नियंत्रित करने में भी सक्षम होते हैं।

चरण 1: स्थापना गाइड

इंस्टालेशन गाइड
इंस्टालेशन गाइड

पहला कदम सभी विभिन्न घटकों को स्थापित करना है।

कोष्ठक के अंदर (), हमने सूचीबद्ध किया है कि घटक कहाँ से जुड़ा है। उदाहरण के लिए, Arduino एक USB केबल के माध्यम से रास्पबेरी पाई से जुड़ा है।

हार्डवेयर का इस्तेमाल किया:

  • Arduino (रास्पबेरी पाई)
  • रास्पबेरी पाई 3 बी+
  • मृदा आर्द्रतामापी (Arduino)
  • DHT11 सेंसर (Arduino)
  • HG-320 सबमर्सिबल वाटर पंप (रिले)
  • 5V रिले (Arduino)
  • एक कंप्यूटर प्रशंसक (रिले)
  • 230V बिजली की आपूर्ति (पंप)

सॉफ्टवेयर का इस्तेमाल किया:

  • रास्पियन (रास्पबेरी पाई के लिए ओएस)
  • अरुडिनो आईडीई
  • पायथन (रास्पबेरी पाई) - PySerial- MySQLclient
  • नोड-रेड (रास्पबेरी पाई)-पायथनशेल- सारांश-माईएसक्यूएल- डैशबोर्ड
  • MySQL सर्वर (freemysqlhosting.net)

सबसे पहले आपको हार्डवेयर घटकों को जोड़ना होगा, इसलिए ग्रीनहाउस बनाने के लिए इस गाइड का पालन करें: गाइड स्थापित करें।

फिर आपको अपने रास्पबेरी पाई पर रास्पियन ओएस स्थापित करना होगा। उसके बाद आपको पायथन को स्थापित करना होगा, और फिर अजगर पुस्तकालयों को स्थापित करना होगा।

अगला कदम रास्पबेरी पाई पर नोड-रेड स्थापित करना है, और फिर पैलेट मैनेजर पर नेविगेट करना और पहले बताए गए मॉड्यूल को स्थापित करना है।

फिर इस साइट पर जाएं फ्री MySQL सर्वर और एक फ्री MySQL सर्वर बनाएं।

जब यह सब हो जाता है, तो आप अजगर स्क्रिप्ट को अपने रास्पबेरी पाई में स्थानांतरित करने के लिए तैयार हैं, नोड-रेड स्क्रिप्ट आयात करें और Arduino के लिए कोड अपलोड करें।

चरण 2: नियंत्रण का प्रदर्शन

Image
Image

चरण 3: परियोजना में प्रयुक्त भागों/सॉफ्टवेयर की सूची

ग्रीनहाउस बनाने के लिए हमने निम्न तकनीक का उपयोग किया है

  • अरुडिनो
  • रास्पबेरी पाई
  • नोड-लाल
  • अजगर
  • PHPMyAdmin

चरण 4: I/0 सूची

वायरिंग का नक्शा
वायरिंग का नक्शा

चरण 5: वायरिंग आरेख

चरण 6: Arduino कोड

Arduino कोड डेटा को प्रिंट करके काम करता है, सेंसर द्वारा मापा जाता है, सीरियल कनेक्शन के लिए जहां इसे रास्पबेरी पाई द्वारा पढ़ा जाता है और डेटाबेस में स्थानांतरित किया जाता है।

Arduino में रास्पबेरी पाई से जुड़े कुछ डिजिटल इनपुटपिन भी होते हैं जिन्हें Arduino पढ़ता है और यदि तीनों में से एक हाई हो जाता है तो IF स्टेटमेंट के कारण प्रोफ़ाइल बदल जाएगी।

इसके अलावा, हमने देरी के बजाय मिलिस का उपयोग करने के लिए कोड को अपग्रेड किया है जो पुराने विलंब द्वारा अंतराल के बजाय बटम और शेष कोड को हर समय पढ़ने में सक्षम बनाता है।

चरण 7: रास्पबेरी पाई 3 बी+

रास्पबेरी पाई 3 बी+
रास्पबेरी पाई 3 बी+

हमने अपने Arduino को इंटरनेट और एक MySQL डेटाबेस से जोड़ने के लिए रास्पबेरी पाई 3 बी+ का उपयोग किया। इससे हमारे लिए अपने सेंसर से डेटा स्टोर करना और अंतिम उपयोगकर्ता के लिए एक विज़ुअल इंटरफ़ेस बनाना संभव हो गया। यूजर इंटरफेस के लिए हमने डैशबोर्ड पैलेट के साथ नोड-रेड का इस्तेमाल किया।

लेकिन इससे पहले कि हम अपने सेंसर डेटा को नोड-रेड पर दिखा सकें, हमें एक MySQL डेटाबेस पर डेटा अपलोड करने के लिए एक तरीके की आवश्यकता थी, और इसके लिए हमने एक पायथन स्क्रिप्ट बनाई जो हमारे रास्पबेरी पाई पर चलेगी।

चरण 8: पायथन

अजगर
अजगर

पायथन लिपि का उपयोग Arduino से आने वाले धारावाहिक-संचार से डेटा प्राप्त करने के लिए किया जाता है। स्क्रिप्ट तब डेटा को MySQL डेटाबेस में भेजती है।

हमने दो पुस्तकालयों, pyserial और mysqlclient का उपयोग किया।

तो पहला कदम इन दो पुस्तकालयों को डाउनलोड करना होगा:

  1. पायसीरियल
  2. MySQL क्लाइंट

सीरियल संचार के माध्यम से Arduino से डेटा एकत्र करने के लिए PySerial का उपयोग किया जाता है।

डिवाइस = '/ देव/ttyUSB0'

आर्डिनो = सीरियल। सीरियल (डिवाइस, ९६००)

हमारे COM-पोर्ट को परिभाषित करने के लिए पहली पंक्ति का उपयोग किया जा रहा है। रास्पबेरी पाई पर यह /dev/ttyUSB0 है, जिसका उपयोग हम Arduino के लिए करते हैं। दूसरी पंक्ति Arduino के सीरियल पोर्ट को खोलने के लिए है। हम केवल यह परिभाषित करते हैं कि कौन सा COM-पोर्ट और कनेक्शन किस गति से चल रहा है।

शेष कोड थोड़ी देर में चल रहा है।

आगे हम कई ट्राई और एक्सेप्ट ब्लॉक का उपयोग करते हैं। सबसे पहले कोड ट्राई ब्लॉक के अंदर चलाने की कोशिश कर रहा है, अगर वह विफल हो जाता है तो यह एक्सेप्ट ब्लॉक को चलाता है। लेकिन अगर ट्राई ब्लॉक ठीक चलता है, तो यह एक्सेप्ट ब्लॉक को नहीं चलाता है, यह सिर्फ बाकी कोड को चलाता है।

तो ट्राई ब्लॉक के अंदर हमारे पास कोड है जो सीरियल-कम्युनिकेशन को पढ़ेगा और फिर इसे हमारे MySQL डेटाबेस में भेज देगा।

हाइग्रोलिस्ट = arduino.readlines(1)

templist = arduino.readlines(2)humidlist = arduino.readlines(3)

तो उपरोक्त कोड धारावाहिक-संचार में पंक्तियों को पढ़ने के लिए है। कोड के अंत में दी गई संख्या उस लाइन को परिभाषित कर रही है जिसे सीरियल में पढ़ा गया है। इसलिए इन पंक्तियों को विभिन्न चरों में वर्गीकृत किया जा रहा है।

जब Arduino से डेटा प्राप्त होता है, तो हमने अपने MySQL सर्वर पर डेटा भेजने के लिए mysqlclient मॉड्यूल का उपयोग किया।

डीबी = _mysql.connect (होस्ट = "sql7.freemysqlhosting.net", उपयोगकर्ता = "sql7256552", पासवार्ड = "3ebtbP8FQ2", डीबी = "sql7256552")

यह लाइन हमारे MySQL डेटाबेस से कनेक्ट करने के लिए है। यह सर्वर, उपयोगकर्ता नाम, पासवर्ड और सर्वर के अंदर किस डेटाबेस से कनेक्ट होना चाहिए, यह निर्दिष्ट करता है। यहां आपको अपने MySQL डीबी से कनेक्शन निर्दिष्ट करना चाहिए।

db.query("INSERTINTO `TempHumid`(`temp`, `humid`, `hygro`) VALUES (%s, %s, %s)" % (temp, आर्द्र, hygro))

तो यहां हम अपना डीबी कनेक्शन लेते हैं और एक एसक्यूएल क्वेरी बनाते हैं। क्वेरी कहती है कि मानों को "TempHumid" तालिका के अंदर और फिर "temp", "humid" और "hygro" कॉलम में डाला जाना है। अंतिम भाग "(%s, %s, %s)" स्ट्रिंग स्वरूपण है और इसका उपयोग डेटाबेस को एक प्रारूप देने के लिए किया जाता है जिसे वह पढ़ सकता है।

और यह सारी क्रिया थोड़ी देर के लूप में डाल दी जाती है, ताकि हम डेटा को MySQL सर्वर पर भेजते रहें।

यदि आप सभी कोड देखना चाहते हैं, तो अजगर स्क्रिप्ट (TempHumid.py) डाउनलोड करें।

चरण 9: MySQL

माई एसक्यूएल
माई एसक्यूएल
माई एसक्यूएल
माई एसक्यूएल

MySQL सर्वर के लिए, हमने www.freemysqlhosting.net पर एक निःशुल्क सेवा का उपयोग किया। हम रास्पबेरी पाई पर स्थानीय रूप से एक सर्वर बना सकते थे, लेकिन हम इसे क्लाउड/इंटरनेट से पूरी तरह से कनेक्ट करने के लिए मुफ्त सेवा के साथ गए।

अपने MySQL तक पहुँचने के लिए, आपको phpmyadmin.co पर जाना होगा और अपने freemysqlhosting खाते से क्रेडेंशियल के साथ लॉगिन करना होगा।

जब आप अंदर होते हैं, तो आपको "TempHumid" नामक एक तालिका बनानी होती है, इस तालिका के अंदर आपको "ID", "temp", "humid" और "hygro" नामक 4 कॉलम बनाने होते हैं। पहले कॉलम (आईडी) में आपको बॉक्स A_I (ऑटो इंक्रीमेंट) पर टिक करना है। ऐसा इसलिए है कि आईडी कॉलम प्रत्येक डेटासेट को एक आईडी देता है। निम्नलिखित सभी स्तंभों को एक INT (पूर्णांक) के रूप में सेट करना होगा, और मानक मान को NULL पर सेट करना होगा।

चरण 10: नोड-लाल

नोड-लाल
नोड-लाल
नोड-लाल
नोड-लाल
नोड-लाल
नोड-लाल

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

हमारे नोड-रेड प्रोग्रामिंग को स्थापित करने के लिए, चरण 1 को देखें और "नोड-रेड.डॉक्क्स" नामक दस्तावेज़ डाउनलोड करें। फिर ऊपरी दाएं कोने में आयात फ़ंक्शन के माध्यम से टेक्स्ट को नोड-रेड में कॉपी और पेस्ट करें।

उसके बाद अपने MySQL DB के लिए DB सेटिंग्स बदलें।

सिफारिश की: