ESP32 Lora Thingspeak pristupnik sa čvorom senzora: 9 koraka
ESP32 Lora Thingspeak pristupnik sa čvorom senzora: 9 koraka

Video: ESP32 Lora Thingspeak pristupnik sa čvorom senzora: 9 koraka

Video: ESP32 Lora Thingspeak pristupnik sa čvorom senzora: 9 koraka
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2025, Januar
Anonim
ESP32 Lora Thingspeak pristupnik sa čvorom senzora
ESP32 Lora Thingspeak pristupnik sa čvorom senzora

u ovom IoT projektu dizajnirao sam ESP32 LoRa pristupnik i ESP32 LoRa senzorski čvor za bežično praćenje očitavanja senzora s udaljenosti od nekoliko kilometara. Pošiljatelj će čitati podatke o vlažnosti i temperaturi pomoću DHT11 senzora. Zatim prenosi podatke putem LoRa radija. Prijemni modul prima podatke. Primalac će nakon određenog intervala poslati podatke na Thingspeak Server.

Korak 1: Potrebne komponente

1. ESP32 ploča - 2

2. Lora modul SX1278/SX1276

3. DHT11 Senzor temperature vlage

4. Oglasna ploča

5. Spajanje žica kratkospojnika

Korak 2: Instaliranje potrebnih biblioteka

Prvo moramo instalirati različite biblioteke:

1. Biblioteka DHT11

2. LoRa biblioteka

Korak 3: ESP32 LoRa Thingspeak pristupnik

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

Pogledajmo sada krug pošiljatelja i primatelja za izgradnju ESP32 LoRa pristupnika i čvora senzora. Sastavio sam oba kruga na ploči. Ako želite, možete ga napraviti i na štampanoj ploči.

Ovdje je krug pristupnika ESP32 LoRa modula SX1278. Ovaj dio radi kao prijemnik. Podaci o vlažnosti i temperaturi primaju se pomoću LoRa radija i učitavaju se na Thingspeak server.

Korak 4: ESP32 LoRa senzorski čvor

ESP32 LoRa senzorski čvor
ESP32 LoRa senzorski čvor
ESP32 LoRa senzorski čvor
ESP32 LoRa senzorski čvor

Ovdje je krug čvora senzora ESP32 LoRa sa senzorom DHT11. Ovaj dio radi kao odašiljač. Podaci o vlažnosti i temperaturi očitavaju se pomoću DHT11 senzora temperature vlažnosti i prenose se pomoću LoRa radija.

Korak 5: Postavljanje Thingspeak -a

Postavljanje Thingspeak -a
Postavljanje Thingspeak -a

Da biste pratili podatke senzora na Thingspeak serveru, prvo morate postaviti Thingspeak. Za postavljanje Thingspeak servera posjetite https://thingspeak.com/. Napravite račun ili se jednostavno prijavite ako ste račun kreirali ranije. Zatim kreirajte novi kanal sa sljedećim detaljima.

Korak 6: Kôd mrežnog prolaza

#include

// Knjižnice za LoRa #include #include // definirajte pinove koje koristi LoRa primopredajnički modul #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 za Aziju, 866E6 za Europu, 915E6 za Sjevernu Ameriku // Zamijenite svojim mrežnim vjerodajnicama String apiKey = "14K8UL2QEK8BTHN6"; // Unesite svoj API API ključ iz ThingSpeak const char *ssid = "Wifi SSID"; // zamijenite svojim wifi ssid i wpa2 ključem const char *password = "Lozinka"; const char* server = "api.thingspeak.com"; WiFiClient klijent; // Pokretanje varijabli za dobivanje i spremanje LoRa podataka int rssi; String loRaMessage; Temperatura žice; Vlažnost žica; String readingID; // Zamjenjuje rezervirano mjesto DHT vrijednostima String procesor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {temperatura povrata; } else if (var == "HUMIDITY") {povratna vlaga; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int counter; // postavljanje LoRa primopredajnika LoRa.setPins (ss, rst, dio0); // postavljanje LoRa primopredajnika dok (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); counter ++; kašnjenje (2000); } if (counter == 10) {// Povećati ID čitanja pri svakom novom čitanju Serial.println ("Pokretanje LoRa nije uspjelo!"); } Serial.println ("LoRa inicijalizacija u redu!"); kašnjenje (2000); // Povezivanje na Wi-Fi mrežu sa SSID-om i lozinkom Serial.print ("Povezivanje na"); Serial.println (ssid); WiFi.begin (ssid, lozinka); while (WiFi.status ()! = WL_CONNECTED) {odgoda (2000); Serial.print ("."); } // Odštampajte lokalnu IP adresu i pokrenite web server Serial.println (""); Serial.println ("WiFi povezan."); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); } // Pročitajte LoRa paket i dobijte očitanja senzora void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora paket primljen:"); while (LoRa.available ()) // Čitanje paketa {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // Dobivanje temperature čitanja ID = LoRaData.substring (poz1 +1, pos2); // Dobivanje temperaturne vlažnosti = LoRaData.substring (pos2+1, LoRaData.length ()); // Dobivanje vlažnosti} rssi = LoRa.packetRssi (); // Nabavite RSSI Serial.print ("sa RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" ili api.thingspeak.com {String postStr = apiKey; postStr += "& polje1 ="; postStr += String (ID čitanja); postStr += "& polje2 ="; postStr += String (temperatura); postStr += "& polje3 ="; postStr += String (vlažnost); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /ažuriraj HTTP /1.1 / n"); client.print ("Domaćin: api.thingspeak.com / n"); client.print ("Veza: zatvori / 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); } // kašnjenje (30000); }

Korak 7: Kod čvora senzora

#include

#include // Knjižnice za LoRa #include "DHT.h" #define DHTPIN 4 // pin gdje je dht11 spojen DHT dht (DHTPIN, DHT11); // definiramo pinove koje koristi modul primopredajnika LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 za Aziju, 866E6 za Evropu, 915E6 za Sjevernu Ameriku // brojač paketa int readingID = 0; int brojač = 0; String LoRaMessage = ""; temperatura plovka = 0; vlažnost plovka = 0; // Inicijalizacija LoRa modula void startLoRA () {LoRa.setPins (ss, rst, dio0); // postavljanje LoRa primopredajnika dok (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); counter ++; kašnjenje (500); } if (counter == 10) {// Povećati readID za svako novo čitanje readID ++; Serial.println ("Pokretanje LoRa nije uspjelo!"); } Serial.println ("LoRa inicijalizacija u redu!"); kašnjenje (2000); } void startDHT () {if (isnan (vlažnost) || isnan (temperatura)) {Serial.println ("Očitavanje nije uspjelo sa DHT senzora!"); return; }} void getReadings () {vlažnost = dht.readHumidity (); temperatura = dht.readTemperature (); Serial.print (F ("Vlažnost:")); Serial.print (vlažnost); Serial.print (F ("% Temperatura:")); Serial.print (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readID) + "/" + String (temperatura) + "&" + String (vlažnost); // Slanje LoRa paketa primatelju LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Slanje paketa:"); Serial.println (readID); readID ++; Serial.println (LoRaMessage); } void setup () {// inicijalizirati Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); kašnjenje (500); }

Korak 8: Nadgledajte podatke na serveru Thingspeak

Pratite podatke na serveru Thingspeak
Pratite podatke na serveru Thingspeak
Pratite podatke na serveru Thingspeak
Pratite podatke na serveru Thingspeak

Nakon što se kôd otpremi, možete otvoriti serijski monitor na oba kola pristupnog i senzorskog čvora. Podatke ćete slati i primati ako je kôd tačan. Sada možete posjetiti Thingspeak Private View. Tamo možete vidjeti podatke za broj paketa, temperaturu, vlažnost i pristupnik koji se učitavaju nakon intervala od 15 sekundi.

Korak 9: Reference

1.

2.