
Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-23 14:38

v tomto projektu IoT jsem navrhl ESP32 LoRa Gateway a také ESP32 LoRa Sensor Node pro bezdrátové monitorování odečtu senzorů ze vzdálenosti několika kilometrů. Odesílatel bude číst údaje o vlhkosti a teplotě pomocí snímače DHT11. Poté přenáší data prostřednictvím rádia LoRa. Data jsou přijímána přijímacím modulem. Přijímač poté odešle data na server Thingspeak po určitém intervalu.
Krok 1: Požadované součásti
1. Deska ESP32 - 2
2. Modul Lora SX1278/SX1276
3. Čidlo teploty vlhkosti DHT11
4. Breadboard
5. Připojení propojovacích vodičů
Krok 2: Instalace požadovaných knihoven
Nejprve musíme nainstalovat různé knihovny:
1. Knihovna DHT11
2. Knihovna LoRa
Krok 3: Brána ESP32 LoRa Thingspeak


Nyní se podívejme na obvod vysílače a přijímače pro stavbu brány a senzoru ESP32 LoRa. Sestavil jsem oba obvody na prkénko. Pokud chcete, můžete to udělat na PCB.
Zde je obvod brány ESP32 LoRa Module SX1278. Tato část funguje jako přijímač. Údaje o vlhkosti a teplotě jsou přijímány pomocí LoRa Radio a nahrávány na server Thingspeak.
Krok 4: Senzorový uzel ESP32 LoRa


Zde je obvod uzlu snímače ESP32 LoRa se snímačem DHT11. Tato část funguje jako vysílač. Údaje o vlhkosti a teplotě jsou snímány snímačem vlhkosti DHT11 a přenášeny pomocí rádia LoRa.
Krok 5: Nastavení Thingspeak

Abyste mohli sledovat data senzorů na serveru Thingspeak, musíte nejprve nastavit Thingspeak. Chcete -li nastavit server Thingspeak, navštivte https://thingspeak.com/. Pokud jste si účet vytvořili dříve, vytvořte si účet nebo se jednoduše přihlaste. Poté vytvořte nový kanál s následujícími detaily.
Krok 6: Kód brány
#zahrnout
// Knihovny pro LoRa #include #include // definují piny používané modulem transceiveru LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pro Asii, 866E6 pro Evropu, 915E6 pro Severní Ameriku // Nahradit síťovými údaji Řetězec apiKey = "14K8UL2QEK8BTHN6"; // Zadejte svůj klíč API pro zápis z ThingSpeak const char *ssid = "Wifi SSID"; // nahraďte klíčem wifi ssid a wpa2 const char *heslo = "heslo"; const char* server = "api.thingspeak.com"; Klient WiFiClient; // Inicializace proměnných pro získání a uložení dat LoRa int rssi; Řetězec loRaMessage; Teplota řetězce; Vlhkost strun; String readingID; // Nahradí zástupný symbol hodnotami DHT Řetězec procesor (const Řetězec & var) {//Serial.println(var); if (var == "TEPLOTA") {teplota zpátečky; } else if (var == "HUMIDITY") {zpětná vlhkost; } else if (var == "RRSI") {return String (rssi); } return String (); } neplatné nastavení () {Serial.begin (115200); int počítadlo; // nastavení modulu LoRa transceiveru LoRa.setPins (ss, rst, dio0); // nastavení transceiverového modulu LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); čítač ++; zpoždění (2000); } if (counter == 10) {// Zvýšení ID čtení při každém novém čtení Serial.println („Start LoRa failed!“); } Serial.println ("Inicializace LoRa v pořádku!"); zpoždění (2000); // Připojení k síti Wi-Fi pomocí SSID a hesla Serial.print („Připojování k“); Serial.println (ssid); WiFi.begin (ssid, heslo); while (WiFi.status ()! = WL_CONNECTED) {zpoždění (2000); Serial.print ("."); } // Vytiskněte místní IP adresu a spusťte webový server Serial.println (""); Serial.println („WiFi připojeno.“); Serial.println ("IP adresa:"); Serial.println (WiFi.localIP ()); } // Přečíst paket LoRa a získat hodnoty ze senzorů void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora packet prijat:"); while (LoRa.available ()) // Přečíst paket {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, pos1); // Získat teplotu čtení ID = LoRaData.substring (poz1 +1, pos2); // Získat teplotní vlhkost = LoRaData.substring (pos2+1, LoRaData.length ()); // Získejte vlhkost} rssi = LoRa.packetRssi (); // Získejte RSSI Serial.print ("s RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" nebo api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (ID čtení); postStr += "& field2 ="; postStr += řetězec (teplota); postStr += "& field3 ="; postStr += String (vlhkost); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /aktualizace HTTP /1.1 / n"); client.print ("Host: api.thingspeak.com / n"); client.print ("Připojení: zavřít / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application/x-www-form-urlencoded / n"); client.print ("Délka obsahu:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // zpoždění (30 000); }
Krok 7: Kód uzlu senzoru
#zahrnout
#include // Knihovny pro LoRa #include "DHT.h" #define DHTPIN 4 // pin, kde je připojen dht11 DHT dht (DHTPIN, DHT11); // definujte piny používané modulem transceiveru LoRa #define ss 5 #defst rst 14 #define dio0 2 #define BAND 433E6 // 433E6 pro Asii, 866E6 pro Evropu, 915E6 pro Severní Ameriku // čítač paketů int čteníID = 0; int čítač = 0; Řetězec LoRaMessage = ""; plovoucí teplota = 0; plovoucí vlhkost = 0; // Inicializace modulu LoRa neplatí startLoRA () {LoRa.setPins (ss, rst, dio0); // nastavení transceiverového modulu LoRa while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); čítač ++; zpoždění (500); } if (counter == 10) {// Zvýšení ID čtení při každém novém čtení ID čtení ++; Serial.println („Spuštění LoRa se nezdařilo!“); } Serial.println („Inicializace LoRa v pořádku!“); zpoždění (2000); } neplatné startDHT () {if (isnan (vlhkost) || isnan (teplota)) {Serial.println ("Selhalo čtení ze snímače DHT!"); vrátit se; }} neplatné getReadings () {vlhkost = dht.readHumidity (); teplota = dht.readTemperature (); Serial.print (F ("Vlhkost:")); Sériový tisk (vlhkost); Serial.print (F ("% Teplota:")); Sériový tisk (teplota); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (teplota) + "&" + String (vlhkost); // Odeslat paket LoRa příjemci LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Odesílání paketu:"); Serial.println (ID čtení); readingID ++; Serial.println (LoRaMessage); } void setup () {// inicializace Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); zpoždění (500); }
Krok 8: Monitorujte data na serveru Thingspeak


Jakmile je kód nahrán, můžete otevřít sériový monitor na obvodu brány i senzoru uzlu. Pokud je kód správný, budete odesílat a přijímat data. Nyní můžete navštívit Thingspeak Private View. Zde můžete vidět údaje o počtu paketů, teplotě, vlhkosti a bráně se nahrávají po intervalu 15 sekund.
Krok 9: Reference
1.
2.
Doporučuje:
Univerzální dálkové ovládání ovládané gesty s uzlem-MCU: 12 kroků

Dálkově ovládané univerzální dálkové ovládání s uzlem-MCU: Ahoj všichni a vítejte v tomto projektu! Jsem docela líný člověk a noční můrou líného člověka je dívat se na televizi, když si uvědomíte, že ovladač je příliš daleko! Uvědomil jsem si, že můj dálkový ovladač nebude nikdy příliš daleko, pokud ho budu mít po ruce
UCL-IIOT-poplachový systém s databází a červeným uzlem: 7 kroků

UCL-IIOT-Alarmový systém s databází a Node-red: Účelem této sestavy je naučit se propojovat Arduino s Node-red a databází, abyste mohli zaznamenávat data a také je sbírat pro pozdější použití. Pro toto sestavení používám jednoduchý arduino poplašný systém, který vydává 5 datových čísel, každé oddělené
Bezdrátový snímač teploty a vlhkosti IOT s dlouhým dosahem s červeným uzlem: 27 kroků

Bezdrátový snímač teploty a vlhkosti IOT s dlouhým dosahem s uzlem-červená: Představujeme bezdrátový snímač teploty a vlhkosti NCD s dlouhým dosahem, který se může pochlubit dosahem až 28 mil pomocí bezdrátové síťové architektury. Součástí snímače teploty a vlhkosti Honeywell HIH9130 je vysoce přesná teplota a
Inteligentní LED s uzlem MCU a Taskerem: 9 kroků (s obrázky)

Smart LED With Node MCU and Tasker: download tasker
Metody detekce vodní hladiny Arduino pomocí ultrazvukového senzoru a Funduino vodního senzoru: 4 kroky

Metody detekce hladiny vody Arduino pomocí ultrazvukového senzoru a Funduino senzoru vody: V tomto projektu vám ukážu, jak vytvořit levný detektor vody pomocí dvou metod: 1. Ultrazvukový senzor (HC-SR04) .2. Senzor vody Funduino