
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

ESP32 ևESP 8266- ը շատ ծանոթ SoC են IoT ոլորտում: Սրանք մի տեսակ բարիք են IoT նախագծերի համար: ESP 32 -ը սարք է `ինտեգրված WiFi- ով և BLE- ով: Պարզապես տվեք ձեր SSID- ի, գաղտնաբառի և IP- ի կազմաձևերը և իրերը միացրեք ամպի մեջ: Այստեղ, այս ուսանելի հատվածում, մենք կմտածենք IoT- ի որոշ հիմնական պայմանների մասին, ինչպիսիք են IoT հարթակը, MQTT, գերված պորտալները և այլն: Այսպիսով, եկեք անցնենք դրա միջով
- IoT Architecture- ը շատ պարզ բառերով բաղկացած է ներդրված սարքից և IoT հարթակից `սարքը ամպի մեջ դնելու համար: Այստեղ մենք օգտագործում ենք UbiDots IoT հարթակը ՝ սենսորային տվյալները պատկերացնելու համար:
- IP կարգավորումների և օգտագործողի հավատարմագրերի կառավարումը կարող է գլխացավանք լինել օգտվողի համար: Ի՞նչ անել, եթե Օգտատերը ցանկանում է փոխել WiFi- ի հավատարմագրերը: Ի՞նչ անել, եթե օգտագործողը ցանկանում է փոխել DHCP/Ստատիկ IP կարգավորումները: ESP32- ը ամեն անգամ թարթելը հուսալի չէ և նույնիսկ այդ խնդիրների լուծումը չէ: Այսպիսով, մենք կանցնենք գերության պորտալի միջոցով ՝ WiFi հավատարմագրերը և այլ կազմաձևերը պահպանելու համար:
- MQTT- ն այժմ դառնում է շատ տարածված տերմին IoT աշխարհում: այն գերազանցել է Հրապարակման և բաժանորդագրվելու խնդրանքը և պատասխանները (HTTP) արագ, ամուր և նիհար ճարտարապետության պատճառով:
Ահա այս ուսանելի, մենք ցույց ենք տալու:
- WiFi- ի և MQTT հավատարմագրերի տրամադրում ՝ գերված պորտալի միջոցով:
- UbiDots- ի բազմաթիվ տվիչների տվյալների հրապարակում և բաժանորդագրում:
- Անլար ջերմաստիճանի և խոնավության սենսորների տվիչների ընթերցում:
- ESP32- ից վեբ ձևի ընդունում:
- SPIFFS ESP32- ից կարդալ և գրել:
Քայլ 1: Սարքավորման և ծրագրակազմի բնութագրում

- ESP32 WiFi/BLE
- Անլար ջերմաստիճանի և խոնավության ցուցիչ
Softwareրագրաշարի բնութագրում
Arduino IDE
Քայլ 2. Ստեղծեք գերված պորտալ



Գերի ընկած պորտալը վեբ էջ է, որը ցուցադրվում է նոր կապակցված օգտվողներին, նախքան ցանցային ռեսուրսներին ավելի լայն հասանելիություն տրամադրելը: Այստեղ մենք ծառայում ենք երեք վեբ էջ ՝ DHCP- ի և Ստատիկ IP կարգավորումների միջև ընտրություն կատարելու համար: մենք կարող ենք ESP- ի IP հասցեն սահմանել երկու եղանակով.
- DHCP IP հասցե- դա սարքին IP հասցեն դինամիկ կերպով նշանակելու միջոց է: ESP- ի կանխադրված IP հասցեն 192.168.4.1 է
- Ստատիկ IP հասցե- մշտական IP հասցե նշանակելը մեր ցանցային սարքին: սարքին ստատիկ IP տրամադրելու համար մենք պետք է սահմանենք IP հասցեն, դարպասի հասցեն և ենթացանցի դիմակը:
Առաջին վեբ էջը տեղակայված է 192.168.1.77 հասցեում: Այստեղ Օգտատիրոջը տրամադրվում են ռադիո կոճակներ ՝ DHCP և Ստատիկ IP կարգավորումների միջև ընտրություն կատարելու համար: Հաջորդ վեբ էջում մենք պետք է տրամադրենք IP- ի հետ կապված տեղեկատվությունը ՝ հետագա հետագա ընթացքի համար:
HTML կոդ
Վեբ էջերի HTML կոդը կարելի է գտնել այս Github պահոցում: HTML վեբ էջեր պատրաստելու համար կարող եք օգտագործել ցանկացած IDE կամ տեքստային խմբագիր, ինչպիսիք են Sublime կամ notepad ++:
- Նախ ստեղծեք HTML վեբ էջ, որը պարունակում է երկու ռադիո կոճակ ՝ DHCP- ի և Ստատիկ IP կարգավորումների միջև ընտրություն կատարելու համար:
- Այժմ ստեղծեք ձեր պատասխանը ներկայացնելու կոճակը
- Որոշ անուն տվեք ռադիո կոճակներին:
- ESP վեբ սերվերի դասը կընդունի այս անունները որպես փաստարկներ և կստանա ռադիո կոճակների պատասխանը `օգտագործելով այս փաստարկները
- Այժմ տեղադրեք «ՈUBԱՐԿԵԼ» կոճակը ՝ պատասխանը սարքին ուղարկելու համար: Մյուս վեբ էջերում մենք ունենք տեքստային տուփեր:
- Տեքստային տուփին տվեք անվան արժեքը և Մուտքի տեսակը և «Ներկայացնել» պատասխանին ներկայացնելու կոճակ ավելացրեք:
- Ստեղծեք «RESET» կոճակը ՝ տեքստային դաշտի բովանդակությունը վերականգնելու համար:
Քայլ 3. WiFi և UbiDots հավատարմագրերի տրամադրում

Հիմնական խնդիրը հայտնվում է WiFi հավատարմագրերը կառավարելիս: Չնայած դրա համար մենք ունենք WiFiMulti գրադարան, որտեղ մենք կարող ենք սարքին տալ բազմաթիվ SSID և գաղտնաբառեր, և սարքը միանա հասանելի ցանցին: Բայց ինչ կլինի, եթե առկա ցանցը WiFiMulti ցուցակում չէ: ESP32 սարքը անընդհատ թարթելը հուսալի լուծում չէ:
Այս խնդիրը լուծելու համար մենք հյուրընկալում ենք մի վեբ էջ, որտեղ օգտվողը կարող է ներկայացնել առկա ցանցի SSID- ը և գաղտնաբառը: Այն աշխատում է հետեւյալ կերպ.
- Վեբ էջը տեղակայված է ստատիկ IP- ով կամ DHCP IP- ով, ինչպես ընտրված է օգտվողի կողմից գերված պորտալից
- Այս վեբ էջը պարունակում է տեքստային դաշտեր ՝ SSID, գաղտնաբառ և UBIDOTS նշան ID մուտքագրելու համար ՝ սարքը UbiDots- ին միացնելու համար:
- Մուտքագրման դաշտերում մուտքագրեք ձեր տեղական WiFi- ի SSID- ը և գաղտնաբառը, մուտքագրեք UbiDot- ի նշանի ID- ն և մուտքագրեք SUBMIT
- Այս հավատարմագրերը պահվում են ESP32- ի EEPROM- ում
- 60 վայրկյան անց Սարքն ինքնաբերաբար կհեռացվի AP- ից
- Հաջորդ անգամ, երբ սարքը միացնեք, օգտագործողը չպետք է հետևի այս ընթացակարգին: Սարքն ինքնաբերաբար կվերցնի օգտվողի հավատարմագրերը EEPROM- ից և կշարունակի հրապարակել սենսորների ընթերցումները UbiDots- ում:
Քայլ 4. Հրատարակեք սենսորային ընթերցումներ UbiDots- ին
Այստեղ մենք օգտագործում ենք անլար ջերմաստիճանի և խոնավության տվիչներ ESP 32 սարքով `ջերմաստիճանի և խոնավության տվյալները ստանալու համար: Մենք տվյալները ուղարկում ենք UbiDots ՝ օգտագործելով MQTT արձանագրությունը: MQTT- ն հետևում է հրապարակման և բաժանորդագրման մեխանիզմին, այլ ոչ թե այդ խնդրանքին և պատասխանին: Այն ավելի արագ և հուսալի է, քան HTTP- ը: Սա աշխատում է հետևյալ կերպ.
- Մենք օգտագործում ենք Task Scheduler- ը ՝ առաջադրանքը պլանավորելու համար, ինչպիսիք են տվիչներից տվյալների բերումը, սենսորների ընթերցումների հրատարակումը, MQTT թեմային բաժանորդագրվելը:
- Նախ, ներառեք Task Scheduler- ի վերնագրի ֆայլերը, դա օրինակ է և ժամանակացույց է ներկայացնում առաջադրանքներին:
- Մենք նախատեսել ենք երկու առաջադրանք, որոնք վերաբերում են երկու տարբեր վերահսկողության գործողություններին:
#սահմանել_ԱՌԱՎՈՐՈԹՅՈՆ_ՏԱՅՈOUԹՅՈՆ#ներառել
Ժամանակացույց ts;
// --------- Առաջադրանքներ ------------ // Առաջադրանք tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Առաջադրանք tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
Առաջադրանք 1 -ը սենսորի արժեքի ընթերցման համար է: Այս առաջադրանքը կատարվում է 1 վայրկյան, մինչև այն հասնում է 10 վրկ:
-
Երբ Task1- ը լրանում է իր ժամանակը, մենք միանում ենք տեղական Wifi և MQTT բրոքերին:
- Այժմ Առաջադրանք 2 -ը միացված է, և մենք անջատում ենք Առաջադրանք 1 -ը
- Առաջադրանք 2 -ը սենսորային տվյալները UbiDots MQTT բրոքերին հրապարակելու համար է: Այս առաջադրանքը տևում է 20 վայրկյան, մինչև այն հասնի մինչև 20 վրկ:
- Երբ Task2- ը հասնում է իր ժամկետի ավարտին, Առաջադրանք 1 -ը կրկին միացված է, և Task2- ը անջատված է: Այստեղ կրկին մենք ստանում ենք թարմացված արժեքը, և գործընթացը շարունակվում է:
I2C սենսորային տվյալների ընթերցում
Մենք ստանում ենք 29 բայթ շրջանակ անլար ջերմաստիճանի և խոնավության տվիչներից: Այս շրջանակը շահարկված է իրական ջերմաստիճանի և խոնավության տվյալներ ստանալու համար:
uint8_t տվյալներ [29];
տվյալներ [0] = Serial1.read (); ուշացում (k); // ստուգել սկզբնական բայթ if (տվյալները [0] == 0x7E) {while (! Serial1.available ()); համար (i = 1; i <29; i ++) {data = Serial1.read (); ուշացում (1); } if (տվյալներ [15] == 0x7F) /////// ստուգելու համար, թե արդյոք ստացվող տվյալները ճիշտ են {if (տվյալները [22] == 1) //////// համոզվեք, որ սենսորի տեսակը ճիշտ է {
խոնավություն = ((((տվյալներ [24]) * 256) + տվյալներ [25]) /100.0); խոնավություն /=10.0; cTempint = ((((uint16_t) (տվյալներ [26]) << 8) | տվյալներ [27]); cTemp = (բոց) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; մարտկոց = պատահական (100, 327); լարման = մարտկոց/100; nodeId = տվյալներ [16];}
Միացում UbiDots MQTT API- ին
Ներառեք MQTT գործընթացի վերնագրի ֆայլը:
#ներառում
սահմանել այլ փոփոխականներ MQTT- ի համար, ինչպիսիք են հաճախորդի անունը, միջնորդի հասցեն, նշանի ID (մենք վերցնում ենք նշանի ID- ն EEPROM- ից)
#սահմանեք MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
char բեռնվածություն [100]; char թեմա [150];
// ստեղծել փոփոխական ՝ նշան ID- ն պահելու համար
Լարային նշան ID;
Ստեղծեք փոփոխականներ ՝ տարբեր սենսորային տվյալներ պահելու համար և ստեղծեք char փոփոխական ՝ թեման պահելու համար
#սահմանել VARIABLE_LABEL_TEMPF "tempF" // Հաշվի առնելով փոփոխական պիտակը #define VARIABLE_LABEL_TEMPC "tempC" // Assab the variable label #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid label" // Assing
char թեմա 1 [100]; char թեմա 2 [100]; char թեմա 3 [100];
հրապարակել տվյալ MQTT թեմայի տվյալները, բեռնվածությունը նման կլինի {"tempc": {value: "tempData"}}
sprintf (թեմա 1, "%s", ""); sprintf (թեմա 1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (բեռնվածություն, "%s", ""); // Մաքրում է բեռնվածքի սպրինտֆը (բեռնվածություն, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Ավելացնում է sprintf արժեքը (բեռնվածություն, "%s {" արժեք / ":%s}", բեռնվածություն, str_cTemp); // Ավելացնում է sprintf արժեքը (բեռնվածություն, «%s}», բեռնվածություն); // Փակում է Serial.println բառարանի փակագծերը (բեռնվածություն); Serial.println (client.publish (topic1, payload)? "Published": "notpublished");
// Նույնը արեք նաև այլ թեմայի համար
client.publish () տվյալները հրապարակում է UbiDots- ում:
Քայլ 5: Տվյալների պատկերացում



- Գնացեք Ubidots և մուտք գործեք ձեր հաշիվ:
- Գնացեք Գործիքային վահանակ ՝ վերևում նշված Տվյալների ներդիրից:
- Այժմ կտտացրեք «+» պատկերակին ՝ նոր վիջեթներ ավելացնելու համար:
- Selectանկից ընտրեք վիջեթ և ավելացրեք փոփոխական և սարքեր:
- Սենսորների տվյալները կարող են արտացոլվել վահանակի վրա ՝ օգտագործելով տարբեր վիջեթներ:
Քայլ 6: Ընդհանուր ծածկագիր
HTML- ի և ESP32- ի Over կոդը կարելի է գտնել այս GitHub շտեմարանում:
Վարկեր
- ncd ESP32 բեկման տախտակ:
- ncd Անլար ջերմաստիճանի և խոնավության տվիչներ:
- pubsubclient
- UbiDots
- Առաջադրանքների ժամանակացույց
Խորհուրդ ենք տալիս:
Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով: - DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. 5 քայլ

Ինչպես կատարել խոնավության և ջերմաստիճանի իրական ժամանակի տվյալների գրանցիչ Arduino UNO- ի և SD- քարտի միջոցով DHT11 Տվյալների գրանցման մոդելավորում Proteus- ում. Ներածություն. Բարև, սա Liono Maker- ն է, ահա YouTube- ի հղումը: Մենք ստեղծում ենք ստեղծագործական նախագիծ Arduino- ի հետ և աշխատում ներկառուցված համակարգերի վրա: Data-Logger: Տվյալների գրանցիչ (նաև տվյալների գրանցիչ կամ տվյալների գրանցիչ) էլեկտրոնային սարք է, որը ժամանակի ընթացքում գրանցում է տվյալները
TinkerCAD Ուլտրաձայնային հեռավորության սենսորային միացում (համակարգչային Eng վերջնական) ՝ 4 քայլ

TinkerCAD ուլտրաձայնային հեռավորության տվիչների միացում (համակարգչային Eng վերջնական). Մենք կստեղծենք ևս մեկ զվարճալի tinkerCAD միացում, որը կարանտինի ընթացքում կկատարենք: Այսօր հետաքրքիր բաղադրիչի հավելում կա, կարո՞ղ եք գուշակել: Դե, մենք պատրաստվում ենք օգտագործել ուլտրաձայնային հեռավորության սենսոր: Ավելին, մենք պատրաստվում ենք ծածկագրել 3 LED- ի համար
Infineon DPS422 տվիչին միացում Infineon XMC4700- ի հետ և տվյալների փոխանցում NodeMCU- ին. 13 քայլ

Interfacing Infineon DPS422 տվիչ Infineon XMC4700- ով և տվյալների ուղարկումը NodeMCU- ին: Այս ձեռնարկում մենք կսովորենք, թե ինչպես օգտագործել DPS422- ը ջերմաստիճանի և բարոմետրիկ ճնշման չափման համար XMC4700- ով: DPS422 սպառումը:
Տվյալների ձեռքբերման և տվյալների տեսողականացման համակարգ MotoStudent Electric Racing Bike– ի համար ՝ 23 քայլ

Տվյալների ձեռքբերման և տվյալների տեսողականացման համակարգ MotoStudent Electric Racing Bike- ի համար. Տվյալների ձեռքբերման համակարգն ապարատային և ծրագրային ապահովման հավաքածու է, որը աշխատում է միասին ՝ արտաքին սենսորներից տվյալներ հավաքելու, դրանք պահելու և հետագայում մշակելու համար, որպեսզի դրանք գրաֆիկականորեն պատկերացվեն և վերլուծվեն, թույլ տալով ինժեներներին կատարել
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: 3 քայլ
![Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: 3 քայլ Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: 3 քայլ](https://i.howwhatproduce.com/images/005/image-12970-16-j.webp)
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Բազմաթիվ սենսորային տվյալներ: Բարև, ես տեսա, որ տեղեկատվության բացակայություն կա, թե ինչպես է Arduino Uno- ի կողմից բազմաթիվ սենսորային տվյալներ տեղադրվում SIM900 մոդուլով: Այսպիսով, ես կարճ հրահանգ տվեցի Arduino UNO- ի միացման և կազմաձևման SIM900 և DHT22 սենսորով: Տվյալներ DHT22- ից (բնավորություն