
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10

i detta IoT -projekt designade jag ESP32 LoRa Gateway och även ESP32 LoRa Sensor Node för att övervaka sensoravläsningen trådlöst från några kilometers avstånd. Avsändaren läser av fukt- och temperaturdata med DHT11 -sensor. Sedan överför den data via LoRa Radio. Data tas emot av mottagarmodulen. Mottagaren skickar sedan data till Thingspeak Server efter ett visst intervall.
Steg 1: Komponenter krävs
1. ESP32 -kort - 2
2. Lora -modul SX1278/SX1276
3. DHT11 fuktighets temperatursensor
4. Brödbräda
5. Anslutning av bygelkablar
Steg 2: Installera de obligatoriska biblioteken
Vi måste installera olika bibliotek först:
1. DHT11 -bibliotek
2. LoRa -bibliotek
Steg 3: ESP32 LoRa Thingspeak Gateway


Låt oss nu se avsändar- och mottagarkretsen för att bygga ESP32 LoRa Gateway & Sensor Node. Jag monterade båda kretsarna på en brödbräda. Du kan göra det på PCB om du vill.
Här är en ESP32 LoRa Module SX1278 Gateway Circuit. Denna del fungerar som mottagare. Luftfuktighets- och temperaturdata tas emot med LoRa Radio och laddas upp till Thingspeak Server.
Steg 4: ESP32 LoRa Sensornod


Här är en ESP32 LoRa Sensor Node Circuit med DHT11 Sensor. Denna del fungerar som en sändare. Luftfuktighets- och temperaturdata läses av DHT11 Luftfuktighetssensor och överförs med LoRa Radio.
Steg 5: Konfigurera Thingspeak

För att övervaka sensordata på Thingspeak -servern måste du först konfigurera Thingspeak. Besök https://thingspeak.com/ om du vill konfigurera Thingspeak -servern. Skapa ett konto eller logga in om du skapade kontot tidigare. Skapa sedan en ny kanal med följande detaljer.
Steg 6: Gateway -kod
#omfatta
// Bibliotek för LoRa #include #include // definiera stiften som används av LoRa -sändtagarmodulen #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 för Asien, 866E6 för Europa, 915E6 för Nordamerika // Ersätt med dina nätverksuppgifter String apiKey = "14K8UL2QEK8BTHN6"; // Ange din Write API -nyckel från ThingSpeak const char *ssid = "Wifi SSID"; // ersätt med din wifi ssid och wpa2 -nyckel const char *password = "Password"; const char* server = "api.thingspeak.com"; WiFiClient -klient; // Initiera variabler för att hämta och spara LoRa -data int rssi; String loRaMessage; Strängtemperatur; Strängfuktighet; SträngläsningID; // Ersätter platshållare med DHT -värden String -processor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {returtemperatur; } annars if (var == "HUMIDITY") {returfuktighet; } annars if (var == "RRSI") {return String (rssi); } retursträng (); } void setup () {Serial.begin (115200); int räknare; // setup LoRa -sändtagarmodul LoRa.setPins (ss, rst, dio0); // konfigurera LoRa -sändtagarmodul medan (! LoRa.begin (BAND) && räknare <10) {Serial.print ("."); räknare ++; fördröjning (2000); } if (counter == 10) {// Öka läs -ID för varje ny läsning Serial.println ("Starta LoRa misslyckades!"); } Serial.println ("LoRa -initialisering OK!"); fördröjning (2000); // Anslut till Wi-Fi-nätverk med SSID och lösenord Serial.print ("Ansluter till"); Serial.println (ssid); WiFi.begin (ssid, lösenord); medan (WiFi.status ()! = WL_CONNECTED) {fördröjning (2000); Serial.print ("."); } // Skriv ut lokal IP -adress och starta webbservern Serial.println (""); Serial.println ("WiFi -ansluten."); Serial.println ("IP -adress:"); Serial.println (WiFi.localIP ()); } // Läs LoRa -paketet och få sensoravläsningarna void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora -paket mottaget:"); while (LoRa.available ()) // Läs paket {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Få läsningID -temperatur = LoRaData.substring (pos1 +1, pos2); // Få temperaturfuktighet = LoRaData.substring (pos2+1, LoRaData.length ()); // Få fukt} rssi = LoRa.packetRssi (); // Skaffa RSSI Serial.print ("med RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" eller api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (läs -ID); postStr += "& field2 ="; postStr += Sträng (temperatur); postStr += "& field3 ="; postStr += Sträng (fuktighet); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /uppdatera HTTP /1.1 / n"); client.print ("Värd: api.thingspeak.com / n"); client.print ("Anslutning: stäng / 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); } // fördröjning (30000); }
Steg 7: Sensornodskod
#omfatta
#include // Libraries for LoRa #include "DHT.h" #define DHTPIN 4 // pin där dht11 är ansluten DHT dht (DHTPIN, DHT11); // definiera stiften som används av LoRa -sändtagarmodulen #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 för Asien, 866E6 för Europa, 915E6 för Nordamerika // packet counter int readingID = 0; int räknare = 0; String LoRaMessage = ""; flottörtemperatur = 0; flottörfuktighet = 0; // Initiera LoRa -modulen void startLoRA () {LoRa.setPins (ss, rst, dio0); // konfigurera LoRa -sändtagarmodul medan (! LoRa.begin (BAND) && räknare <10) {Serial.print ("."); räknare ++; fördröjning (500); } if (counter == 10) {// Öka läs -ID för varje ny läsning läsning -ID ++; Serial.println ("Starta LoRa misslyckades!"); } Serial.println ("LoRa -initialisering OK!"); fördröjning (2000); } void startDHT () {if (isnan (fuktighet) || isnan (temperatur)) {Serial.println ("Det gick inte att läsa från DHT -sensorn!"); lämna tillbaka; }} void getReadings () {fuktighet = dht.readHumidity (); temperatur = dht.readTemperature (); Serial.print (F ("Luftfuktighet:")); Seriellt tryck (luftfuktighet); Serial.print (F ("% Temperatur:")); Seriellt tryck (temperatur); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperatur) + "&" + String (fuktighet); // Skicka LoRa -paket till mottagaren LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Skickar paket:"); Serial.println (läs -ID); readingID ++; Serial.println (LoRaMessage); } void setup () {// initialize Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); fördröjning (500); }
Steg 8: Övervaka data på Thingspeak Server


