2 | RIOT-OS का उपयोग करके IoT डिवाइस कैसे विकसित करें और MQTT-SN का उपयोग करके इसे थिंकबोर्ड से कनेक्ट करें

इस ट्यूटोरियल में हम पहले भाग में विकसित क्लाउड-आधारित घटकों के शीर्ष पर निर्मित करेंगे: थिंग्सबर्ड का उपयोग करके IoT सिस्टम को कैसे सेटअप करें। यदि आपने पहले ही इसे नहीं पढ़ा है, तो मैं आपको इसे करने की सलाह देता हूं।

अब हम पायथन का उपयोग करके विकसित किए गए आभासी पर्यावरणीय स्टेशनों को आरआईओटी-ओएस और एमक्यूटीटी-एसएन प्रोटोकॉल का उपयोग करके नए लोगों के साथ बदल देंगे। आप अपने स्टेशनों को चलाने और MQTT-SN पर मूल्यों को उत्पन्न करने के लिए RIOT-OS के मूल एमुलेटर का उपयोग करेंगे जो MQTT के माध्यम से क्लाउड तक पहुंचने की आवश्यकता है। बाद में, आप वास्तविक उपकरणों पर अपने RIOT-OS एप्लिकेशन को निष्पादित करने के लिए IOT-LAB पारिस्थितिकी तंत्र में अपना पहला कदम रखेंगे।

थिंग्सबोर्ड, MQTT, RIOT-OS और IoT-LAB का उपयोग कर IoT क्लाउड-आधारित प्रणाली

सबसे पहले, आपको मेरे GitHub रिपॉजिटरी से अपडेट खींचने की आवश्यकता है। यदि आपने पहले से नहीं किया है, तो मैं आपको अपने पिछले ट्यूटोरियल और वीडियो की जांच करने की अत्यधिक सलाह देता हूं।

git पुल git सबमॉड्यूल अपडेट --init --recursive

मैंने 2 नए महत्वपूर्ण फ़ोल्डर जोड़े:

  • दलाल: इसमें ब्रोकर और गेटवे के सभी कॉन्फ़िगरेशन शामिल हैं। इसके अलावा, मच्छर के सीधे स्रोत कोड लाने के लिए 2 सबमॉड्यूल्स हैं। पोर्श और पोहो एमक्यूटीटी-एसएन पारदर्शी गेटवे।
  • डिवाइस / दंगा: IoT डिवाइस के लिए RIOT स्रोत फ़ोल्डर और मूल तैनाती पर नेटवर्क इंटरफेस को आसानी से कॉन्फ़िगर करने के लिए एक छोटी स्क्रिप्ट set_network.sh शामिल है।

दंगा-ओएस

RIOT एक रीयल-टाइम मल्टी-थ्रेडिंग ऑपरेटिंग सिस्टम है, जो कई उपकरणों का समर्थन करता है जो आम तौर पर IoT में पाए जाते हैं। यह निम्नलिखित डिजाइन सिद्धांतों पर आधारित है:

  • ऊर्जा-दक्षता और वास्तविक समय की क्षमताएं;
  • छोटी स्मृति पदचिह्न और प्रतिरूपकता;
  • वर्दी एपीआई पहुंच: अंतर्निहित हार्डवेयर (POSIX) से स्वतंत्र।

अवलोकन करने के लिए मैं आपको आधिकारिक RIOT संदर्भों की जांच करने का सुझाव देता हूं: प्रारंभ करना, GitHub रिपॉजिटरी, प्रलेखन। Get Started Guide को फॉलो करें और अपने RIOT बेस फोल्डर पर ध्यान दें।

Thingsboard

IoT डिवाइस अब सीधे चीजेंबोर्ड MQTT से जुड़े नहीं हैं, इसलिए हमें अपने डिफ़ॉल्ट विषय को बदलने की आवश्यकता है। अब, हम टेलीमेट्री को प्रकाशित करेंगे:

विषय: v1 / गेटवे / टेलीमेटरी

इसके अलावा, पेलोड पहले से अलग है:

{"डिवाइस ए": [{"टीएस": १४28३२२000 ,०००००, "मूल्य": {"तापमान": ४२, "आर्द्रता": }०}}}, "डिवाइस बी": [{"टीएस": १४32३२२800०००००००, "मूल्य" : {"तापमान": 42, "आर्द्रता": 80}}]}

