Мазмуну:
- 1 -кадам: Аппараттык жана программалык камсыздоонун өзгөчөлүгү
- 2 -кадам: Туткун порталын түзүү
- 3 -кадам: WiFi жана UbiDots Ишеним грамоталарын берүү
- 4 -кадам: UbiDotsко сенсордук окууларды жарыялоо
- 5 -кадам: маалыматтарды визуалдаштыруу
- 6 -кадам: Жалпы код
Video: UbiDots-туташтыруу ESP32 жана бир нече сенсордук маалыматтарды жарыялоо: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
ESP32 andESP 8266 IoT тармагында абдан тааныш SoC. Бул IoT долбоорлору үчүн жакшы нерсе. ESP 32 - интеграцияланган WiFi жана BLE менен түзмөк. Жөн гана SSID, сырсөзүңүздү жана IP конфигурацияңызды бериңиз жана нерселерди булутка интеграциялаңыз. Бул жерде, биз IoT платформасы, MQTT, туткун порталдары сыяктуу IoTтин кээ бир негизги шарттары жөнүндө ойлонобуз.
- IoT архитектурасы түзмөктү булутка салуу үчүн камтылган түзмөк жана IoT платформасынан турат. Бул жерде сенсордук маалыматтарды визуалдаштыруу үчүн UbiDots IoT платформасын колдонуп жатабыз.
- IP жөндөөлөрүн жана Колдонуучунун грамоталарын башкаруу колдонуучунун баш оорусу болушу мүмкүн. Колдонуучу WiFi грамоталарын өзгөрткүсү келсе эмне болот? Колдонуучу DHCP/Статикалык IP жөндөөлөрүн которгусу келсе, эмне кылыш керек? ESP32 ар дайым жаркырап турушу ишенимдүү эмес, ал тургай бул көйгөйлөрдү чечүү эмес. Ошентип, биз WiFi ишеним грамоталарын жана башка конфигурацияларын сактоо үчүн туткун порталынан өтөбүз.
- MQTT азыр IoT дүйнөсүндө өтө кеңири таралган терминге айланып баратат. ал тез, күчтүү жана арык архитектурадан улам жарыялоо жана жазылуу боюнча сурам жана жооптордон (HTTP) ашып кетти.
Бул жерде бул көрсөтмөдө биз көрсөтөбүз.
- Captive Portal аркылуу WiFi жана MQTT грамоталарын берүү.
- UbiDotsко бир нече сенсордук маалыматтарды жарыялоо жана жазылуу.
- Зымсыз Температура жана Нымдуулук Сенсорлорунан Сенсор маалыматтарын окуу.
- ESP32ден веб формасын хостинг.
- SPIFFS ESP32ден окуу жана жазуу.
1 -кадам: Аппараттык жана программалык камсыздоонун өзгөчөлүгү
- ESP32 WiFi/BLE
- Зымсыз Температура жана Нымдуулук Сенсору
Программалык камсыздоонун өзгөчөлүгү
Arduino IDE
2 -кадам: Туткун порталын түзүү
Туткундалган портал - бул жаңы туташкан колдонуучуларга тармак ресурстарына кеңири кирүү мүмкүнчүлүгү берилгенге чейин көрсөтүлүүчү веб баракча. Бул жерде биз DHCP менен Статикалык IP Орнотууларын тандоо үчүн үч веб баракчаны тейлеп жатабыз. IP дарегин ESPке эки жол менен аныктай алабыз.
- 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 же notepad ++ сыяктуу каалаган IDE же текст редакторун колдоно аласыз.
- Биринчиден, DHCP менен Статикалык IP Орнотууларын тандоо үчүн эки радио баскычын камтыган HTML веб -баракчасын түзүңүз.
- Эми жооп берүү үчүн баскычты түзүңүз
- Радио баскычтарына бир аз ат коюңуз.
- ESP Web Server классы бул аттарды аргумент катары кабыл алат жана ушул аргументтерди колдонуп радио баскычтардын жообун алат
- Эми жоопту түзмөккө жөнөтүү үчүн 'SUBMIT' баскычын киргизиңиз. Башка веб -баракчаларда бизде текст кутучалары бар.
- Текст кутучасына атынын маанисин жана Киргизүү түрүн бериңиз жана "SUBMIT" жооп берүү үчүн тапшыруу баскычын кошуңуз.
- Текст талаасынын мазмунун баштапкы абалга келтирүү үчүн 'RESET' баскычын түзүңүз.
3 -кадам: WiFi жана UbiDots Ишеним грамоталарын берүү
Негизги көйгөй WiFi грамоталарын башкарууда пайда болот. Бизде WiFiMulti китепканасы бар болсо да, биз бир нече SSIDди жана сырсөздү түзмөккө бере алабыз жана түзмөк жеткиликтүү тармакка туташат. Бирок, эгерде жеткиликтүү тармак WiFiMulti тизмесинде болбосо. ESP32 түзмөгүн дайыма күйгүзүү ишенимдүү чечим эмес.
Бул көйгөйдү чечүү үчүн, биз колдонуучу жеткиликтүү тармактын SSID жана Сырсөзүн тапшыра ала турган веб -баракчаны жайгаштырып жатабыз. Бул төмөнкүдөй иштейт.
- Веб -баракча статикалык IPде же DHCP IPде туткун порталынан колдонуучу тарабынан тандалган
- Бул веб -баракчада UIDDotsко түзмөктү туташтыруу үчүн SSID, сырсөз жана UBIDOTS токен идентификаторун киргизүү үчүн текст талаалары камтылган.
- Кириш талааларына жергиликтүү WiFiңыздын SSID жана сырсөзүн киргизиңиз, UbiDotтун энбелгисин киргизиңиз жана тапшырууну киргизиңиз
- Бул грамоталар ESP32нин EEPROM -де сакталган
- 60 секунддан кийин Түзмөк APден автоматтык түрдө ажыратылат
- Кийинки жолу сиз аппаратты күйгүзгөндө, колдонуучу бул процедураны аткаруунун кажети жок, түзмөк колдонуучунун грамоталарын EEPROMдон автоматтык түрдө алат жана сенсордун окуусун UbiDotsко жарыялоону улантат.
4 -кадам: UbiDotsко сенсордук окууларды жарыялоо
Бул жерде биз температура жана нымдуулук маалыматын алуу үчүн ESP 32 түзмөгү менен Зымсыз Температура жана Нымдуулук Сенсорлорун колдонуп жатабыз. Биз маалыматты UbiDotsко MQTT протоколу аркылуу жөнөтүп жатабыз. MQTT жарыялоо жана жазылуу механизмине эмес, суроо -талапка жана жоопко ылайык. Бул HTTPге караганда ылдам жана ишенимдүү. Бул төмөнкүдөй иштейт.
- Биз сенсорлордон маалыматтарды алуу, сенсордун окуусун жарыялоо, MQTT темасына жазылуу сыяктуу тапшырманы пландаштыруу үчүн Task Scheduler колдонобуз.
- Биринчиден, Task Scheduler аталыш файлдарын кошуңуз, ал мисал жана милдеттерди графикке киргизет.
- Биз эки башка контролдук операцияга таандык эки тапшырманы пландаштырдык.
#define _TASK_TIMEOUT#камтыйт
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 -тапшырма сенсордун маанисин окуу үчүн, бул тапшырма 1 секундага созулат, ал 10 сек убактысына жетет
- Task1 мөөнөтү бүткөндө, биз жергиликтүү Wifi жана MQTT брокерине туташып жатабыз.
- Эми 2 -тапшырма иштетилди жана биз 1 -тапшырманы өчүрүп жатабыз
- 2 -тапшырма сенсордун маалыматын UbiDots MQTT брокерине жарыялоо үчүн, бул тапшырма 20 секундага чейин 20 секунд иштейт.
- Task2 өз мөөнөтүнө жеткенде, Task 1 кайра иштетилет жана Task2 өчүрүлөт. Бул жерде дагы биз жаңыртылган баалуулукка ээ болуп жатабыз жана процесс уланууда.
I2C сенсорунун маалыматтарын окуу
Биз зымсыз температура жана нымдуулук сенсорлорунан 29 байттык кадр алып жатабыз. Бул кадр чыныгы температура жана нымдуулук маалыматын алуу үчүн башкарылган
uint8_t маалыматтары [29];
маалымат [0] = Serial1.read (); кечигүү (k); // chck баштоо байт болсо if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <29; i ++) {data = Serial1.read (); кечигүү (1); } if (data [15] == 0x7F) /////// resive data туура экендигин текшерүү үчүн {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дан алып жатабыз)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
char жүк [100]; char темасы [150];
// токен ID сактоо үчүн өзгөрмө түзүү
String tokenId;
Ар кандай сенсордук маалыматтарды сактоо үчүн өзгөрмөлөрдү түзүңүз жана теманы сактоо үчүн char өзгөрмөсүн түзүңүз
#define VARIABLE_LABEL_TEMPF "tempF" // Өзгөрмө энбелгиси #аныктоо VARIABLE_LABEL_TEMPC "tempC" // Degine VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "humid" // Assing
char topic1 [100]; char topic2 [100]; char topic3 [100];
маалыматтарды MQTT темасына жарыялоо, жүктөм {"tempc": {value: "tempData"}} окшойт
sprintf (theme1, "%s", ""); sprintf (topic1, "%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 (topic1, payload)? "Published": "жарыяланбаган");
// Башка темада да ушундай кылыңыз
client.publish () маалыматтарды UbiDotsко жарыялайт
5 -кадам: маалыматтарды визуалдаштыруу
- Ubidotsко барып, каттоо эсебиңизге кириңиз.
- Жогорку панелдеги Маалыматтар өтмөгүнөн Башкаруу тактасына өтүңүз.
- Эми жаңы виджеттерди кошуу үчүн "+" белгисин басыңыз.
- Тизмеден виджет тандап, өзгөрмөнү жана түзмөктөрдү кошуңуз.
- Сенсордун маалыматтары ар кандай виджеттерди колдонуу менен панелде чагылдырылышы мүмкүн.
6 -кадам: Жалпы код
HTML жана ESP32 үчүн Over кодун бул GitHub репозиторийинен тапса болот.
Кредиттер
- ncd ESP32 сынык тактасы.
- ncd Зымсыз температура жана нымдуулук сенсорлору.
- pubsubclient
- UbiDots
- Task Scheduler
Сунушталууда:
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: 6 кадам (сүрөттөр менен)
Бир аналог пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окуу керек: Бул үйрөткүчтө мен сизге бир эле аналогдук кирүүчү пинди колдонуу менен бир нече аналогдук баалуулуктарды кантип окууну көрсөтөм
Бир жолу колдонулуучу камераны кайра колдонуп, планетаны сактаңыз! жана бир нече Quid сактоо: 4 кадам
Бир жолу колдонулуучу камераны кайра колдонуп, планетаны сактаңыз! and Save a Few Quid: Жакында мен жергиликтүү фото дүкөнүмө (jessops) түшүп, бир нече жолу колдонулган бир жолу колдонулуучу камераларды алдым, анткени алар шок адамдар үчүн абдан кызыктуу экенин билесиз. Жөн эле сураңыз, алар беришет. Мен дагы ойлодум, ээ, бул компаниялар камераларды кайра алышат, коет
Бир нече компьютердин ортосундагы файлдарды көчүрүү жана чаптоо жана аларга кирүү: 3 кадам
Бир нече компьютердин ортосунда файлдарды көчүрүү жана чаптоо жана кирүү: Мен адамдарга бир нече компьютердин ортосунда каалаган текстти, сүрөттөрдү, видеолорду ж.б. көчүрүп, чаптоого мүмкүндүк берген вебсайт таптым. Бул ошондой эле билдирүү тактасын түзүүгө, файлдарды жүктөөгө жана веб -баракчаңызды басып чыгарууга мүмкүнчүлүк берет. Эң жакшы жагы, сизде жок
Компьютердеги маалыматтарды жашыруунун бир нече жолу: 9 кадам
Компьютердеги маалыматтарды жашыруунун бир нече жолу: Эгерде сиз коддоого же топтук сценарийге кызыксаңыз, менин акыркы Ible'имди бул жерден карап көрүңүз. Көптөгөн адамдар компьютерде Word документин терүүдөн же Paintте "сүрөт" жасоодон башка эч нерсе кыла алышпайт. Албетте, бул инструкцияны окугандардын көбү
Видеолорго жана анимацияларга аудио жаздыруу: бир нече тез кеңештер жана амалдар: 8 кадам
Видеолорго жана анимацияларга аудио жаздыруу: бир нече ыкчам ыкмалар: эгер сиз келечектеги сүрөтчү болсоңуз, же YouTube үчүн анимацияларды кез -кезде жасоону жактырган бала болсоңуз, анда аудио жазуу менен бир нече көйгөйлөр пайда болушу мүмкүн. Визуалдык жактан жакшы видео же анимация болушу мүмкүн, эгерде аны көрүп жаткан адамдар "