
Turinys:
- 1 žingsnis: reikalingi komponentai
- 2 veiksmas: reikiamų bibliotekų diegimas
- 3 žingsnis: ESP32 „LoRa Thingspeak Gateway“
- 4 žingsnis: ESP32 „LoRa“jutiklio mazgas
- 5 veiksmas: „Thingspeak“nustatymas
- 6 žingsnis: Vartų kodas
- 7 žingsnis: jutiklio mazgo kodas
- 8 veiksmas: stebėkite „Thingspeak“serverio duomenis
- 9 žingsnis: nuorodos
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59

Šiame „IoT“projekte aš sukūriau „ESP32 LoRa Gateway“ir „ESP32 LoRa Sensor Node“, kad belaidžiu būdu stebėtų jutiklio rodmenis iš kelių kilometrų atstumo. Siuntėjas nuskaitys drėgmės ir temperatūros duomenis naudodamas DHT11 jutiklį. Tada jis perduoda duomenis per „LoRa Radio“. Duomenis priima imtuvo modulis. Imtuvas po tam tikro laiko atsiųs duomenis į „Thingspeak Server“.
1 žingsnis: reikalingi komponentai
1. ESP32 lenta - 2
2. Lora modulis SX1278/SX1276
3. DHT11 drėgmės temperatūros jutiklis
4. Duonos lenta
5. Jungiamųjų laidų prijungimas
2 veiksmas: reikiamų bibliotekų diegimas
Pirmiausia turime įdiegti skirtingas bibliotekas:
1. DHT11 biblioteka
2. LoRa biblioteka
3 žingsnis: ESP32 „LoRa Thingspeak Gateway“


Dabar pažiūrėkime siuntėjo ir gavėjo grandinę ESP32 „LoRa Gateway & Sensor Node“kūrimui. Aš sumontavau abi grandines ant duonos lentos. Jei norite, galite tai padaryti ant PCB.
Čia yra ESP32 „LoRa“modulio SX1278 šliuzo grandinė. Ši dalis veikia kaip imtuvas. Duomenys apie drėgmę ir temperatūrą gaunami naudojant „LoRa Radio“ir įkeliami į „Thingspeak Server“.
4 žingsnis: ESP32 „LoRa“jutiklio mazgas


Čia yra ESP32 „LoRa“jutiklio mazgo grandinė su DHT11 jutikliu. Ši dalis veikia kaip siųstuvas. Drėgmės ir temperatūros duomenys nuskaitomi DHT11 drėgmės temperatūros jutikliu ir perduodami naudojant „LoRa“radiją.
5 veiksmas: „Thingspeak“nustatymas

Norėdami stebėti jutiklių duomenis „Thingspeak“serveryje, pirmiausia turite nustatyti „Thingspeak“. Norėdami nustatyti „Thingspeak“serverį, apsilankykite https://thingspeak.com/. Sukurkite paskyrą arba tiesiog prisijunkite, jei paskyrą sukūrėte anksčiau. Tada sukurkite naują kanalą su šiomis detalėmis.
6 žingsnis: Vartų kodas
#įtraukti
// „LoRa“bibliotekos #include #include // apibrėžkite „LoRa“siųstuvo -imtuvo modulio naudojamus kaiščius #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Azijai, 866E6 Europai, 915E6 Šiaurės Amerikai // Pakeisti tinklo kredencialais String apiKey = "14K8UL2QEK8BTHN6"; // Įveskite savo „Write API“raktą iš „ThingSpeak“const char *ssid = "Wifi SSID"; // pakeisti savo wifi ssid ir wpa2 raktu const char *password = "Slaptažodis"; const char* serveris = "api.thingspeak.com"; „WiFiClient“klientas; // Inicijuokite kintamuosius, kad gautumėte ir išsaugotumėte LoRa duomenis int rssi; Styga loRaMessage; Styginių temperatūra; Styginių drėgmė; Eilutės skaitymo ID; // Pakeičia vietos rezervavimo ženklą DHT reikšmėmis Styginių procesorius (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {grįžimo temperatūra; } else if (var == "HUMIDITY") {grąžinama drėgmė; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int skaitiklis; // sąranka LoRa siųstuvo -imtuvo modulis LoRa.setPins (ss, rst, dio0); // nustatyti LoRa siųstuvo -imtuvo modulį while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); skaitiklis ++; vėlavimas (2000 m.); } if (skaitiklis == 10) {// Skaitymo ID didinimas kiekvienam naujam skaitymui Serial.println ("LoRa paleidimas nepavyko!"); } Serial.println ("LoRa inicijavimas gerai!"); vėlavimas (2000 m.); // Prisijunkite prie „Wi-Fi“tinklo naudodami SSID ir slaptažodį Serial.print („Prisijungimas prie“); Serial.println (ssid); WiFi.begin (ssid, slaptažodis); while (WiFi.status ()! = WL_CONNECTED) {delay (2000); Serijinis atspaudas ("."); } // Atspausdinkite vietinį IP adresą ir paleiskite žiniatinklio serverį Serial.println (""); Serial.println („Wi -Fi prijungtas“); Serial.println ("IP adresas:"); Serial.println (WiFi.localIP ()); } // Perskaitykite „LoRa“paketą ir gaukite jutiklio rodmenų void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora paketas gautas:"); while (LoRa.available ()) // Skaityti paketą {String LoRaData = LoRa.readString (); Serial.print („LoRaData“); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readingID = LoRaData.substring (0, poz1); // Gauti skaitymo ID temperatūra = LoRaData.substring (poz1 +1, pos2); // Gauti temperatūros drėgmę = LoRaData.substring (pos2+1, LoRaData.length ()); // Gauti drėgmę} rssi = LoRa.packetRssi (); // Gauti RSSI Serial.print ("su RSSI"); Serial.println (rssi); } if (client.connect (serveris, 80)) // "184.106.153.149" arba api.thingspeak.com {String postStr = apiKey; postStr += "& field1 ="; postStr += Styga (skaitymo ID); postStr += "& field2 ="; postStr += Styga (temperatūra); postStr += "& field3 ="; postStr += Styga (drėgmė); postStr += "& field4 ="; postStr += Styga (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /atnaujinti HTTP /1.1 / n"); client.print ("Priegloba: api.thingspeak.com / n"); client.print ("Ryšys: uždaryti / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Turinio tipas: application/x-www-form-urlencoded / n"); client.print ("Turinio ilgis:"); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // uždelsimas (30000); }
7 žingsnis: jutiklio mazgo kodas
#įtraukti
#include // „LoRa“bibliotekos #include "DHT.h" #define DHTPIN 4 // pin, kur dht11 prijungtas DHT dht (DHTPIN, DHT11); // apibrėžti „LoRa“siųstuvo -imtuvo modulio naudojamus kaiščius #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Azijai, 866E6 Europai, 915E6 Šiaurės Amerikai // paketų skaitiklis int readingID = 0; int skaitiklis = 0; Styga LoRaMessage = ""; plūdės temperatūra = 0; plūdės drėgmė = 0; // Inicijuoti LoRa modulį void startLoRA () {LoRa.setPins (ss, rst, dio0); // nustatyti LoRa siųstuvo -imtuvo modulį while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); skaitiklis ++; vėlavimas (500); } if (skaitiklis == 10) {// Padidinkite skaitymo ID kiekvieną naują skaitymo ID ++; Serial.println ("Nepavyko paleisti LoRa!"); } Serial.println ("LoRa inicijavimas gerai!"); vėlavimas (2000 m.); } void startDHT () {if (isnan (drėgmė) || isnan (temperatūra)) {Serial.println ("Nepavyko nuskaityti iš DHT jutiklio!"); grįžti; }} void getReadings () {drėgmė = dht.readHumidity (); temperatūra = dht.readTemperature (); Serijinis atspaudas (F („Drėgmė:“)); Serijinis atspaudas (drėgmė); Serijinis atspaudas (F ("% temperatūra:")); Serijinis atspaudas (temperatūra); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = Styga (skaitymo ID) + "/" + Eilutė (temperatūra) + "&" + Eilutė (drėgmė); // Siųsti LoRa paketą imtuvui LoRa.beginPacket (); „LoRa.print“(„LoRaMessage“); LoRa.endPacket (); Serial.print ("Siuntimo paketas:"); Serial.println (readingID); skaitymo ID ++; Serial.println („LoRaMessage“); } void setup () {// inicijuoti Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); vėlavimas (500); }
8 veiksmas: stebėkite „Thingspeak“serverio duomenis


Įkėlę kodą, serijinį monitorių galite atidaryti tiek šliuzo, tiek jutiklio mazgo grandinėje. Siųsite ir gausite duomenis, jei kodas teisingas. Dabar galite apsilankyti „Thingspeak Private View“. Ten po 15 sekundžių įkeliami paketų skaičiaus, temperatūros, drėgmės ir vartų duomenys.
9 žingsnis: nuorodos
1.
2.
Rekomenduojamas:
IOT pradedantiesiems-su mazgu Mcu: 7 žingsniai

IOT pradedantiesiems-su mazgu Mcu: Sveiki, aš, Samartas šioje pamokoje, aš išmokysiu jus kurti savo IOT projektus naudojant „NODE MCU“„Wi-Fi“modulį ir „Blynk“programą
Dirvožemio drėkintuvas su mazgu: 7 žingsniai

Dirvožemio drėkintuvas su mazgu: Šiame vadove aš jums parodysiu, kaip pasidaryti naminį dirvožemio jutiklį sodo sveikatos sistemai. Aš jums parodysiu, ko jums reikia, pateiksiu keletą kodo pavyzdžių ir kaip įdiegti kodą. Instrukcijų pabaigoje jūs žinosite, kaip pakeisti LED juostą
UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: 7 žingsniai

UCL-IIOT-signalizacijos sistema su duomenų baze ir raudonu mazgu: šio komponavimo tikslas yra išmokyti prijungti „Arduino“prie raudonojo mazgo ir duomenų bazės, kad galėtumėte registruoti duomenis ir rinkti juos vėlesniam naudojimui. paprasta „arduino“signalizacijos sistema, išvedanti 5 duomenų numerius, kiekvieną atskiriant
IOT ilgo nuotolio belaidis temperatūros ir drėgmės jutiklis su raudonu mazgu: 27 žingsniai

IOT ilgo nuotolio belaidis temperatūros ir drėgmės jutiklis su raudonu mazgu: pristatomas NCD ilgo nuotolio belaidis temperatūros ir drėgmės jutiklis, galintis pasigirti iki 28 mylių atstumu, naudojant belaidžio tinklo tinklo architektūrą. Sudėtyje esantis Honeywell HIH9130 temperatūros ir drėgmės jutiklis perduoda labai tikslią temperatūrą ir
Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: 5 žingsniai

Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: Mūsų projekto tikslas yra pajusti judesį per PIR ir atstumo jutiklius. „Arduino“kodas skleis vaizdo ir garso signalą, kad vartotojui būtų pranešta, kad kažkas yra šalia. MATLAB kodas atsiųs el. Pašto signalą, kad įspėtų vartotoją, kad kažkas yra šalia. Šis įrenginys