Taula de continguts:
- Pas 1: components necessaris
- Pas 2: Instal·lació de les biblioteques necessàries
- Pas 3: ESP32 LoRa Thingspeak Gateway
- Pas 4: Node del sensor ESP32 LoRa
- Pas 5: configurar Thingspeak
- Pas 6: Codi de passarel·la
- Pas 7: Codi del node del sensor
- Pas 8: supervisar les dades al servidor de Thingspeak
- Pas 9: referències
Vídeo: ESP32 Lora Thingspeak Gateway amb node de sensor: 9 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
en aquest projecte IoT, vaig dissenyar ESP32 LoRa Gateway i també ESP32 LoRa Sensor Node per controlar la lectura sense fils del sensor des de distàncies d’uns quants quilòmetres. L’emissor llegirà les dades d’humitat i temperatura mitjançant el sensor DHT11. A continuació, transmet les dades mitjançant LoRa Radio. Les dades les rep el mòdul receptor. Després, el receptor enviarà les dades al Thingspeak Server després d’un determinat interval.
Pas 1: components necessaris
1. Taula ESP32 - 2
2. Mòdul Lora SX1278 / SX1276
3. Sensor de temperatura d’humitat DHT11
4. Taula de pa
5. Connexió de cables de pont
Pas 2: Instal·lació de les biblioteques necessàries
Primer hem d’instal·lar diferents biblioteques:
1. Biblioteca DHT11
2. Biblioteca LoRa
Pas 3: ESP32 LoRa Thingspeak Gateway
Ara vegem el circuit emissor i receptor per a la construcció de la passarel·la ESP32 LoRa i el node de sensor. Vaig muntar el circuit en una taula de treball. Podeu fer-ho al PCB si voleu.
Aquí teniu un circuit de passarel·la ESP32 LoRa Module SX1278. Aquesta part funciona com un receptor. Les dades d’humitat i temperatura es reben mitjançant LoRa Radio i es carreguen a Thingspeak Server.
Pas 4: Node del sensor ESP32 LoRa
Aquí teniu un circuit de node de sensor ESP32 LoRa amb sensor DHT11. Aquesta part funciona com a transmissor. El sensor de temperatura d’humitat DHT11 llegeix les dades d’humitat i temperatura i es transmet mitjançant LoRa Radio.
Pas 5: configurar Thingspeak
Per supervisar les dades del sensor al servidor Thingspeak, primer heu de configurar Thingspeak. Per configurar el servidor de Thingspeak, visiteu https://thingspeak.com/. Creeu un compte o inicieu la sessió simplement si el heu creat anteriorment. A continuació, creeu un canal nou amb els detalls següents.
Pas 6: Codi de passarel·la
#incloure
// Biblioteques per LoRa #include #include // defineix els pins utilitzats pel mòdul transceptor LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 per a Àsia, 866E6 per a Europa, 915E6 per a Amèrica del Nord // Substitueix les credencials de xarxa String apiKey = "14K8UL2QEK8BTHN6"; // Introduïu la vostra clau API d'escriptura des de ThingSpeak const char * ssid = "SSID Wifi"; // substituïu per la vostra clau ssid wifi i wpa2 const char * password = "Contrasenya"; const char * server = "api.thingspeak.com"; Client WiFiClient; // Inicialitzar variables per obtenir i desar dades LoRa en rssi; String loRaMessage; Temperatura de la corda; Humitat de la corda; ID de lectura de cadenes; // Substitueix l'espai reservat per valors DHT Processador de cadena (const String & var) {//Serial.println(var); if (var == "TEMPERATURA") {temperatura de retorn; } else if (var == "HUMITAT") {tornar la humitat; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int comptador; // setup LoRa transceiver module LoRa.setPins (ss, rst, dio0); // configureu el mòdul transceptor LoRa mentre (! LoRa.begin (BAND) && comptador <10) {Serial.print ("."); comptador ++; endarreriment (2000); } if (comptador == 10) {// Incrementa ID de lectura en cada nova lectura Serial.println ("S'ha produït un error en iniciar LoRa!"); } Serial.println ("La inicialització LoRa està bé!"); endarreriment (2000); // Connecteu-vos a la xarxa Wi-Fi amb SSID i contrasenya Serial.print ("Connexió a"); Serial.println (ssid); WiFi.begin (ssid, contrasenya); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Serial.print ("."); } // Imprimiu l'adreça IP local i inicieu el servidor web Serial.println (""); Serial.println ("WiFi connectat"); Serial.println ("adreça IP:"); Serial.println (WiFi.localIP ()); } // Llegiu el paquet LoRa i obteniu les lectures del sensor bucle buit () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Paquet Lora rebut:"); while (LoRa.available ()) // Paquet de lectura {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Obtén lecturaID temperatura = LoRaData.substring (pos1 +1, pos2); // Obtenir temperatura humitat = LoRaData.substring (pos2 + 1, LoRaData.length ()); // Obtenir humitat} rssi = LoRa.packetRssi (); // Obteniu RSSI Serial.print ("amb RSSI"); Serial.println (rssi); } if (client.connect (servidor, 80)) // "184.106.153.149" o api.thingspeak.com {String postStr = apiKey; postStr + = "& field1 ="; postStr + = Cadena (ID de lectura); postStr + = "& field2 ="; postStr + = String (temperatura); postStr + = "& field3 ="; postStr + = String (humitat); postStr + = "& field4 ="; postStr + = String (rssi); postStr + = "\ r / n / r / n / r / n / r / n"; client.print ("POST / actualització HTTP / 1.1 / n"); client.print ("Amfitrió: api.thingspeak.com / n"); client.print ("Connexió: tancar / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Tipus de contingut: application / x-www-form-urlencoded / n"); client.print ("Longitud del contingut:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // demora (30000); }
Pas 7: Codi del node del sensor
#incloure
#include // Biblioteques per LoRa #include "DHT.h" #define DHTPIN 4 // pin on està connectat el dht11 DHT dht (DHTPIN, DHT11); // defineix els pins que utilitza el mòdul transceptor LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 per a Àsia, 866E6 per a Europa, 915E6 per a Amèrica del Nord // comptador de paquets int readingID = 0; int comptador = 0; String LoRaMessage = ""; temperatura de flotació = 0; humitat flotant = 0; // Inicialitzar el mòdul LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // configureu el mòdul transceptor LoRa mentre (! LoRa.begin (BAND) && comptador <10) {Serial.print ("."); comptador ++; retard (500); } if (comptador == 10) {// Incrementa ID de lectura en cada lectura nova ID de lectura ++; Serial.println ("S'ha produït un error en iniciar LoRa!"); } Serial.println ("La inicialització LoRa està bé!"); endarreriment (2000); } void startDHT () {if (isnan (humitat) || isnan (temperatura)) {Serial.println ("No s'ha pogut llegir del sensor DHT!"); tornar; }} void getReadings () {humitat = dht.readHumidity (); temperatura = dht.readTemperature (); Serial.print (F ("Humitat:")); Serial.print (humitat); Serial.print (F ("% Temperatura:")); Serial.print (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = Cadena (ID de lectura) + "/" + Cadena (temperatura) + "&" + Cadena (humitat); // Enviar paquet LoRa al receptor LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Enviant paquet:"); Serial.println (readingID); readingID ++; Serial.println (LoRaMessage); } void setup () {// inicialitzar Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); retard (500); }
Pas 8: supervisar les dades al servidor de Thingspeak
Un cop carregat el codi, podeu obrir el monitor de sèrie tant al circuit de la passarel·la com del node del sensor. Enviareu i rebreu dades si el codi és correcte. Ara podeu visitar Thingspeak Private View. Allà podeu veure les dades del número de paquets, temperatura, humitat i passarel·la que es carreguen després de l’interval de 15 segons.
Pas 9: referències
1.
2.
Recomanat:
MuMo - LoRa Gateway: 25 passos (amb imatges)
MuMo - LoRa Gateway: ### ACTUALITZACIÓ 10-03-2021 // la informació / actualitzacions més recents estaran disponibles a la pàgina de github: https: //github.com/MoMu-Antwerp/MuMo Què és MuMo? MuMo és una col·laboració entre desenvolupament de productes (un departament de la Universitat d'Anvers) sota el
Lora Gateway basat en MicroPython ESP32: 10 passos (amb imatges)
Lora Gateway basat en MicroPython ESP32: Lora ha estat molt popular en els darrers anys. El mòdul de comunicació sense fils que utilitza aquesta tecnologia sol ser barat (amb espectre lliure), de mida petita, eficient en energia i amb una distància de comunicació llarga i s’utilitza principalment per a comunicacions mútues
ESP32 amb tutorial del mòdul E32-433T LoRa - Interfície LoRa Arduino: 8 passos
ESP32 amb tutorial del mòdul E32-433T LoRa | Interfície LoRa Arduino: Ei, què passa, nois! Akarsh aquí de CETech.Aquest projecte meu és la interfície del mòdul E32 LoRa d’Ebyte, que és un mòdul transceptor d’1 potència d’alta potència amb un ESP32 amb Arduino IDE. Hem entès el funcionament de l’E32 a la nostra última tutoria
Controlar els electrodomèstics sobre LoRa - LoRa en domòtica - Control remot LoRa: 8 passos
Controlar els electrodomèstics sobre LoRa | LoRa en domòtica | Control remot LoRa: controleu i automatitzeu els aparells elèctrics des de llargues distàncies (quilòmetres) sense la presència d'Internet. Això és possible a través de LoRa! Ei, què passa, nois? Akarsh aquí de CETech.This PCB també té una pantalla OLED i 3 relés que un
15 $ LoRa Gateway / Node ESP8266 Build PCB 3cmX8cm Mida: 6 passos
15 $ LoRa Gateway / Node ESP8266 Build PCB 3cmX8cm Mida: Ei, què passa, nois? Akarsh aquí des de CETech. Avui farem un projecte que és un simple node LoRa i fins i tot el podeu utilitzar com a passarel·la d’un sol canal. Aquí el microcontrolador que he utilitzat és l’ESP8266, que està connectat a les plaques LoRa