Tartalomjegyzék:

ESP32 Lora Thingspeak Gateway érzékelő csomóponttal: 9 lépés
ESP32 Lora Thingspeak Gateway érzékelő csomóponttal: 9 lépés

Videó: ESP32 Lora Thingspeak Gateway érzékelő csomóponttal: 9 lépés

Videó: ESP32 Lora Thingspeak Gateway érzékelő csomóponttal: 9 lépés
Videó: Lora communication between 2arduino and raspberry pi #raspberrypi #arduino #lora #electronics 2024, Július
Anonim
ESP32 Lora Thingspeak Gateway érzékelő csomóponttal
ESP32 Lora Thingspeak Gateway érzékelő csomóponttal

Ebben az IoT projektben az ESP32 LoRa Gateway -t és az ESP32 LoRa érzékelőcsomópontot is megterveztem, hogy néhány kilométeres távolságból vezeték nélkül figyeljék az érzékelő leolvasását. A küldő a DHT11 érzékelő segítségével leolvassa a páratartalom és a hőmérséklet adatait. Ezután továbbítja az adatokat a LoRa rádión keresztül. Az adatokat a vevő modul fogadja. A vevő ezután egy bizonyos idő elteltével elküldi az adatokat a Thingspeak szervernek.

1. lépés: Szükséges összetevők

1. ESP32 tábla - 2

2. Lora SX1278/SX1276 modul

3. DHT11 páratartalom hőmérséklet érzékelő

4. Kenyeretábla

5. Jumper vezetékek csatlakoztatása

2. lépés: A szükséges könyvtárak telepítése

Először különböző könyvtárakat kell telepítenünk:

1. DHT11 Könyvtár

2. LoRa Könyvtár

3. lépés: ESP32 LoRa Thingspeak Gateway

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

Most nézzük meg a küldő és a vevő áramkört az ESP32 LoRa átjáró és érzékelő csomópont építéséhez. Mindkét áramkört kenyérsütő táblára szereltem össze. Ha akarod, PCB -n is elkészítheted.

Itt van egy ESP32 LoRa SX1278 átjáró áramkör. Ez a rész vevőként működik. A páratartalomra és a hőmérsékletre vonatkozó adatok a LoRa rádió használatával érkeznek, és feltölthetők a Thingspeak Serverre.

4. lépés: ESP32 LoRa érzékelő csomópont

ESP32 LoRa érzékelő csomópont
ESP32 LoRa érzékelő csomópont
ESP32 LoRa érzékelő csomópont
ESP32 LoRa érzékelő csomópont

Itt egy ESP32 LoRa érzékelő csomópont áramkör DHT11 érzékelővel. Ez a rész adóként működik. A páratartalom és a hőmérséklet adatait a DHT11 páratartalom -hőmérséklet -érzékelő olvassa le, és a LoRa rádió segítségével továbbítja.

5. lépés: A Thingspeak beállítása

A Thingspeak beállítása
A Thingspeak beállítása

Ahhoz, hogy figyelhesse a szenzoradatokat a Thingspeak szerveren, először be kell állítania a Thingspeak -et. A Thingspeak szerver beállításához látogasson el a https://thingspeak.com/ oldalra. Hozzon létre egy fiókot, vagy egyszerűen jelentkezzen be, ha korábban hozta létre. Ezután hozzon létre egy új csatornát a következő részletekkel.

6. lépés: Átjárókód

#befoglalni

// Libraries for LoRa #include #include // definiálja a LoRa adó -vevő modul által használt csapokat #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Ázsia, 866E6 Európa, 915E6 Észak -Amerika // Csere hálózati hitelesítő adatokkal String apiKey = "14K8UL2QEK8BTHN6"; // Írja be írási API -kulcsát a ThingSpeak -ből const char *ssid = "Wifi SSID"; // helyettesítse a wifi -ssiddel és a wpa2 kulccsal const char *password = "Jelszó"; const char* szerver = "api.thingspeak.com"; WiFiClient kliens; // Változók inicializálása LoRa adatok beszerzésére és mentésére int rssi; String loRaMessage; String hőmérséklet; String páratartalom; Karakterlánc olvasásID; // A helyőrzőt DHT értékekkel helyettesíti String processzor (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {visszatérő hőmérséklet; } else if (var == "HUMIDITY") {visszatérő páratartalom; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int számláló; // LoRa adó -vevő modul beállítása LoRa.setPins (ss, rst, dio0); // a LoRa adó -vevő modul beállítása while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); számláló ++; késleltetés (2000); } if (számláló == 10) {// Olvasási azonosító növelése minden új olvasáskor Serial.println ("A LoRa indítása sikertelen!"); } Serial.println ("LoRa inicializálás OK!"); késleltetés (2000); // Csatlakozás Wi-Fi hálózathoz SSID-vel és jelszóval Serial.print ("Csatlakozás"); Soros.println (ssid); WiFi.begin (ssid, jelszó); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Soros.nyomtatás ("."); } // Nyomtassa ki a helyi IP -címet és indítsa el a webszervert Serial.println (""); Serial.println ("WiFi csatlakoztatva."); Serial.println ("IP -cím:"); Serial.println (WiFi.localIP ()); } // Olvassa el a LoRa csomagot, és szerezze be az érzékelő leolvasási void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora csomag érkezett:"); while (LoRa.available ()) // csomag olvasása {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); olvasási azonosító = LoRaData.substring (0, pos1); // Olvasás leolvasásaID hőmérséklet = LoRaData.substring (pos1 +1, pos2); // Hőmérséklet páratartalom lekérése = LoRaData.substring (pos2+1, LoRaData.length ()); // Páratartalom lekérése} rssi = LoRa.packetRssi (); // RSSI Serial.print lekérése ("RSSI -vel"); Soros.println (rssi); } if (client.connect (szerver, 80)) // "184.106.153.149" vagy api.thingspeak.com {String postStr = apiKey; postStr += "& mező1 ="; postStr += Karakterlánc (olvasási azonosító); postStr += "& field2 ="; postStr += Karakterlánc (hőmérséklet); postStr += "& field3 ="; postStr += String (páratartalom); postStr += "& field4 ="; postStr += Karakterlánc (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /frissítés HTTP /1.1 / n"); client.print ("Gazdagép: api.thingspeak.com / n"); client.print ("Kapcsolat: bezár / 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); } // delay (30000); }

7. lépés: Érzékelő csomópont kódja

#befoglalni

#include // Libraries for LoRa #include "DHT.h" #define DHTPIN 4 // pin, ahol a dht11 csatlakozik DHT dht (DHTPIN, DHT11); // definiálja a LoRa adó -vevő modul által használt csapokat #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Ázsia, 866E6 Európa, 915E6 Észak -Amerika // csomagszámláló int readingID = 0; int számláló = 0; Karakterlánc LoRaMessage = ""; úszóhőmérséklet = 0; úszó páratartalom = 0; // A LoRa modul inicializálása void startLoRA () {LoRa.setPins (ss, rst, dio0); // a LoRa adó -vevő modul beállítása while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); számláló ++; késleltetés (500); } if (számláló == 10) {// Olvasási azonosító növelése minden új olvasási értéknél ++; Serial.println ("A LoRa indítása sikertelen!"); } Serial.println ("LoRa inicializálás OK!"); késleltetés (2000); } void startDHT () {if (isnan (páratartalom) || isnan (hőmérséklet)) {Serial.println ("Nem sikerült leolvasni a DHT érzékelőből!"); Visszatérés; }} void getReadings () {páratartalom = dht.readHumidity (); hőmérséklet = dht.readTemperature (); Soros.nyomat (F ("Páratartalom:")); Soros.nyomtatás (páratartalom); Soros.nyomat (F ("% hőmérséklet:")); Soros.nyomtatás (hőmérséklet); Soros.println (F ("° C")); } void sendReadings () {LoRaMessage = String (olvasási azonosító) + "/" + String (hőmérséklet) + "&" + String (páratartalom); // LoRa csomag küldése a vevőnek LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Csomag küldése:"); Soros.println (olvasási azonosító); olvasási azonosító ++; Serial.println (LoRaMessage); } void setup () {// inicializálja a Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); késleltetés (500); }

8. lépés: Az adatok figyelése a Thingspeak szerveren

Adatok figyelése a Thingspeak szerveren
Adatok figyelése a Thingspeak szerveren
Adatok figyelése a Thingspeak szerveren
Adatok figyelése a Thingspeak szerveren

A kód feltöltése után megnyithatja a soros monitort mind az átjáró, mind az érzékelő csomópont áramkörén. Ha a kód helyes, akkor elküldi és fogadja az adatokat. Most meglátogathatja a Thingspeak Private View -t. Itt láthatja a csomagszám, a hőmérséklet, a páratartalom és az átjáró adatait 15 másodperc elteltével.

9. lépés: Hivatkozások

1.

2.

Ajánlott: