Innholdsfortegnelse:
- Trinn 1: Komponenter påkrevd
- Trinn 2: Installere de nødvendige bibliotekene
- Trinn 3: ESP32 LoRa Thingspeak Gateway
- Trinn 4: ESP32 LoRa Sensornode
- Trinn 5: Konfigurere Thingspeak
- Trinn 6: Gateway -kode
- Trinn 7: Sensornodekode
- Trinn 8: Overvåk data på Thingspeak Server
- Trinn 9: Referanser
Video: ESP32 Lora Thingspeak -gateway med sensornode: 9 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:22
i dette IoT -prosjektet designet jeg ESP32 LoRa Gateway og også ESP32 LoRa Sensor Node for å overvåke sensoravlesningen trådløst fra noen få kilometers avstander. Avsenderen vil lese fuktighets- og temperaturdataene ved hjelp av DHT11 -sensor. Deretter overfører den dataene via LoRa Radio. Dataene mottas av mottakermodulen. Mottakeren sender deretter dataene til Thingspeak Server etter et visst intervall.
Trinn 1: Komponenter påkrevd
1. ESP32 -kort - 2
2. Lora -modul SX1278/SX1276
3. DHT11 Fuktighetstemperaturføler
4. Brødbrett
5. Koble til hoppetråder
Trinn 2: Installere de nødvendige bibliotekene
Vi må først installere forskjellige biblioteker:
1. DHT11 bibliotek
2. LoRa bibliotek
Trinn 3: ESP32 LoRa Thingspeak Gateway
La oss nå se avsender- og mottakerkretsen for å bygge ESP32 LoRa Gateway & Sensor Node. Jeg monterte begge kretsene på et brødbrett. Du kan gjøre det på PCB hvis du vil.
Her er en ESP32 LoRa Module SX1278 Gateway Circuit. Denne delen fungerer som mottaker. Fuktighets- og temperaturdata mottas ved hjelp av LoRa Radio og lastes opp til Thingspeak Server.
Trinn 4: ESP32 LoRa Sensornode
Her er en ESP32 LoRa Sensor Node Circuit med DHT11 Sensor. Denne delen fungerer som en sender. Luftfuktighets- og temperaturdata leses av DHT11 Fuktighetstemperaturføler og overføres ved hjelp av LoRa Radio.
Trinn 5: Konfigurere Thingspeak
For å overvåke sensordata på Thingspeak Server må du først sette opp Thingspeak. For å sette opp Thingspeak Server, besøk https://thingspeak.com/. Opprett en konto eller logg deg på hvis du opprettet kontoen tidligere. Lag deretter en ny kanal med følgende detaljer.
Trinn 6: Gateway -kode
#inkludere
// Biblioteker for LoRa #include #include // definer pinnene som brukes av LoRa -transceivermodulen #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 for Asia, 866E6 for Europa, 915E6 for Nord -Amerika // Erstatt med nettverksopplysningene String apiKey = "14K8UL2QEK8BTHN6"; // Skriv inn Write API -nøkkelen din fra ThingSpeak const char *ssid = "Wifi SSID"; // bytt ut med wifi ssid og wpa2 -nøkkelen const char *password = "Password"; const char* server = "api.thingspeak.com"; WiFiClient -klient; // Initialiser variabler for å få og lagre LoRa -data int rssi; String loRaMessage; Streng temperatur; Strengfuktighet; StringavlesningID; // Erstatter plassholder med DHT -verdier Stringprosessor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {returtemperatur; } annet hvis (var == "HUMIDITY") {returfuktighet; } annet hvis (var == "RRSI") {return String (rssi); } returstreng (); } ugyldig oppsett () {Serial.begin (115200); int teller; // setup LoRa transceiver module LoRa.setPins (ss, rst, dio0); // sette opp LoRa -mottakermodul mens (! LoRa.begin (BAND) && teller <10) {Serial.print ("."); teller ++; forsinkelse (2000); } if (counter == 10) {// Øk lese -ID på hver nye lesing Serial.println ("Start LoRa mislyktes!"); } Serial.println ("LoRa -initialisering OK!"); forsinkelse (2000); // Koble til Wi-Fi-nettverk med SSID og passord Serial.print ("Koble til"); Serial.println (ssid); WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) {forsinkelse (2000); Serial.print ("."); } // Skriv ut lokal IP -adresse og start webserveren Serial.println (""); Serial.println ("WiFi tilkoblet."); Serial.println ("IP -adresse:"); Serial.println (WiFi.localIP ()); } // Les LoRa -pakken og få sensoravlesningene til å gjøre loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora -pakke mottatt:"); while (LoRa.available ()) // Les pakke {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Få lese -ID temperatur = LoRaData.substring (pos1 +1, pos2); // Få temperaturfuktighet = LoRaData.substring (pos2+1, LoRaData.length ()); // Få fuktighet} rssi = LoRa.packetRssi (); // Få 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 (readingID); postStr += "& field2 ="; postStr += String (temperatur); postStr += "& field3 ="; postStr += String (fuktighet); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /oppdater HTTP /1.1 / n"); client.print ("Vert: api.thingspeak.com / n"); client.print ("Tilkobling: lukk / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Innholdstype: application/x-www-form-urlencoded / n"); client.print ("Content-Length:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // forsinkelse (30000); }
Trinn 7: Sensornodekode
#inkludere
#include // Libraries for LoRa #include "DHT.h" #define DHTPIN 4 // pin hvor dht11 er tilkoblet DHT dht (DHTPIN, DHT11); // definere pinnene som brukes av LoRa -transceivermodulen #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 for Asia, 866E6 for Europa, 915E6 for Nord -Amerika // packet counter int readingID = 0; int teller = 0; String LoRaMessage = ""; flyte temperatur = 0; flytefuktighet = 0; // Initialiser LoRa -modulen ugyldig startLoRA () {LoRa.setPins (ss, rst, dio0); // sette opp LoRa -mottakermodul mens (! LoRa.begin (BAND) && teller <10) {Serial.print ("."); teller ++; forsinkelse (500); } if (teller == 10) {// Øk lese -ID for hver ny lesing readingID ++; Serial.println ("Start LoRa mislyktes!"); } Serial.println ("LoRa -initialisering OK!"); forsinkelse (2000); } ugyldig startDHT () {if (isnan (fuktighet) || isnan (temperatur)) {Serial.println ("Kunne ikke lese fra DHT -sensor!"); komme tilbake; }} void getReadings () {fuktighet = dht.readHumidity (); temperatur = dht.readTemperature (); Serial.print (F ("Fuktighet:")); Serial.print (fuktighet); Serial.print (F ("% temperatur:")); Serial.print (temperatur); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperatur) + "&" + String (fuktighet); // Send LoRa -pakken til mottaker LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Sender pakke:"); Serial.println (readingID); readingID ++; Serial.println (LoRaMessage); } ugyldig oppsett () {// initialize Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); forsinkelse (500); }
Trinn 8: Overvåk data på Thingspeak Server
Når koden er lastet opp, kan du åpne Serial Monitor på både Gateway & Sensor Node Circuit. Du sender og mottar data hvis koden er riktig. Nå kan du besøke Thingspeak Private View. Der kan du se dataene for pakkenummer, temperatur, fuktighet og gateway lastes opp etter intervallet på 15 sekunder.
Trinn 9: Referanser
1.
2.
Anbefalt:
LoRa 3 km til 8 km trådløs kommunikasjon med lavpris E32 (sx1278/sx1276) enhet for Arduino, Esp8266 eller Esp32: 15 trinn
LoRa 3 km til 8 km trådløs kommunikasjon med lavpris E32 (sx1278/sx1276) enhet for Arduino, Esp8266 eller Esp32: Jeg lager et bibliotek for å administrere EBYTE E32 basert på Semtech -serien av LoRa -enheter, veldig kraftig, enkel og billig enhet. Du finner 3Km versjon her, 8Km versjon her De kan arbeide over en avstand på 3000m til 8000m, og de har mange funksjoner og
GPS -bilsporing med SMS -varsling og opplasting av Thingspeak -data, Arduino -basert, hjemmeautomatisering: 5 trinn (med bilder)
GPS Car Tracker Med SMS -varsling og Thingspeak Data Upload, Arduino Based, Home Automation: Jeg lagde denne GPS -trackeren i fjor, og siden den fungerer bra, publiserer jeg den nå på Instructable. Den er koblet til tilbehørsproppen i bagasjerommet. GPS -trackeren laster opp bilposisjon, hastighet, retning og målt temperatur via mobildata
Komme i gang med ESP32 - Installere ESP32 -kort i Arduino IDE - ESP32 Blink -kode: 3 trinn
Komme i gang med ESP32 | Installere ESP32 -kort i Arduino IDE | ESP32 Blink -kode: I denne instruksjonsboken vil vi se hvordan du begynner å jobbe med esp32 og hvordan du installerer esp32 -kort i Arduino IDE, og vi vil programmere esp 32 for å kjøre blinkkode ved hjelp av arduino ide
ESP32 Med E32-433T LoRa-modulopplæring - LoRa Arduino -grensesnitt: 8 trinn
ESP32 Med E32-433T LoRa-modulopplæring | LoRa Arduino Interfacing: Hei, hva skjer, gutter! Akarsh her fra CETech. Dette prosjektet mitt er grensesnitt mot E32 LoRa-modulen fra eByte, som er en 1 watts transceivermodul med høy effekt med en ESP32 ved bruk av Arduino IDE. Vi forsto hvordan E32 fungerte i vår siste tutoria
Kontroller hvitevarer over LoRa - LoRa i hjemmeautomatisering - LoRa fjernkontroll: 8 trinn
Kontroller hvitevarer over LoRa | LoRa i hjemmeautomatisering | LoRa fjernkontroll: Kontroller og automatiser dine elektriske apparater fra lange avstander (kilometer) uten tilstedeværelse av internett. Dette er mulig gjennom LoRa! Hei, hva skjer, folkens? Akarsh her fra CETech. Denne PCB har også en OLED -skjerm og 3 reléer som en