Sadržaj:

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

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

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

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

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 knjižnica

Prvo moramo instalirati različite knjižnice:

1. Knjižnica DHT11

2. Knjižnica LoRa

Korak 3: ESP32 LoRa Thingspeak pristupnik

ESP32 LoRa Thingspeak pristupnik
ESP32 LoRa Thingspeak pristupnik
ESP32 LoRa Thingspeak pristupnik
ESP32 LoRa Thingspeak pristupnik

Pogledajmo sada krug pošiljatelja i prijamnika za izgradnju ESP32 LoRa pristupnika i čvora senzora. Sastavio sam oba kruga na ploči. Možete ga napraviti na PCB -u ako želite.

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 poslužitelj.

Korak 4: ESP32 LoRa senzorski čvor

Čvor osjetnika ESP32 LoRa
Čvor osjetnika ESP32 LoRa
Čvor osjetnika ESP32 LoRa
Čvor osjetnika ESP32 LoRa

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

Korak 5: Postavljanje Thingspeak -a

Postavljanje Thingspeak -a
Postavljanje Thingspeak -a

Kako biste pratili podatke senzora na poslužitelju Thingspeak, prvo morate postaviti Thingspeak. Za postavljanje Thingspeak poslužitelja posjetite https://thingspeak.com/. Izradite račun ili se jednostavno prijavite ako ste račun stvorili ranije. Zatim stvorite novi kanal sa sljedećim pojedinostima.

Korak 6: Kôd pristupnika

#uključi

// Knjižnice za LoRa #include #include // definirajte pinove koje koristi modul primopredajnika LoRa #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; Niz loRaMessage; Temperatura žice; Vlažnost žica; Niz čitanjaID; // 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 brojač; // postavljanje LoRa primopredajnika LoRa.setPins (ss, rst, dio0); // postavljanje LoRa primopredajnika dok (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); brojač ++; odgoda (2000); } if (counter == 10) {// Povećati ID čitanja pri svakom novom čitanju Serial.println ("Pokretanje LoRa nije uspjelo!"); } Serial.println ("LoRa inicijalizacija u redu!"); odgoda (2000); // Spajanje na Wi-Fi mrežu sa SSID-om i lozinkom Serial.print ("Povezivanje na"); Serijski.println (ssid); WiFi.započni (ssid, lozinka); while (WiFi.status ()! = WL_CONNECTED) {odgoda (2000); Serial.print ("."); } // Ispis lokalne IP adrese i pokretanje web poslužitelja 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 ()) // Pročitajte paket {String LoRaData = LoRa.readString (); Serijski.ispis (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); čitanjeID = LoRaData.substring (0, pos1); // Dobivanje temperature očitanja ID -a = LoRaData.substring (pos1 +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 (očitanje ID); postStr += "& polje2 ="; postStr += String (temperatura); postStr += "& polje3 ="; postStr += String (vlažnost); postStr += "& polje4 ="; 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

#uključi

#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 Europu, 915E6 za Sjevernu Ameriku // brojač paketa int očitanjeID = 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 ("."); brojač ++; kašnjenje (500); } if (counter == 10) {// Povećati readID pri svakom novom očitanju readID ++; Serial.println ("Pokretanje LoRa nije uspjelo!"); } Serial.println ("LoRa inicijalizacija u redu!"); odgoda (2000); } void startDHT () {if (isnan (vlaga) || isnan (temperatura)) {Serial.println ("Očitavanje nije uspjelo s DHT senzora!"); povratak; }} void getReadings () {vlažnost = dht.readHumidity (); temperatura = dht.readTemperature (); Serial.print (F ("Vlažnost:")); Serijski.tisak (vlažnost); Serial.print (F ("% Temperatura:")); Serijski.tisak (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperatura) + "&" + String (vlažnost); // Slanje LoRa paketa primatelju LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Slanje paketa:"); Serial.println (ID čitanja); čitanjeID ++; 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 učita, možete otvoriti serijski monitor na krugu pristupnika i čvora senzora. Podatke ćete slati i primati ako je kôd točan. Sada možete posjetiti Thingspeak Private View. Tamo možete vidjeti podatke za broj paketa, temperaturu, vlažnost i pristupnik koji su preneseni nakon intervala od 15 sekundi.

Korak 9: Reference

1.

2.

Preporučeni: