विषयसूची:

IoTea LoRa Solution देखा (अपडेट १८११): ५ कदम
IoTea LoRa Solution देखा (अपडेट १८११): ५ कदम

वीडियो: IoTea LoRa Solution देखा (अपडेट १८११): ५ कदम

वीडियो: IoTea LoRa Solution देखा (अपडेट १८११): ५ कदम
वीडियो: Girls Height Measurements | Army Job | Indian Army Height Measurement Girls 2024, नवंबर
Anonim
देखा IoTea LoRa समाधान (अद्यतन १८११)
देखा IoTea LoRa समाधान (अद्यतन १८११)

इंटरनेट+ अब एक लोकप्रिय अवधारणा है। इस बार हमने चाय बागान को इंटरनेट चाय बनाने के लिए इंटरनेट प्लस कृषि की कोशिश की।

चरण 1: इस परियोजना में प्रयुक्त चीजें

हार्डवेयर घटक

  • ग्रोव - कार्बन डाइऑक्साइड सेंसर (MH-Z16)
  • ग्रोव - डिजिटल लाइट सेंसर
  • ग्रोव - डस्ट सेंसर (PPD42NS)
  • ग्रोव - ऑक्सीजन सेंसर (ME2-O2-Ф20)
  • मृदा नमी और तापमान सेंसर
  • लोरा लोरावन गेटवे - रास्पबेरी पाई के साथ 868 मेगाहर्ट्ज किट 3
  • ग्रोव - टेम्प और हमी और बैरोमीटर सेंसर (BME280)

सॉफ़्टवेयर ऐप्स और ऑनलाइन सेवाएं

माइक्रोसॉफ्ट विजुअल स्टूडियो 2015

चरण 2: कहानी

याआन, सिचुआन के उत्तर-पूर्व मेंगडिंग पर्वत पर, पहाड़ की चोटी हरे रंग के समुद्र में पश्चिम से पूर्व की ओर चलती है। समुद्र तल से 1100 मीटर की ऊंचाई पर स्थित 50 एमयू (= 3.3 हेक्टेयर) के वृक्षारोपण के साथ, 36 वर्षीय देंग के लिए यह सबसे परिचित दृश्य है, जो उनकी पीढ़ी के बहुत कम मेंगडिंग चाय निर्माताओं में से एक है। देंग चाय बनाने वालों के परिवार से आते हैं, लेकिन पारिवारिक विरासत को आगे बढ़ाना कोई आसान काम नहीं है। “हमारी चाय इसकी उत्कृष्ट गुणवत्ता सुनिश्चित करने के लिए एक जैविक वातावरण में उच्च ऊंचाई पर उगाई जाती है। लेकिन साथ ही, विकास घनत्व कम है, लागत अधिक है और नवोदित असमान है, जिससे चाय की कटाई मुश्किल हो जाती है। इसलिए हाई-माउंटेन टी आमतौर पर छोटी फसल होती हैं और उनके मूल्य बाजार में परिलक्षित नहीं होते हैं।”पिछले दो वर्षों से, देंग अपने मूल्य को बढ़ावा देने के लिए हाई-माउंटेन टी के बारे में उपभोक्ता जागरूकता बढ़ाने की कोशिश कर रहा है। और जब वह फैन से मिले, जो सीड की IoTea तकनीक को लागू करने के लिए वृक्षारोपण की तलाश कर रहा था, तो एक समाधान के लिए एक आदर्श मैच बनाया गया था।

चरण 3: हार्डवेयर कनेक्शन

इस परियोजना के हार्डवेयर को 4 भागों में विभाजित किया जा सकता है: पावर, सेंसर, नोड और गेटवे। निम्नलिखित लेख आपको दिखाएगा कि इसे चरण दर चरण कैसे पूरा किया जाए।

पावर पार्ट

पावर पार्ट में मुख्य रूप से एक सोलर पैनल और एक लिथियम बैटरी होती है, यदि आप इस प्रोजेक्ट को केवल प्रदर्शन के लिए बनाते हैं, तो आप उन्हें अनदेखा कर सकते हैं। या आप नोड पावर स्थापित करने के लिए पिछला ट्यूटोरियल का अनुसरण कर सकते हैं।

सेंसर भाग

सेंसर पार्ट में, कई सेंसर के कारण, हमने एक मौसम स्टेशन का उपयोग किया, और उन्हें स्थापित करने के लिए एक ऐक्रेलिक ब्रैकेट भी बनाया।

छवि
छवि

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

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

छवि
छवि

नोड पार्ट एक Seeeduino LoRaWan है जो वाटरप्रूफ बॉक्स में स्थापित होता है, यह वाटर जॉइंट्स के माध्यम से पावर और सेंसर से जुड़ता है। उनमें से, डस्ट सेंसर लोरावन के डिजिटल पिन D3, CO2 सेंसर से पिन D4 और D5 से कनेक्ट होता है, सॉयल सेंसर पिन D6 और D7 से कनेक्ट होता है, O2 सेंसर एनालॉग पिन A1 से कनेक्ट होता है और लाइट सेंसर और बैरोमीटर सेंसर I2C पोर्ट से कनेक्ट होता है।

नोट: सॉयल सेंसर के ब्लू (डेटा) केबल और रेड (Vcc) केबल के बीच एक 10k रेसिस्टर जोड़ा जाना चाहिए।

Seeeduino LoRaWan कभी-कभी सेंसर मान एकत्र करता है, और उन्हें LoRa के माध्यम से गेटवे पर भेजता है। नीचे की तरह डेटा प्रारूप:

{

[0], /* वायु तापमान (℃) */ [1], /* वायु आर्द्रता (%) */ [2], /* ऊंचाई (एम) उच्च बाइट */ [3], /* ऊंचाई (एम) कम बाइट */ [4], /* CO2 सांद्रता (PPM) उच्च बाइट */ [5], /* CO2 सांद्रता (PPM) कम बाइट */ [6], /* धूल सांद्रता (पीसी/0.01cf) उच्च बाइट */ [7], /* धूल की सघनता (पीसी/0.01cf) कम बाइट */ [8], /* प्रकाश की तीव्रता(लक्स) उच्च बाइट */ [9], /* प्रकाश की तीव्रता(लक्स) कम बाइट */ [१०], /* ओ२ एकाग्रता (%) */ [११], /* मिट्टी का तापमान (℃) */ [१२], /* मिट्टी की नमी (%) */ [१३], /* बैटरी वोल्टेज (वी) */ [१४] /* सेंसर त्रुटि कोड */}

सेंसर एरर कोड बाइट में प्रत्येक बिट का एक अंतर अर्थ होता है, जैसा कि नीचे दिया गया है:

{

बिट0: 1; /* बैरोमीटर सेंसर त्रुटि */bit1: 1; /* CO2 सेंसर त्रुटि */bit2: 1; /* डस्ट सेंसर त्रुटि */bit3: 1; /* लाइट सेंसर त्रुटि */bit4: 1; /* O2 सेंसर त्रुटि */bit5: 1; /* मृदा संवेदक त्रुटि */ आरक्षित: 2; /* आरक्षित */ }

गेटवे पार्ट

छवि
छवि

गेटवे पार्ट एक रास्पबेरी पाई है जो गेटवे मॉड्यूल RHF0M301–868 और PRI 2 ब्रिज RHF4T002 को प्लग करता है, यह एक वाटरप्रूफ बॉक्स में स्थापित होता है और वाटर जॉइंट्स के माध्यम से पावर और USB कैमरा से जुड़ता है। क्योंकि यह विशेष फर्मवेयर का उपयोग करता है, कृपया इसे कॉन्फ़िगर करने के लिए Seeed Wiki का अनुसरण करें।

चरण 4: सॉफ्टवेयर प्रोग्रामिंग

हार्डवेयर कनेक्शन के रूप में, सॉफ्टवेयर प्रोग्रामिंग को भी विभाजित किया जा सकता है, इसे 3 भागों में विभाजित किया जा सकता है: नोड, गेटवे और वेबसाइट।

नोड भाग

अधिकांश ड्राइवर जिन्हें नोड पार्ट की आवश्यकता होती है, वे पहले से ही मूल_ड्राइवर फ़ोल्डर में समाहित हैं। निम्नलिखित पुस्तकालयों को मैन्युअल रूप से स्थापित करने की आवश्यकता है:

एडफ्रूट_एएसएफकोर

क्योंकि परियोजना जटिल है, हम अनुशंसा करते हैं कि आप Arduino IDE के बजाय Microsoft Visual Studio का उपयोग करें। विजुअल माइक्रो नामक एक प्लगइन विजुअल स्टूडियो का उपयोग करके एक Arduino प्रोजेक्ट बनाने में आपकी मदद कर सकता है, अधिक जानकारी के लिए यहां क्लिक करें।

बेहतर पठनीयता और रखरखाव के लिए, हम इस बार ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का उपयोग करते हैं। इस परियोजना का वर्ग आरेख नीचे जैसा दिखता है:

छवि
छवि

