विषयसूची:

सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे: 9 कदम
सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे: 9 कदम

वीडियो: सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे: 9 कदम

वीडियो: सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे: 9 कदम
वीडियो: ChatGPT with Arduino Nano #arduino #chatgpt #technology #openAI #electronic 2024, जुलाई
Anonim
सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे
सेंसर नोड के साथ ESP32 लोरा थिंग्सपीक गेटवे

इस IoT प्रोजेक्ट में, मैंने ESP32 लोरा गेटवे और ESP32 लोरा सेंसर नोड को कुछ किलोमीटर की दूरी से वायरलेस तरीके से पढ़ने वाले सेंसर की निगरानी के लिए डिज़ाइन किया है। प्रेषक DHT11 सेंसर का उपयोग करके आर्द्रता और तापमान डेटा पढ़ेगा। फिर यह लोरा रेडियो के माध्यम से डेटा प्रसारित करता है। डेटा रिसीवर मॉड्यूल द्वारा प्राप्त किया जाता है। इसके बाद रिसीवर एक निश्चित अंतराल के बाद थिंग्सपीक सर्वर को डेटा भेजेगा।

चरण 1: आवश्यक घटक

1. ESP32 बोर्ड - 2

2. लोरा मॉड्यूल SX1278/SX1276

3. DHT11 आर्द्रता तापमान सेंसर

4. ब्रेडबोर्ड

5. जम्पर तारों को जोड़ना

चरण 2: आवश्यक पुस्तकालय स्थापित करना

हमें पहले विभिन्न पुस्तकालयों को स्थापित करने की आवश्यकता है:

1. DHT11 लाइब्रेरी

2. लोरा पुस्तकालय

चरण 3: ESP32 लोरा थिंग्सपीक गेटवे

ESP32 लोरा थिंग्सपीक गेटवे
ESP32 लोरा थिंग्सपीक गेटवे
ESP32 लोरा थिंग्सपीक गेटवे
ESP32 लोरा थिंग्सपीक गेटवे

अब हम ESP32 लोरा गेटवे और सेंसर नोड के निर्माण के लिए प्रेषक और रिसीवर सर्किट को देखते हैं। मैंने दोनों सर्किट को एक ब्रेडबोर्ड पर इकट्ठा किया। आप चाहें तो इसे PCB पर बना सकते हैं।

यहाँ एक ESP32 लोरा मॉड्यूल SX1278 गेटवे सर्किट है। यह भाग एक रिसीवर के रूप में काम करता है। लोरा रेडियो का उपयोग करके आर्द्रता और तापमान डेटा प्राप्त किया जाता है और थिंग्सपीक सर्वर पर अपलोड किया जाता है।

चरण 4: ESP32 लोरा सेंसर नोड

ESP32 लोरा सेंसर नोड
ESP32 लोरा सेंसर नोड
ESP32 लोरा सेंसर नोड
ESP32 लोरा सेंसर नोड

यहाँ DHT11 सेंसर के साथ ESP32 लोरा सेंसर नोड सर्किट है। यह हिस्सा ट्रांसमीटर का काम करता है। आर्द्रता और तापमान डेटा DHT11 आर्द्रता तापमान सेंसर द्वारा पढ़ा जाता है और लोरा रेडियो का उपयोग करके प्रसारित किया जाता है।

चरण 5: थिंग्सपीक सेट करना

थिंग्सपीक सेट करना
थिंग्सपीक सेट करना

थिंग्सपीक सर्वर पर सेंसर डेटा की निगरानी करने के लिए, आपको सबसे पहले थिंग्सपीक को सेटअप करना होगा। थिंग्सपीक सर्वर सेट करने के लिए, https://thingspeak.com/ पर जाएं। एक खाता बनाएं या यदि आपने पहले खाता बनाया है तो बस साइन इन करें। फिर निम्नलिखित विवरण के साथ एक नया चैनल बनाएं।

चरण 6: गेटवे कोड

#शामिल

// लोरा के लिए पुस्तकालय #include #include // लोरा ट्रांसीवर मॉड्यूल द्वारा उपयोग किए जाने वाले पिन को परिभाषित करें #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 एशिया के लिए, 866E6 यूरोप के लिए, 915E6 उत्तरी अमेरिका के लिए // अपने नेटवर्क क्रेडेंशियल्स से बदलें स्ट्रिंग apiKey = "14K8UL2QEK8BTHN6"; // ThingSpeak const char *ssid = "Wifi SSID" से अपनी लिखें API कुंजी दर्ज करें; // अपने वाईफाई ssid और wpa2 key const char *password = "Password" से बदलें; const char* सर्वर = "api.thingspeak.com"; वाईफाई क्लाइंट क्लाइंट; // लोरा डेटा int rssi प्राप्त करने और सहेजने के लिए चर प्रारंभ करें; स्ट्रिंग लोरामैसेज; स्ट्रिंग तापमान; स्ट्रिंग आर्द्रता; स्ट्रिंग रीडिंग आईडी; // प्लेसहोल्डर को DHT मानों से बदल देता है स्ट्रिंग प्रोसेसर (कॉन्स्ट स्ट्रिंग और var) {//Serial.println (var); अगर (var == "तापमान") {वापसी तापमान; } और अगर (var == "आर्द्रता") {वापसी आर्द्रता; } और अगर (var == "RRSI") {रिटर्न स्ट्रिंग (rssi); } वापसी स्ट्रिंग (); } शून्य सेटअप () {Serial.begin(११५२००); इंट काउंटर; // सेटअप लोरा ट्रांसीवर मॉड्यूल LoRa.setPins(ss, rst, dio0); // सेटअप लोरा ट्रांसीवर मॉड्यूल जबकि (!LoRa.begin(BAND) && काउंटर <10) {Serial.print("."); काउंटर++; देरी (2000); } अगर (काउंटर == 10) {// हर नए रीडिंग सीरियल पर इंक्रीमेंट रीडिंग आईडी। } Serial.println ("लोरा इनिशियलाइज़ेशन ओके!"); देरी (2000); // एसएसआईडी और पासवर्ड सीरियल के साथ वाई-फाई नेटवर्क से कनेक्ट करें। प्रिंट ("कनेक्टिंग"); सीरियल.प्रिंट्लन (एसएसआईडी); वाईफाई.बेगिन (एसएसआईडी, पासवर्ड); जबकि (WiFi.status() != WL_CONNECTED) {देरी (2000); सीरियल.प्रिंट ("।"); } // स्थानीय आईपी पता प्रिंट करें और वेब सर्वर शुरू करें Serial.println (""); Serial.println ("वाईफाई कनेक्टेड।"); Serial.println ("आईपी पता:"); Serial.println (वाईफाई.लोकलआईपी ()); } // लोरा पैकेट पढ़ें और सेंसर रीडिंग प्राप्त करें शून्य लूप () {इंट पैकेटसाइज = लोरा.पार्सपैकेट (); अगर (पैकेटसाइज) { सीरियल.प्रिंट ("लोरा पैकेट प्राप्त हुआ:"); जबकि (लोरा.उपलब्ध ()) // पैकेट पढ़ें {स्ट्रिंग लोराडाटा = लोरा.रीडस्ट्रिंग (); सीरियल.प्रिंट (लोराडाटा); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring(0, pos1); // रीडिंग आईडी तापमान प्राप्त करें = LoRaData.substring(pos1 +1, pos2); // तापमान आर्द्रता प्राप्त करें = LoRaData.substring(pos2+1, LoRaData.length ()); // नमी प्राप्त करें} rssi = LoRa.packetRssi (); // आरएसएसआई सीरियल प्राप्त करें। प्रिंट ("आरएसआई के साथ"); सीरियल.प्रिंट्लन (आरएसआई); } if (client.connect(server, 80)) // "184.106.153.149" या api.thingspeak.com { String postStr = apiKey; पोस्टस्ट्र + = "& फ़ील्ड 1 ="; पोस्टस्ट्र + = स्ट्रिंग (रीडिंग आईडी); पोस्टस्ट्र + = "& फ़ील्ड २ ="; पोस्टस्ट्र + = स्ट्रिंग (तापमान); पोस्टस्ट्र + = "& फ़ील्ड ३ ="; पोस्टस्ट्र + = स्ट्रिंग (आर्द्रता); पोस्टस्ट्र + = "& फ़ील्ड ४ ="; पोस्टस्ट्र + = स्ट्रिंग (आरएसआई); पोस्टस्ट्र + = "\r\n\r\n\r\n\r\n"; क्लाइंट.प्रिंट ("पोस्ट / अपडेट HTTP / 1.1 / n"); क्लाइंट.प्रिंट ("होस्ट: api.thingspeak.com\n"); क्लाइंट.प्रिंट ("कनेक्शन: बंद करें / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("सामग्री-प्रकार: एप्लिकेशन / x-www-form-urlencoded / n"); क्लाइंट.प्रिंट ("सामग्री-लंबाई:"); क्लाइंट.प्रिंट (postStr.length ()); क्लाइंट.प्रिंट ("\ n / n"); क्लाइंट.प्रिंट (पोस्टस्ट्र); }//देरी(३००००); }

