
Kazalo:
- 1. korak: potrebne komponente
- 2. korak: Namestitev potrebnih knjižnic
- Korak: ESP32 LoRa Thingspeak Gateway
- 4. korak: Senzorsko vozlišče ESP32 LoRa
- 5. korak: Nastavitev Thingspeak
- 6. korak: Koda prehoda
- 7. korak: Koda vozlišča senzorja
- 8. korak: Spremljajte podatke na strežniku Thingspeak
- 9. korak: Reference
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:08

v tem projektu IoT sem zasnoval ESP32 LoRa Gateway in tudi ESP32 LoRa Sensor Node za brezžično spremljanje odčitavanja senzorja z razdalje nekaj kilometrov. Pošiljatelj bo s senzorjem DHT11 prebral podatke o vlažnosti in temperaturi. Nato posreduje podatke prek radia LoRa. Podatke sprejema sprejemniški modul. Prejemnik bo po določenem intervalu podatke poslal na strežnik Thingspeak.
1. korak: potrebne komponente
1. Plošča ESP32 - 2
2. Modul Lora SX1278/SX1276
3. DHT11 Temperaturni senzor vlažnosti
4. Ogledna plošča
5. Priključitev mostičnih žic
2. korak: Namestitev potrebnih knjižnic
Najprej moramo namestiti različne knjižnice:
1. Knjižnica DHT11
2. Knjižnica LoRa
Korak: ESP32 LoRa Thingspeak Gateway


Zdaj pa poglejmo vezje pošiljatelja in sprejemnika za izgradnjo ESP32 LoRa prehodnega in senzorskega vozlišča. Tako vezje sem sestavil na plošči. Če želite, ga lahko naredite na tiskanem vezju.
Tukaj je vezje prehoda modula ESP32 LoRa SX1278. Ta del deluje kot sprejemnik. Podatki o vlažnosti in temperaturi se sprejemajo z LoRa Radio in nalagajo na strežnik Thingspeak.
4. korak: Senzorsko vozlišče ESP32 LoRa


Tukaj je vezje vozlišča senzorja ESP32 LoRa s senzorjem DHT11. Ta del deluje kot oddajnik. Podatke o vlažnosti in temperaturi odčita DHT11 senzor za temperaturo vlažnosti in jih posreduje prek radia LoRa.
5. korak: Nastavitev Thingspeak

Če želite spremljati podatke senzorja na strežniku Thingspeak, morate najprej nastaviti Thingspeak. Če želite nastaviti strežnik Thingspeak, obiščite https://thingspeak.com/. Ustvarite račun ali se preprosto prijavite, če ste račun ustvarili prej. Nato ustvarite nov kanal z naslednjimi podrobnostmi.
6. korak: Koda prehoda
#vključi
// Knjižnice za LoRa #include #include // opredelimo zatiče, ki jih uporablja oddajniški modul LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 za Azijo, 866E6 za Evropo, 915E6 za Severno Ameriko // Zamenjajte z omrežnimi poverilnicami String apiKey = "14K8UL2QEK8BTHN6"; // Vnesite ključ API za pisanje iz ThingSpeak const char *ssid = "Wifi SSID"; // zamenjajte s ključem wifi ssid in wpa2 const char *geslo = "Geslo"; const char* server = "api.thingspeak.com"; Odjemalec WiFiClient; // Inicializirajte spremenljivke za pridobivanje in shranjevanje podatkov LoRa int rssi; Niz loRaMessage; Temperatura strune; Vlažnost strune; Niz za branjeID; // nadomesti nadomestno mesto z vrednostmi DHT String procesor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {temperatura povratka; } else if (var == "HUMIDITY") {povratna vlaga; } else if (var == "RRSI") {return String (rssi); } vrni niz (); } void setup () {Serial.begin (115200); int števec; // nastavitev oddajnega modula LoRa LoRa.setPins (ss, rst, dio0); // nastavimo oddajniški modul LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); števec ++; zamuda (2000); } if (counter == 10) {// Pri vsakem novem branju Serial.println ("Zagon LoRa ni uspel!"); } Serial.println ("Inicializacija LoRa v redu!"); zamuda (2000); // Povežite se z omrežjem Wi-Fi s SSID in geslom Serial.print ("Povezovanje z"); Serial.println (ssid); WiFi.begin (ssid, geslo); while (WiFi.status ()! = WL_CONNECTED) {zakasnitev (2000); Serial.print ("."); } // Natisnite lokalni naslov IP in zaženite spletni strežnik Serial.println (""); Serial.println ("WiFi povezan."); Serial.println ("naslov IP:"); Serial.println (WiFi.localIP ()); } // Preberite paket LoRa in dobite odčitke senzorja void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora paket prejet:"); while (LoRa.available ()) // Branje paketa {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // Dobimo temperaturo branja ID = LoRaData.substring (pos1 +1, pos2); // Dobimo temperaturno vlažnost = LoRaData.substring (pos2+1, LoRaData.length ()); // Dobimo vlažnost} rssi = LoRa.packetRssi (); // Pridobite RSSI Serial.print ("z RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" ali api.thingspeak.com {String postStr = apiKey; postStr += "& polje1 ="; postStr += niz (branje ID); postStr += "& polje2 ="; postStr += niz (temperatura); postStr += "& field3 ="; postStr += niz (vlažnost); postStr += "& field4 ="; postStr += niz (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /posodobi HTTP /1.1 / n"); client.print ("Gostitelj: api.thingspeak.com / n"); client.print ("Povezava: zaprta / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Vrsta vsebine: aplikacija/x-www-form-urlencoded / n"); client.print ("Content-Length:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // zakasnitev (30000); }
7. korak: Koda vozlišča senzorja
#vključi
#include // Knjižnice za LoRa #include "DHT.h" #define DHTPIN 4 // pin, kjer je dht11 povezan DHT dht (DHTPIN, DHT11); // definiramo zatiče, ki jih uporablja oddajniški modul LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 za Azijo, 866E6 za Evropo, 915E6 za Severno Ameriko // števec paketov int readingID = 0; int števec = 0; Niz LoRaMessage = ""; plavajoča temperatura = 0; vlažnost plovca = 0; // Inicializiraj modul LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // nastavimo oddajniški modul LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); števec ++; zamuda (500); } if (counter == 10) {// Povečaj readID pri vsakem novem branju readID ++; Serial.println ("Zagon LoRa ni uspel!"); } Serial.println ("Inicializacija LoRa v redu!"); zamuda (2000); } void startDHT () {if (isnan (vlažnost) || isnan (temperatura)) {Serial.println ("Odčitavanje s senzorja DHT ni uspelo!"); vrnitev; }} void getReadings () {vlažnost = dht.readHumidity (); temperatura = dht.readTemperature (); Serial.print (F ("Vlažnost:")); Serijski.tisk (vlažnost); Serial.print (F ("% Temperatura:")); Serijski.tisk (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperatura) + "&" + String (vlažnost); // pošlji paket LoRa prejemniku LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Pošiljanje paketa:"); Serial.println (ID branja); branjeID ++; Serial.println (LoRaMessage); } void setup () {// inicializirajte Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); zamuda (500); }
8. korak: Spremljajte podatke na strežniku Thingspeak


Ko je koda naložena, lahko odprete serijski monitor v vezju prehoda in senzorskega vozlišča. Podatke boste poslali in prejeli, če je koda pravilna. Zdaj lahko obiščete Thingspeak Private View. Tam lahko vidite podatke za številko paketa, temperaturo, vlažnost in prehod, ki so naloženi po intervalu 15 sekund.
9. korak: Reference
1.
2.
Priporočena:
IOT za začetnike-z vozliščem Mcu: 7 korakov

IOT za začetnike-z Node Mcu: Pozdravljeni, jaz Samarth v tej vadnici, vas bom naučil, kako ustvariti lastne projekte IOT z uporabo modula NODE MCU wifi in aplikacije Blynk
Vlaga tal z vozliščem: 7 korakov

Vlažilnik tal z vozliščem: V tem priročniku vam bom pokazal, kako narediti senzor tal za sistem vrtnega zdravja. Pokazal vam bom, kaj potrebujete, dal nekaj primerov kode in kako kodo implementirati. Na koncu navodil boste vedeli, kako spremeniti LED trak
UCL-IIOT-alarmni sistem z bazo podatkov in rdečim vozliščem: 7 korakov

UCL-IIOT-Alarmni sistem z bazo podatkov in rdečim vozliščem: Namen te gradnje je poučiti o povezovanju Arduina z Node-red in zbirko podatkov, tako da lahko beležite podatke in jih tudi zbirate za kasnejšo uporabo. preprost arduino alarmni sistem, ki oddaja 5 podatkovnih številk, od katerih je vsaka ločena z
Dnevni časovnik z rdečim vozliščem s trajnim pomnilnikom: 6 korakov

Dnevni časovnik z uporabo rdečega vozlišča z obstojnim pomnilnikom: Node-red pogosto uporabljam za svoje projekte avtomatizacije doma. po progesiji nisem programer, ampak s pomočjo različnih sodelavcev poskušam stvari konfigurirati v skladu s svojimi zahtevami. Včasih deluje, včasih pa ne :) Za enega o
Pametna LED z vozliščem Mcu in Taskerjem: 9 korakov (s slikami)

Pametna LED z vozliščem Mcu in Taskerjem: prenos Taskerja