संपूर्ण थिंग्सबोर्ड MQTT गेटवे एपीआई संदर्भ के लिए इस लिंक की जाँच करें।

इसलिए हम गेटवे चेकबॉक्स का चयन करने के लिए थिंग्सबोर्ड पर एक नया उपकरण जोड़ते हैं

थिंग्सबोर्ड गेटवे कॉन्फ़िगरेशन

उसके बाद, ट्यूटोरियल गेटवे के ACCESS TOKEN को कॉपी करें और दलालों / कन्फ़ेक्ट / ब्रिज_गेटवे_ [पेस्ट | देव] में पेस्ट करें। पंक्ति में। इसके अलावा, यदि आपने क्लाउड पर थिंग्सबोर्ड को कॉन्फ़िगर किया है, तो अपने पब्लिक आईपी के साथ पता भी बदलें।

थिंग्सबोर्ड पर हमें कुछ और कॉन्फ़िगर करने की आवश्यकता नहीं है, हम सब कुछ छोड़ देंगे क्योंकि यह पहले ट्यूटोरियल में था।

RIOT फर्मवेयर

मेरा RIOT फर्मवेयर आधिकारिक उदाहरण emcute_mqttsn पर आधारित है। मैंने मेकफाइल पर कुछ मॉड्यूल निम्नानुसार जोड़े:

DRIVER? = Lps331ap #to सीधे सेंसर का उपयोग करें USEMODULE + = $ (DRIVER) USEMODULE + = saul_default #sensors API
कस्टम खोल दंगा पर आदेश देता है

अधिक जानकारी के लिए GitHub रिपॉजिटरी पर जाँच करें। जब आप वास्तविक बोर्ड पर संकलित करते हैं और जब आप असली iotlab-m3 उपकरणों पर चलते हैं तो #define सेंसर 0 सेट करना महत्वपूर्ण है। Makefile पर lps331ap मॉड्यूल को मैन्युअल रूप से अक्षम करना याद रखें।

NB: मैंने डेटा को लगातार प्रकाशित करने के लिए फ़ंक्शन cmd_pub_data में दंगा API थ्रेड_क्रिएट का उपयोग करके एक अलग थ्रेड बनाया।

MQTT-एस.एन.

MQTT-SN वायरलेस सेंसर नेटवर्क (WSN) के लिए एक प्रकाशन / सदस्यता संदेश प्रोटोकॉल है, सेंसर और एक्चुएटर समाधान के लिए टीसीपी / आईपी बुनियादी ढांचे की पहुंच से परे MQTT प्रोटोकॉल का विस्तार करने के उद्देश्य से।

MQTT-SN आर्किटेक्चर

एक बहुत ही बुनियादी MQTT-SN गेटवे rsmb मेरी रिपॉजिटरी में एक सबमॉड्यूल के रूप में उपलब्ध है और यह IoT-LAB पर iotlab-a8 डिवाइसेस पर डिफ़ॉल्ट रूप से स्थापित है।

मेरे कॉन्फ़िगरेशन में, मैंने paho MQTT-SN ट्रांसपेरेंट गेटवे का उपयोग करने का फैसला किया है जो MQTT-SN ब्रोकर के रूप में और MQTT-SN पारदर्शी गेटवे दोनों के रूप में काम करता है।

इसलिए, मैंने डिफ़ॉल्ट गेटवे को संशोधित किया।

ब्रोकरनाम = लोकलहोस्ट ब्रोकरपार्टनो = 1884
गेटवेयूडीपी 6 बीइंड = fec0: affe :: 1/64 गेटवेयूडीपी 6 पीपोर्ट = 1885

अब, इसे स्थापित करें और मेरे कस्टम कॉन्फ़िगरेशन की प्रतिलिपि बनाएँ (यह मानते हुए कि आपने सबमॉड्यूल प्राप्त किया है)

cd दलालों / MQTTSN-Gateway ./custom_install.sh mv गेटवे.conf गेटवे.conf.bkp cp ../conf/MQTTSN-Gateway.conf.way.conf

यह कॉन्फ़िगरेशन स्केलेबल है और "इसके अलावा" मुझे कोड की एक पंक्ति नहीं लिखनी है। अगले चरण में, आप मच्छरदानी को पुल के रूप में चला सकते हैं, जो कि पॉकेट mqtt-sn गेटवे को थिंग्सबोर्ड पर दूरस्थ MQTT ब्रोकर से जोड़ता है।

मच्छर-सी ब्रोकर्स / कन्फ़ेशन / ब्रिज_गेटवे_प्रोड.कॉन्फ़

एक और टर्मिनल खोलें और पाओ पारदर्शी गेटवे चलाएं:

सीडी ब्रोकर्स / एमक्यूटीटीएसएन-गेटवे ।/MQTT-SNGateway

इसके बाद आप अंत में RIOT फर्मवेयर (Makefile पर अपने RIOTBASE की जाँच करें) को संकलित कर सकते हैं और फिर इसे चला सकते हैं।

सीडी डिवाइस / दंगा / सेंसर_mtttsn ।/start_network.sh पोर्ट = टैप 0 सभी शब्द को साफ करें

अब आपके पास एक परिदृश्य होगा:

RIOT मूल, MQTTSN ट्रसपेरेंट ब्रिज और मच्छर

MQTT-SN ब्रोकर से कनेक्ट करने और डेटा पुश करने के लिए आप RIOT शेल के साथ इंटरैक्ट कर सकते हैं।

ifconfig 5 add fec0: affe :: 99 con fec0: affe :: 1 1885 set_device "डिवाइस पियानो" pub v1 / गेटवे / टेलीमेट्री "{'डिवाइस पियानो': [{'ts: 1585744760000,' मान ': {' आर्द्रता ' ': 42}}]} "1 pub_telemetry
  • set_device : एक कस्टम कमांड है जिसे मैंने डायनामिक रूप से डिवाइस नाम सेटअप करने के लिए लिखा था
  • पब एक डिफ़ॉल्ट कमांड उपलब्ध emcute_mqttsn है
  • pub_telemetry: एक कस्टम कमांड है जिसे मैंने सीधे यादृच्छिक डेटा (मूल अनुप्रयोगों के मामले में) को पुश करने के लिए लिखा था
  • pub_data: किसी अन्य थ्रेड का उपयोग करके डेटा को लगातार पुश करने के लिए एक कस्टम कमांड है। (अभी के लिए इसका उपयोग न करें, यह केवल मल्टी-थ्रेड प्रोग्रामिंग के लिए एक स्टब है)
एक RIOT निष्पादनमल्टी-डिवाइस डैशबोर्डडिवाइस डैशबोर्ड

IoT-प्रयोगशाला

IoT-LAB छोटे वायरलेस सेंसर उपकरणों और विषम संचार करने वाली वस्तुओं के परीक्षण के लिए बहुत बड़े पैमाने पर बुनियादी ढाँचा प्रदान करता है।

यह देखने के लिए मेरा वीडियो देखें कि इसे स्थानीय रूप से कैसे चलाया जाए और IoT-LAB पर वास्तविक सेंसर डेटा कैसे प्राप्त किया जाए

  1. IoT-Lab पर रजिस्टर करें।
  2. SSH एक्सेस (लिंक) कॉन्फ़िगर करें।
  3. इस ट्यूटोरियल का अनुसरण करें

RIOT-फर्मवेयर को दूरस्थ रूप से बनाने के लिए आपके पास अपनी रिमोट मशीन में पहुंच है और फिर चलाएं:

ssh @ saclay। saclay इत्तलाब-प्रयोग मिलता है -आई -आर इत्तलाब-नोड - अपडेट .एफएल-सेकले, एम 3 nc 20000

Iot-lab के बारे में अधिक संपूर्ण मार्गदर्शिका के लिए मेरी रिपॉजिटरी देखें। अगले ट्यूटोरियल में मैं आईओटी-लैब नेटवर्क कॉन्फ़िगरेशन के अधिक विस्तार में जाऊंगा। इसलिए, हम वास्तविक iotlab उपकरणों पर समान कॉन्फ़िगरेशन को दोहराएंगे।

यह रोम के Sapienza विश्वविद्यालय में कंप्यूटर विज्ञान में एमएससी इंजीनियरिंग के इंटरनेट ऑफ थिंग्स कोर्स के लिए एक परियोजना है।

  • गिटहब भंडार: लिंक
  • लिंक्डइन: लिंक
  • YouTube: लिंक