Sisukord:

ESP32 Lora Thingspeak Gateway andurisõlmega: 9 sammu
ESP32 Lora Thingspeak Gateway andurisõlmega: 9 sammu

Video: ESP32 Lora Thingspeak Gateway andurisõlmega: 9 sammu

Video: ESP32 Lora Thingspeak Gateway andurisõlmega: 9 sammu
Video: ESP32 LoRaWAN Gateway tutorial with Sensor Node 2024, November
Anonim
ESP32 Lora Thingspeak Gateway andurisõlmega
ESP32 Lora Thingspeak Gateway andurisõlmega

selles IoT -projektis kujundasin ESP32 LoRa Gateway ja ka ESP32 LoRa andurisõlme, et jälgida anduri näitu juhtmevabalt mõne kilomeetri kauguselt. Saatja loeb niiskuse ja temperatuuri andmeid DHT11 anduri abil. Seejärel edastab see andmed LoRa raadio kaudu. Andmed võtab vastu vastuvõtja moodul. Seejärel saadab vastuvõtja andmed teatud aja möödudes asjade serverisse.

Samm: nõutavad komponendid

1. ESP32 juhatus - 2

2. Lora moodul SX1278/SX1276

3. DHT11 niiskuse temperatuuri andur

4. Leivalaud

5. Jumper juhtmete ühendamine

2. samm: nõutavate raamatukogude installimine

Peame kõigepealt installima erinevad teegid:

1. DHT11 raamatukogu

2. LoRa raamatukogu

Samm 3: ESP32 LoRa Thingspeak Gateway

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

Nüüd vaatame saatja ja vastuvõtja vooluringi ESP32 LoRa lüüsi ja andurisõlme ehitamiseks. Panin mõlemad vooluringid kokku leivaplaadil. Soovi korral saate seda teha trükkplaadil.

Siin on ESP32 LoRa mooduli SX1278 lüüsi ahel. See osa töötab vastuvõtjana. Niiskuse ja temperatuuri andmed võetakse vastu LoRa raadio abil ja laaditakse üles Thingspeaki serverisse.

Samm: ESP32 LoRa andurisõlm

ESP32 LoRa andurisõlm
ESP32 LoRa andurisõlm
ESP32 LoRa andurisõlm
ESP32 LoRa andurisõlm

Siin on DHT11 anduriga ESP32 LoRa andurisõlme ahel. See osa töötab saatjana. Niiskuse ja temperatuuri andmeid loeb DHT11 niiskuse temperatuuriandur ja edastatakse LoRa raadio abil.

5. toiming: seadistage asjakõne

Asjakõne seadistamine
Asjakõne seadistamine

Thingspeak Serveri anduriandmete jälgimiseks peate esmalt seadistama Thingspeaki. Thingspeaki serveri seadistamiseks külastage https://thingspeak.com/. Looge konto või logige lihtsalt sisse, kui lõite konto varem. Seejärel looge uus kanal järgmiste üksikasjadega.

6. samm: lüüsi kood

#kaasake

