Përmbajtje:
- Hapi 1: Përbërësit e kërkuar
- Hapi 2: Instalimi i Bibliotekave të Kërkuara
- Hapi 3: ESP32 LoRa Thingspeak Gateway
- Hapi 4: Nyja e sensorit ESP32 LoRa
- Hapi 5: Vendosja e Thingspeak
- Hapi 6: Kodi i Portës
- Hapi 7: Kodi i Nyjes së Sensorit
- Hapi 8: Monitoroni të dhënat në serverin Thingspeak
- Hapi 9: Referencat
Video: ESP32 Lora Thingspeak Gateway Me Nyje Sensori: 9 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
në këtë Projekt IoT, unë projektova ESP32 LoRa Gateway & gjithashtu ESP32 LoRa Sensor Nyje për të monitoruar sensorin që lexon pa tel nga distanca disa kilometra. Dërguesi do të lexojë të dhënat e lagështisë dhe temperaturës duke përdorur sensorin DHT11. Pastaj transmeton të dhënat përmes LoRa Radio. Të dhënat merren nga moduli i marrësit. Marrësi do t'i dërgojë të dhënat në Thingspeak Server pas një intervali të caktuar.
Hapi 1: Përbërësit e kërkuar
1. Bordi ESP32 - 2
2. Moduli Lora SX1278/SX1276
3. Sensori i temperaturës së lagështisë DHT11
4. Tabela e bukës
5. Lidhja e telave të bluzave
Hapi 2: Instalimi i Bibliotekave të Kërkuara
Së pari duhet të instalojmë biblioteka të ndryshme:
1. Biblioteka DHT11
2. Biblioteka LoRa
Hapi 3: ESP32 LoRa Thingspeak Gateway
Tani le të shohim qarkun e dërguesit dhe marrësit për ndërtimin e ESP32 LoRa Gateway & Sensor Node. I mblodha të dy qarkun në një dërrasë buke. Nëse dëshironi, mund ta bëni në PCB.
Këtu është një qark ESP32 LoRa Moduli SX1278 Gateway. Kjo pjesë funksionon si Marrës. Të dhënat e lagështisë dhe temperaturës merren duke përdorur LoRa Radio dhe ngarkohen në Thingspeak Server.
Hapi 4: Nyja e sensorit ESP32 LoRa
Këtu është një Qark Nyje Sensori ESP32 LoRa me Sensor DHT11. Kjo pjesë funksionon si transmetues. Të dhënat e lagështisë dhe temperaturës lexohen nga Sensori i Temperaturës së Lagështisë DHT11 dhe transmetohen duke përdorur LoRa Radio.
Hapi 5: Vendosja e Thingspeak
Për të monitoruar të dhënat e sensorit në serverin Thingspeak, së pari duhet të konfiguroni Thingspeak. Për të konfiguruar serverin Thingspeak, vizitoni https://thingspeak.com/. Krijoni një llogari ose thjesht regjistrohuni nëse e keni krijuar llogarinë më herët. Pastaj krijoni një kanal të ri me detajet e mëposhtme.
Hapi 6: Kodi i Portës
#përfshi
// Bibliotekat për LoRa #includ #includ // përcaktoni kunjat e përdorura nga moduli i transmetuesit LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 për Azinë, 866E6 për Evropën, 915E6 për Amerikën e Veriut // Zëvendësoni me kredencialet e rrjetit tuaj String apiKey = "14K8UL2QEK8BTHN6"; // Futni çelësin tuaj Shkruani API nga ThingSpeak const char *ssid = "Wifi SSID"; // zëvendësojeni me wifi ssid dhe wpa2 çelësin tuaj const char *fjalëkalimin = "Fjalëkalimi"; const char* server = "api.thingspeak.com"; Klienti WiFiClient; // Inicializoni variablat për të marrë dhe ruajtur të dhënat e LoRa në rssi; Varg loRaMessage; Temperatura e vargut; Lagështia e vargut; Leximi i vargut ID; // Zëvendëson vendmbajtësin me vlerat DHT Procesori i vargut (const String & var) {//Serial.println(var); if (var == "TEMPERATURA") {temperatura e kthimit; } tjetër nëse (var == "HUMIDITY") {kthejeni lagështinë; } else if (var == "RRSI") {kthimi i vargut (rssi); } string String (); } void setup () {Serial.begin (115200); int counter; // konfiguroni modulin e transmetuesit LoRa LoRa.setPins (ss, rst, dio0); // konfiguroni modulin e transmetuesit LoRa ndërsa (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); banak ++; vonesa (2000); } if (counter == 10) {// Rritja e leximitID në çdo lexim të ri Serial.println ("Fillimi i LoRa dështoi!"); } Serial.println ("LoRa Initialization OK!"); vonesa (2000); // Lidhu me rrjetin Wi-Fi me SSID dhe fjalëkalimin Serial.print ("Lidhja me"); Serial.println (ssid); WiFi.filloni (ssid, fjalëkalim); ndërsa (WiFi.status ()! = WL_CONNECTED) {vonesë (2000); Serial.print ("."); } // Shtypni adresën IP lokale dhe filloni serverin në internet Serial.println (""); Serial.println ("WiFi i lidhur."); Serial.println ("Adresa IP:"); Serial.println (WiFi.localIP ()); } // Lexoni paketën LoRa dhe merrni leximet e sensorit void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Paketa Lora u mor:"); ndërsa (LoRa.disponueshme ()) // Lexo paketën {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); leximiID = LoRaData.substring (0, pos1); // Merrni temperaturën e leximitID = LoRaData.substring (pos1 +1, pos2); // Merrni lagështinë e temperaturës = LoRaData.substring (pos2+1, LoRaData.length ()); // Merr lagështi} rssi = LoRa.packetRssi (); // Merr RSSI Serial.print ("me RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" ose api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += String (leximi ID); postStr += "& field2 ="; postStr += Vargu (temperatura); postStr += "& field3 ="; postStr += String (lagështia); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /përditëso HTTP /1.1 / n"); client.print ("Pritësi: api.thingspeak.com / n"); client.print ("Lidhja: mbyll / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Lloji i përmbajtjes: aplikacioni/x-www-forma-urlencoded / n"); client.print ("Përmbajtja-Gjatësia:"); klient.print (postStr.length ()); client.print ("\ n / n"); klient.print (postStr); } // vonesa (30000); }
Hapi 7: Kodi i Nyjes së Sensorit
#përfshi
#include // Bibliotekat për LoRa #përfshijnë "DHT.h" #define DHTPIN 4 // pin ku dht11 është e lidhur DHT dht (DHTPIN, DHT11); // përcaktoni kunjat e përdorura nga moduli i transmetuesit LoRa #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 për Azinë, 866E6 për Evropën, 915E6 për Amerikën e Veriut // numëruesi i paketave int leximi ID = 0; int counter = 0; Vargu LoRaMessage = ""; temperatura e notimit = 0; lagështia notuese = 0; // Inicimi i modulit LoRa void startLoRA () {LoRa.setPins (ss, rst, dio0); // konfiguroni modulin e transmetuesit LoRa ndërsa (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); banak ++; vonesë (500); } if (counter == 10) {// Rritja e leximitID në çdo lexim të ri leximiID ++; Serial.println ("Fillimi i LoRa dështoi!"); } Serial.println ("LoRa Initialization OK!"); vonesa (2000); } void startDHT () {if (isnan (lagështia) || isnan (temperatura)) {Serial.println ("Leximi nuk u lexua nga sensori DHT!"); kthim; }} void getReadings () {lagështia = dht.readHumidity (); temperatura = dht.readTemperatura (); Serial.print (F ("Lagështia:")); Serial.print (lagështia); Serial.print (F ("% Temperatura:")); Serial.print (temperatura); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = Vargu (leximiID) + "/" + Vargu (temperatura) + "&" + Vargu (lagështia); // Dërgo paketën LoRa te marrësi LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Dërgimi i paketës:"); Serial.println (leximi ID); leximi ID ++; Serial.println (LoRaMessage); } void setup () {// inicio Serial Monitor Serial.begin (115200); dht.filloj (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); vonesë (500); }
Hapi 8: Monitoroni të dhënat në serverin Thingspeak
Pasi të jetë ngarkuar kodi, mund të hapni Monitorin Serial si në Qarkun Gateway & Sensor Node. Ju do të dërgoni dhe merrni të dhëna nëse kodi është i saktë. Tani mund të vizitoni Thingspeak Private View. Aty mund të shihni të dhënat për Numrin e Paketës, Temperaturën, Lagështinë dhe Portën ngarkohen pas intervalit prej 15 sekondash.
Hapi 9: Referencat
1.
2.
Recommended:
Puna me URL API në Nyje-KUQ: 10 hapa
Puna me URL API në Node-RED: Ky udhëzues do t'ju mësojë se si të përdorni URL API (http get) në nyjen-RED. Intentionshtë qëllimisht e thjeshtë. Dhe nëse jeni relativisht i ri në nyjen-RED atëherë ky shembull është i duhuri për ju. Unë do t'ju mësoj se si të përdorni mjedisin nyje-KUQ dhe çfarë është, dhe h
Telekomandë universale e kontrolluar me gjeste me Nyje-MCU: 12 hapa
Telekomandë Universale e kontrolluar me gjeste me Node-MCU: Përshëndetje të gjithëve dhe mirë se vini në këtë projekt! Unë jam një person dembel dhe makthi i një personi dembel është të shikoj TV kur e kupton se telekomanda është shumë larg! Kuptova që telekomanda ime nuk do të jetë kurrë shumë larg nëse e kam në dorë në
Nyje-KUQ Me sensorin e dridhjeve dhe temperaturës me rreze të gjatë IoT: 34 hapa
Node-RED Me sensorin e dridhjeve dhe temperaturës së distancës së madhe IoT: Prezantimi i sensorit të lagështisë së temperaturës me rreze të gjatë të NCD, që mburret deri në një distancë prej 28 Mile duke përdorur një arkitekturë të rrjetit me rrjetë pa tel. Përfshirja e sensorit të lagështisë së temperaturës Honeywell HIH9130 transmeton temperaturë shumë të saktë një
Lagështira e Tokës Me Nyje: 7 Hapa
Moist Moist Me Nyje: Në këtë manual unë do t'ju tregoj se si të bëni një sensor të tokës të bërë për sistemin e shëndetit të kopshtit. Unë do t'ju tregoj atë që ju nevojitet, jepni disa shembuj të kodit dhe si të zbatoni kodin. Në fund të udhëzimeve ju do të dini se si të ndryshoni një shirit led
Sensori i temperaturës dhe lagështisë me valë IOT me rreze të gjatë me Nyje-Kuqe: 27 hapa
Sensori i temperaturës dhe lagështisë pa tel IOT me rreze të gjatë me Nyje-Kuqe: Prezantimi i sensorit me rreze të lagështisë me rreze të gjatë të NCD, i cili mburret deri në një distancë prej 28 Mile duke përdorur një arkitekturë të rrjetit me rrjetë pa tel. Përfshirja e sensorit të lagështisë Honeywell HIH9130 transmeton temperaturë shumë të saktë një