När koden har laddats upp kan du öppna seriell bildskärm på både Gateway & Sensor Node Circuit. Du kommer att skicka och ta emot data om koden är korrekt. Nu kan du besöka Thingspeak Private View. Där kan du se data för paketnummer, temperatur, luftfuktighet och gateway laddas upp efter intervallet 15 sekunder.
Steg 9: Referenser
1.
2.
Rekommenderad:
MuMo - LoRa Gateway: 25 steg (med bilder)

MuMo-LoRa Gateway: ### UPDATE 10-03-2021 // den senaste informationen/uppdateringarna kommer att finnas tillgängliga på github-sidan: https: //github.com/MoMu-Antwerp/MuMoVad är MuMo? MuMo är ett samarbete mellan produktutveckling (en avdelning vid universitetet i Antwerpen) under
Lora Gateway (Dragino LG01-P): 6 steg

Lora Gateway (Dragino LG01-P): LoRa es una red LPWAN, por sus siglas en inglés (LOW POWER WIDE AREA NETWORK). Es una red de largo alcance y bajo consumo de energía, ideal para dispositivos IoT. Entre las aplicaciones más comunes se encuentran; Ciudades inteligentes, Agricultural
Lora Gateway Baserat på MicroPython ESP32: 10 steg (med bilder)

Lora Gateway Baserat på MicroPython ESP32: Lora har varit mycket populär de senaste åren. Den trådlösa kommunikationsmodulen som använder denna teknik är vanligtvis billig (använder fritt spektrum), liten i storlek, energieffektiv och har ett långt kommunikationsavstånd och används främst för ömsesidig kommunikation
ESP32 med E32-433T LoRa-modulhandledning - LoRa Arduino -gränssnitt: 8 steg

ESP32 med E32-433T LoRa-modulhandledning | LoRa Arduino Interfacing: Hej, vad händer, killar! Akarsh här från CETech.Detta projekt är mitt gränssnitt för E32 LoRa-modulen från eByte som är en högeffekts 1-watts transceiver-modul med en ESP32 som använder Arduino IDE.Vi förstod hur E32 fungerade i vår senaste tutoria
Kontrollera hushållsapparater över LoRa - LoRa i Hemautomation - LoRa fjärrkontroll: 8 steg

Kontrollera vitvaror över LoRa | LoRa i Hemautomation | LoRa fjärrkontroll: Styr och automatisera dina elektriska apparater från långa avstånd (kilometer) utan att det finns internet. Detta är möjligt genom LoRa! Hej, vad händer, killar? Akarsh här från CETech. Denna kretskort har också en OLED -display och 3 reläer som en