
Мазмұны:
2025 Автор: John Day | [email protected]. Соңғы өзгертілген: 2025-01-23 14:51

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 тіркелгі деректерін басқару кезінде пайда болады. Бізде 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
- Тапсырмаларды жоспарлаушы
Ұсынылған:
Matlab 2016b -ті Word -қа қалай кодтау және жариялау керек (жаңадан бастаушыларға арналған нұсқаулық): 4 қадам

Matlab 2016b-ті Word-қа қалай кодтау және жариялау керек (Жаңадан бастаушыларға арналған нұсқаулық): Matlab-бұл техникалық нәтижелерді есептеу үшін қолданылатын жоғары өнімді тілдік бағдарлама. Ол визуалдылықты, есептеулерді және бағдарламалауды ыңғайлы түрде біріктіру мүмкіндігіне ие. Бұл бағдарламаның көмегімен пайдаланушы проблемалар мен шешімдерді жариялай алады
Подключаем Ардуино К Счётчику / Arduino -ны электр есептегіштен импульстік мәліметтерді оқу үшін қосу: 20 қадам

Электронды есептегіштен импульстік мәліметтерді оқу үшін Arduino-ны қосу: бұл электр қуаты мен домашнейлік электро-цепидің үлкен жылдамдығы. Складывать ватты всех лампочек - скучно и, увы, не факт, что точно. Во всяком случае, что там думает себе счётчик - всег
ESP8266 және PubNub көмегімен IoT қосылған сенсорлық мәліметтерді жинау орталығы: 9 қадам (суреттермен)

ESP8266 & PubNub көмегімен IoT қосылған сенсорлық мәліметтерді жинау орталығы: ESP8266 бойынша оқулықтардың көпшілігі жаңа деңгейдегі (светодиодты қашықтан жыпылықтау) немесе өзінің жыпылықтау дағдыларын жақсарту мен жетілдіруді іздейтін адам үшін тым күрделі. Нұсқаулық мақсат бұл алшақтықты жоюға бағытталған
Бір реттік камераны қайта қолданыңыз және планетаны сақтаңыз! және бірнеше сөзді сақтау: 4 қадам

Бір реттік камераны қайта қолданыңыз және планетаны сақтаңыз! және бірнеше сөзді сақтаңыз: Жақында мен жергілікті фотосурет дүкенінде болдым (джессоптар), бірнеше рет пайдаланылатын бір рет қолданылатын камералар алу үшін, олар сендіретін адамдар үшін өте қызықты екенін білесіздер. Тек сұраңыз, олар оларды береді. Мен де ойладым, иә, бұл компаниялар камераларды қайтарады, қояды
Бірнеше компьютер арасында файлдарды көшіру және қою және оларға қол жеткізу: 3 қадам

Бірнеше компьютер арасында файлдарды көшіру және қою және оларға қол жеткізу: Мен адамдарға бірнеше компьютерлер арасында кез келген мәтінді, суреттерді, бейнелерді және т.б. көшіруге және қоюға мүмкіндік беретін веб -сайт таптым. Бұл сонымен қатар хабарламалар тақтасын құруға, файлдарды жүктеуге және веб -бетті басып шығаруға мүмкіндік береді. Ең жақсысы, сізде тіпті жоқ