Мазмұны:
- 1 -қадам: Жабдықтар мен бағдарламалық қамтамасыз етудің сипаттамасы
- 2 -қадам: сымсыз қысым мен температура сенсорлары
- 3 -қадам: WiFi желісіне қосылу
- 4 -қадам: ESP32 -де UbiDots орнату
- 5 -қадам: сенсорлық оқуларды UbiDots -те жариялау
- 6 -қадам: Деректерді визуализациялау
- 7 -қадам: Жалпы код
Бейне: MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау: 7 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
ESP32 және ESP 8266 - бұл IoT саласындағы өте таныс SoC. Бұл IoT жобалары үшін жақсы нәрсе. ESP 32 - бұл интеграцияланған WiFi мен BLE бар құрылғы. Тек SSID, пароль мен IP конфигурациясын беріңіз және заттарды бұлтқа біріктіріңіз. Бұл нұсқаулықта біз IoT платформасы, MQTT, Captive порталдары сияқты IoT -тың кейбір негізгі шарттары туралы ойланамыз.
- IoT архитектурасы өте қарапайым сөздермен кіріктірілген құрылғы мен құрылғыны бұлтқа қоюға арналған IoT платформасынан тұрады. Мұнда сенсорлық мәліметтерді визуализациялау үшін UbiDots IoT платформасын қолданамыз.
- IP параметрлері мен пайдаланушы тіркелгі деректерін басқару пайдаланушының бас ауруы болуы мүмкін. Егер пайдаланушы WiFi тіркелгі деректерін өзгерткісі келсе ше? Егер пайдаланушы DHCP/статикалық IP параметрлерін ауыстырғысы келсе ше? ESP32 әр уақытта жыпылықтауы сенімді емес, тіпті бұл мәселелердің шешімі де емес. Сонымен, біз WiFi тіркелгі деректерін және басқа конфигурацияларды сақтау үшін тұтқын портал арқылы өтетін боламыз.
- MQTT қазір IoT әлемінде өте кең таралған терминге айналуда. ол тез, берік және ақылды архитектураның арқасында Publish and Subscribe сұраныстары мен жауаптарынан (HTTP) асып түсті.
Міне, осы нұсқаулықта біз көрсетпекпіз.
- Captive Portal көмегімен WiFi және MQTT тіркелгі деректерін беру.
- UbiDots -қа бірнеше сенсорлық деректерді жариялау және жазылу.
- Сенсор деректерін сымсыз қысым мен температура сенсорынан оқу
- ESP32 веб -формасын орналастыру.
- SPIFFS ESP32 -ден оқу және жазу.
1 -қадам: Жабдықтар мен бағдарламалық қамтамасыз етудің сипаттамасы
Жабдық сипаттамасы
- ESP32 WiFi/BLE
- Сымсыз қысым мен температура сенсоры
Бағдарламалық қамтамасыз ету ерекшелігі
- Arduino IDE
- XCTU
- Labview Utility
2 -қадам: сымсыз қысым мен температура сенсорлары
Мүмкіндіктер
- Өнеркәсіптік дәреже сенсоры Ұзақ диапазонда сымсыз қысымды температура сенсоры
- Жұмыс ауқымы 0 -ден 14000 мбарға дейін -40 ° -тан +85 ° C -қа дейін (-40 ° -тан 185 ° F дейін)
- Конфигурацияланатын ішкі есептеу қысымының рұқсаты 0,012 - 0,065 мбар
- Конфигурацияланатын ішкі есептеу температурасының ажыратымдылығы 0,002 - 0,012 ° C
- Дәлдік ± 2,5 мбар, ± 2 ° С
- Абсолютті қысым, салыстырмалы қысым және салыстырмалы биіктіктің өзгеруі
- Антеннасы бар 2 миль қашықтықтағы диапазон
- Жоғарғы кіріс антенналары бар 28 мильге дейінгі LOS диапазоны
- Raspberry Pi, Microsoft® Azure®, Arduino және т.б. интерфейсі
- DigiMesh® көмегімен сымсыз желі
Labview Utility және XCTU көмегімен сымсыз қысым мен температура сенсорын теңшеу
Сенсор екі режимде жұмыс істейді
- Конфигурация режимі: Пан идентификаторын, кідірісті, қайталау санын және т.
- Жұмыс режимі: Біз құрылғыны Іске қосу режимінде іске қосамыз. Бұл мәнді талдау үшін біз Labview Utility қолданамыз
Бұл Labview UI мәндерді жақсы графиктерде көрсетеді. Ол ағымдағы және бұрынғы құндылықтарды көрсетеді. Labview UI жүктеу үшін мына сілтемеге өтуге болады. іске қосу режиміне өту үшін ашылатын мәзірдегі Іске қосу белгішесін нұқыңыз.
3 -қадам: WiFi желісіне қосылу
Біз Wi -Fi тіркелгі деректерін сақтау және IP параметрлері арқылы апару үшін тұтқында отырған порталды қолданамыз. Тұтқында отырған порталда егжей -тегжейлі таныстыру үшін сіз келесі нұсқаулықты өтуге болады.
Тұтқын порталы бізге статикалық және DHCP параметрлері арасында таңдау жасауға мүмкіндік береді. Статикалық IP, ішкі желі маскасы, шлюз және сымсыз сенсор шлюзі сияқты тіркелгі деректерін енгізіңіз, сол IP -де конфигурацияланады.
Қол жетімді WiFi желілері мен RSSI бар тізімі бар веб -сайт орналастырылады. WiFi желісі мен құпия сөзді таңдап, жіберуді енгізіңіз. Тіркелу деректері EEPROM -да сақталады және IP параметрі SPIFFS -те сақталады. Бұл туралы толығырақ нұсқаулықтан табуға болады.
4 -қадам: ESP32 -де UbiDots орнату
Мұнда біз температура мен ылғалдылық туралы ақпаратты алу үшін ESP 32 құрылғысымен сымсыз қысым мен температура сенсорларын қолданамыз. Біз деректерді UbiDots -қа MQTT протоколы арқылы жібереміз. MQTT сұраныс пен жауаптан гөрі жариялау мен жазылу механизмін ұстанады. Бұл HTTP -ге қарағанда жылдам және сенімді. Бұл келесідей жұмыс істейді.
- Біз сенсорлардан деректерді алу, сенсор көрсеткіштерін жариялау, MQTT тақырыбына жазылу сияқты тапсырмаларды жоспарлау үшін Task Scheduler бағдарламасын қолданамыз.
- Біріншіден, Task Scheduler тақырыбының файлдарын қосыңыз, бұл мысал және тапсырмаларды жоспарлайды.
- Біз екі түрлі басқару операцияларына қатысты екі тапсырма жоспарладық.
#define _TASK_TIMEOUT#include Scheduler ts; // --------- Тапсырмалар ------------ // Тапсырма tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); TWiFi тапсырмасы (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
- 1 -тапсырма сенсордың мәнін оқуға арналған, бұл тапсырма 10 секундқа дейін 1 секундқа созылады.
- Task1 уақыты аяқталғанда, біз жергілікті WiFi мен MQTT брокеріне қосыламыз.
- Енді 2 -тапсырма қосылды, біз 1 -тапсырманы өшіріп жатырмыз
- 2 -тапсырма сенсорлық мәліметтерді UbiDots MQTT брокеріне жариялауға арналған, бұл тапсырма 20 секунд ішінде 20 секунд күтуге жеткенше орындалады.
- Тапсырма2 уақыты аяқталғанда 1 -тапсырма қайтадан қосылады және 2 -тапсырма өшіріледі. Мұнда біз жаңартылған мәнді аламыз және процесс жалғасуда.
I2C сенсорының деректерін оқу
Біз сымсыз температура мен ылғалдылық сенсорларынан 29 байтты кадр аламыз. Бұл кадр нақты температура мен ылғалдылық деректерін алу үшін басқарылады
егер (сериялық1. қол жетімді ())
{деректер [0] = Serial1.read (); кешіктіру (k); if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <36; i ++) {data = Serial1.read (); кешіктіру (1); } if (деректер [15] == 0x7F) /////// қайталанатын деректердің дұрыстығын тексеру үшін {if (data [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 («Микробағдарлама нұсқасы»); Serial.println (деректер [17]); Serial.print («Цельсий бойынша температура:»); 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 биіктігі:»); Serial.println (delta_alt); Serial.print («метр»); Serial.print («ADC мәні:»); Serial.println (батарея); Serial.print («Батарея кернеуі:»); Сериялық баспа (кернеу); Serial.println («\ n»); if (кернеу <1) {Serial.println («Батареяны ауыстыру уақыты»); }}} else {for (i = 0; i <36; i ++) {Serial.print (деректер ); Serial.print («,»); кешіктіру (1); }}}}
UbiDots MQTT API қосылуда
MQTT процесі үшін тақырып файлын қосыңыз
#қосу
клиенттің аты, брокердің мекенжайы, токен идентификаторы сияқты MQTT үшін басқа айнымалыларды анықтаңыз
#define TOKEN «BBFF-*********************************» // Сіздің Ubidots TOKEN#анықтаңыз MQTT_CLIENT_NAME «****************************»
char mqttBroker = «things.ubidots.com»;
пайдалы жүктеме [100]; char тақырыбы [150]; // токен идентификаторының токенін сақтау үшін айнымалы жасау
5 -қадам: сенсорлық оқуларды UbiDots -те жариялау
Әр түрлі сенсорлық деректерді сақтау үшін айнымалылар жасаңыз және тақырыпты сақтау үшін char айнымалысын жасаңыз
#define VARIABLE_LABEL_TEMPF «tempF» // Айнымалы затбелгіні беру #анықтау VARIABLE_LABEL_TEMPC «tempC» // Айнымалы затбелгіні тағайындау #define VARIABLE_LABEL_BAT «bat» #анықтайтын VARIABLE_LABEL_HUMID «ылғалды» //
char тақырыбы1 [100];
char тақырыбы2 [100]; char тақырыбы3 [100];
деректерді аталған MQTT тақырыбына жариялаңыз, жүктеме {«tempc»: {value: «tempData»}} сияқты болады
sprintf (тақырып1, «%s», «»); sprintf (theme1, «%s%s», «/v1.6/devices/», DEVICE_LABEL); sprintf (пайдалы жүктеме, «%s», «»); // sprintf пайдалы жүктемені тазалайды (пайдалы жүктеме, «{»%s / «:», VARIABLE_LABEL_TEMPC); // sprintf мәнін қосады (пайдалы жүктеме, «%s {» мәні / «:%s}», пайдалы жүктеме, str_cTemp); // sprintf мәнін қосады (пайдалы жүктеме, «%s}», пайдалы жүктеме); // Serial.println (пайдалы жүктеме) сөздік жақшаларын жабады; Serial.println (client.publish (тақырып1, пайдалы жүктеме)? «Жарияланды»: «жарияланбаған»); // Басқа тақырып үшін де солай жасаңыз
client.publish () деректерді UbiDots -те жариялайды
6 -қадам: Деректерді визуализациялау
- Ubidots бөліміне өтіп, тіркелгіңізге кіріңіз.
- Жоғарғы жағында көрсетілген Деректер қойындысынан бақылау тақтасына өтіңіз.
- Енді жаңа виджеттерді қосу үшін «+» белгісін басыңыз.
- Тізімнен виджетті таңдап, айнымалы мен құрылғыларды қосыңыз.
- Сенсор мәліметтерін бақылау тақтасында әр түрлі виджеттер көмегімен көруге болады.
7 -қадам: Жалпы код
HTML мен ESP32 үшін Over кодын осы GitHub репозиторийінен табуға болады.
Несие
- ncd ESP32 ажырату тақтасы.
- ncd сымсыз қысым мен температура сенсорлары
- публицистикалық
- UbiDots
- Тапсырмаларды жоспарлаушы
Ұсынылған:
Node-RED көмегімен сымсыз діріл мен температура сенсорының деректерін Excel-ге жіберу: 25 қадам
Node-RED көмегімен сымсыз діріл мен температура сенсоры деректерін Excel-ге жіберу: 2 мильге дейінгі қашықтықта сымсыз торлы желі құрылымын қолдана отырып, NCD ұзақ диапазоны IoT өнеркәсіптік сымсыз діріл мен температура сенсорымен таныстыру. Дәл 16 биттік діріл мен температура сенсоры бар бұл құрылғы
NTP уақыт белгісімен ESP32 деректерін IoT бұлтына қалай жариялау керек: 5 қадам
NSP уақыт белгісімен ESP32 деректерін IoT бұлтына қалай жариялау керек: Көптеген қосымшаларда пайдаланушылар пайдалы ақпаратты жүктеуге жіберілетін мәндердің жергілікті уақыт белгісімен бірге AskSensors IoT бұлтына жіберуі қажет. Уақыт белгісінің форматы - UNIX дәуірінің уақыты: қаңтардан бері өткен миллисекундтардың саны
Қысым датчигінің көмегімен судың мөлшерін өлшеу: 5 қадам
Қысым датчигінің көмегімен судың мөлшерін өлшеу: резервуардағы судың мөлшерін өлшеу үшін қысым сенсоры қолданылды
Google Charts көмегімен сымсыз сенсордың деректерін визуализациялау: 6 қадам
Google Charts көмегімен сымсыз сенсорлық деректерді визуализациялау: машинаның жұмыс уақытын азайту үшін машиналарды болжамды талдау өте қажет. Тұрақты тексеру машинаның жұмыс уақытын жақсартуға көмектеседі және өз кезегінде оның ақауларға төзімділігін арттырады. Сымсыз діріл мен температура
Қысым датчигінің матрицасы: 7 қадам (суреттермен)
Қысым датчигінің матрицасы: Төрт бөлек қысым датчиктері мен қайда басатынымды ғана емес, сонымен қатар қаншалықты қиын екенін де көрсетеді. Сезімталдық саусақтардың қысымы үшін өте қолайлы. Сызықтық болмаса да, ол тұрақты. Жеңіл жанасуға өте сезімтал, содан кейін үлкен қысым қажет