चरण 7: सेंसर नोड कोड

#शामिल

#include // LoRa के लिए लाइब्रेरी #include "DHT.h" #define DHTPIN 4 //pin जहां dht11 जुड़ा है DHT dht(DHTPIN, DHT11); // लोरा ट्रांसीवर मॉड्यूल द्वारा उपयोग किए जाने वाले पिन को परिभाषित करें #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 एशिया के लिए, यूरोप के लिए 866E6, उत्तरी अमेरिका के लिए 915E6 // पैकेट काउंटर इंट रीडिंगआईडी = 0; इंट काउंटर = 0; स्ट्रिंग लोरामैसेज = ""; फ्लोट तापमान = 0; फ्लोट आर्द्रता = 0; // लोरा मॉड्यूल शून्य startLoRA () {LoRa.setPins (ss, rst, dio0) शुरू करें; // सेटअप लोरा ट्रांसीवर मॉड्यूल जबकि (!LoRa.begin(BAND) && काउंटर <10) {Serial.print("."); काउंटर++; देरी (500); } अगर (काउंटर == 10) {// हर नए रीडिंग रीडिंग पर रीडिंग आईडी ++; Serial.println ("लोरा शुरू करना विफल!"); } Serial.println ("लोरा इनिशियलाइज़ेशन ओके!"); देरी (2000); } शून्य startDHT () { if (isnan (आर्द्रता) || isnan (तापमान)) { Serial.println ("DHT सेंसर से पढ़ने में विफल!"); वापसी; } } शून्य getReadings () {आर्द्रता = dht.readHumidity (); तापमान = dht.readTemperature (); सीरियल.प्रिंट (एफ ("आर्द्रता:")); सीरियल.प्रिंट (आर्द्रता); सीरियल.प्रिंट (एफ ("% तापमान:")); सीरियल.प्रिंट (तापमान); सीरियल.प्रिंट्लन (एफ ("डिग्री सेल्सियस")); } शून्य प्रेषण () {LoRaMessage = स्ट्रिंग (रीडिंग आईडी) + "/" + स्ट्रिंग (तापमान) + "&" + स्ट्रिंग (आर्द्रता); // लोरा पैकेट को रिसीवर को भेजें LoRa.beginPacket (); लोरा.प्रिंट (लोरामैसेज); लोरा.एंडपैकेट (); Serial.print ("पैकेट भेजना:"); Serial.println (रीडिंगआईडी); रीडिंगआईडी++; Serial.println (लोरामैसेज); } शून्य सेटअप () {// सीरियल मॉनिटर सीरियल शुरू करें। शुरू करें (115200); dht.begin (); स्टार्टडीएचटी (); स्टार्टलोरा (); } शून्य लूप () {getReadings (); भेजें रीडिंग (); देरी (500); }

चरण 8: थिंग्सपीक सर्वर पर डेटा की निगरानी करें

थिंग्सपीक सर्वर पर डेटा की निगरानी करें
थिंग्सपीक सर्वर पर डेटा की निगरानी करें
थिंग्सपीक सर्वर पर डेटा की निगरानी करें
थिंग्सपीक सर्वर पर डेटा की निगरानी करें

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

चरण 9: संदर्भ

1.

2.

सिफारिश की: