Բովանդակություն:
- Քայլ 1: Սարքավորման և ծրագրակազմի բնութագրում
- Քայլ 2: Անլար ճնշման և ջերմաստիճանի տվիչներ
- Քայլ 3: Միացում WiFi- ին
- Քայլ 4: UbiDots- ի տեղադրում ESP32- ում
- Քայլ 5. Սենսորային ընթերցումների հրատարակում UbiDots- ում
- Քայլ 6: Տվյալների պատկերացում
- Քայլ 7: Ընդհանուր ծածկագիր
Video: Անլար ճնշման տվիչի տվյալների հրապարակումը MQTT- ի միջոցով. 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09: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
- XCTU
- Labview կոմունալ
Քայլ 2: Անլար ճնշման և ջերմաստիճանի տվիչներ
Հատկություններ
- Արդյունաբերական դասարանի սենսոր Երկար հեռավորության անլար ճնշման ջերմաստիճանի տվիչ
- Գործողության միջակայք 0 -ից 14000 mbar -40 ° -ից +85 ° C (-40 ° -ից 185 ° F)
- Կարգավորելի ներքին հաշվարկման ճնշման բանաձև 0.012 -ից մինչև 0.065 mbar
- Կարգավորելի ներքին հաշվարկման ջերմաստիճանի լուծում 0.002 -ից 0.012 ° C
- Uracyշգրտություն ± 2.5 mbar, ± 2 ° C
- Բացարձակ ճնշում, հարաբերական ճնշում և հարաբերական բարձրության փոփոխության ելքեր
- 2 մղոն հեռավորության տեսադաշտ ՝ բորտային ալեհավաքով
- Մինչև 28 մղոն բարձրակարգ LOS միջակայք ՝ բարձր եկամուտ ունեցող ալեհավաքներով
- Ինտերֆեյս Raspberry Pi, Microsoft® Azure®, Arduino և այլն
- Անլար ցանցային ցանց ՝ օգտագործելով DigiMesh®
Անլար ճնշման և ջերմաստիճանի տվիչի կազմաձևում ՝ օգտագործելով Labview Utility և XCTU
Սենսորը աշխատում է երկու ռեժիմով
- Կազմաձևման ռեժիմ. Կարգավորեք Pan ID- ն, հետաձգումը, կրկնումների քանակը և այլն: Այս մասին ավելին դուրս է այս հրահանգվողի շրջանակներից և կբացատրվի հաջորդ հրահանգում:
- Գործարկման ռեժիմ. Մենք սարքը գործարկում ենք Run ռեժիմում: Եվ այս արժեքը վերլուծելու համար մենք օգտագործում ենք Labview կոմունալը
Այս Labview UI- ն ցույց է տալիս գեղեցիկ գրաֆիկների արժեքները: Այն ցույց է տալիս ինչպես ընթացիկ, այնպես էլ անցյալ արժեքները: Դուք կարող եք գնալ այս հղմանը ՝ Labview UI- ն ներբեռնելու համար: կտտացրեք «Գործարկել» պատկերակին վայրէջքի էջի ընտրացանկից ՝ գործարկման ռեժիմին անցնելու համար:
Քայլ 3: Միացում WiFi- ին
Մենք օգտագործում ենք գերված պորտալը `WiFi հավատարմագրերը պահպանելու և IP կարգավորումների միջոցով սավառնելու համար: Գերի ընկած պորտալում մանրամասն ծանոթանալու համար կարող եք անցնել հետևյալ ուսանելի:
Գերի ընկած պորտալը մեզ հնարավորություն է տալիս ընտրել ստատիկ և DHCP պարամետրերի միջև: Պարզապես մուտքագրեք հավատարմագրերը, ինչպիսիք են Static IP- ն, Subnet Mask- ը, gateway- ը և Wireless Sensor Gateway- ը կկարգավորվեն այդ IP- ում:
Տեղադրվում է մի վեբ էջ, որտեղ առկա WiFi ցանցերի և այնտեղ RSSI- ի ցուցակը: Ընտրեք WiFi ցանցը և գաղտնաբառը և մուտքագրեք ներկայացնել: Հավատարմագրերը կպահվեն EEPROM- ում, իսկ IP- ի կարգավորումը ՝ SPIFFS- ում: Այս մասին ավելին կարելի է գտնել այս հրահանգում:
Քայլ 4: UbiDots- ի տեղադրում ESP32- ում
Այստեղ մենք օգտագործում ենք անլար ճնշման և ջերմաստիճանի տվիչներ ESP 32 սարքով `ջերմաստիճանի և խոնավության տվյալները ստանալու համար: Մենք տվյալները ուղարկում ենք UbiDots ՝ օգտագործելով MQTT արձանագրությունը: MQTT- ն հետևում է հրապարակման և բաժանորդագրման մեխանիզմին, այլ ոչ թե այդ խնդրանքին և պատասխանին: Այն ավելի արագ և հուսալի է, քան HTTP- ը: Սա աշխատում է հետևյալ կերպ.
- Մենք օգտագործում ենք Task Scheduler- ը ՝ առաջադրանքը պլանավորելու համար, ինչպիսիք են տվիչներից տվյալների բերումը, սենսորների ընթերցումների հրատարակումը, MQTT թեմային բաժանորդագրվելը:
- Նախ, ներառեք Task Scheduler- ի վերնագրի ֆայլերը, դա օրինակ է և ժամանակացույց է ներկայացնում առաջադրանքներին:
- Մենք նախատեսել ենք երկու առաջադրանք, որոնք վերաբերում են երկու տարբեր վերահսկողության գործողություններին:
#սահմանել_ԱՇԽԱՏԱՆՔ_ՏԱՅՈOUԹՅՈՆ#ներառել ժամանակացույցի տ; // --------- Առաջադրանքներ ------------ // Առաջադրանք 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 բայթ շրջանակ անլար ջերմաստիճանի և խոնավության տվիչներից: Այս շրջանակը շահարկված է իրական ջերմաստիճանի և խոնավության տվյալները ստանալու համար:
եթե (Serial1.available ())
{data [0] = Serial1.read (); ուշացում (k); if (տվյալներ [0] == 0x7E) {while (! Serial1.available ()); համար (i = 1; i <36; i ++) {data = Serial1.read (); ուշացում (1); } if (տվյալներ [15] == 0x7F) /////// ստուգելու համար, թե արդյոք տվյալները ճիշտ են {if (տվյալները [22] == 0x06) //////// համոզվեք, որ սենսորի տեսակը ճիշտ է {int cTemp = ((((տվյալները [24]) * 256) + տվյալները [25])); int16_t abs_pressure = (((((uint16_t) (տվյալները [26]) << 8) | տվյալները [27])*0.001); int rlt_pressure = ((((տվյալները [28]) * 256) + տվյալները [29]) * 0.001); int16_t delta_alt = (((((uint16_t) (տվյալները [30]) << 8) | տվյալները [31])*0.01); լողացող մարտկոց = ((տվյալներ [18] * 256) + տվյալներ [19]); բոց լարման = 0.00322 * մարտկոց; Serial.print («Սենսորային համար»); Serial.println (տվյալները [16]); Serial.print («Սենսորային տեսակ»); Serial.println (տվյալները [22]); Serial.print («irmրագրակազմի տարբերակ»); Serial.println (տվյալները [17]); Serial.print ("Cերմաստիճանը Celsius:"); Serial.print (cTemp); Serial.println ("C"); Serial.print («Բացարձակ ճնշում.»); Serial.println (abs_pressure); Serial.print («mbar»); Serial.print ("Հարաբերական ճնշում."); Serial.println (rlt_pressure); Serial.print («mbar»); Serial.print ("Delta Altitude:"); Serial.println (delta_alt); Serial.print («մետր»); Serial.print ("ADC արժեքը:"); Serial.println (մարտկոց); Serial.print («Մարտկոցի լարումը.»); Serial.print (լարման); Serial.println ("\ n"); if (լարման <1) {Serial.println («Մարտկոցը փոխարինելու ժամանակը»); }}} այլ {for (i = 0; i <36; i ++) {Serial.print (data ); Serial.print (","); ուշացում (1); }}}}
Միացում UbiDots MQTT API- ին
Ներառեք MQTT գործընթացի վերնագրի ֆայլը:
#ներառում
սահմանել այլ փոփոխականներ MQTT- ի համար, ինչպիսիք են հաճախորդի անունը, միջնորդի հասցեն, նշանի ID- ն
#սահմանել TOKEN "BBFF-*********************************" // Ձեր Ubidots TOKEN#սահմանել MQTT_CLIENT_NAME "***************************"
char mqttBroker = "things.ubidots.com";
char բեռ [100]; char թեմա [150]; // ստեղծել փոփոխական ՝ նշան ID- ի նշանը պահելու համար
Քայլ 5. Սենսորային ընթերցումների հրատարակում UbiDots- ում
Ստեղծեք փոփոխականներ ՝ տարբեր սենսորային տվյալներ պահելու համար և ստեղծեք char փոփոխական ՝ թեման պահելու համար
#սահմանել VARIABLE_LABEL_TEMPF "tempF" // Հաշվի առնելով փոփոխական պիտակը #define VARIABLE_LABEL_TEMPC "tempC" // Assist 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- ում:
Քայլ 6: Տվյալների պատկերացում
- Գնացեք Ubidots և մուտք գործեք ձեր հաշիվ:
- Գնացեք Գործիքային վահանակ ՝ վերևում նշված Տվյալների ներդիրից:
- Այժմ կտտացրեք «+» պատկերակին ՝ նոր վիջեթներ ավելացնելու համար:
- Selectանկից ընտրեք վիջեթ և ավելացրեք փոփոխական և սարքեր:
- Սենսորների տվյալները կարող են արտացոլվել վահանակի վրա ՝ օգտագործելով տարբեր վիջեթներ:
Քայլ 7: Ընդհանուր ծածկագիր
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: Տվյալների գրանցիչ (նաև տվյալների գրանցիչ կամ տվյալների գրանցիչ) էլեկտրոնային սարք է, որը ժամանակի ընթացքում գրանցում է տվյալները
MSP432 LaunchPad- ի և Python- ի միջոցով ջերմաստիճանի տվիչի (TMP006) կենդանի տվյալների գծագրում. 9 քայլ
SPերմաստիճանի տվիչի կենդանի տվյալների գծագրում (TMP006) MSP432 LaunchPad- ի և Python- ի միջոցով. TMP006- ը ջերմաստիճանի տվիչ է, որը չափում է օբյեկտի ջերմաստիճանը ՝ առանց օբյեկտի հետ շփվելու անհրաժեշտության: Այս ձեռնարկում մենք պլանավորում ենք BoosterPack- ի (TI BOOSTXL-EDUMKII) ջերմաստիճանի կենդանի տվյալները Python- ի միջոցով
Arduino ինտերֆեյս ուլտրաձայնային տվիչի և անհպում ջերմաստիճանի տվիչի հետ `8 քայլ
Arduino- ի ինտերֆեյս ուլտրաձայնային տվիչի և ջերմաստիճանի անշփման սենսորի հետ. Մեր օրերում արտադրողները, ծրագրավորողները նախընտրում են Arduino- ն `նախագծերի նախատիպերի արագ զարգացման համար: Arduino- ն բաց կոդով էլեկտրոնիկայի հարթակ է, որը հիմնված է հեշտ օգտագործման ապարատային և ծրագրային ապահովման վրա: Arduino- ն ունի շատ լավ օգտագործողների համայնք: Այս նախագծում
IOT-Wireless- ջերմաստիճանի և խոնավության տվիչի տվյալների փոխանցում MySQL- ին. 41 քայլ
IOT-Wireless-Temperature-and-Humidity-Sensor- ի տվյալների ուղարկումը MySQL- ին. Ներկայացնելով NCD- ի IoT ջերմաստիճանի և խոնավության սենսորի երկարաժամկետ հեռահարությունը: Հպարտանալով մինչև 28 մղոն հեռավորությամբ և անլար ցանցային ցանցի ճարտարապետությամբ ՝ այս տվիչը փոխանցում է խոնավության (± 1.7%) և ջերմաստիճանի (± 0.3 ° C) տվյալներ օգտվողի կողմից սահմանված ընդմիջումներով, քնում
Անլար տվիչների տվյալների արտացոլում Google- ի գծապատկերների միջոցով. 6 քայլ
Անլար տվիչների տվյալների տեսողականացում Google աղյուսակների միջոցով. Մեքենաների կանխատեսող վերլուծությունը շատ անհրաժեշտ է `մեքենայի խափանումները նվազագույնի հասցնելու համար: Պարբերաբար ստուգումը օգնում է բարձրացնել մեքենայի աշխատանքի ժամանակը և իր հերթին բարձրացնել դրա սխալների հանդուրժողականությունը: Անլար թրթռում և ջերմաստիճան