Բովանդակություն:
- Քայլ 1: Պահանջվում են բաղադրիչներ
- Քայլ 2: Պահանջվող գրադարանների տեղադրում
- Քայլ 3. ESP32 LoRa Thingspeak Gateway
- Քայլ 4: ESP32 LoRa ցուցիչ հանգույց
- Քայլ 5: Thingspeak- ի կարգավորում
- Քայլ 6: Դարպասի ծածկագիր
- Քայլ 7: Սենսորային հանգույցի կոդ
- Քայլ 8: Վերահսկեք տվյալները Thingspeak սերվերի վրա
- Քայլ 9: Հղումներ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:46
այս IoT նախագծում ես նախագծեցի ESP32 LoRa Gateway և նաև ESP32 LoRa Sensor Node ՝ մի քանի կիլոմետր հեռավորությունից անլար ընթերցման տվիչը վերահսկելու համար: Ուղարկողը կկարդա խոնավության և ջերմաստիճանի տվյալները ՝ օգտագործելով DHT11 ցուցիչ: Այնուհետեւ այն փոխանցում է տվյալները LoRa ռադիոյի միջոցով: Տվյալները ստացվում են ստացողի մոդուլով: Ստացողն այնուհետև որոշակի ընդմիջումից հետո տվյալները կուղարկի Thingspeak սերվերին:
Քայլ 1: Պահանջվում են բաղադրիչներ
1. ESP32 խորհուրդ - 2
2. Lora մոդուլ SX1278/SX1276
3. DHT11 Խոնավության ջերմաստիճանի տվիչ
4. Հացաթուղթ
5. Jumper լարերի միացում
Քայլ 2: Պահանջվող գրադարանների տեղադրում
Նախ պետք է տեղադրել տարբեր գրադարաններ.
1. DHT11 գրադարան
2. LoRa գրադարան
Քայլ 3. ESP32 LoRa Thingspeak Gateway
Այժմ եկեք տեսնենք ESP32 LoRa Gateway & Sensor Node- ի կառուցման համար ուղարկողի և ստացողի սխեման: Ես երկուսն էլ հավաքեցի հացահատիկի վրա: Եթե ցանկանում եք, կարող եք այն պատրաստել PCB- ով:
Ահա ESP32 LoRa մոդուլ SX1278 Gateway Circuit: Այս մասը աշխատում է որպես ընդունիչ: Խոնավության և ջերմաստիճանի տվյալները ստացվում են LoRa ռադիոյի միջոցով և վերբեռնվում Thingspeak սերվերում:
Քայլ 4: ESP32 LoRa ցուցիչ հանգույց
Ահա ESP32 LoRa ցուցիչ հանգույցի միացում DHT11 տվիչով: Այս մասը աշխատում է որպես հաղորդիչ: Խոնավության և ջերմաստիճանի տվյալները կարդացվում են DHT11 Humidity Temperature Sensor- ով և փոխանցվում են LoRa ռադիոյի միջոցով:
Քայլ 5: Thingspeak- ի կարգավորում
Thingspeak սերվերի սենսորային տվյալները վերահսկելու համար նախ անհրաժեշտ է կարգավորել Thingspeak- ը: Thingspeak սերվերը կարգավորելու համար այցելեք https://thingspeak.com/: Ստեղծեք հաշիվ կամ պարզապես մուտք գործեք, եթե հաշիվը ստեղծել եք ավելի վաղ: Այնուհետև ստեղծեք նոր ալիք ՝ հետևյալ մանրամասներով:
Քայլ 6: Դարպասի ծածկագիր
#ներառում
// LoRa- ի գրադարաններ #ներառել #ներառել // սահմանել LoRa հաղորդիչ մոդուլի կողմից օգտագործվող կապերը #սահմանել ss 5 #սահմանել առաջին 14 #սահմանել dio0 2 #սահմանել BAND 433E6 // 433E6 Ասիայի համար, 866E6 Եվրոպայի համար, 915E6 Հյուսիսային Ամերիկայի համար // Փոխարինեք ձեր ցանցի հավատարմագրերով String apiKey = "14K8UL2QEK8BTHN6"; // Մուտքագրեք ձեր Գրելու API բանալին ThingSpeak const char *ssid = "Wifi SSID"; // փոխարինել ձեր wifi ssid և wpa2 բանալին const char *գաղտնաբառ = "Գաղտնաբառ"; const char* սերվեր = "api.thingspeak.com"; WiFiClient հաճախորդ; // Նախաստորագրեք փոփոխականները ՝ LoRa տվյալները int rssi ստանալու և պահպանելու համար; Լարային loRaMessage; Լարային ջերմաստիճան; Լարային խոնավություն; Լարային ընթերցում ID; // Տեղապահը փոխարինում է DHT արժեքներով Լարային պրոցեսոր (const String & var) {//Serial.println(var); if (var == "TEMPERATURE") {վերադարձի ջերմաստիճան; } else if (var == "HUMIDITY") {վերադարձնել խոնավությունը; } else if (var == "RRSI") {return String (rssi); } return String (); } void setup () {Serial.begin (115200); int հաշվիչ; // LoRa.setPins մոդուլի LoRa.setPins (ss, rst, dio0); // կարգավորել LoRa հաղորդիչ մոդուլը մինչ (! LoRa.begin (BAND) && հաշվիչ <10) {Serial.print ("."); հաշվիչ ++; ուշացում (2000); } if (counter == 10) {// ReadID- ի ավելացում յուրաքանչյուր նոր ընթերցման համար Serial.println ("LoRa- ի մեկնարկը ձախողվեց"); } Serial.println ("LoRa Initialization OK!"); ուշացում (2000); // Միացեք Wi-Fi ցանցին SSID- ով և Serial.print գաղտնաբառով («Միացում»); Serial.println (ssid); WiFi.begin (ssid, գաղտնաբառ); while (WiFi.status ()! = WL_CONNECTED) {հետաձգում (2000); Serial.print ("."); } // Տպել տեղական IP հասցեն և սկսել վեբ սերվեր Serial.println (""); Serial.println («WiFi- ն միացված է»); Serial.println ("IP հասցե` "); Serial.println (WiFi.localIP ()); } // Կարդացեք LoRa փաթեթը և ստացեք տվիչների ընթերցումները void loop () {int packetSize = LoRa.parsePacket (); if (packetSize) {Serial.print («Lora փաթեթը ստացվել է»); while (LoRa.available ()) // կարդալ փաթեթ {String LoRaData = LoRa.readString (); Serial.print (LoRaData); int pos1 = LoRaData.indexOf ('/'); int pos2 = LoRaData.indexOf ('&'); readID = LoRaData.substring (0, pos1); // Ստացեք readID ջերմաստիճան = LoRaData.substring (pos1 +1, pos2); // Ստացեք ջերմաստիճանի խոնավություն = LoRaData.substring (pos2+1, LoRaData.length ()); // Ստացեք խոնավություն} rssi = LoRa.packetRssi (); // Ստացեք RSSI Serial.print ("RSSI- ով"); Serial.println (rssi); } if (client.connect (սերվեր, 80)) // "184.106.153.149" կամ api.thingspeak.com {String postStr = apiKey; postStr += "& դաշտ 1 ="; postStr += Լար (ընթերցման ID); postStr += "& դաշտ 2 ="; postStr += լարային (ջերմաստիճան); postStr += "& field3 ="; postStr += լարային (խոնավություն); postStr += "& դաշտ 4 ="; postStr += Լար (rssi); postStr += "\ r / n / r / n / r / n / r / n"; client.print ("POST /update HTTP /1.1 / n"); client.print ("Հաղորդավար` api.thingspeak.com / n "); client.print ("Միացում. փակել / n"); client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n"); client.print ("Content-Type: application/x-www-form-urlencoded / n"); client.print ("Բովանդակություն-երկարություն."); client.print (postStr.length ()); client.print ("\ n / n"); client.print (postStr); } // ուշացում (30000); }
Քայլ 7: Սենսորային հանգույցի կոդ
#ներառում
#ներառել // LoRa- ի գրադարաններ #ներառել «DHT.h» #սահմանել DHTPIN 4 // քորոց, որտեղ dht11- ը միացված է DHT dht (DHTPIN, DHT11); // սահմանել LoRa հաղորդիչ մոդուլի կողմից օգտագործվող կապում #define ss 5 #define rst 14 #define dio0 2 #define BAND 433E6 // 433E6 Ասիայի համար, 866E6 Եվրոպայի համար, 915E6 Հյուսիսային Ամերիկայի համար // փաթեթային հաշվիչ int ընթերցում ID = 0; int հաշվիչ = 0; Լարային LoRaMessage = ""; բոց ջերմաստիճանը = 0; բոց խոնավություն = 0; // Նախաստորագրեք LoRa մոդուլը void startLoRA () {LoRa.setPins (ss, rst, dio0); // կարգավորել LoRa հաղորդիչ մոդուլը մինչ (! LoRa.begin (BAND) && հաշվիչ <10) {Serial.print ("."); հաշվիչ ++; ուշացում (500); } if (counter == 10) {// ReadID- ի ավելացում յուրաքանչյուր նոր ընթերցման համար ID ++; Serial.println («LoRa- ի մեկնարկը ձախողվեց»); } Serial.println ("LoRa Initialization OK!"); ուշացում (2000); } void startDHT () {if (isnan (խոնավություն) || isnan (ջերմաստիճան)) {Serial.println ("Չհաջողվեց կարդալ DHT սենսորից"); վերադարձ; }} void getReadings () {խոնավություն = dht.readHumidity (); ջերմաստիճան = dht.readTemperature (); Serial.print (F ("Խոնավություն")); Serial.print (խոնավություն); Serial.print (F ("% peratերմաստիճանը.")); Serial.print (ջերմաստիճան); Serial.println (F ("° C")); } void sendReadings () {LoRaMessage = Լար (ընթերցում ID) + "/" + Լար (ջերմաստիճան) + "&" + Լար (խոնավություն); // LoRa փաթեթն ուղարկեք LoRa.beginPacket ստացողին (); LoRa.print (LoRaMessage); LoRa.endPacket (); Serial.print («Փաթեթ ուղարկելը.»); Serial.println (readID); ընթերցում ID ++; Serial.println (LoRaMessage); } void setup () {// սկզբնականացնել Serial Monitor Serial.begin (115200); dht.begin (); startDHT (); startLoRA (); } void loop () {getReadings (); sendReadings (); ուշացում (500); }
Քայլ 8: Վերահսկեք տվյալները Thingspeak սերվերի վրա
Երբ ծածկագիրը վերբեռնվի, կարող եք բացել Սերիական մոնիտորը ինչպես Gateway & Sensor Node Circuit- ում: Դուք կուղարկեք և կստանաք տվյալներ, եթե ծածկագիրը ճիշտ է: Այժմ կարող եք այցելել Thingspeak Private View: Այնտեղ կարող եք տեսնել Փաթեթի համարի, ջերմաստիճանի, խոնավության և դարպասի տվյալները վերբեռնվում են 15 վայրկյան ընդմիջումից հետո:
Քայլ 9: Հղումներ
1.
2.
Խորհուրդ ենք տալիս:
Lora Gateway MicroPython ESP32- ի հիման վրա. 10 քայլ (նկարներով)
Lora Gateway, որը հիմնված է MicroPython ESP32- ի վրա. Lora- ն շատ տարածված է վերջին տարիներին: Այս տեխնոլոգիան օգտագործող անլար կապի մոդուլը սովորաբար էժան է (օգտագործելով ազատ սպեկտր), փոքր է, էներգաարդյունավետ և ունի հաղորդակցության երկար հեռավորություն, և հիմնականում օգտագործվում է փոխադարձ հաղորդակցության համար
Հողի խոնավեցում հանգույցով `7 քայլ
Հողի խոնավություն հանգույցով. Այս ձեռնարկում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել տնային հողի սենսոր այգեգործական համակարգի համար: Ես ձեզ ցույց կտամ, թե ինչ է ձեզ անհրաժեշտ, կներկայացնեմ մի քանի կոդերի օրինակներ և ինչպես պետք է իրականացվի ծածկագիրը: Հրահանգների վերջում դուք կիմանաք, թե ինչպես փոխել led ժապավենը
UbiDots- ESP32- ի միացում և բազմաթիվ սենսորային տվյալների հրապարակում. 6 քայլ
UbiDots- ESP32- ի միացում և բազմաթիվ սենսորների տվյալների հրատարակում. ESP32 և ESP 8266 շատ ծանոթ SoC են IoT ոլորտում: Սրանք մի տեսակ բարիք են IoT նախագծերի համար: ESP 32- ը ինտեգրված WiFi և BLE սարքով սարք է: Պարզապես տվեք ձեր SSID- ի, գաղտնաբառի և IP- ի կազմաձևերը և իրերը միացրեք
Վերահսկեք կենցաղային տեխնիկան LoRa- ի նկատմամբ - LoRa տան ավտոմատացման մեջ - LoRa հեռակառավարիչ ՝ 8 քայլ
Վերահսկեք կենցաղային տեխնիկան LoRa- ի նկատմամբ | LoRa տան ավտոմատացման մեջ | LoRa հեռակառավարում. Վերահսկեք և ավտոմատացրեք ձեր էլեկտրական սարքերը երկար հեռավորություններից (կիլոմետրեր) ՝ առանց ինտերնետի առկայության: Դա հնարավոր է LoRa- ի միջոցով: Այ, ինչ կա, տղերք: Akarsh այստեղ CETech- ից: Այս PCB- ն ունի նաև OLED էկրան և 3 ռելեներ, որոնք մի
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: 3 քայլ
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: Բարև, ես տեսա, որ տեղեկատվության բացակայություն կա, թե ինչպես է Arduino Uno- ի կողմից բազմաթիվ սենսորային տվյալներ տեղադրվում SIM900 մոդուլով: Այսպիսով, ես կարճ հրահանգ տվեցի Arduino UNO- ի միացման և կազմաձևման SIM900 և DHT22 սենսորով: Տվյալներ DHT22- ից (բնավորություն