Სარჩევი:
- ნაბიჯი 1: საჭირო კომპონენტები
- ნაბიჯი 2: საჭირო ბიბლიოთეკების დაყენება
- ნაბიჯი 3: ESP32 LoRa Thingspeak Gateway
- ნაბიჯი 4: ESP32 LoRa სენსორული კვანძი
- ნაბიჯი 5: Thingspeak– ის დაყენება
- ნაბიჯი 6: კარიბჭის კოდი
- ნაბიჯი 7: სენსორული კვანძის კოდი
- ნაბიჯი 8: მონაცემების მონიტორინგი Thingspeak სერვერზე
- ნაბიჯი 9: მითითებები
ვიდეო: ESP32 ლორა Thingspeak Gateway სენსორული კვანძით: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
ამ IoT პროექტში, მე შევიმუშავე ESP32 LoRa Gateway და ასევე ESP32 LoRa სენსორული კვანძი, რომ მონიტორინგი გავუწიო სენსორს უსადენოდ კითხულობს რამდენიმე კილომეტრიანი დისტანციიდან. გამგზავნი წაიკითხავს ტენიანობის და ტემპერატურის მონაცემებს DHT11 სენსორის გამოყენებით. შემდეგ ის გადასცემს მონაცემებს LoRa რადიოს საშუალებით. მონაცემები მიღებულია მიმღების მოდულის მიერ. მიმღები შემდეგ მონაცემებს გაუგზავნის Thingspeak სერვერს გარკვეული ინტერვალის შემდეგ.
ნაბიჯი 1: საჭირო კომპონენტები
1. ESP32 დაფა - 2
2. ლორა მოდული SX1278/SX1276
3. DHT11 ტენიანობის ტემპერატურის სენსორი
4. პურის დაფა
5. Jumper Wires- ის შეერთება
ნაბიჯი 2: საჭირო ბიბლიოთეკების დაყენება
ჩვენ ჯერ უნდა დავაყენოთ სხვადასხვა ბიბლიოთეკა:
1. DHT11 ბიბლიოთეკა
2. ლორა ბიბლიოთეკა
ნაბიჯი 3: ESP32 LoRa Thingspeak Gateway
ახლა ვნახოთ გამგზავნისა და მიმღების წრე ESP32 LoRa Gateway & Sensor Node- ის შესაქმნელად. ორივე სქემა შევკრიბე პურის დაფაზე. თუ გსურთ, შეგიძლიათ გააკეთოთ ის PCB– ზე.
აქ არის ESP32 LoRa მოდული SX1278 Gateway Circuit. ეს ნაწილი მუშაობს როგორც მიმღები. ტენიანობის და ტემპერატურის მონაცემები მიიღება LoRa რადიოს გამოყენებით და ატვირთულია Thingspeak სერვერზე.
ნაბიჯი 4: ESP32 LoRa სენსორული კვანძი
აქ არის ESP32 LoRa სენსორული კვანძის წრიული DHT11 სენსორით. ეს ნაწილი მუშაობს როგორც გადამცემი. ტენიანობის და ტემპერატურის მონაცემები იკითხება DHT11 ტენიანობის ტემპერატურის სენსორის მიერ და გადაეცემა LoRa რადიოს გამოყენებით.
ნაბიჯი 5: Thingspeak– ის დაყენება
სენსორული მონაცემების მონიტორინგისთვის Thingspeak სერვერზე, თქვენ ჯერ უნდა დააყენოთ Thingspeak. Thingspeak სერვერის დასაყენებლად ეწვიეთ https://thingspeak.com/. შექმენით ანგარიში ან უბრალოდ შედით, თუ ანგარიში ადრე შექმენით. შემდეგ შექმენით ახალი არხი შემდეგი დეტალებით.
ნაბიჯი 6: კარიბჭის კოდი
#ჩართეთ
// ბიბლიოთეკები LoRa- სთვის #მოიცავს #მოიცავს // განსაზღვრეთ ქინძისთავები, რომლებიც გამოიყენება LoRa გადამცემი მოდულის მიერ #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 for Asia, 866E6 for Europe, 915E6 for North America // შეცვალეთ თქვენი ქსელის სერთიფიკატებით String apiKey = "14K8UL2QEK8BTHN6"; // შეიყვანეთ თქვენი ჩაწერის API გასაღები ThingSpeak const char *ssid = "Wifi SSID"; // შეცვალეთ თქვენი wifi ssid და wpa2 გასაღებით const char *პაროლი = "პაროლი"; const char* სერვერი = "api.thingspeak.com"; WiFiClient კლიენტი; // ცვლადების ინიციალიზაცია LoRa მონაცემების მისაღებად და შესანახად int rssi; სიმებიანი loRaMessage; სიმებიანი ტემპერატურა; სიმებიანი ტენიანობა; სიმებიანი კითხვა ID; // ცვლის ადგილსამყოფელს DHT მნიშვნელობებით სიმებიანი პროცესორი (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {დაბრუნების ტემპერატურა; } else if (var == "HUMIDITY") {დააბრუნეთ ტენიანობა; } else if (var == "RRSI") {return string (rssi); } return String (); } void setup () {Serial.begin (115200); int counter; // LoRa გადამცემი მოდულის დაყენება LoRa.setPins (ss, rst, dio0); // LoRa გადამცემი მოდულის დაყენება while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); მრიცხველი ++; დაგვიანება (2000); } if (counter == 10) {// ReadID– ის გაზრდა ყოველ ახალ კითხვაზე Serial.println ("LoRa– ს დაწყება ვერ მოხერხდა!"); } Serial.println ("LoRa ინიციალიზაცია კარგი!"); დაგვიანება (2000); // დაუკავშირდით Wi-Fi ქსელს SSID და პაროლით Serial.print ("დაკავშირება"); Serial.println (ssid); WiFi.begin (ssid, პაროლი); while (WiFi.status ()! = WL_CONNECTED) {დაგვიანებით (2000); Serial.print ("."); } // დაბეჭდეთ ადგილობრივი IP მისამართი და ჩართეთ ვებ სერვერი Serial.println (""); Serial.println ("WiFi დაკავშირებულია."); Serial.println ("IP მისამართი:"); Serial.println (WiFi.localIP ()); } // წაიკითხეთ LoRa პაკეტი და მიიღეთ სენსორის კითხვები void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("ლორას პაკეტი მიღებულია:"); while (LoRa.available ()) // წაკითხვის პაკეტი {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // მიიღეთ კითხვა ID ტემპერატურა = LoRaData.substring (pos1 +1, pos2); // მიიღეთ ტემპერატურის ტენიანობა = LoRaData.substring (pos2+1, LoRaData.length ()); // მიიღეთ ტენიანობა} rssi = LoRa.packetRssi (); // მიიღეთ RSSI Serial.print ("RSSI- ით"); Serial.println (rssi); } if (client.connect (სერვერი, 80)) // "184.106.153.149" ან api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += სიმებიანი (კითხულობს ID); postStr += "& field2 ="; postStr += სიმებიანი (ტემპერატურა); postStr += "& field3 ="; postStr += სიმებიანი (ტენიანობა); postStr += "& field4 ="; postStr += სიმებიანი (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /განახლება HTTP /1.1 / n"); client.print ("მასპინძელი: api.thingspeak.com / n"); client.print ("კავშირი: დახურვა / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("შინაარსი-ტიპი: განცხადება/x-www-form-urlencoded / n"); client.print ("შინაარსი-სიგრძე:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // დაგვიანება (30000); }
ნაბიჯი 7: სენსორული კვანძის კოდი
#ჩართეთ
#მოიცავს // ბიბლიოთეკები LoRa- სთვის #მოიცავს "DHT.h" #განსაზღვრეთ DHTPIN 4 // პინი, სადაც dht11 არის დაკავშირებული DHT dht (DHTPIN, DHT11); // განსაზღვრეთ LoRa გადამცემი მოდულის მიერ გამოყენებული ქინძისთავები #განსაზღვრეთ ss 5 #განსაზღვრეთ rst 14 #განსაზღვრეთ dio0 2 #განსაზღვრეთ BAND 433E6 // 433E6 აზიისთვის, 866E6 ევროპაში, 915E6 ჩრდილოეთ ამერიკაში // პაკეტის მრიცხველი int კითხვა ID = 0; int counter = 0; სიმებიანი LoRaMessage = ""; მცურავი ტემპერატურა = 0; float ტენიანობა = 0; // LoRa მოდულის ინიციალიზაცია void startLoRA () {LoRa.setPins (ss, rst, dio0); // LoRa გადამცემი მოდულის დაყენება while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); მრიცხველი ++; დაგვიანება (500); } if (counter == 10) {// კითხვის ID- ის გაზრდა ყოველ ახალ კითხვაზე ID ++; Serial.println ("LoRa– ს დაწყება ვერ მოხერხდა!"); } Serial.println ("LoRa ინიციალიზაცია კარგი!"); დაგვიანება (2000); } void startDHT () {if (isnan (ტენიანობა) || isnan (ტემპერატურა)) {Serial.println ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!"); დაბრუნების; }} void getReadings () {ტენიანობა = dht.readHumidity (); ტემპერატურა = dht.readTemperature (); Serial.print (F ("ტენიანობა:")); სერიული. ბეჭდვა (ტენიანობა); Serial.print (F ("% ტემპერატურა:")); სერიული. ბეჭდვა (ტემპერატურა); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = სიმებიანი (კითხვა ID) + "/" + სიმებიანი (ტემპერატურა) + "&" + სიმებიანი (ტენიანობა); // გაუგზავნეთ LoRa პაკეტი მიმღებს LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("პაკეტის გაგზავნა:"); Serial.println (კითხულობს ID); კითხულობს ID ++; Serial.println (LoRaMessage); } void setup () {// სერიული მონიტორის ინიციალიზაცია Serial.begin (115200); dht. დაწყება (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); დაგვიანება (500); }
ნაბიჯი 8: მონაცემების მონიტორინგი Thingspeak სერვერზე
მას შემდეგ, რაც კოდი აიტვირთება, შეგიძლიათ გახსნათ სერიული მონიტორი როგორც Gateway & Sensor Node Circuit. თქვენ გაგზავნით და მიიღებთ მონაცემებს, თუ კოდი სწორია. ახლა თქვენ შეგიძლიათ ეწვიოთ Thingspeak Private View. აქ შეგიძლიათ ნახოთ პაკეტის ნომრის, ტემპერატურის, ტენიანობის და კარიბჭის მონაცემები 15 წამის ინტერვალის შემდეგ.
ნაბიჯი 9: მითითებები
1.
2.
გირჩევთ:
ლორა კარიბჭე (დრაგინო LG01-P): 6 ნაბიჯი
ლორა კარიბჭე (დრაგინო LG01-P): LoRa არის una red LPWAN, por sus siglas en inglés (LOW POWER WIDE AREA NETWORK). არის una red de largo alcance y bajo konsumo de energía, იდეალური განკარგვისთვის IoT. Entre las aplicaciones más comunes se encuentran; Ciudades inteligentes, სოფლის მეურნე
ლორა არდუინოს საკონტროლო სარელეო მოდულის წრე: 12 ნაბიჯი
Lora Arduino Control Relay Module Circuit: ამ ლორას პროექტში ჩვენ ვნახავთ როგორ გავაკონტროლოთ მაღალი ძაბვის მოწყობილობები LoRa Arduino სარელეო კონტროლის წრედით. Arduino Lora– ს ამ პროექტში ჩვენ გამოვიყენებთ Reyax RYLR896 Lora მოდულს, Arduino– ს და 12v სარელეო მოდულს 5 საყოფაცხოვრებო ტექნიკის გასაკონტროლებლად
ნიადაგის ტენიანი კვანძით: 7 ნაბიჯი
ნიადაგის ტენიანი კვანძით: ამ სახელმძღვანელოში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ ხელნაკეთი ნიადაგის სენსორი ბაღის ჯანმრთელობის სისტემისთვის. მე გაჩვენებთ რა გჭირდებათ, მიეცით კოდის მაგალითები და როგორ განვახორციელოთ კოდი. ინსტრუქციის ბოლოს თქვენ იცით როგორ შეცვალოთ led ზოლები
აკონტროლეთ საყოფაცხოვრებო ტექნიკა LoRa - ლორა სახლის ავტომატიზაციაში - LoRa დისტანციური მართვა: 8 ნაბიჯი
აკონტროლეთ საყოფაცხოვრებო ტექნიკა LoRa | ლორა სახლის ავტომატიზაციაში | LoRa დისტანციური მართვა: აკონტროლეთ და ავტომატიზირეთ თქვენი ელექტრო ტექნიკა დიდი დისტანციიდან (კილომეტრი) ინტერნეტის გარეშე. ეს შესაძლებელია LoRa– ს საშუალებით! ჰეი, რა ხდება ბიჭებო? აქარში აქ CETech– დან. ამ PCB– ს ასევე აქვს OLED დისპლეი და 3 რელე, რომელიც
ლორა ტემპერატურის დაფა: 5 ნაბიჯი
ლორა ტემპერატურის საინფორმაციო დაფა: ჩემს ბოლო ინსტრუქციებში მე გაჩვენეთ როგორ დაუკავშიროთ ტემპერატურის სენსორი ლორას TTN– ით. ახლა მე ვაჩვენებ, თუ როგორ შეგიძლიათ წაიკითხოთ ეს მონაცემები და აჩვენოთ იგი საინფორმაციო დაფაზე. ჩვენ ასევე განვიხილავთ, თუ როგორ გამოვიყენოთ მონაცემები IFTTT– ში