Brána ESP32 Lora Thingspeak so senzorovým uzlom: 9 krokov
Brána ESP32 Lora Thingspeak so senzorovým uzlom: 9 krokov

Video: Brána ESP32 Lora Thingspeak so senzorovým uzlom: 9 krokov

Video: Brána ESP32 Lora Thingspeak so senzorovým uzlom: 9 krokov
Video: Знакомство с платой разработки Heltec LoRa CubeCell HTCC-AB01 2025, Január
Anonim
Brána ESP32 Lora Thingspeak so senzorovým uzlom
Brána ESP32 Lora Thingspeak so senzorovým uzlom

v tomto projekte IoT som navrhol bránu ESP32 LoRa a tiež senzorový uzol ESP32 LoRa na bezdrôtové monitorovanie čítania snímačov zo vzdialenosti niekoľkých kilometrov. Odosielateľ bude čítať údaje o vlhkosti a teplote pomocou senzora DHT11. Potom prenáša údaje prostredníctvom rádia LoRa. Údaje prijíma modul prijímača. Prijímač potom po určitom intervale pošle údaje na server Thingspeak.

Krok 1: Potrebné súčasti

1. Doska ESP32 - 2

2. Modul Lora SX1278/SX1276

3. Snímač teploty vlhkosti DHT11

4. Breadboard

5. Pripojenie prepojovacích káblov

Krok 2: Inštalácia požadovaných knižníc

Najprv musíme nainštalovať rôzne knižnice:

1. Knižnica DHT11

2. Knižnica LoRa

Krok 3: Brána ESP32 LoRa Thingspeak

Brána ESP32 LoRa Thingspeak
Brána ESP32 LoRa Thingspeak
Brána ESP32 LoRa Thingspeak
Brána ESP32 LoRa Thingspeak

Teraz sa pozrime na obvod odosielateľa a prijímača na stavbu brány a senzorového uzla ESP32 LoRa. Oba obvody som zostavil na dosku na chlieb. Ak chcete, môžete to urobiť na PCB.

Tu je obvod brány ESP32 LoRa Module SX1278. Táto časť funguje ako prijímač. Údaje o vlhkosti a teplote sa prijímajú pomocou rádia LoRa a nahrávajú sa na server Thingspeak.

Krok 4: Uzol snímača ESP32 LoRa

Uzol snímača ESP32 LoRa
Uzol snímača ESP32 LoRa
Uzol snímača ESP32 LoRa
Uzol snímača ESP32 LoRa

Tu je obvod uzla snímača ESP32 LoRa so snímačom DHT11. Táto časť funguje ako vysielač. Údaje o vlhkosti a teplote sú čítané snímačom teploty vlhkosti DHT11 a prenášané pomocou rádia LoRa.

Krok 5: Nastavenie Thingspeak

Nastavenie Thingspeak
Nastavenie Thingspeak

Aby ste mohli monitorovať údaje senzorov na serveri Thingspeak, musíte najskôr nastaviť Thingspeak. Ak chcete nastaviť server Thingspeak, navštívte stránku https://thingspeak.com/. Ak ste si účet vytvorili skôr, vytvorte si účet alebo sa jednoducho prihláste. Potom vytvorte nový kanál s nasledujúcimi podrobnosťami.

Krok 6: Kód brány

#zahrnúť

// Knižnice pre LoRa #include #include // definujú piny používané v transceiverovom module LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pre Áziu, 866E6 pre Európu, 915E6 pre Severnú Ameriku // Nahraďte svojimi sieťovými povereniami Reťazec apiKey = "14K8UL2QEK8BTHN6"; // Zadajte svoj kľúč API pre zápis z ThingSpeak const char *ssid = "Wifi SSID"; // nahraďte svojim kľúčom wifi ssid a wpa2 const char *heslo = "heslo"; const char* server = "api.thingspeak.com"; Klient WiFiClient; // Inicializácia premenných na získanie a uloženie údajov LoRa int rssi; Reťazec loRaMessage; Teplota reťazca; Vlhkosť reťazca; ID čítania reťazca; // Nahradí zástupný symbol hodnotami DHT String processor (const String & var) {//Serial.println(var); if (var == "TEPLOTA") {teplota spiatočky; } else if (var == "HUMIDITY") {spiatočná vlhkosť; } else if (var == "RRSI") {return String (rssi); } vrátiť String (); } neplatné nastavenie () {Serial.begin (115200); int počítadlo; // nastavenie transceiverového modulu LoRa LoRa.setPins (ss, rst, dio0); // nastavenie transceiverového modulu LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); počítadlo ++; oneskorenie (2000); } if (counter == 10) {// Zvýšenie ID čítania pri každom novom čítaní Serial.println („Spustenie LoRa zlyhalo!“); } Serial.println („Inicializácia LoRa je v poriadku!“); oneskorenie (2000); // Pripojenie k sieti Wi-Fi pomocou SSID a hesla Serial.print („Pripojenie k“); Serial.println (ssid); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {oneskorenie (2000); Serial.print ("."); } // Vytlačte lokálnu IP adresu a spustite webový server Serial.println (""); Serial.println („WiFi pripojené.“); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); } // Prečítajte paket LoRa a získajte údaje zo senzorov void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora packet prijat:"); while (LoRa.available ()) // Read packet {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Získať ID čítania teplota = LoRaData.substring (poz1 +1, pos2); // Získať teplotnú vlhkosť = LoRaData.substring (pos2+1, LoRaData.length ()); // Získajte vlhkosť} rssi = LoRa.packetRssi (); // Získať RSSI Serial.print ("s RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" alebo api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (ID čítania); postStr += "& field2 ="; postStr += reťazec (teplota); postStr += "& field3 ="; postStr += Reťazec (vlhkosť); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /aktualizácia HTTP /1.1 / n"); client.print ("Hostiteľ: api.thingspeak.com / n"); client.print ("Pripojenie: zavrieť / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Typ obsahu: aplikácia/x-www-form-urlencoded / n"); client.print („Dĺžka obsahu:“); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // oneskorenie (30 000); }

Krok 7: Kód uzla senzora

#zahrnúť

#include // Knižnice pre LoRa #include "DHT.h" #define DHTPIN 4 // pin, kde je pripojený dht11 DHT dht (DHTPIN, DHT11); // definujte piny, ktoré používa modul transceiveru LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pre Áziu, 866E6 pre Európu, 915E6 pre Severnú Ameriku // počítadlo paketov int readingID = 0; int počítadlo = 0; Reťazec LoRaMessage = ""; teplota plaváka = 0; plávajúca vlhkosť = 0; // Inicializácia modulu LoRa zrušenie startLoRA () {LoRa.setPins (ss, rst, dio0); // nastavenie transceiverového modulu LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); počítadlo ++; oneskorenie (500); } if (counter == 10) {// Zvýšenie ID čítania pri každom novom čítaní ID čítania ++; Serial.println („Spustenie LoRa zlyhalo!“); } Serial.println („Inicializácia LoRa je v poriadku!“); oneskorenie (2000); } neplatné startDHT () {if (isnan (vlhkosť) || isnan (teplota)) {Serial.println ("Zlyhalo čítanie zo senzora DHT!"); návrat; }} neplatné getReadings () {vlhkosť = dht.readHumidity (); teplota = dht.readTemperature (); Serial.print (F ("Vlhkosť:")); Sériový tlač (vlhkosť); Serial.print (F ("% teploty:")); Sériový tlač (teplota); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (teplota) + "&" + String (vlhkosť); // Odoslanie paketu LoRa príjemcovi LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Odosielanie paketu:"); Serial.println (ID čítania); readingID ++; Serial.println (LoRaMessage); } void setup () {// inicializácia Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); oneskorenie (500); }

Krok 8: Monitorujte údaje na serveri Thingspeak

Monitorujte údaje na serveri Thingspeak
Monitorujte údaje na serveri Thingspeak
Monitorujte údaje na serveri Thingspeak
Monitorujte údaje na serveri Thingspeak

Po nahraní kódu môžete otvoriť sériový monitor na obvode uzla brány a senzora. Pokiaľ je kód správny, budete odosielať a prijímať údaje. Teraz môžete navštíviť Thingspeak Private View. Tam môžete vidieť údaje o čísle paketu, teplote, vlhkosti a bráne sa nahrajú po intervale 15 sekúnd.

Krok 9: Referencie

1.

2.