
Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54

Bu IoT Layihəsində, ESP32 LoRa Gateway və ESP32 LoRa Sensor Nodeunu bir neçə kilometr məsafədən sensorun oxunmasını simsiz olaraq izləmək üçün hazırladım. Göndərən DHT11 Sensorundan istifadə edərək rütubət və temperatur məlumatlarını oxuyacaq. Sonra məlumatları LoRa Radio vasitəsilə ötürür. Məlumat alıcı modulu tərəfindən qəbul edilir. Alıcı müəyyən bir müddətdən sonra məlumatları Thingspeak Server -ə göndərəcək.
Addım 1: Tələb olunan komponentlər
1. ESP32 lövhəsi - 2
2. Lora Modulu SX1278/SX1276
3. DHT11 Nəmlik Temperatur Sensoru
4. Çörək lövhəsi
5. Jumper tellərinin birləşdirilməsi
Addım 2: Lazımi Kitabxanaların Qurulması
Əvvəlcə fərqli kitabxanalar quraşdırmalıyıq:
1. DHT11 Kitabxanası
2. LoRa Kitabxanası
Addım 3: ESP32 LoRa Thingspeak Gateway


İndi ESP32 LoRa Gateway & Sensor Node qurmaq üçün göndərən və qəbul edən dövrə baxaq. Hər iki dövrəni bir çörək taxtasına yığdım. İstəyirsinizsə PCB üzərində edə bilərsiniz.
Budur ESP32 LoRa Modulu SX1278 Ağ Geçidi Dövrü. Bu hissə Alıcı kimi işləyir. Rütubət və temperatur məlumatları LoRa Radio istifadə edərək alınır və Thingspeak Server -ə yüklənir.
Addım 4: ESP32 LoRa Sensor Node


Budur DHT11 Sensorlu bir ESP32 LoRa Sensor Node Dövrü. Bu hissə ötürücü kimi işləyir. Rütubət və temperatur məlumatları DHT11 Nəmlik Temperatur Sensoru tərəfindən oxunur və LoRa Radio istifadə edərək ötürülür.
Addım 5: Thingspeak qurmaq

Thingspeak Serverdəki Sensor Verilərini izləmək üçün əvvəlcə Thingspeak -ı Qurmalısınız. Thingspeak Serverini qurmaq üçün https://thingspeak.com/ saytına daxil olun. Bir hesab yaradın və ya əvvəllər hesab yaratmısınızsa daxil olun. Sonra aşağıdakı detalları olan yeni bir kanal yaradın.
Addım 6: Ağ Geçidi Kodu
#daxil edin
// LoRa üçün kitabxanalar #daxil edin #daxil edin // LoRa ötürücü modulunun istifadə etdiyi pinləri təyin edin #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Asiya üçün, Avropa üçün 866E6, Şimali Amerika üçün 915E6 // Şəbəkə etimadnamənizlə əvəz edin String apiKey = "14K8UL2QEK8BTHN6"; // Yazma API açarınızı ThingSpeak const char *ssid = "Wifi SSID" dən daxil edin; // wifi ssid və wpa2 key const *parol = "Şifrə" ilə əvəz edin; const char* server = "api.thingspeak.com"; WiFi müştəri; // LoRa məlumatlarını int rssi almaq və saxlamaq üçün dəyişənləri işə salın; String loRaMessage; String temperaturu; String nəmliyi; String oxuma ID; // Yer tutucunu DHT dəyərləri ilə əvəz edir String prosessoru (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {qaytarılma temperaturu; } else if (var == "Rütubət") {rütubəti qaytarın; } else if (var == "RRSI") {return String (rssi); } qayıt String (); } void setup () {Serial.begin (115200); int sayğacı; // LoRa qəbuledici modulunun LoRa.setPins qurulması (ss, ilk, dio0); // LoRa qəbuledici modulunu qurarkən (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); sayğac ++; gecikmə (2000); } if (counter == 10) {// Serial.println hər yeni oxunuşda artan oxuma ID ("LoRa'ya Başlanmadı!"); } Serial.println ("LoRa başlatma OK!"); gecikmə (2000); // SSID və parol ilə Wi-Fi şəbəkəsinə qoşulun Serial.print ("Bağlanır"); Serial.println (ssid); WiFi.begin (ssid, parol); while (WiFi.status ()! = WL_CONNECTED) {gecikmə (2000); Serial.print ("."); } // Yerli IP ünvanını çap edin və Serial.println ("") veb serverini işə salın; Serial.println ("WiFi qoşulub."); Serial.println ("IP ünvanı:"); Serial.println (WiFi.localIP ()); } // LoRa paketini oxuyun və sensor oxunuşlarının boşluğunu əldə edin () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora paketi alındı:"); while (LoRa.available ()) // Paketi oxuyun {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); oxuma ID = LoRaData.substring (0, pos1); // ReadID temperaturu alın = LoRaData.substring (pos1 +1, pos2); // İstilik rütubətini əldə edin = LoRaData.substring (pos2+1, LoRaData.length ()); // Nəm alın} rssi = LoRa.packetRssi (); // RSSI Serial.print alın ("RSSI ilə"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" və ya api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (oxuma ID); postStr += "& field2 ="; postStr += String (temperatur); postStr += "& field3 ="; postStr += String (rütubət); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /yeniləmə HTTP /1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Bağlantı: yaxın / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application/x-www-form-urlencoded / n"); client.print ("Məzmun-Uzunluq:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // gecikmə (30000); }
Addım 7: Sensor Node Kodu
#daxil edin
#include // LoRa üçün Kitabxanalar #"DHT.h" daxil edin #DHTPIN 4 təyin edin // dht11 -in DHT dht (DHTPIN, DHT11) ilə əlaqəli olduğu pin; // LoRa alıcı -verici modulunun istifadə etdiyi sancaqları təyin edin #define ss 5 #define birinci 14 #define dio0 2 #define BAND 433E6 // 433E6 Asiya üçün, Avropa üçün 866E6, Şimali Amerika üçün 915E6 // packet counter int readingID = 0; int sayğacı = 0; String LoRaMessage = ""; üzmə temperaturu = 0; üzən rütubət = 0; // LoLa modulunun başlanğıcını startLoRA () {LoRa.setPins (ss, rst, dio0); // LoRa qəbuledici modulunu qurarkən (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); sayğac ++; gecikmə (500); } if (counter == 10) {// Hər yeni oxunuşda oxunan ID artır +ID; Serial.println ("LoRa işə salınmadı!"); } Serial.println ("LoRa başlatma OK!"); gecikmə (2000); } etibarsız startDHT () {if (isnan (rütubət) || isnan (temperatur)) {Serial.println ("DHT sensorundan oxunmadı!"); qayıtmaq; }} void getReadings () {nem = dht.readHumidity (); temperatur = dht.readTemperature (); Serial.print (F ("Rütubət:")); Serial çap (rütubət); Serial.print (F ("% Temperatur:")); Serial çap (temperatur); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (oxuma ID) + "/" + String (temperatur) + "&" + String (rütubət); // LoRa paketini LoRa.beginPacket () alıcıya göndərin; LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Paket göndərilir:"); Serial.println (oxuma ID); oxuma ID ++; Serial.println (LoRaMessage); } void setup () {// Serial Monitor Serial.begin (115200) başlatmaq; dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); gecikmə (500); }
Addım 8: Thingspeak Serverdəki məlumatları izləyin


Kod yükləndikdən sonra, həm Gateway, həm də Sensor Node Circuit -də Serial Monitoru aça bilərsiniz. Kod düzgündürsə məlumatları göndərəcək və alacaqsınız. İndi Thingspeak Şəxsi Görünüşünü ziyarət edə bilərsiniz. Orada, Paket Nömrəsi, Temperatur, Rütubət və Ağ Geçidi məlumatlarının 15 saniyəlik fasilədən sonra yükləndiyini görə bilərsiniz.
Addım 9: İstinadlar
1.
2.
Tövsiyə:
ESP32 ilə PWM - Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: 6 addım

ESP32 ilə PWM | Arduino IDE ilə ESP 32 -də PWM ilə LED Karartma: Bu təlimatlarda Arduino IDE istifadə edərək ESP32 ilə PWM siqnallarının necə yaradılacağını görəcəyik. PWM əsasən hər hansı bir MCU -dan analoq çıxışı yaratmaq üçün istifadə olunur və bu analog çıxış 0V ilə 3.3V arasında ola bilər (esp32 vəziyyətində) & dan
E32-433T LoRa Modulu Dərsliyi ilə ESP32 - LoRa Arduino İnterfeys: 8 addım

E32-433T LoRa Modulu Dərsliyi ilə ESP32 | LoRa Arduino İnterfeys: Hey, nə var, uşaqlar! Akarsh burada CETech-dən. Bu layihəm, Arduino IDE-dən istifadə edərək ESP32 ilə yüksək güclü 1 vatlıq qəbuledici modul olan eByte-dən E32 LoRa modulunu birləşdirir. E32-nin işini son dərsimizdə başa düşdük
LoRa üzərində Ev Alətlərinə Nəzarət - Ev Otomasyonunda LoRa - LoRa Uzaqdan İdarəetmə: 8 Addım

LoRa üzərində Ev Alətlərinə Nəzarət | Ev Otomasyonunda LoRa | LoRa Uzaqdan İdarəetmə: Elektrik cihazlarınızı internet olmadan uzun məsafələrdən (Kilometr) idarə edin və avtomatlaşdırın. Bu LoRa vasitəsilə mümkündür! Hey, necesiz uşaqlar? Akarsh burada CETech -dən. Bu PCB -də OLED displey və 3 röle var
15 $ LoRa Gateway/Node ESP8266 PCB 3cmX8cm Ölçü: 6 addım

15 $ LoRa Gateway/Node ESP8266 PCB qurmaq 3cmX8cm Ölçü: Hey, nə var, uşaqlar? Akarsh burada CETech -dən. Bu gün sadə bir LoRa qovşağı olan bir layihə hazırlayacağıq və hətta onu tək kanallı bir keçid olaraq da istifadə edə bilərsiniz. Burada istifadə etdiyim mikro nəzarətçi LoRa lövhələrinə bağlı olan ESP8266 -dır
OLED ilə WeMos D1 ESP-12F ESP8277 Anakart Modulunda SPI vasitəsi ilə LoRa (SX1278/XL1278-SMT) əldə etmək: 7 addım

OLED ilə WeMos D1 ESP -12F ESP8277 Anakart Modulunda SPI vasitəsi ilə LoRa (SX1278/XL1278 -SMT) əldə etmək: İşləmək mənim üçün bir həftə çəkdi - məndən əvvəl heç kimin bunu başa düşmədiyini düşünürəm - buna görə ümid edirəm ki, bu sizi xilas edəcək bir müddət! "0.96 düymlük OLED Ekranı olan WeMos D1 ESP-12F ESP8266 Anakart Modulu" adlı qəribə adlandırıldı; 11 dollarlıq inkişaf lövhəsidir