Мазмұны:

UbiDots-ESP32 қосу және бірнеше сенсорлық мәліметтерді жариялау: 6 қадам
UbiDots-ESP32 қосу және бірнеше сенсорлық мәліметтерді жариялау: 6 қадам

Бейне: UbiDots-ESP32 қосу және бірнеше сенсорлық мәліметтерді жариялау: 6 қадам

Бейне: UbiDots-ESP32 қосу және бірнеше сенсорлық мәліметтерді жариялау: 6 қадам
Бейне: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Шілде
Anonim
UbiDots-ESP32 қосу және бірнеше сенсорлық деректерді жариялау
UbiDots-ESP32 қосу және бірнеше сенсорлық деректерді жариялау

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

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 веб -беттерін жасау үшін Sublime немесе блокнот ++ сияқты кез келген IDE немесе мәтіндік редакторды пайдалануға болады.

  • Алдымен DHCP мен тұрақты IP параметрлері арасында таңдау үшін екі радио түймесі бар HTML веб -бетін жасаңыз.
  • Енді жауап беру үшін түймені жасаңыз
  • Радио түймелерге ат қойыңыз.
  • ESP веб -сервер класы бұл атауларды аргумент ретінде қабылдайды және осы аргументтерді қолданып радио түймелердің жауабын алады
  • Енді құрылғыға жауапты жіберу үшін «Жіберу» түймесін енгізіңіз. Басқа веб -беттерде бізде мәтіндік өрістер бар.
  • Мәтін жолағына атының мәнін және енгізу түрін беріңіз және жауапты жіберу үшін «Жіберу» түймесін қосыңыз.
  • Мәтін өрісінің мазмұнын қалпына келтіру үшін 'RESET' батырмасын жасаңыз.

3 -қадам: WiFi және UbiDots тіркелгі деректерін беру

WiFi және UbiDots тіркелгі деректерін беру
WiFi және UbiDots тіркелгі деректерін беру

Негізгі мәселе WiFi тіркелгі деректерін басқару кезінде пайда болады. Бізде WiFiMulti кітапханасы болса да, біз құрылғыға бірнеше SSID және құпия сөздерді бере аламыз және құрылғы қол жетімді желіге қосылады. Бірақ егер қол жетімді желі WiFiMulti тізімінде болмаса ше? ESP32 құрылғысын үнемі жыпылықтау сенімді шешім емес.

Бұл мәселені шешу үшін пайдаланушы SSID мен қол жетімді желінің құпия сөзін жібере алатын веб -бетті орналастырамыз. Ол келесідей жұмыс істейді.

  • Веб -бет тұрақты пайдаланушы порталынан пайдаланушы таңдаған тұрақты IP немесе DHCP IP мекенжайында орналасқан
  • Бұл веб -бетте құрылғыны UbiDots -ке қосу үшін SSID, құпия сөз және UBIDOTS токен идентификаторын енгізу үшін мәтіндік өрістер бар.
  • Кіріс өрістеріне жергілікті Wi -Fi SSID мен құпия сөзді енгізіңіз, UbiDot таңбалауыш идентификаторын енгізіңіз және Жіберуді енгізіңіз.
  • Бұл тіркелгі деректері ESP32 EEPROM -де сақталады
  • 60 секундтан кейін құрылғы автоматты түрде кіру нүктесінен ажыратылады
  • Келесі жолы құрылғыны қосқанда, пайдаланушыға бұл процедураны орындаудың қажеті жоқ, құрылғы EEPROM -дан пайдаланушы тіркелгі деректерін автоматты түрде алады және сенсор көрсеткіштерін UbiDots -те жариялауды жалғастырады.

4 -қадам: сенсорлық оқуларды UbiDots -те жариялау

Мұнда біз температура мен ылғалдылық туралы ақпаратты алу үшін ESP 32 құрылғысымен сымсыз температура мен ылғалдылық сенсорларын қолданамыз. Біз деректерді UbiDots -қа MQTT протоколы арқылы жібереміз. MQTT сұраныс пен жауаптан гөрі жариялау мен жазылу механизмін ұстанады. Бұл HTTP -ге қарағанда жылдам және сенімді. Бұл келесідей жұмыс істейді.

  • Біз сенсорлардан деректерді алу, сенсор көрсеткіштерін жариялау, MQTT тақырыбына жазылу сияқты тапсырмаларды жоспарлау үшін Task Scheduler бағдарламасын қолданамыз.
  • Біріншіден, Task Scheduler тақырыбының файлдарын қосыңыз, бұл мысал және тапсырмаларды жоспарлайды.
  • Біз екі түрлі басқару операцияларына қатысты екі тапсырма жоспарладық.

#desine _TASK_TIMEOUT#қосу

Жоспарлаушы 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 байтты кадр аламыз. Бұл кадр нақты температура мен ылғалдылық деректерін алу үшін басқарылады

uint8_t деректері [29];

деректер [0] = Serial1.read (); кешіктіру (k); // chck бастау байтын if (деректер [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <29; i ++) {data = Serial1.read (); кешіктіру (1); } if (data [15] == 0x7F) /////// қайталанатын деректердің дұрыстығын тексеру үшін {if (data [22] == 1) //////// сенсордың түріне көз жеткізіңіз дұрыс {

ылғалдылық = ((((деректер [24]) * 256) + деректер [25]) /100.0); ылғалдылық /=10.0; cTempint = ((((uint16_t) (деректер [26]) << 8) | деректер [27]); cTemp = (float) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; батарея = кездейсоқ (100, 327); кернеу = батарея/100; nodeId = деректер [16];}

UbiDots MQTT API қосылуда

MQTT процесі үшін тақырып файлын қосыңыз

#қосу

клиенттің аты, брокердің адресі, токен идентификаторы сияқты MQTT үшін басқа айнымалыларды анықтаңыз (біз токен идентификаторын EEPROM -дан аламыз)

#dequine MQTT_CLIENT_NAME «ClientVBShightime123»

char mqttBroker = «things.ubidots.com»;

char жүктемесі [100]; char тақырыбы [150];

// токен идентификаторын сақтау үшін айнымалы жасау

String tokenId;

Әр түрлі сенсорлық деректерді сақтау үшін айнымалылар жасаңыз және тақырыпты сақтау үшін 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 -те жариялайды

5 -қадам: Деректерді визуализациялау

Мәліметтерді визуализациялау
Мәліметтерді визуализациялау
Мәліметтерді визуализациялау
Мәліметтерді визуализациялау
Мәліметтерді визуализациялау
Мәліметтерді визуализациялау
  • Ubidots бөліміне өтіп, тіркелгіңізге кіріңіз.
  • Жоғарғы жағында көрсетілген Деректер қойындысынан бақылау тақтасына өтіңіз.
  • Енді жаңа виджеттерді қосу үшін «+» белгісін басыңыз.
  • Тізімнен виджетті таңдап, айнымалы мен құрылғыларды қосыңыз.
  • Сенсор мәліметтерін бақылау тақтасында әр түрлі виджеттер көмегімен көруге болады.

6 -қадам: Жалпы код

HTML мен ESP32 үшін Over кодын осы GitHub репозиторийінен табуға болады.

Несие

  • ncd ESP32 ажырату тақтасы.
  • ncd Сымсыз температура мен ылғалдылық сенсорлары.
  • pubsubclient
  • UbiDots
  • Тапсырмаларды жоспарлаушы

Ұсынылған: