विषयसूची:

आईबीएम वाटसन ईएसपी32 के साथ समापन बिंदु के रूप में: 11 कदम
आईबीएम वाटसन ईएसपी32 के साथ समापन बिंदु के रूप में: 11 कदम

वीडियो: आईबीएम वाटसन ईएसपी32 के साथ समापन बिंदु के रूप में: 11 कदम

वीडियो: आईबीएम वाटसन ईएसपी32 के साथ समापन बिंदु के रूप में: 11 कदम
वीडियो: IoT - Secure MQTT/HTTP Apis using Node-Red - workshop 1hr - FOSSASIA 2017 2024, जुलाई
Anonim
Image
Image
ESP32 पिनआउट
ESP32 पिनआउट

मैं आज यहां एक श्रृंखला का पहला वीडियो पोस्ट कर रहा हूं कि कैसे ESP32 के साथ एक एंडपॉइंट डिवाइस को माउंट किया जाए, और फिर इसे क्लाउड सेवा पर भेजा जाए। इस विशिष्ट कड़ी में, मैं आपको दिखाऊंगा कि आईबीएम वाटसन के लिए MQTT प्रोटोकॉल का उपयोग करके DHT22 सेंसर से जानकारी कैसे भेजी जाती है।

हम सबसे पहले MQTT को पेश करेंगे, जो IoT (इंटरनेट ऑफ थिंग्स) में उपयोग किया जाने वाला मशीन-टू-मशीन प्रोटोकॉल है। हम इस प्रोटोकॉल का उपयोग करके तापमान और आर्द्रता सेंसर से डेटा भी भेजेंगे, और फिर वेब पेज पर इस डेटा के साथ ग्राफ़ की जांच करेंगे।

चरण 1: ESP32 पिनआउट

मैंने यहां ESP32 का पिनआउट रखा है, जिसका उपयोग हम अपने उदाहरण में करते हैं। हालांकि, मैं यह स्पष्ट करना चाहता हूं कि यह परियोजना ईएसपी 8266 के साथ भी काम करती है, और यहां तक कि उसी स्रोत कोड के साथ भी।

चरण 2: NodeMCU पिनआउट

NodeMCU पिनआउट
NodeMCU पिनआउट

चरण 3: एमक्यूटीटी

एमक्यूटीटी
एमक्यूटीटी

MQTT एक मशीन-टू-मशीन प्रोटोकॉल है जिसका उपयोग IoT में किया जाता है। इसे हल्का और तेज होने के लिए डिजाइन किया गया था। यह एक सदस्यता/प्रकाशन प्रणाली का उपयोग करता है, जहां एक उपकरण आपकी रुचि की विशिष्ट जानकारी के साथ किसी विषय की "सदस्यता" लेता है, और फिर जब भी कोई उपकरण इस विषय से संबंधित डेटा प्रकाशित करता है तो वह जानकारी प्राप्त करता है।

एक सर्वर प्रोग्राम की तरह, MQTT को सॉफ़्टवेयर की आवश्यकता होती है। इसे ब्रोकर कहा जाता है। इस विशिष्ट मामले में, हम IBM की Bluemix IoT सेवा का उपयोग करेंगे। यह सेवा समापन बिंदु परीक्षण के लिए निःशुल्क है।

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

चरण 4: विधानसभा

सभा
सभा

हमारे सर्किट में 3.3v और डेटा पिन के बीच एक 4.7k ओम रेसिस्टर होता है, साथ ही एक DHT22 एक ESP32 या NodeMCU के GPIO4 से जुड़ा होता है। इस प्रकार, यह हमारा समापन बिंदु है।

चरण 5: आरेख

आरेख
आरेख
आरेख
आरेख

मैं यहां एमक्यूटीटी लोकल ब्रोकर के साथ काम करने के कई तरीके दिखाता हूं। मैंने दो आरेख मॉडल रखे। उदाहरण के लिए, वीडियो में, मैं एक रास्पबेरी पाई का उपयोग करके एक गेट खोलने की स्थिति के बारे में बात करता हूं।

ऊपर की छवि में, हमारे पास पहला आर्किटेक्चर है जो एक स्थानीय ब्रोकर को दृढ़ता के साथ उपयोग करता है, और दूसरा आर्किटेक्चर नीचे है जो केवल क्लाउड में ब्रोकर के साथ संचार करता है।

जैसा कि आरेख में दिखाया गया है, हमारा सेंसर तब आईबीएम वाटसन को तापमान और आर्द्रता डेटा भेजता है। इस बात पर जोर देना महत्वपूर्ण है कि आईबीएम वाटसन इस मामले में डेटा नहीं लिख रहा है, क्योंकि यह केवल ग्राफ़ में प्रदर्शित किया जा रहा है। ऐसा इसलिए है क्योंकि हम आज के उदाहरण में किसी भी डेटाबेस संचालन को संबोधित नहीं करेंगे, लेकिन केवल क्विकस्टार्ट पृष्ठ (https://quickstart.internetofthings.ibmcloud.com/) तक पहुंच का संकेत देंगे, जो समापन बिंदु की स्थिति प्रदर्शित करेगा। योजना सरल है और डेटा भेजने के लिए वाईफाई का उपयोग करती है।

चरण 6: पुस्तकालय

Arduino IDE में, स्केच मेनू पर जाएं -> लाइब्रेरी शामिल करें -> लाइब्रेरी प्रबंधित करें …

खुलने वाली स्क्रीन पर, खोज "DHT" दर्ज करें और lib "DHT सेंसर लाइब्रेरी" स्थापित करें

फिर, "PubSubClient" टाइप करें और "PubSubClient" lib इंस्टॉल करें।

चरण 7: तापमान और आर्द्रता रीडिंग लाइब्रेरी

तापमान और आर्द्रता रीडिंग लाइब्रेरी
तापमान और आर्द्रता रीडिंग लाइब्रेरी

चरण 8: एमक्यूटीटी लाइब्रेरी

एमक्यूटीटी लाइब्रेरी
एमक्यूटीटी लाइब्रेरी

चरण 9: MQTT.ino

हम स्रोत कोड शुरू करते हैं यह जाँच कर कि किस ईएसपी का उपयोग किया जा रहा है और संबंधित पुस्तकालय और वाईफाई का आयात कर रहा है। हम अभी भी MQTT Libs और तापमान और आर्द्रता सेंसर को शामिल करते हैं।

// वेरिफ़िका क्वाल ईएसपी एस्टा सेंडो यूटिलिज़ाडो // ई इम्पोर्ट ए लिब और वाईफाई कॉरेस्पोंडेंट #अगर परिभाषित (ईएसपी 8266) #include #else #include #endif // लिब डी एमक्यूटीटी #include // लिब डू सेंसर डी टेम्परेचर ई umidade #include

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

// इंटरवलो एंटर ओएस एनविओस # परिभाषित इंटरवल 1000 // सबस्टिटुआ पेलो एसएसआईडी दा सुआ रेडे # एसएसआईडी "टेस्टईएसपी" परिभाषित करें.messaging.internetofthings.ibmcloud.com" // नोम डू टोपिको क्यू डेवेमोस एनवीयर ओएस डैडोस //पैरा क्यू एल्स एपारेकम नोस ग्रैफिकोस #define TOPIC_NAME "iot-2/evt/status/fmt/json" // आईडी क्यू usaremos पैरा कनेक्टर //QUICK_START deve permanecer como está const String QUICK_START = "d:quickstart:arduino:";

इस चरण में, हम एक अद्वितीय आईडी परिभाषित करते हैं। इस उदाहरण में, हम उस डिवाइस के मैक एड्रेस का उपयोग करते हैं जिसका हम उपयोग कर रहे हैं। यह क्विकस्टार्ट साइट पर पहचान का काम करेगा। यहां, हम क्विकस्टार्ट आईडी को अपने डिवाइस की आईडी से भी जोड़ते हैं।

//नहीं DEVICE_ID você deve mudar para um id nico//Aqui nesse उदाहरण utilizamos o MAC पता // do dispositivo que estamos utilizando // Servirá como identificação no साइट //https://quickstart.internetofthings.ibmcloud.com = "240ac40e3fd0"; // Concatemos या id do Quickstart com o id do nosso //dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;

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

// क्लाइंट वाईफाई क्यू या एमक्यूटीटी इरा उपयोग के लिए कनेक्शन के लिए वाईफाई क्लाइंट वाईफाई क्लाइंट; // क्लाइंट MQTT, एक url do सर्वर पास करता है, एक पोर्टा // e o क्लाइंट WiFi PubSubClient क्लाइंट (MQTT_SERVER, 1883, wifiClient); // टेम्पो एम क्यू ओ अल्टिमो एनवियो फोई फीटो लॉन्ग लास्ट पब्लिशटाइम = 0; //Objeto que realiza a leitura da tempatura e da umidade DHT dht(4, DHT22); // वेरिअवेल पैरा गार्डर्मोस ओ वेलोर दा टेम्पेरेटुरा फ्लोट तापमान = 0; //वरिअवेल पैरा गार्डर्मोस ओ वेलोर दा उमिददे फ्लोट आर्द्रता = 0;

MQTT.ino - सेटअप

सेटअप में, हम DHT को इनिशियलाइज़ करेंगे, और WiFi नेटवर्क और MQTT सर्वर से कनेक्ट करेंगे।

शून्य सेटअप () {Serial.begin(११५२००); //Incializamos या dht dht.begin(); // Conectamos वाईफाई सेटअप को फिर से करेंWiFi (); // Conectamos AO सर्वर MQTT ConnectMQTTServer (); }

MQTT.ino - लूप

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

शून्य लूप () {//टेम्पोस अगोरा एम मिलिसेगुंडोस लॉन्ग नाउ = मिलिस (); // से ओ टेम्पो डेसडे ओ अल्टिमो एनवियो फॉर माईर क्यू ओ इंटरवलो डी एनवियो अगर (अब - लास्ट पब्लिशटाइम> इंटरवल) {//अटुआलिजामोस ओ टेम्पो एम क्यू ओकोर्रेउ ओ इल्टिमो एनवियो लास्ट पब्लिशटाइम = अब; // फ़ैज़ेमोस ए लेइटुरा डा टेम्पेरेटुरा ई उमीदेड रीडसेंसर (); सीरियल.प्रिंट ("संदेश प्रकाशित करें:"); //Criamos या json que enviaremos para o सर्वर mqtt String msg = createJsonString (); सीरियल.प्रिंट्लन (संदेश); //Publicamos no topico onde o servidor espera para receber //e gerar o gráfico client.publish(TOPIC_NAME, msg.c_str()); } }

MQTT.ino - सेटअपवाईफाई

यहां, हमारे पास वाईफाई नेटवर्क से कनेक्ट करने के लिए जिम्मेदार फ़ंक्शन है।

//Função प्रतिक्रिया के लिए कनेक्ट करें WiFivoid setupWiFi () को फिर से करें { Serial.println (); Serial.print ("कनेक्ट कर रहा है"); सीरियल.प्रिंट (एसएसआईडी); // मंडा ओ एस्प से कनेक्टर रीडे एट्रावेस // do ssid e senha WiFi.begin(SSID, PASSWORD); // Espera até que a conexão com a rede seja estabelecida जबकि (WiFi.status() != WL_CONNECTED) {देरी(500); सीरियल.प्रिंट ("।"); }//से चेगौ एक्वी और पोर्क कनेक्शन सीरियल.प्रिंट्लन(""); Serial.println ("वाईफाई कनेक्टेड"); }

MQTT.ino - ConnectMQTTServer

इस चरण में, हम MQTT सर्वर से कनेक्ट करने के लिए जिम्मेदार फ़ंक्शन का उपयोग करते हैं।

// इस पर प्रतिक्रिया दें और सर्वर को कनेक्ट करें MQTTvoid ConnectMQTTServer() { Serial.println ("MQTT सर्वर से कनेक्ट हो रहा है …"); // से कनेक्ट एओ आईडी क्यू निश्चित रूप से अगर (क्लाइंट.कनेक्ट (CLIENT_ID.c_str ())) {// से एक conexão foi bem sucedida Serial.println ("कनेक्टेड"); } और {// से ocorreu algum erro Serial.print ("त्रुटि ="); Serial.println (क्लाइंट.स्टेट ()); } }

MQTT.ino - सेंसर पढ़ें

इस फ़ंक्शन में तापमान और आर्द्रता डेटा की रीडिंग को परिभाषित किया गया है।

// फ़नकाओ रिस्पॉन्सवेल पोर रियलिज़र ए लेटुरा // दा टेम्परेचर ई उमिडेड शून्य रीड सेंसर () {फ्लोट वैल्यू; // फ़ैज़ ए लेइटुरा दा टेम्परेचर वैल्यू = dht.readTemperature (); // से ओ वेलोर लिडो é वालिडो if(!isnan(value)){//Armazena o novo valor datempaturatemperature = value; } // फ़ैज़ ए लेइटुरा दा उमिडेड वैल्यू = dht.readHumidity (); // से ओ वेलोर फॉर वेलिडो if(!isnan(value)){//Armazena o novo valor da umidade आर्द्रता = value; } }

MQTT.ino - createJsonString

यहां, हमारे पास डेटा पढ़ने के साथ एक Json बनाने के लिए जिम्मेदार फ़ंक्शन है।

// इस पर प्रतिक्रिया दें //um Json com ओएस डैडोस लिडोस स्ट्रिंग createJsonString () {स्ट्रिंग डेटा = "{"; डेटा+= "\"डी\": {"; डेटा+="\"तापमान\":"; डेटा + = स्ट्रिंग (तापमान); डेटा + = ","; डेटा+="\"आर्द्रता\":"; डेटा + = स्ट्रिंग (आर्द्रता); डेटा+="}"; डेटा+="}"; डेटा वापस करें; }

चरण 10: ग्राफिक

ग्राफिक
ग्राफिक
ग्राफिक
ग्राफिक

सेंसर ग्राफ़ देखने के लिए, जाएँ

quickstart.internetofthings.ibmcloud.com. पर

डिवाइस आईडी फ़ील्ड में, कोड में परिभाषित DEVICE_ID दर्ज करें।

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

अंत में, शर्तों को स्वीकार करें और गो पर क्लिक करें।

इस परियोजना में, हमने आईबीएम वाटसन सर्वर पर हमारे समापन बिंदु का परीक्षण किया। यह सुनिश्चित करता है कि हमारा Arduino प्रोग्राम प्लेटफ़ॉर्म के साथ ठीक से संचार कर रहा है, और यह कि हमारे द्वारा भेजा गया डेटा क्लाउड सेवा द्वारा आसानी से प्राप्त किया जाएगा यदि हम एक खाता बनाते हैं।

इस श्रृंखला के आगामी वीडियो में, मैं आपको दिखाऊंगा कि आईबीएम वाटसन में कैसे लॉग इन किया जाता है, साथ ही इस या किसी अन्य क्लाउड सेवा, जैसे कि Google, Amazon, के डेटाबैंक में भी लिखा जाता है।

चरण 11: फ़ाइलें

फ़ाइलें डाउनलोड करें:

पीडीएफ

मैं नहीं

सिफारिश की: