Satura rādītājs:
- 1. darbība. Nepieciešamās sastāvdaļas
- 2. darbība. Nepieciešamo bibliotēku instalēšana
- 3. darbība: ESP32 LoRa Thingspeak vārteja
- 4. solis: ESP32 LoRa sensora mezgls
- 5. darbība: iestatiet Thingspeak
- 6. darbība: vārtejas kods
- 7. darbība: sensora mezgla kods
- 8. darbība: pārraugiet datus vietnē Thingspeak Server
- 9. solis: atsauces
Video: ESP32 Lora Thingspeak vārteja ar sensora mezglu: 9 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Šajā IoT projektā es izstrādāju ESP32 LoRa vārteju un arī ESP32 LoRa sensora mezglu, lai bezvadu režīmā uzraudzītu sensora rādījumus no dažiem kilometriem. Sūtītājs nolasīs mitruma un temperatūras datus, izmantojot DHT11 sensoru. Pēc tam tas pārraida datus, izmantojot LoRa radio. Datus saņem uztvērēja modulis. Pēc tam uztvērējs pēc noteikta laika nosūtīs datus uz Thingspeak Server.
1. darbība. Nepieciešamās sastāvdaļas
1. ESP32 padome - 2
2. Lora modulis SX1278/SX1276
3. DHT11 mitruma temperatūras sensors
4. Maizes dēlis
5. Jumper vadu savienošana
2. darbība. Nepieciešamo bibliotēku instalēšana
Vispirms mums jāinstalē dažādas bibliotēkas:
1. DHT11 bibliotēka
2. LoRa bibliotēka
3. darbība: ESP32 LoRa Thingspeak vārteja
Tagad apskatīsim sūtītāja un uztvērēja ķēdi ESP32 LoRa vārtejas un sensora mezgla veidošanai. Es samontēju abas shēmas uz maizes dēļa. Ja vēlaties, varat to izgatavot uz PCB.
Šeit ir ESP32 LoRa moduļa SX1278 vārtejas shēma. Šī daļa darbojas kā uztvērējs. Dati par mitrumu un temperatūru tiek saņemti, izmantojot LoRa Radio un augšupielādēti Thingspeak serverī.
4. solis: ESP32 LoRa sensora mezgls
Šeit ir ESP32 LoRa sensora mezgla ķēde ar DHT11 sensoru. Šī daļa darbojas kā raidītājs. Mitruma un temperatūras datus nolasa DHT11 mitruma temperatūras sensors un pārsūta, izmantojot LoRa radio.
5. darbība: iestatiet Thingspeak
Lai uzraudzītu sensoru datus Thingspeak serverī, vispirms ir jāiestata Thingspeak. Lai iestatītu Thingspeak serveri, apmeklējiet vietni https://thingspeak.com/. Izveidojiet kontu vai vienkārši pierakstieties, ja kontu izveidojāt agrāk. Pēc tam izveidojiet jaunu kanālu ar šādu informāciju.
6. darbība: vārtejas kods
#iekļaut
// Bibliotēkas LoRa #include #include // definējiet LoRa raiduztvērēja moduļa izmantotās tapas #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Āzijai, 866E6 Eiropai, 915E6 Ziemeļamerikai // Aizstāt ar tīkla akreditācijas datiem String apiKey = "14K8UL2QEK8BTHN6"; // Ievadiet savu rakstīšanas API atslēgu no ThingSpeak const char *ssid = "Wifi SSID"; // aizstāt ar savu wifi ssid un wpa2 atslēgu const char *password = "Parole"; const char* serveris = "api.thingspeak.com"; WiFiClient klients; // Inicializēt mainīgos, lai iegūtu un saglabātu LoRa datus int rssi; String loRaMessage; Stīgu temperatūra; Stīgu mitrums; Stīgu lasīšanasID; // Vietturi aizstāj ar DHT vērtībām String procesors (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {atgriešanās temperatūra; } cits if (var == "HUMIDITY") {atgriešanās mitrums; } else if (var == "RRSI") {return String (rssi); } atgriešanās virkne (); } void setup () {Serial.begin (115200); int skaitītājs; // LoRa raiduztvērēja moduļa iestatīšana LoRa.setPins (ss, rst, dio0); // iestatīt LoRa raiduztvērēja moduli while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); skaitītājs ++; kavēšanās (2000); } if (skaitītājs == 10) {// Lasījuma ID palielināšana katrā jaunā lasījumā Serial.println ("LoRa palaišana neizdevās!"); } Serial.println ("LoRa inicializācija OK!"); kavēšanās (2000); // Savienojuma izveide ar Wi-Fi tīklu ar SSID un paroli Serial.print ("Connecting to"); Serial.println (ssid); WiFi.begin (ssid, parole); while (WiFi.status ()! = WL_CONNECTED) {kavēšanās (2000); Sērijas nospiedums ("."); } // Izdrukājiet vietējo IP adresi un palaidiet tīmekļa serveri Serial.println (""); Serial.println ("savienots WiFi"); Serial.println ("IP adrese:"); Serial.println (WiFi.localIP ()); } // Izlasiet LoRa paketi un iegūstiet sensora rādījumus void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print ("Lora pakete saņemta:"); while (LoRa.available ()) // Lasīt paketi {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); lasīšanasID = LoRaData.substring (0, pos1); // Iegūt lasīšanas ID temperatūru = LoRaData.substring (pos1 +1, pos2); // Iegūt temperatūras mitrumu = LoRaData.substring (pos2+1, LoRaData.length ()); // Iegūt mitrumu} rssi = LoRa.packetRssi (); // Iegūt RSSI Serial.print ("ar RSSI"); Serial.println (rssi); } if (client.connect (server, 80)) // "184.106.153.149" vai api.thingspeak.com {String postStr = apiKey; postStr += "& lauks1 ="; postStr += String (lasīšanas ID); postStr += "& lauks2 ="; postStr += String (temperatūra); postStr += "& lauks3 ="; postStr += String (mitrums); postStr += "& field4 ="; postStr += String (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /atjaunināt HTTP /1.1 / n"); client.print ("Saimnieks: api.thingspeak.com / n"); client.print ("Savienojums: aizvērt / 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); } // kavēšanās (30000); }
7. darbība: sensora mezgla kods
#iekļaut
#iekļaut // Bibliotēkas LoRa #iekļaut "DHT.h" #define DHTPIN 4 // pin, kur dht11 ir savienots DHT dht (DHTPIN, DHT11); // definēt LoRa raiduztvērēja moduļa izmantotās tapas #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Āzijai, 866E6 Eiropai, 915E6 Ziemeļamerikai // pakešu skaitītājs int readingID = 0; int skaitītājs = 0; String LoRaMessage = ""; pludiņa temperatūra = 0; pludiņa mitrums = 0; // Inicializēt LoRa moduli void startLoRA () {LoRa.setPins (ss, rst, dio0); // iestatīt LoRa raiduztvērēja moduli while (! LoRa.begin (BAND) && counter <10) {Serial.print ("."); skaitītājs ++; kavēšanās (500); } if (skaitītājs == 10) {// Palieliniet lasīšanas ID katru jaunu lasīšanas rādījumu ID ++; Serial.println ("LoRa palaišana neizdevās!"); } Serial.println ("LoRa inicializācija OK!"); kavēšanās (2000); } void startDHT () {if (isnan (mitrums) || isnan (temperatūra)) {Serial.println ("Neizdevās nolasīt no DHT sensora!"); atgriešanās; }} void getReadings () {mitrums = dht.readHumidity (); temperatūra = dht.readTemperature (); Sērijas nospiedums (F ("Mitrums:")); Sērijas nospiedums (mitrums); Sērijas nospiedums (F ("% temperatūra:")); Sērijas nospiedums (temperatūra); Sērijas.println (F ("° C")); } void sendReadings () {LoRaMessage = String (readingID) + "/" + String (temperatūra) + "&" + String (mitrums); // Sūtīt LoRa paketi uztvērējam LoRa.beginPacket (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print ("Sūtīšanas pakete:"); Serial.println (lasīšanas ID); lasīšanasID ++; Serial.println (LoRaMessage); } void setup () {// inicializēt Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); kavēšanās (500); }
8. darbība: pārraugiet datus vietnē Thingspeak Server
Kad kods ir augšupielādēts, varat atvērt sērijas monitoru gan vārtejas, gan sensora mezgla ķēdē. Jūs nosūtīsit un saņemsit datus, ja kods ir pareizs. Tagad jūs varat apmeklēt Thingspeak Private View. Tur jūs varat redzēt datus par pakešu skaitu, temperatūru, mitrumu un vārteju, kas tiek augšupielādēti pēc 15 sekunžu intervāla.
9. solis: atsauces
1.
2.
Ieteicams:
MuMo - LoRa vārteja: 25 soļi (ar attēliem)
MuMo-LoRa vārteja: ### UPDATE 10-03-2021 // jaunākā informācija/atjauninājumi būs pieejami github lapā: https: //github.com/MoMu-Antwerp/MuMo Kas ir MuMo? MuMo ir sadarbība starp produktu izstrāde (Antverpenes Universitātes nodaļa), kas atrodas
IoT: Gaismas sensora datu vizualizēšana, izmantojot mezglu-RED: 7 soļi
IoT: Gaismas sensora datu vizualizēšana, izmantojot mezglu-RED: Šajā pamācībā jūs uzzināsit, kā izveidot ar internetu savienotu sensoru! Šai demonstrācijai es izmantošu apkārtējās gaismas sensoru (TI OPT3001), taču derētu jebkurš jūsu izvēlētais sensors (temperatūra, mitrums, potenciometrs utt.). Sensora vērtības
Lora vārteja, kuras pamatā ir MicroPython ESP32: 10 soļi (ar attēliem)
Lora vārteja, pamatojoties uz MicroPython ESP32: Lora pēdējos gados ir bijusi ļoti populāra. Bezvadu sakaru modulis, kas izmanto šo tehnoloģiju, parasti ir lēts (izmantojot brīvu spektru), mazs izmērs, energoefektīvs un ar lielu sakaru attālumu, un to galvenokārt izmanto savstarpējai saziņai
Bezvadu vibrācijas un temperatūras sensora dati uz MySQL, izmantojot mezglu RED: 40 soļi
Bezvadu vibrācijas un temperatūras sensora dati MySQL, izmantojot Node-RED: Iepazīstinām ar NCD liela attāluma IoT rūpniecisko bezvadu vibrācijas un temperatūras sensoru, kas var lepoties līdz 2 jūdžu attālumam, izmantojot bezvadu tīkla tīkla struktūru. Ietverot precīzu 16 bitu vibrācijas un temperatūras sensoru, šī ierīce ir
Bezvadu vibrācijas un temperatūras sensora datu nosūtīšana uz Excel, izmantojot mezglu RED: 25 soļi
Bezvadu vibrācijas un temperatūras sensora datu nosūtīšana uz Excel, izmantojot Node-RED: Iepazīstinām ar NCD liela diapazona IoT rūpniecisko bezvadu vibrācijas un temperatūras sensoru, kas līdz pat 2 jūdžu diapazonam var izmantot bezvadu tīkla tīkla struktūru. Ietverot precīzu 16 bitu vibrācijas un temperatūras sensoru, šī ierīce ir