उन सेंसर के लिए पहले से ही ओओपी ड्राइवर है, हमने इस परियोजना को अनुकूलित करने के लिए इसे दोबारा तैयार किया है, दूसरों के लिए, हम ओओपी का उपयोग करके अपने ड्राइवरों को फिर से लिखते हैं। मिडलवेयर परत में सेंसर वर्ग का उपयोग वास्तविक सेंसर के इंटरफेस को एकीकृत करने के लिए किया जाता है, उदाहरण के लिए, बैरोमीटर सेंसर एक ही समय में तापमान, आर्द्रता और ऊंचाई एकत्र कर सकता है, इसलिए इसमें तापमान, आर्द्रता और ऊंचाई प्राप्त करने के लिए 3 इंटरफेस हैं। लेकिन उनके पास अंतर विधि का नाम है, जो सेंसर मूल्य प्राप्त करने के कार्यक्रम को और अधिक जटिल बना देगा, जैसे:

बैरोमीटर-> प्राप्त तापमान ();

बैरोमीटर-> गेटह्यूमिडिटी (); बैरोमीटर-> getAltitude (); // … अन्य_सेंसर-> getSomeValue (); //…

लेकिन ओओपी का उपयोग करके ऐसा लगता है:

के लिए (ऑटो i = 0; मुझे getValue ();

}

हमने एक एप्लिकेशन क्लास भी पैक किया है, यह IApplication इंटरफ़ेस को लागू करता है, IoTea.ino में सेटअप () और लूप () विधि एप्लिकेशन ऑब्जेक्ट में सेटअप () और लूप () विधि को कॉल कर सकता है।

नोट: USB सीरियल का उपयोग केवल डिबग करने के लिए किया जाता है। डिबगिंग के बाद, कृपया टिप्पणी करें कि यह सेटअप () विधि में कोड को इनिशियलाइज़ करता है।

गेटवे पार्ट

होम फोल्डर में गेटवे पार्ट के पायथन प्रोग्राम का उपयोग तस्वीरें लेने और उन्हें हर घंटे अमेज़न S3 सर्वर पर अपलोड करने के लिए किया जाता है। इसका उपयोग करने से पहले, सुनिश्चित करें कि आपके रास्पबेरी पाई में पहले से ही fswebcam स्थापित है:

sudo apt-get update && sudo apt-get install fswebcam

यदि आप फ़ोटो अपलोड करना चाहते हैं, तो निम्न चरणों का पालन करके अपने AWS को कॉन्फ़िगर करें। सबसे पहले, इन आदेशों का उपयोग करके अपने रास्पबेरी पाई में एडब्ल्यूएस एसडीके और एडब्ल्यूएस सीएलआई स्थापित करें:

sudo pip install boto3

सुडो पाइप स्थापित करें awscli

और फिर, एडब्ल्यूएस सीएलआई चलाएँ:

सुडो एडब्ल्यूएस कॉन्फ़िगर करें

अपनी एडब्ल्यूएस एक्सेस कुंजी आईडी, एडब्ल्यूएस सीक्रेट एक्सेस आईडी और डिफ़ॉल्ट क्षेत्र का नाम कॉन्फ़िगर करें।

यदि आप अपने फ़ोटो अपलोड करना पसंद नहीं करते हैं, तो आप photo.py में अपलोड करने के बारे में AWS कॉन्फ़िगरेशन चरणों और टिप्पणी कोड को छोड़ सकते हैं। रास्पबेरी पाई को हर बार बूट करने के बाद इस प्रोग्राम को चलाने के लिए, आप /etc/init.d में एक फ़ाइल नाम फोटो बना सकते हैं, और इसमें निम्न कोड लिख सकते हैं।

#!/बिन/बैश

# /etc/init.d/photo ### आरंभ जानकारी # प्रदान करता है: सीड_फोटो # आवश्यक-प्रारंभ: $remote_fs $syslog # आवश्यक-रोकें: $remote_fs $syslog # डिफ़ॉल्ट-प्रारंभ: 2 3 4 5 # डिफ़ॉल्ट-रोकें: 0 1 6 # लघु-विवरण: फोटो लेना इनस्क्रिप्ट # विवरण: इस सेवा का उपयोग फोटो लेने के प्रबंधन के लिए किया जाता है ### अंत INIT जानकारी केस "$1" शुरू में) गूंज "फोटो लेना शुरू करें" /home/rxhf/photo.py और;; स्टॉप) इको "फोटो लेना बंद करो" किल $(ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $2}');; *) इको "यूज: सर्विस फोटो स्टार्ट | स्टॉप" एग्जिट 1;; esac बाहर निकलें 0

निष्पादन अनुमति सेट करें

सुडो चामोद 777 /etc/init.d/photo

sudo chmod 777 /home/rxhf/photo.py

और इसका परीक्षण करें

sudo /etc/init.d/photo start

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

sudo /etc/init.d/photo stop

sudo update-rc.d फोटो डिफॉल्ट्स

नोट: यदि आप रास्पबेरी पाई बूटिंग के बाद गेटवे स्टार्टअप करना चाहते हैं, तो सीड विकी में /etc/rc.local में गेटवे शुरुआती कोड जोड़ें, इसे इस तरह दिखने दें:

#!/बिन/श -ई

# # rc.local # # यह स्क्रिप्ट प्रत्येक बहुउपयोगकर्ता रनलेवल के अंत में निष्पादित की जाती है। # सुनिश्चित करें कि स्क्रिप्ट सफल होने पर "0 से बाहर निकलें" या त्रुटि पर कोई अन्य # मान। # # इस स्क्रिप्ट को सक्षम या अक्षम करने के लिए बस निष्पादन # बिट बदलें। # # डिफ़ॉल्ट रूप से यह स्क्रिप्ट कुछ नहीं करती है। # आईपी एड्रेस प्रिंट करें _IP=$(hostname -I) || सच अगर ["$_आईपी"]; फिर प्रिंटफ "मेरा आईपी पता %s\n" "$_IP" फाई सीडी /होम/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -राइजिंगफ-आर… -ओ लोरियट-जीडब्ल्यू.बिन चामोद +x लोरियोट-जीडब्ल्यू.बिन./loriot-gw.bin -f -s cn1.loriot.io बाहर निकलें 0

वेबसाइट

हमने वेबसाइट को CentOS 7 पर तैनात किया है। निम्नलिखित चरण आपको बताएंगे कि कैसे परिनियोजित करना है।

चरण 1. Python3 स्थापित करें

सुडो यम-वाई एपल-रिलीज स्थापित करें

sudo yum -y python36 स्थापित करें

चरण 2. पायथन पाइप और आभासी वातावरण स्थापित करें

wget

sudo python36 get-pip.py sudo pip install virtualenv

सेटप 3. हमारी वेबसाइट को GitHub से क्लोन करें

सुडो यम-वाई गिट स्थापित करें

गिट क्लोन

चरण 4. आभासी वातावरण बनाएं और सक्रिय करें

virtualenv -p python36 iotea-hb

सीडी आईओटी-एचबी स्रोत बिन/सक्रिय

चरण 5. आश्रित पुस्तकालय स्थापित करें

पाइप स्थापित pymysql

पाइप स्थापित करें dbutils पाइप स्थापित करें फ्लास्क पाइप स्थापित करें वेबसोकेट-क्लाइंट पाइप स्थापित करें cofigparser

चरण 6. डेटाबेस बनाएँ

sudo yum -y mariadb mariabd-server स्थापित करें

sudo systemctl mariadb को सक्षम करें sudo systemctl start mariadb mysql -uroot -p

और फिर तालिका बनाने के लिए iotea_hb.sql का उपयोग करें।

Step 7. db.ini बनाएं और उसमें ये कोड लिखें

[डीबी]

db_port = 3306 db_user = रूट db_host = लोकलहोस्ट db_pass = db_name = iotea

db.py. में db.ini का पथ बदलें

# db.py. में

#cf.read("/data/www/python3_iotea_hb/iotea/conf/db.ini") cf.read("/home//iotea-hb/db.ini")

चरण 8. app.py में पोर्ट बदलें और वेबसाइट शुरू करें:

# app.py. में

#app.run(debug=true, port=6000) app.run(debug=true, port=8080)

#टर्मिनल में

पाइप स्थापित गनिकोर्न गनिकोर्न -w 5 -b 0.0.0.0:8080 ऐप: ऐप

अब अपने वेब ब्राउज़र में 127.0.0.1:8080 पर जाएं, आप वेबसाइट देख सकते हैं, लेकिन रीयल-टाइम डेटा प्रदर्शित नहीं होता है।

चरण 9. लोरियट डेटा प्राप्त करें

एक और टर्मिनल खोलें, वर्चुअल एनवायरनमेंट को फिर से दर्ज करें और लॉरियट ऐप शुरू करें:

सीडी iotea-hb

स्रोत बिन / गनिकोर्न लॉरियट सक्रिय करें: ऐप

थोड़ी देर प्रतीक्षा करें, आप वेबसाइट में प्रदर्शित डेटा देखेंगे, या आप loriot.py में wss बदल सकते हैं:

# loriot.py. में

#ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==")

डब्ल्यूएस = create_connection ()

चरण 5: ऑपरेशन

रीयल-टाइम डेटा देखने के लिए आप हमारी वेबसाइटों पर जा सकते हैं:

  • यानी में
  • प्रदर्शन के लिए

सिफारिश की: