Мазмұны:

MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау: 7 қадам
MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау: 7 қадам

Бейне: MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау: 7 қадам

Бейне: MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау: 7 қадам
Бейне: ESP32 Tutorial 47 - WS2812 CheerLights using MQTT over Internet | SunFounder's ESP32 IoT Learnig kit 2024, Желтоқсан
Anonim
MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау
MQTT көмегімен сымсыз қысым датчигінің деректерін жариялау

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 желісіне қосылу

WiFi желісіне қосылу
WiFi желісіне қосылу
WiFi желісіне қосылу
WiFi желісіне қосылу

Біз Wi -Fi тіркелгі деректерін сақтау және IP параметрлері арқылы апару үшін тұтқында отырған порталды қолданамыз. Тұтқында отырған порталда егжей -тегжейлі таныстыру үшін сіз келесі нұсқаулықты өтуге болады.

Тұтқын порталы бізге статикалық және DHCP параметрлері арасында таңдау жасауға мүмкіндік береді. Статикалық IP, ішкі желі маскасы, шлюз және сымсыз сенсор шлюзі сияқты тіркелгі деректерін енгізіңіз, сол IP -де конфигурацияланады.

Қол жетімді WiFi желілері мен RSSI бар тізімі бар веб -сайт орналастырылады. WiFi желісі мен құпия сөзді таңдап, жіберуді енгізіңіз. Тіркелу деректері EEPROM -да сақталады және IP параметрі SPIFFS -те сақталады. Бұл туралы толығырақ нұсқаулықтан табуға болады.

4 -қадам: ESP32 -де UbiDots орнату

UbiDots -ты ESP32 -де орнату
UbiDots -ты ESP32 -де орнату

Мұнда біз температура мен ылғалдылық туралы ақпаратты алу үшін 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 -те жариялау

UbiDots -те сенсорлық оқуларды жариялау
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
  • Тапсырмаларды жоспарлаушы

Ұсынылған: