![ESP32 Lora Thingspeak Gateway cu nod senzor: 9 pași ESP32 Lora Thingspeak Gateway cu nod senzor: 9 pași](https://i.howwhatproduce.com/images/007/image-20656-j.webp)
Cuprins:
- Pasul 1: Componente necesare
- Pasul 2: Instalarea bibliotecilor necesare
- Pasul 3: ESP32 LoRa Thingspeak Gateway
- Pasul 4: nod senzor ESP32 LoRa
- Pasul 5: Configurarea Thingspeak
- Pasul 6: Cod gateway
- Pasul 7: Codul nodului senzorului
- Pasul 8: monitorizați datele pe serverul Thingspeak
- Pasul 9: Referințe
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
![ESP32 Lora Thingspeak Gateway cu nod senzor ESP32 Lora Thingspeak Gateway cu nod senzor](https://i.howwhatproduce.com/images/007/image-20656-1-j.webp)
în acest proiect IoT, am proiectat ESP32 LoRa Gateway și, de asemenea, ESP32 LoRa Sensor Node pentru a monitoriza citirea senzorului fără fir de la distanțe de câțiva kilometri. Expeditorul va citi datele privind umiditatea și temperatura folosind senzorul DHT11. Apoi transmite datele prin LoRa Radio. Datele sunt primite de modulul receptor. Receptorul va trimite apoi datele către Thingspeak Server după un anumit interval.
Pasul 1: Componente necesare
1. Placa ESP32 - 2
2. Modulul Lora SX1278 / SX1276
3. Senzor de temperatură a umidității DHT11
4. Pană de pâine
5. Conectarea firelor jumper
Pasul 2: Instalarea bibliotecilor necesare
Mai întâi trebuie să instalăm diferite biblioteci:
1. Biblioteca DHT11
2. Biblioteca LoRa
Pasul 3: ESP32 LoRa Thingspeak Gateway
![ESP32 LoRa Thingspeak Gateway ESP32 LoRa Thingspeak Gateway](https://i.howwhatproduce.com/images/007/image-20656-2-j.webp)
![ESP32 LoRa Thingspeak Gateway ESP32 LoRa Thingspeak Gateway](https://i.howwhatproduce.com/images/007/image-20656-3-j.webp)
Acum, să vedem circuitul expeditorului și receptorului pentru construirea ESP32 LoRa Gateway & Nod senzor. Am asamblat ambele circuite pe o placă de calcul. O puteți face pe PCB dacă doriți.
Iată un circuit de gateway ESP32 LoRa Module SX1278. Această parte funcționează ca un receptor. Datele privind umiditatea și temperatura sunt primite folosind LoRa Radio și încărcate pe Thingspeak Server.
Pasul 4: nod senzor ESP32 LoRa
![Nod senzor ESP32 LoRa Nod senzor ESP32 LoRa](https://i.howwhatproduce.com/images/007/image-20656-4-j.webp)
![Nod senzor ESP32 LoRa Nod senzor ESP32 LoRa](https://i.howwhatproduce.com/images/007/image-20656-5-j.webp)
Iată un circuit nod nod ESP32 LoRa cu senzor DHT11. Această parte funcționează ca un emițător. Datele privind umiditatea și temperatura sunt citite de senzorul de temperatură al umidității DHT11 și transmise cu ajutorul LoRa Radio.
Pasul 5: Configurarea Thingspeak
![Configurarea Thingspeak Configurarea Thingspeak](https://i.howwhatproduce.com/images/007/image-20656-6-j.webp)
Pentru a monitoriza datele senzorului pe serverul Thingspeak, trebuie mai întâi să configurați Thingspeak. Pentru a configura Serverul Thingspeak, vizitați https://thingspeak.com/. Creați un cont sau pur și simplu conectați-vă dacă ați creat contul mai devreme. Apoi creați un nou canal cu următoarele detalii.
Pasul 6: Cod gateway
#include
// Biblioteci pentru LoRa #include #include // definește pinii folosiți de modulul de emisie-recepție LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pentru Asia, 866E6 pentru Europa, 915E6 pentru America de Nord // Înlocuiți cu acreditările de rețea String apiKey = "14K8UL2QEK8BTHN6"; // Introduceți cheia API de scriere din ThingSpeak const char * ssid = "SSID Wifi"; // înlocuiți cu ssid-ul wifi și cheia wpa2 const char * parolă = "Parolă"; const char * server = "api.thingspeak.com"; Client WiFiClient; // Inițializați variabile pentru a obține și salva date LoRa în rssi; String loRaMessage; Temperatura corzii; Umiditatea șirului; ID de citire a șirurilor; // Înlocuiește substituentul cu valorile DHT Procesor șir (const String & var) {//Serial.println(var); if (var == "TEMPERATURA") {temperatura de retur; } else if (var == "UMIDITATE") {returnează umiditatea; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); contor int; // configurați modulul LoRa transceiver LoRa.setPins (ss, rst, dio0); // configurați modulul transmițător LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); contor ++; întârziere (2000); } if (contor == 10) {// Creșteți ID-ul de citire la fiecare nouă lectură Serial.println ("Pornirea LoRa a eșuat!"); } Serial.println ("LoRa Initialization OK!"); întârziere (2000); // Conectați-vă la rețeaua Wi-Fi cu SSID și parolă Serial.print („Conectarea la”); Serial.println (ssid); WiFi.begin (ssid, parolă); while (WiFi.status ()! = WL_CONNECTED) {întârziere (2000); Serial.print ("."); } // Imprimați adresa IP locală și porniți serverul web Serial.println (""); Serial.println ("WiFi conectat."); Serial.println ("adresa IP:"); Serial.println (WiFi.localIP ()); } // Citiți pachetul LoRa și obțineți citirile senzorului bucla nulă () {int pachet Dimensiune = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora a primit pachetul:"); while (LoRa.available ()) // Citeste pachetul {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Obțineți temperatura ID-ului de citire = LoRaData.substring (pos1 +1, pos2); // Obțineți umiditatea temperaturii = LoRaData.substring (pos2 + 1, LoRaData.length ()); // Ia umiditate} rssi = LoRa.packetRssi (); // Obțineți RSSI Serial.print („cu RSSI”); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" sau api.thingspeak.com {String postStr = apiKey; postStr + = "& field1 ="; postStr + = String (readingID); postStr + = "& field2 ="; postStr + = String (temperature); postStr + = "& field3 ="; postStr + = String (umiditate); postStr + = "& field4 ="; postStr + = String (rssi); postStr + = "\ r / n / r / n / r / n / r / n"; client.print ("POST / actualizare HTTP / 1.1 / n"); client.print ("Gazdă: api.thingspeak.com / n"); client.print ("Conexiune: închidere / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application / x-www-form-urlencoded / n"); client.print („Lungime conținut:”); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // întârziere (30000); }
Pasul 7: Codul nodului senzorului
#include
#include // Biblioteci pentru LoRa #include "DHT.h" #define DHTPIN 4 // pin unde este conectat dht11 DHT dht (DHTPIN, DHT11); // definiți pinii utilizați de modulul de emisie-recepție LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pentru Asia, 866E6 pentru Europa, 915E6 pentru America de Nord // contor de pachete int readingID = 0; contor int = 0; String LoRaMessage = ""; temperatura plutitorului = 0; umiditatea plutitoare = 0; // Inițializați modulul LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // configurați modulul transmițător LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); contor ++; întârziere (500); } if (contor == 10) {// Creșteți ID-ul de citire la fiecare nouă lectură ID-ul de citire ++; Serial.println ("Pornirea LoRa a eșuat!"); } Serial.println ("LoRa Initialization OK!"); întârziere (2000); } void startDHT () {if (isnan (umiditate) || isnan (temperatura)) {Serial.println ("Nu s-a citit de la senzorul DHT!"); întoarcere; }} void getReadings () {umiditate = dht.readHumidity (); temperature = dht.readTemperature (); Serial.print (F ("Umiditate:")); Serial.print (umiditate); Serial.print (F ("% Temperatura:")); Serial.print (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperature) + "&" + String (umiditate); // Trimiteți pachetul LoRa către receptor LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Trimiterea pachetului:"); Serial.println (readingID); readingID ++; Serial.println (LoRaMessage); } void setup () {// inițializează Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); întârziere (500); }
Pasul 8: monitorizați datele pe serverul Thingspeak
![Monitorizați datele pe serverul Thingspeak Monitorizați datele pe serverul Thingspeak](https://i.howwhatproduce.com/images/007/image-20656-7-j.webp)
![Monitorizați datele pe serverul Thingspeak Monitorizați datele pe serverul Thingspeak](https://i.howwhatproduce.com/images/007/image-20656-8-j.webp)
Odată ce codul este încărcat, puteți deschide Serial Monitor atât pe Gateway cât și pe Circuitul nodului senzorului. Veți trimite și primi date dacă codul este corect. Acum puteți vizita Thingspeak Private View. Acolo puteți vedea datele pentru numărul pachetului, temperatura, umiditatea și gateway-ul sunt încărcate după un interval de 15 secunde.
Pasul 9: Referințe
1.
2.
Recomandat:
Lora Gateway bazat pe MicroPython ESP32: 10 pași (cu imagini)
![Lora Gateway bazat pe MicroPython ESP32: 10 pași (cu imagini) Lora Gateway bazat pe MicroPython ESP32: 10 pași (cu imagini)](https://i.howwhatproduce.com/images/006/image-16666-j.webp)
Lora Gateway Bazat pe MicroPython ESP32: Lora a fost foarte popular în ultimii ani. Modulul de comunicații fără fir care utilizează această tehnologie este de obicei ieftin (utilizând spectru liber), de dimensiuni reduse, eficient din punct de vedere energetic și are o distanță mare de comunicare și este utilizat în principal pentru comunicarea reciprocă
Nod-RED cu senzor de vibrații și temperatură IoT pe rază lungă: 34 de pași
![Nod-RED cu senzor de vibrații și temperatură IoT pe rază lungă: 34 de pași Nod-RED cu senzor de vibrații și temperatură IoT pe rază lungă: 34 de pași](https://i.howwhatproduce.com/images/011/image-31724-j.webp)
Node-RED cu senzor de vibrații și temperatură IoT pe rază lungă de acțiune: Introducerea senzorului de umiditate fără fir cu rază lungă de acțiune a NCD, oferind o gamă de până la 28 de mile folosind o arhitectură de rețea fără fir mesh. Incorporarea senzorului de umiditate pentru temperatură Honeywell HIH9130 transmite o temperatură foarte precisă și
Senzor de temperatură și umiditate fără fir IOT cu rază lungă de acțiune cu roșu nod: 27 de pași
![Senzor de temperatură și umiditate fără fir IOT cu rază lungă de acțiune cu roșu nod: 27 de pași Senzor de temperatură și umiditate fără fir IOT cu rază lungă de acțiune cu roșu nod: 27 de pași](https://i.howwhatproduce.com/images/003/image-7581-4-j.webp)
Senzor de temperatură și umiditate fără fir cu rază lungă de acțiune IOT cu roșu nod: Introducerea senzorului de temperatură și umiditate fără fir cu rază lungă de acțiune al NCD, oferind o gamă de până la 28 de mile utilizând o arhitectură de rețea fără fir cu plasă. Incorporarea senzorului de temperatură-umiditate Honeywell HIH9130 transmite o temperatură foarte precisă și
15 $ LoRa Gateway / Nod ESP8266 Build PCB 3cmX8cm Dimensiune: 6 pași
![15 $ LoRa Gateway / Nod ESP8266 Build PCB 3cmX8cm Dimensiune: 6 pași 15 $ LoRa Gateway / Nod ESP8266 Build PCB 3cmX8cm Dimensiune: 6 pași](https://i.howwhatproduce.com/images/005/image-13008-7-j.webp)
15 $ LoRa Gateway / Node ESP8266 Build PCB 3cmX8cm Dimensiune: Hei, ce se întâmplă, băieți? Akarsh aici de la CETech. Astăzi vom face un proiect care este un nod LoRa simplu și îl puteți folosi chiar și ca un gateway cu un singur canal. Aici microcontrolerul pe care l-am folosit este ESP8266, care este conectat la plăcile LoRa
IOT123 - ASIMILAȚI SUB SENZOR: ICOS10 3V3 MQTT NOD: 6 pași
![IOT123 - ASIMILAȚI SUB SENZOR: ICOS10 3V3 MQTT NOD: 6 pași IOT123 - ASIMILAȚI SUB SENZOR: ICOS10 3V3 MQTT NOD: 6 pași](https://i.howwhatproduce.com/images/001/image-579-58-j.webp)
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 3V3 MQTT NODE: Acesta este primul dintr-o varietate de combinații MCU / Feature din ASSIMILATE SENSOR HUBS: masterii care colectează depozitele de date de la sclavii I2C ASSIMILATE SENSORS. Această versiune folosește un Wemos D1 Mini, pentru a publica orice date aruncate din ASSIMILATE