// LoRa raamatukogud #sisaldavad #sisalda // määravad LoRa transiiverimooduli kasutatavad tihvtid #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Aasia, 866E6 Euroopa, 915E6 Põhja -Ameerika jaoks // Asenda oma võrgu mandaadiga String apiKey = "14K8UL2QEK8BTHN6"; // Sisestage oma kirjutamisliidese võti saidilt ThingSpeak const char *ssid = "Wifi SSID"; // asenda oma wifi ssid ja wpa2 võtmega const char *password = "Parool"; const char* server = "api.thingspeak.com"; WiFiClient klient; // Muutujate initsialiseerimine LoRa andmete hankimiseks ja salvestamiseks int rssi; String loRaMessage; Stringi temperatuur; Stringi niiskus; String lugemineID; // Asendab kohatäite DHT väärtustega Stringiprotsessor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {tagasivoolutemperatuur; } else if (var == "HUMIDITY") {tagasisõidu niiskus; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int loendur; // LoRa transiiveri mooduli seadistamine LoRa.setPins (ss, rst, dio0); // seadista LoRa transiiveri moodul while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); loendur ++; viivitus (2000); } if (loendur == 10) {// Lugemise ID suurendamine igal uuel lugemisel Serial.println ("LoRa käivitamine ebaõnnestus!"); } Serial.println ("LoRa initsialiseerimine OK!"); viivitus (2000); // Ühenda Wi-Fi võrguga SSID ja parooliga Serial.print ("Ühendamine"); Serial.println (ssid); WiFi.begin (ssid, parool); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Seeria.print ("."); } // Printige kohalik IP -aadress ja käivitage veebiserver Serial.println (""); Serial.println ("WiFi on ühendatud."); Serial.println ("IP -aadress:"); Serial.println (WiFi.localIP ()); } // Loe LoRa paketti ja saada anduri näidud void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora pakett vastu võetud:"); while (LoRa.available ()) // Loe paketti {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // Hangi lugemineID temperatuur = LoRaData.substring (pos1 +1, pos2); // Temperatuuri niiskuse hankimine = LoRaData.substring (pos2+1, LoRaData.length ()); // Hangi niiskus} rssi = LoRa.packetRssi (); // Hangi RSSI Serial.print ("koos RSSI -ga"); Seeria.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" või api.thingspeak.com {String postStr = apiKey; postStr += "& väli1 ="; postStr += String (lugemisID); postStr += "& väli2 ="; postStr += String (temperatuur); postStr += "& väli3 ="; postStr += String (niiskus); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /uuenda HTTP /1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Ühendus: sulge / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application/x-www-form-urlencoded / n"); client.print ("Sisu-pikkus:"); klient.print (postStr.length ()); klient.print ("\ n / n"); klient.print (postStr); } // viivitus (30000); }

7. samm: anduri sõlme kood

#kaasake

#include // LoRa raamatukogud #include "DHT.h" #define DHTPIN 4 // pin, kuhu dht11 on ühendatud DHT dht (DHTPIN, DHT11); // defineerige LoRa transiiveri mooduli kasutatavad tihvtid #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Aasia jaoks, 866E6 Euroopa jaoks, 915E6 Põhja -Ameerika jaoks // pakettide loendur int readingID = 0; int loendur = 0; String LoRaMessage = ""; ujuki temperatuur = 0; ujuki niiskus = 0; // LoRa mooduli initsialiseerimine void startLoRA () {LoRa.setPins (ss, rst, dio0); // seadista LoRa transiiveri moodul while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); loendur ++; viivitus (500); } if (loendur == 10) {// Suurendage lugemis -ID iga uue lugemise korral lugemise ID ++; Serial.println ("LoRa käivitamine ebaõnnestus!"); } Serial.println ("LoRa initsialiseerimine OK!"); viivitus (2000); } void startDHT () {if (isnan (niiskus) || isnan (temperatuur)) {Serial.println ("DHT -andurilt ei õnnestunud lugeda!"); tagasipöördumine; }} void getReadings () {niiskus = dht.readHumidity (); temperatuur = dht.readTemperature (); Serial.print (F ("Niiskus:")); Serial.print (niiskus); Serial.print (F ("% temperatuur:")); Serial.print (temperatuur); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (lugemisID) + "/" + String (temperatuur) + "&" + String (niiskus); // LoRa paketi saatmine vastuvõtjale LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Paketi saatmine:"); Serial.println (lugemis -ID); lugemineID ++; Serial.println (LoRaMessage); } void setup () {// initsialiseeri Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); viivitus (500); }

Samm 8: Jälgige andmeid Speakipe'i serveris

Jälgige Thingspeaki serveri andmeid
Jälgige Thingspeaki serveri andmeid
Andmete jälgimine Thingspeaki serveris
Andmete jälgimine Thingspeaki serveris

Kui kood on üles laaditud, saate seeriamonitori avada nii lüüsi kui ka andurisõlme ahelal. Kui kood on õige, saadate ja saate andmed. Nüüd saate külastada Thingspeaki privaatvaadet. Seal näete pakettide arvu, temperatuuri, niiskuse ja lüüsi andmeid 15 sekundi pärast.

9. samm: viited

1.

2.

Soovitan: