Агуулгын хүснэгт:
- Алхам 1: Техник хангамж ба програм хангамжийн тодорхойлолт
- Алхам 2: Олзлогдсон портал үүсгэх
- Алхам 3: WiFi болон UbiDots -ийн итгэмжлэлийг өгөх
- Алхам 4: Мэдрэгчийн уншилтыг UbiDots дээр нийтлэх
- Алхам 5: Өгөгдлийг дүрслэн харуулах
- Алхам 6: Ерөнхий код
Видео: UbiDots-ESP32 холбож, олон мэдрэгчийн мэдээллийг нийтлэх: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
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 эсвэл notepad ++ гэх мэт IDE эсвэл текст засварлагчийг ашиглаж болно.
- Эхлээд DHCP болон статик IP тохиргооноос сонгох хоёр радио товчлуур агуулсан HTML вэб хуудас үүсгэнэ үү.
- Одоо хариултаа оруулах товчлуурыг үүсгэнэ үү
- Радио товчлууруудад нэр өгнө үү.
- ESP вэб серверийн анги нь эдгээр нэрийг аргумент болгон авч, эдгээр аргументыг ашиглан радио товчлууруудын хариуг авах болно
- Төхөөрөмжид хариу илгээхийн тулд 'SUBMIT' товчлуурыг оруулна уу. Бусад вэб хуудсууд дээр бид текст хайрцагтай болно.
- Нэрийн утга болон оролтын төрлийг текст хайрцагт өгч, хариу илгээх товчийг 'SUBMIT' дээр оруулна уу.
- Текст талбарын агуулгыг дахин тохируулахын тулд 'ДАХИН тохируулах' товчийг үүсгэнэ үү.
Алхам 3: WiFi болон UbiDots -ийн итгэмжлэлийг өгөх
WiFi -ийн итгэмжлэлийг удирдах явцад гол асуудал гардаг. Хэдийгээр бид WiFiMulti номын сантай боловч төхөөрөмжид олон SSID болон нууц үг өгөх боломжтой бөгөөд төхөөрөмж нь боломжтой сүлжээнд холбогдох болно. Гэхдээ хэрэв боломжтой сүлжээ WiFiMulti жагсаалтад байхгүй бол яах вэ. ESP32 төхөөрөмжийг байнга анивчих нь найдвартай шийдэл биш юм.
Энэ асуудлыг шийдэхийн тулд бид хэрэглэгч байгаа сүлжээний SSID болон нууц үгээ илгээх боломжтой вэб хуудсыг байршуулж байна. Энэ нь дараах байдлаар ажилладаг.
- Вэб хуудсыг хэрэглэгч портал дээрээс сонгосон статик IP эсвэл DHCP IP дээр байрлуулсан болно
- Энэхүү вэб хуудас нь төхөөрөмжийг UbiDots -т холбох SSID, нууц үг, UBIDOTS жетоны ID оруулах текст талбаруудыг агуулдаг.
- Оруулах талбарт өөрийн WiFi сүлжээний SSID болон нууц үгийг оруулна уу, UbiDot -ийн токен ID -г оруулаад SUBMIT -ийг оруулна уу.
- Эдгээр итгэмжлэлийг ESP32 -ийн EEPROM -д хадгалдаг
- 60 секундын дараа төхөөрөмж AP-ээс автоматаар салах болно
- Дараагийн удаа та төхөөрөмжийг асаахад хэрэглэгч энэ журмыг дагаж мөрдөх шаардлагагүй болно, төхөөрөмж нь хэрэглэгчийн итгэмжлэлийг EEPROM -ээс автоматаар авч, мэдрэгчийн заалтыг UbiDots -д нийтлэхээ үргэлжлүүлнэ.
Алхам 4: Мэдрэгчийн уншилтыг UbiDots дээр нийтлэх
Энд бид ESP 32 төхөөрөмжтэй утасгүй температур ба чийгшлийн мэдрэгчийг ашиглан температур, чийгшлийн мэдээллийг олж авч байна. Бид өгөгдлийг MQTT протокол ашиглан UbiDots руу илгээж байна. MQTT нь хүсэлт, хариултаас илүү нийтлэх, захиалах механизмыг дагаж мөрддөг. Энэ нь HTTP -ээс хурдан бөгөөд найдвартай. Энэ нь дараах байдлаар ажилладаг.
- Мэдээлэгчээс мэдээлэл авах, мэдрэгчийн заалтыг нийтлэх, MQTT сэдвийг захиалах гэх мэт ажлыг төлөвлөхийн тулд бид Task Scheduler програмыг ашиглаж байна.
- Нэгдүгээрт, Task Scheduler толгой файлуудыг оруулна уу.
- Бид хоёр өөр хяналтын үйл ажиллагаатай холбоотой хоёр ажлыг төлөвлөсөн.
#тодорхойлох _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 for start byte if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <29; i ++) {data = Serial1.read (); саатал (1); } if (өгөгдөл [15] == 0x7F) /////// дахин хүлээн авсан өгөгдөл зөв эсэхийг шалгахын тулд {if (өгөгдөл [22] == 1) //////// мэдрэгчийн төрлийг шалгаарай. зөв {
чийгшил = ((((өгөгдөл [24]) * 256) + өгөгдөл [25]) /100.0); чийгшил /=10.0; cTempint = ((((uint16_t) (өгөгдөл [26]) << 8) | өгөгдөл [27]); cTemp = (хөвөх) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; зай = санамсаргүй (100, 327); хүчдэл = зай/100; nodeId = өгөгдөл [16];}
UbiDots MQTT API руу холбогдож байна
MQTT процессын толгой файлыг оруулна уу
#оруулах
үйлчлүүлэгчийн нэр, брокерийн хаяг, жетоны ID гэх мэт MQTT -ийн бусад хувьсагчдыг тодорхойлох (Бид токен ID -г EEPROM -с авч байна)
#тодорхойлох 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" // Хувьсагчийн шошгыг үнэлэх
char сэдэв1 [100]; char сэдэв2 [100]; char сэдэв3 [100];
өгөгдлийг дурдсан MQTT сэдвээр нийтлэх, ачаалал нь {"tempc": {утга: "tempData"}} шиг харагдах болно
sprintf (сэдэв1, "%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 (сэдэв1, ачаалал)? "Хэвлэгдсэн": "хэвлэгдээгүй");
// Бусад сэдвээр мөн адил хий
client.publish () нь өгөгдлийг UbiDots дээр нийтэлдэг
Алхам 5: Өгөгдлийг дүрслэн харуулах
- Ubidots руу ороод данс руугаа нэвтэрнэ үү.
- Дээд талд жагсаасан Өгөгдлийн таб дээрээс Хяналтын самбар руу очно уу.
- Шинэ виджет нэмэхийн тулд "+" дүрс дээр дарна уу.
- Жагсаалтаас виджет сонгоод хувьсагч болон төхөөрөмж нэмнэ үү.
- Мэдрэгчийн өгөгдлийг янз бүрийн виджет ашиглан хяналтын самбар дээр дүрслэх боломжтой.
Алхам 6: Ерөнхий код
HTML болон ESP32 -ийн Over кодыг энэ GitHub репозитороос олж болно.
Зээл
- ncd ESP32 таслах самбар.
- ncd Утасгүй температур ба чийгшлийн мэдрэгч.
- pubsubclient
- UbiDots
- Ажлын хуваарьлагч
Зөвлөмж болгож буй:
Hologram Nova болон Ubidots ашиглан холбогдсон шийдлүүдээ холбож, сайжруулаарай: 9 алхам
Холбогдсон шийдлүүдээ Голограм Нова ба Убидот ашиглан холбож, сайжруулаарай: Голограм Нова ашиглан дэд бүтцээ сайжруулна уу. Ubidots руу өгөгдөл дамжуулахын тулд Raspberry Pi ашиглан Hologram Nova -ийг тохируулаарай. Дараах гарын авлагад Ubidots нь Raspberry Pi ашиглан Hologram Nova -ийг хэрхэн тохируулахыг харуулах болно
Flysky RF дамжуулагч нь USB + Утасны дохиог компьютерт холбож, үнэгүй симулятор програм хангамж: 6 алхам
Flysky RF -ийн дамжуулагч нь USB -ээр дамжуулан компьютерт холбогддог + үнэгүй симулятор програм хангамж: Хэрэв та надтай адилхан бол RF -ийн дамжуулагчаа туршиж, хайртай RF онгоц/дроноо унахаасаа өмнө сурах дуртай болно. Энэ нь танд маш их мөнгө, цаг хэмнэхээс гадна нэмэлт зугаа цэнгэлийг өгөх болно
I2C: 9 алхам (зурагтай) бүхий олон тооны никси хоолойг удирдах олон талын I/O Extender ПХБ
I2C ашиглан олон тооны никси хоолойг удирдах олон талт I/O Extender ПХБ: Одоогийн байдлаар хувцасны чимэг хийх зориулалттай nixie хоолойг амьдралд нэвтрүүлэх сонирхол их байна. Nixie хоолойн цагны иж бүрдлийг зах зээл дээр худалдаанд гаргах боломжтой. Оросын хуучин никси хоолойн хуучин хувьцааны худалдаа идэвхтэй явагдаж байсан бололтой. Мөн энд байгаа Instructables дээр
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] Олон тооны мэдрэгчийн өгөгдөл!: 3 алхам
Arduino Uno + SIM900 + DHT22 + Thingspeak [ENG /PL] MULTIPLE SENSOR DATA!: Сайн байна уу, SIM900 модулийн тусламжтайгаар Arduino Uno олон мэдрэгчийн өгөгдлийг илгээх талаар мэдээлэл дутмаг байгааг би харсан. Тиймээс би SIM900 ба DHT22 мэдрэгч бүхий Arduino UNO -ийн холболт, тохиргооны талаар зааварчилгаа өгсөн. DHT22 -аас авсан мэдээлэл (ааш
MQTT ашиглан утасгүй даралт мэдрэгчийн мэдээллийг нийтлэх: 7 алхам
MQTT: ESP32 ба ESP 8266 ашиглан утасгүй даралт мэдрэгчийн өгөгдлийг нийтлэх нь IoT -ийн чиглэлээр маш сайн мэддэг SoC юм. Эдгээр нь IoT төслүүдэд маш их ашиг тустай байдаг. ESP 32 бол WiFi болон BLE -ийг нэгтгэсэн төхөөрөмж юм. Зүгээр л SSID, нууц үг, IP -ийнхээ тохиргоог өгөөд, эдгээр зүйлсийг