Mundarija:
- 1 -qadam: zarur komponentlar
- 2 -qadam: Kerakli kutubxonalarni o'rnatish
- 3 -qadam: ESP32 LoRa Thingspeak shlyuzi
- 4 -qadam: ESP32 LoRa sensorli tugun
- 5 -qadam: Thingspeak -ni sozlash
- 6 -qadam: Gateway kodi
- 7 -qadam: Sensor tugunlari kodi
- 8 -qadam: Thingspeak serveridagi ma'lumotlarni kuzatib boring
- 9 -qadam: Adabiyotlar
Video: Sensorli tugunli ESP32 Lora Thingspeak shlyuzi: 9 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
Ushbu IoT loyihasida men ESP32 LoRa Gateway va ESP32 LoRa Sensor tugunlarini bir necha kilometr masofadan simsiz o'qishni kuzatish uchun ishlab chiqdim. Yuboruvchi DHT11 Sensor yordamida namlik va harorat ma'lumotlarini o'qiydi. Keyin u LoRa Radio orqali ma'lumotlarni uzatadi. Ma'lumotlar qabul qiluvchi moduli tomonidan qabul qilinadi. Qabul qilgich ma'lum vaqtdan keyin ma'lumotlarni Thingspeak Serverga yuboradi.
1 -qadam: zarur komponentlar
1. ESP32 taxtasi - 2
2. Lora moduli SX1278/SX1276
3. DHT11 namlik harorati sensori
4. Non paneli
5. Jumper simlarini ulash
2 -qadam: Kerakli kutubxonalarni o'rnatish
Avval turli kutubxonalarni o'rnatishimiz kerak:
1. DHT11 kutubxonasi
2. LoRa kutubxonasi
3 -qadam: ESP32 LoRa Thingspeak shlyuzi
Keling, ESP32 LoRa Gateway va Sensor tugunini yaratish uchun yuboruvchi va qabul qiluvchining sxemasini ko'rib chiqaylik. Men ikkala sxemani non taxtasida yig'dim. Agar xohlasangiz, uni PCB -da qilishingiz mumkin.
Bu erda ESP32 LoRa moduli SX1278 shluzi davri. Bu qism qabul qiluvchi sifatida ishlaydi. Namlik va harorat haqidagi ma'lumotlar LoRa Radio yordamida olinadi va Thingspeak Serverga yuklanadi.
4 -qadam: ESP32 LoRa sensorli tugun
Bu erda DHT11 sensori bilan ESP32 LoRa sensori tugunlari davri. Bu qism uzatuvchi sifatida ishlaydi. Namlik va harorat ma'lumotlari DHT11 namlik harorati sensori tomonidan o'qiladi va LoRa radiosi orqali uzatiladi.
5 -qadam: Thingspeak -ni sozlash
Thingspeak serveridagi sensor ma'lumotlarini kuzatish uchun avval Thingspeak -ni sozlash kerak. Thingspeak serverini o'rnatish uchun https://thingspeak.com/ saytiga tashrif buyuring. Hisob qaydnomasini yarating yoki hisobni ilgari yaratgan bo'lsangiz, kiring. Keyin quyidagi ma'lumotlarni o'z ichiga olgan yangi kanal yarating.
6 -qadam: Gateway kodi
#qo'shing
// LoRa kutubxonalari #include #include // LoRa transceiver modulida ishlatiladigan pinlarni aniqlang #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Osiyo uchun, Evropa uchun 866E6, Shimoliy Amerika uchun 915E6. // Tarmoq ma'lumotlari bilan almashtiring String apiKey = "14K8UL2QEK8BTHN6"; // ThingSpeak const char *ssid = "Wifi SSID" dan Write API kalitini kiriting; // wifi ssid va wpa2 kalitlari bilan almashtiring const char *password = "Parol"; const char* server = "api.thingspeak.com"; WiFiClient mijozi; // LoRa ma'lumotlarini int rssi olish va saqlash uchun o'zgaruvchilarni ishga tushirish; LoRaMessage qatori; String harorati; Ip namligi; String readingID; // to'ldirgichni DHT qiymatlari bilan almashtiradi String protsessori (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {qaytish harorati; } else if (var == "HUMIDITY") {namlikni qaytarish; } else if (var == "RRSI") {return String (rssi); } qaytish String (); } void setup () {Serial.begin (115200); int hisoblagich; // LoRa qabul qilish modulini o'rnatish LoRa.setPins (ss, rst, dio0); // LoRa qabul qilgich modulini sozlash paytida (! LoRa.begin (BAND) && taymer <10) {Serial.print ("."); hisoblagich ++; kechikish (2000); } if (counter == 10) {// Serial.println ("LoRa ishga tushirilmadi!") har bir yangi o'qishda o'qish identifikatorini oshirish; } Serial.println ("LoRa boshlanishi OK!"); kechikish (2000); // SSID va parol bilan Wi-Fi tarmog'iga ulanish Serial.print ("Ulanish"); Serial.println (ssid); WiFi.begin (ssid, parol); while (WiFi.status ()! = WL_CONNECTED) {kechiktirish (2000); Serial.print ("."); } // Mahalliy IP -manzilni chop eting va Serial.println ("") veb -serverini ishga tushiring; Serial.println ("Wi -Fi ulangan."); Serial.println ("IP -manzil:"); Serial.println (WiFi.localIP ()); } // LoRa paketini o'qing va sensorlar o'qilishini bekor qiling () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora paketi qabul qilindi:"); while (LoRa.available ()) // Paketni o'qing {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // ReadID haroratini oling = LoRaData.substring (pos1 +1, pos2); // Harorat namligini oling = LoRaData.substring (pos2+1, LoRaData.length ()); // Namlikni oling} rssi = LoRa.packetRssi (); // RSSI Serial.print -ni oling ("RSSI bilan"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" yoki api.thingspeak.com {String postStr = apiKey; postStr += "& maydon1 ="; postStr += String (o'qish identifikatori); postStr += "& maydon2 ="; postStr += String (harorat); postStr += "& field3 ="; postStr += String (namlik); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /yangilash HTTP /1.1 / n"); client.print ("Xost: api.thingspeak.com / n"); client.print ("Ulanish: yopish / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application/x-www-form-urlencoded / n"); client.print ("Content-Length:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // kechikish (30000); }
7 -qadam: Sensor tugunlari kodi
#qo'shing
#include // LoRa uchun kutubxonalar #"DHT.h" ni qo'shing #DHTPIN 4 ni belgilang // dht11 DHT dht (DHTPIN, DHT11) ulangan pinni belgilang; // LoRa qabul qilgich modulida ishlatiladigan pinlarni aniqlang #define ss 5 #define rst 14 #define dio0 2 #deand BAND 433E6 // 433E6 Osiyo uchun, Evropa uchun 866E6, Shimoliy Amerika uchun 915E6 // packet counter int readingID = 0; int hisoblagich = 0; LoRaMessage qatori = ""; suzish harorati = 0; suzuvchi namlik = 0; // LoLa modulini ishga tushirish startLoRA () {LoRa.setPins (ss, rst, dio0); // LoRa qabul qilgich modulini sozlash paytida (! LoRa.begin (BAND) && taymer <10) {Serial.print ("."); hisoblagich ++; kechikish (500); } if (hisoblagich == 10) {// Har bir yangi o'qishda o'qish ID -ni ko'paytirishID ++; Serial.println ("LoRa ishga tushmadi!"); } Serial.println ("LoRa boshlanishi OK!"); kechikish (2000); } void startDHT () {if (isnan (namlik) || isnan (harorat)) {Serial.println ("DHT sensoridan o'qib bo'lmadi!"); qaytish; }} void getReadings () {namlik = dht.readHumidity (); harorat = dht.readTemperature (); Serial.print (F ("Namlik:")); Ketma -ket bosma (namlik); Serial.print (F ("% Harorat:")); Seriyali bosma (harorat); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (harorat) + "&" + String (namlik); // LoRa paketini LoRa.beginPacket qabul qiluvchisiga yuborish (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Paket yuborilmoqda:"); Serial.println (o'qish identifikatori); o'qish ID ++; Serial.println (LoRaMessage); } void setup () {// Serial Monitor Serial.begin (115200) ni ishga tushirish; dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); kechikish (500); }
8 -qadam: Thingspeak serveridagi ma'lumotlarni kuzatib boring
Kod yuklangandan so'ng, siz ketma -ket monitorni Gateway va Sensor tugunlari davrasida ochishingiz mumkin. Agar kod to'g'ri bo'lsa, siz ma'lumotlarni yuborasiz va qabul qilasiz. Endi siz Thingspeak Private View -ga tashrif buyurishingiz mumkin. U erda siz paketlar soni, harorat, namlik va shlyuz ma'lumotlarini 15 soniyadan so'ng yuklanganini ko'rishingiz mumkin.
9 -qadam: Adabiyotlar
1.
2.
Tavsiya:
MuMo - LoRa shlyuzi: 25 qadam (rasmlar bilan)
MuMo-LoRa shlyuzi: ### 10-03-2021 YANGILANISHI // so'nggi ma'lumotlar/yangilanishlar github sahifasida bo'ladi: https: //github.com/MoMu-Antwerp/MuMo MuMo nima? MuMo-bu hamkorlik. mahsulotni ishlab chiqish (Antverpen universiteti bo'limi) ostida
Lora shlyuzi (Dragino LG01-P): 6 qadam
Lora shlyuzi (LG01-P Dragino): LPWAN-ni o'chirib qo'yish, bir-biridan farqli o'laroq (POWER WIDE AREA LOW POWER WETA). Ma'lumki, bu IoT uchun juda mos keladi. Entre las aplicaciones más comunes se encuentran; Ciudades inteligentes, qishloq xo'jaligi
Lora shlyuzi MicroPython ESP32 asosida: 10 qadam (rasmlar bilan)
Lora Gateway MicroPython ESP32 asosida: Lora so'nggi yillarda juda mashhur. Ushbu texnologiyadan foydalanadigan simsiz aloqa moduli odatda arzon (erkin spektr yordamida), kichik o'lchamli, energiyani tejaydigan va uzoq aloqa masofasiga ega va asosan o'zaro aloqa uchun ishlatiladi
Sensorli uchta sensorli davr + Sensorli taymer davri: 4 qadam
Sensorli uchta sensorli davr + Sensorli taymer davri: Sensorli sensor - bu pimlarga teginish aniqlanganda yoqiladigan elektron. Bu vaqtinchalik ishlaydi, ya'ni yuk faqat pimlarga tegib turganda yoqiladi, bu erda men sizga teginishning uch xil usulini ko'rsataman
15 $ LoRa shlyuzi/tugunli ESP8266 tenglikni tenglashtirish 3 sm x 8 sm o'lcham: 6 qadam
15 $ LoRa shlyuzi/tuguni ESP8266 3x8 sm uzunlikdagi tenglikni o'lchami: Hey, bolalar nima? Akarsh bu erda CETech -dan. Bugun biz oddiy LoRa tugunidan iborat loyihani tayyorlamoqchimiz va siz uni hatto bitta kanalli shlyuz sifatida ishlatishingiz mumkin, bu erda men ishlatgan mikrokontroller LoRa platalariga ulangan ESP8266