Përmbajtje:

ESP32 Lora Thingspeak Gateway Me Nyje Sensori: 9 Hapa
ESP32 Lora Thingspeak Gateway Me Nyje Sensori: 9 Hapa

Video: ESP32 Lora Thingspeak Gateway Me Nyje Sensori: 9 Hapa

Video: ESP32 Lora Thingspeak Gateway Me Nyje Sensori: 9 Hapa
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2024, Nëntor
Anonim
ESP32 Lora Thingspeak Gateway Me Nyje Sensore
ESP32 Lora Thingspeak Gateway Me Nyje Sensore

në këtë Projekt IoT, unë projektova ESP32 LoRa Gateway & gjithashtu ESP32 LoRa Sensor Nyje për të monitoruar sensorin që lexon pa tel nga distanca disa kilometra. Dërguesi do të lexojë të dhënat e lagështisë dhe temperaturës duke përdorur sensorin DHT11. Pastaj transmeton të dhënat përmes LoRa Radio. Të dhënat merren nga moduli i marrësit. Marrësi do t'i dërgojë të dhënat në Thingspeak Server pas një intervali të caktuar.

Hapi 1: Përbërësit e kërkuar

1. Bordi ESP32 - 2

2. Moduli Lora SX1278/SX1276

3. Sensori i temperaturës së lagështisë DHT11

4. Tabela e bukës

5. Lidhja e telave të bluzave

Hapi 2: Instalimi i Bibliotekave të Kërkuara

Së pari duhet të instalojmë biblioteka të ndryshme:

1. Biblioteka DHT11

2. Biblioteka LoRa

Hapi 3: ESP32 LoRa Thingspeak Gateway

ESP32 LoRa Thingspeak Gateway
ESP32 LoRa Thingspeak Gateway
ESP32 LoRa Thingspeak Gateway
ESP32 LoRa Thingspeak Gateway

Tani le të shohim qarkun e dërguesit dhe marrësit për ndërtimin e ESP32 LoRa Gateway & Sensor Node. I mblodha të dy qarkun në një dërrasë buke. Nëse dëshironi, mund ta bëni në PCB.

Këtu është një qark ESP32 LoRa Moduli SX1278 Gateway. Kjo pjesë funksionon si Marrës. Të dhënat e lagështisë dhe temperaturës merren duke përdorur LoRa Radio dhe ngarkohen në Thingspeak Server.

Hapi 4: Nyja e sensorit ESP32 LoRa

ESP32 Nyja e Sensorit LoRa
ESP32 Nyja e Sensorit LoRa
ESP32 Nyja e sensorit LoRa
ESP32 Nyja e sensorit LoRa

Këtu është një Qark Nyje Sensori ESP32 LoRa me Sensor DHT11. Kjo pjesë funksionon si transmetues. Të dhënat e lagështisë dhe temperaturës lexohen nga Sensori i Temperaturës së Lagështisë DHT11 dhe transmetohen duke përdorur LoRa Radio.

Hapi 5: Vendosja e Thingspeak

Vendosja e Thingspeak
Vendosja e Thingspeak

Për të monitoruar të dhënat e sensorit në serverin Thingspeak, së pari duhet të konfiguroni Thingspeak. Për të konfiguruar serverin Thingspeak, vizitoni https://thingspeak.com/. Krijoni një llogari ose thjesht regjistrohuni nëse e keni krijuar llogarinë më herët. Pastaj krijoni një kanal të ri me detajet e mëposhtme.

Hapi 6: Kodi i Portës

#përfshi

// Bibliotekat për LoRa #includ #includ // përcaktoni kunjat e përdorura nga moduli i transmetuesit LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 për Azinë, 866E6 për Evropën, 915E6 për Amerikën e Veriut // Zëvendësoni me kredencialet e rrjetit tuaj String apiKey = "14K8UL2QEK8BTHN6"; // Futni çelësin tuaj Shkruani API nga ThingSpeak const char *ssid = "Wifi SSID"; // zëvendësojeni me wifi ssid dhe wpa2 çelësin tuaj const char *fjalëkalimin = "Fjalëkalimi"; const char* server = "api.thingspeak.com"; Klienti WiFiClient; // Inicializoni variablat për të marrë dhe ruajtur të dhënat e LoRa në rssi; Varg loRaMessage; Temperatura e vargut; Lagështia e vargut; Leximi i vargut ID; // Zëvendëson vendmbajtësin me vlerat DHT Procesori i vargut (const String & var) {//Serial.println(var); if (var == "TEMPERATURA") {temperatura e kthimit; } tjetër nëse (var == "HUMIDITY") {kthejeni lagështinë; } else if (var == "RRSI") {kthimi i vargut (rssi); } string String (); } void setup () {Serial.begin (115200); int counter; // konfiguroni modulin e transmetuesit LoRa LoRa.setPins (ss, rst, dio0); // konfiguroni modulin e transmetuesit LoRa ndërsa (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); banak ++; vonesa (2000); } if (counter == 10) {// Rritja e leximitID në çdo lexim të ri Serial.println ("Fillimi i LoRa dështoi!"); } Serial.println ("LoRa Initialization OK!"); vonesa (2000); // Lidhu me rrjetin Wi-Fi me SSID dhe fjalëkalimin Serial.print ("Lidhja me"); Serial.println (ssid); WiFi.filloni (ssid, fjalëkalim); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (2000); Serial.print ("."); } // Shtypni adresën IP lokale dhe filloni serverin në internet Serial.println (""); Serial.println ("WiFi i lidhur."); Serial.println ("Adresa IP:"); Serial.println (WiFi.localIP ()); } // Lexoni paketën LoRa dhe merrni leximet e sensorit void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Paketa Lora u mor:"); ndërsa (LoRa.disponueshme ()) // Lexo paketën {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); leximiID = LoRaData.substring (0, pos1); // Merrni temperaturën e leximitID = LoRaData.substring (pos1 +1, pos2); // Merrni lagështinë e temperaturës = LoRaData.substring (pos2+1, LoRaData.length ()); // Merr lagështi} rssi = LoRa.packetRssi (); // Merr RSSI Serial.print ("me RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" ose api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (leximi ID); postStr += "& field2 ="; postStr += Vargu (temperatura); postStr += "& field3 ="; postStr += String (lagështia); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /përditëso HTTP /1.1 / n"); client.print ("Pritësi: api.thingspeak.com / n"); client.print ("Lidhja: mbyll / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Lloji i përmbajtjes: aplikacioni/x-www-forma-urlencoded / n"); client.print ("Përmbajtja-Gjatësia:"); klient.print (postStr.length ()); client.print ("\ n / n"); klient.print (postStr); } // vonesa (30000); }

Hapi 7: Kodi i Nyjes së Sensorit

#përfshi

#include // Bibliotekat për LoRa #përfshijnë "DHT.h" #define DHTPIN 4 // pin ku dht11 është e lidhur DHT dht (DHTPIN, DHT11); // përcaktoni kunjat e përdorura nga moduli i transmetuesit LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 për Azinë, 866E6 për Evropën, 915E6 për Amerikën e Veriut // numëruesi i paketave int leximi ID = 0; int counter = 0; Vargu LoRaMessage = ""; temperatura e notimit = 0; lagështia notuese = 0; // Inicimi i modulit LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // konfiguroni modulin e transmetuesit LoRa ndërsa (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); banak ++; vonesë (500); } if (counter == 10) {// Rritja e leximitID në çdo lexim të ri leximiID ++; Serial.println ("Fillimi i LoRa dështoi!"); } Serial.println ("LoRa Initialization OK!"); vonesa (2000); } void startDHT () {if (isnan (lagështia) || isnan (temperatura)) {Serial.println ("Leximi nuk u lexua nga sensori DHT!"); kthim; }} void getReadings () {lagështia = dht.readHumidity (); temperatura = dht.readTemperatura (); Serial.print (F ("Lagështia:")); Serial.print (lagështia); Serial.print (F ("% Temperatura:")); Serial.print (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = Vargu (leximiID) + "/" + Vargu (temperatura) + "&" + Vargu (lagështia); // Dërgo paketën LoRa te marrësi LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Dërgimi i paketës:"); Serial.println (leximi ID); leximi ID ++; Serial.println (LoRaMessage); } void setup () {// inicio Serial Monitor Serial.begin (115200); dht.filloj (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); vonesë (500); }

Hapi 8: Monitoroni të dhënat në serverin Thingspeak

Monitoroni të dhënat në serverin Thingspeak
Monitoroni të dhënat në serverin Thingspeak
Monitoroni të dhënat në serverin Thingspeak
Monitoroni të dhënat në serverin Thingspeak

Pasi të jetë ngarkuar kodi, mund të hapni Monitorin Serial si në Qarkun Gateway & Sensor Node. Ju do të dërgoni dhe merrni të dhëna nëse kodi është i saktë. Tani mund të vizitoni Thingspeak Private View. Aty mund të shihni të dhënat për Numrin e Paketës, Temperaturën, Lagështinë dhe Portën ngarkohen pas intervalit prej 15 sekondash.

Hapi 9: Referencat

1.

2.

Recommended: