Агуулгын хүснэгт:
- Алхам 1: Техник хангамж ба програм хангамжийн тодорхойлолт
- Алхам 2: Утасгүй даралт ба температур мэдрэгч
- Алхам 3: WiFi сүлжээнд холбогдох
- Алхам 4: ESP32 дээр UbiDots -ийг тохируулах
- Алхам 5: Мэдрэгчийн уншилтыг UbiDots дээр нийтлэх
- Алхам 6: Өгөгдлийг дүрслэн харуулах
- Алхам 7: Ерөнхий код
Видео: MQTT ашиглан утасгүй даралт мэдрэгчийн мэдээллийг нийтлэх: 7 алхам
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
- XCTU
- Labview хэрэгсэл
Алхам 2: Утасгүй даралт ба температур мэдрэгч
Онцлог шинж чанарууд
- Аж үйлдвэрийн зэрэг мэдрэгч урт хугацааны утасгүй даралтын температур мэдрэгч
- Ажиллах хүрээ 0 -ээс 14000 мбар -40 ° -аас +85 ° C (-40 ° -аас 185 ° F)
- Дотоод тооцооллын даралтын нарийвчлал 0.012-0.065 mbar
- Тохируулах боломжтой дотоод тооцооны температурын нарийвчлал 0.002 -аас 0.012 ° C хүртэл
- Нарийвчлал ± 2.5 мбар, ± 2 ° C
- Үнэмлэхүй даралт, харьцангуй даралт ба харьцангуй өндрийн өөрчлөлтийн гаралт
- Антентай 2 милийн шугамын хүрээ
- Өндөр ашиг олох антентай 28 миль хүртэлх дээд зэргийн LOS хүрээ
- Raspberry Pi, Microsoft® Azure®, Arduino болон бусад интерфэйсүүд
- DigiMesh® ашиглан утасгүй сүлжээ
Labview Utility болон XCTU ашиглан утасгүй даралт ба температур мэдрэгчийг тохируулах
Мэдрэгч нь хоёр горимд ажилладаг
- Тохиргооны горим: Pan ID, саатал, дахин оролдлого хийх тоо гэх мэтийг тохируулна уу.
- Ажиллуулах горим: Бид төхөөрөмжийг Run горимд ажиллуулж байна. Эдгээр утгыг шинжлэхийн тулд бид Labview хэрэгслийг ашиглаж байна
Энэхүү Labview UI нь утгыг сайхан графикаар харуулдаг. Энэ нь одоогийн болон өнгөрсөн үеийн үнэ цэнийг харуулдаг. Та энэ линкээр орж Labview UI татаж авах боломжтой. Ажиллах горим руу очихын тулд буух хуудасны цэснээс Run дүрс дээр дарна уу.
Алхам 3: WiFi сүлжээнд холбогдох
Бид олзлогдсон порталыг ашиглан WiFi -ийн итгэмжлэлийг хадгалах, IP тохиргоогоор гүйлгэх болно. Олзлогдсон портал дээрх дэлгэрэнгүй танилцуулгыг авахын тулд та дараахь зааварчилгааг үзэх боломжтой.
Олзлогдсон портал нь Статик ба DHCP тохиргоонуудын хооронд сонголт хийх боломжийг бидэнд олгодог. Статик IP, дэд сүлжээний маск, гарц, утасгүй мэдрэгчийн гарц зэрэг итгэмжлэлийг оруулна уу.
Wi -Fi сүлжээ болон RSSI -ийг харуулсан жагсаалт бүхий вэб хуудсыг зохион байгуулж байна. WiFi сүлжээ, нууц үгээ сонгоод илгээхийг оруулна уу. Итгэмжлэлийг EEPROM -д, IP тохиргоог SPIFFS -д хадгалах болно. Энэ талаар дэлгэрэнгүйг энэхүү зааварчилгаанаас олж болно.
Алхам 4: ESP32 дээр UbiDots -ийг тохируулах
Энд бид ESP 32 төхөөрөмжтэй Утасгүй даралт ба температур мэдрэгчийг ашиглан температур, чийгшлийн мэдээллийг авдаг. Бид MQTT протоколыг ашиглан өгөгдлийг UbiDots руу илгээж байна. 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) /////// дахин хүлээн авсан өгөгдөл зөв эсэхийг шалгахын тулд {хэрэв (өгөгдөл [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 ("Firmware хувилбар"); Serial.println (өгөгдөл [17]); 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 ("Дельтийн өндөр:"); 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 процессын толгой файлыг оруулна уу
#оруулах
үйлчлүүлэгчийн нэр, брокерийн хаяг, жетоны ID гэх мэт MQTT -ийн бусад хувьсагчдыг тодорхойлох
#define TOKEN "BBFF-**********************************" // Таны Ubidots TOKEN#тодорхойлох MQTT_CLIENT_NAME "****************************"
char mqttBroker = "things.ubidots.com";
ачааны ачаалал [100]; char сэдэв [150]; // жетоны ID токеныг хадгалах хувьсагч үүсгэх
Алхам 5: Мэдрэгчийн уншилтыг UbiDots дээр нийтлэх
Өөр өөр мэдрэгчийн өгөгдлийг хадгалах хувьсагч үүсгэх ба сэдвийг хадгалах char хувьсагч үүсгэх
#define VARIABLE_LABEL_TEMPF "tempF" // Хувьсагчийн шошго өгөх #тодорхойлох VARIABLE_LABEL_TEMPC "tempC" // Хувьсагчийн шошгыг тодорхойлох #define VARIABLE_LABEL_BAT "bat" #хувьсах шошгыг тодорхойлох "// чийглэг" тодорхойлох
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 дээр нийтэлдэг
Алхам 6: Өгөгдлийг дүрслэн харуулах
- Ubidots руу ороод данс руугаа нэвтэрнэ үү.
- Дээд талд жагсаасан Өгөгдлийн таб дээрээс Хяналтын самбар руу очно уу.
- Шинэ виджет нэмэхийн тулд "+" дүрс дээр дарна уу.
- Жагсаалтаас виджет сонгоод хувьсагч болон төхөөрөмж нэмнэ үү.
- Мэдрэгчийн өгөгдлийг янз бүрийн виджет ашиглан хяналтын самбар дээр дүрслэх боломжтой.
Алхам 7: Ерөнхий код
HTML болон ESP32 -ийн Over кодыг энэ GitHub репозитороос олж болно.
Зээл
- ncd ESP32 таслах самбар.
- ncd утасгүй даралт ба температур мэдрэгч
- pubsubclient
- UbiDots
- Ажлын хуваарьлагч
Зөвлөмж болгож буй:
ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: 6 алхам (зурагтай)
ESP32 Xiaomi Hack - Мэдээллийг утасгүй авах: Эрхэм хүндэт найзууд, өөр зааварчилгаанд тавтай морил! Өнөөдөр бид Xiaomi -ийн температур ба чийгшлийн мониторыг ESP32 хавтангийн Bluetooth функцийг ашиглан дамжуулдаг өгөгдлийг хэрхэн олж авах талаар сурах болно. Таны харж байгаагаар би ESP32 самбар ашиглаж байна
Node-RED ашиглан утасгүй чичиргээ ба температур мэдрэгчийн өгөгдлийг MySQL-д ашиглах: 40 алхам
Node-RED ашиглан утасгүй чичиргээ ба температурын мэдрэгчийн өгөгдлийг MySQL-д ашиглах: Утасгүй сүлжээний сүлжээний бүтцийг ашиглан 2 миль хүртэлх зайтай NCD-ийн урт хугацааны IoT үйлдвэрлэлийн утасгүй чичиргээ, температур мэдрэгчийг танилцуулж байна. Нарийвчилсан 16 битийн чичиргээ ба температур мэдрэгчийг агуулсан энэхүү төхөөрөмж нь
Node-RED ашиглан утасгүй чичиргээ ба температур мэдрэгчийн өгөгдлийг Excel руу илгээх: 25 алхам
Node-RED ашиглан утасгүй чичиргээ ба температур мэдрэгчийн өгөгдлийг Excel-д илгээх: Утасгүй сүлжээний сүлжээний бүтцийг ашиглан 2 миль хүртэлх зайтай NCD-ийн урт хугацааны IoT үйлдвэрлэлийн утасгүй чичиргээ, температур мэдрэгчийг танилцуулж байна. Нарийвчилсан 16 битийн чичиргээ ба температур мэдрэгчийг агуулсан энэхүү төхөөрөмж нь
Улаан зангилааг ашиглан NCD утасгүй температур ба чийгшил мэдрэгчийн имэйлийн анхааруулга үүсгэх: 22 алхам
NCD-Улаан ашиглан NCD утасгүй температур ба чийгшил мэдрэгчийн имэйлийн сэрэмжлүүлэг үүсгэх: Бид энд NCD-ийн температур ба чийгшлийн мэдрэгчийг ашиглаж байгаа боловч ncd бүтээгдэхүүний аль алинд нь ижил алхмууд байгаа тул хэрэв та бусад ncd утасгүй мэдрэгчтэй бол үүнийг туршиж үзээрэй. хажуугаар нь ажиглаарай. Энэ текстийг зогсоохын тулд та
UbiDots-ESP32 холбож, олон мэдрэгчийн мэдээллийг нийтлэх: 6 алхам
UbiDots-ESP32-ийг холбох ба олон мэдрэгчийн мэдээллийг нийтлэх: ESP32 ба ESP 8266 нь IoT-ийн салбарт маш сайн танил болсон SoC юм. Эдгээр нь IoT төслүүдийн хувьд сайн зүйл юм. ESP 32 бол нэгдсэн WiFi болон BLE төхөөрөмж юм. Зүгээр л SSID, нууц үг, IP -ийнхээ тохиргоог өгөөд эдгээр зүйлийг нэгтгээрэй