Mundarija:
- 1 -qadam: CROUTON
- 2 -qadam: krutonni assimilyatsiya qilish
- 3 -qadam: QURILMA YIG'ISHI
- 4 -qadam: FIRMWARE
- 5 -qadam: QURILMA KARTI
- 6 -qadam: WEEKVIEW kartasi
- 7 -qadam: MAXSUS XUSUSIYATLARNI NUQTASI
- 8 -qadam: VIDEOS
Video: IOT123 - SENSOR HUBINI ASSIMILASH: ICOS10 CORS WEBCOMPONENTS: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-31 10:26
ASSIMILATE SENSOR/ACTOR Slaves Crouton vizualizatsiyasini aniqlash uchun ishlatiladigan metadatalarni joylashtiradi. Bu qurilish avvalgilaridan biroz farq qiladi; apparat o'zgarishlari yo'q. Mikrodastur endi AssimilateCrouton -ning so'nggi versiyasiga qo'shilishi mumkin bo'lgan maxsus (boy) muharrirlarni joylashtirishni qo'llab -quvvatlaydi. Ushbu maqolada dasturiy ta'minot va MQTT boshqaruv panelini tushuntirishga ko'proq e'tibor qaratiladi.
WebComponents -ga ular boshqaradigan qurilmadan xizmat ko'rsatishning afzalliklaridan biri shundaki, qurilmaning yanada takomillashtirilgan boshqaruvi qurilma ulangan tarmoq bilan chegaralanadi: sizning WiFi kirish nuqtangiz. Garchi siz autentifikatsiya bilan MQTT serveridan foydalansangiz, xuddi shunday himoya mavjud, lekin agar siz brauzeringizni bir zum tark etsangiz (AssimilateCrouton veb -sayti), umumiy tarmoqlarda kimdir sizning avtomatlashtirish qurilmalaringizga kirishi mumkin. Bu CORS WebComponent xususiyati faqat o'qishlar (harorat, yorug'lik darajasi, namlik) va faqat buyruqlar funktsiyalarini (yoqish/o'chirish, rejalashtirish) faqat qurilma tarmog'ida mavjud bo'lishini ta'minlaydi.
Qurilmada SPIFFS -da autentifikatsiya va xostingga ega bo'lgan barcha veb -server funktsiyalari hali ham qo'llab -quvvatlanadi, lekin CORS (Cross Origin Resource Sharing) qo'llab -quvvatlashiga Polimer WebComponents (Crouton Polymer 1.4.0 dan foydalanadi) uchun alohida e'tibor qaratiladi.
AssimilateCrouton -da (IOT tarmog'ini assimilyatsiya qilish uchun ishlatiladigan Crouton vilkasi) o'zgarishlarga quyidagilar kiradi:
- boshqa narsalar qatorida foydalanuvchi uchun qurilma uchun individual kartalarni ko'rsatadigan va yashiradigan Qurilma kartasini (assim-qurilma) qo'llab-quvvatlash.
- karta uchun foydali kontekstli ma'lumotni ko'rsatadigan barcha kartalardagi info xususiyati
- CORS veb -komponentlarini qo'llab -quvvatlash, bu holda qurilmadagi veb -serverda joylashgan (ESP8266).
1 -qadam: CROUTON
Croutonis - IOT qurilmalarini minimal sozlash bilan vizualizatsiya qilish va boshqarish imkonini beruvchi asboblar paneli. Aslida, bu har qanday IOT apparat ixlosmandlari uchun faqat MQTT va JSON yordamida sozlashning eng oson paneli.
ASSIMILATE SLAVES (datchiklar va aktyorlar) o'rnatilgan metadata va xususiyatlarga ega, bu uskuna Crouton asboblar panelini qurishda foydalanadigan InInfo json paketini qurishda foydalanadi. ASSIMILATE NODES va Crouton o'rtasidagi vositachi - bu MQTT brokeridir, u veb -saytlarga mos keladi: chivin demo uchun ishlatiladi.
ASSIMILATE MASTER xususiyatlarni so'raganligi sababli, javob qiymatlarini Crouton yangilanishlari uchun kerakli formatda formatlaydi. AssimilateCrouton vilkasi sizning qurilmangizni boshqaradigan biznes qoidalarini markazsizlashtirishga imkon beradigan ba'zi xususiyatlarni qo'shadi, ya'ni IOT qurilmasiga hech qanday ko'milgan biznes qoidalari kerak emas, bu faqat MQTT/I2C aloqasi uchun aqlli (ATTINY boshqariladigan) qul aktyorlar va sensorlar uchun quvur..
2 -qadam: krutonni assimilyatsiya qilish
CROUTON OZGARISHLARI
Ajratilgan versiyadagi o'zgarishlar quyidagilarni o'z ichiga oladi.
- Agar oxirgi nuqta yo'l xususiyatiga ega bo'lsa, karta uchun WebComponent CORS manbasi uchun HTMLImportni amalga oshiradi (bu tuzilmadagi ESP8266 veb -serveri).
- CORS WebComponent -dan yuqori bo'lgan har qanday manbalarga xuddi Crouton veb -saytidan xizmat ko'rsatilgandek havola qilinadi; Agar ular istisnolarni yuklay olmasalar, veb -saytdan yo'llarni yuklaydi va yuklaydi.
- joriy vaqt mahalliy vaqtning yuqori o'ng burchagida ko'rsatiladi, bu tekshiruvni rejalashtirish uchun foydalidir.
POLIMERGA VOZALIK VA KORS
Polimer qaramlik daraxtining barglari CORSda joylashtirilishi mumkin. Ildizga bog'liqlik ilovada bir necha marta ishlatilishi mumkinligi sababli, ularga 2 joydan (veb -sayt va qurilma) havola qilish mumkin emas, chunki polimer modulli yuklovchi ularni ikkita alohida manba sifatida ko'rib chiqadi va bir nechta ro'yxatga olish xatolari dasturni tez o'chiradi.
Shu sababli, karta uchun WebComponent (HTML fayli 1.4.0) va unga tegishli CSS fayli qurilmada joylashgan yagona fayllardir. Boshqa bog'liqliklar xuddi WebComponent boshlang'ich veb -saytning "html" papkasida joylashgandek ko'rsatiladi, bu esa ESP8266 -da SPIFFS -ga yuklashga tayyor bo'lgunga qadar o'sha papkadan WebComponents -ni ishlab chiqishni osonlashtiradi. AssimilateCrouton to'g'ri fayllarni qanday olish kerakligini aniqlaydi.
ISHLAB CHIQISH
original Crouton -ning yaratuvchisi edfungus manbani Pug/Less -da yozgan va NPM/Grunt asboblar zanjiriga ega edi. Men Pug/Less -ni HTML/CSS formatida ko'rsatdim va faqat ko'rsatilgan fayllarni tahrir qildim/tarqatdim. Bu NPM/Grunt asboblar zanjirini sindirdi. Buni tuzatish FUTURE bo'limida keltirilgan.
Siz asboblar panelini DEV qutisida mahalliy darajada sinab ko'rishingiz mumkin:
- Ildiz papkasidagi buyruq satridan
- npm boshlanishi
- Lite-server https:// localhost: 10001 uchun tuzilgan
Statik veb -serverga joylashtiring:
- node_modules tashqari barcha papkalarni nusxalash
- index.html nusxasini (va, ehtimol, web.config)
Kelajak
Asosiy maqsadlardan biri Polymer3 -ga o'tish va Polymer CLI -dan ishlashdir. IOT ishlab chiquvchilariga o'zlarini ishlab chiqishlari uchun ilg'or tahrirlovchilar va tizimlarni qo'shish ustuvor vazifadir. Oxir -oqibat ilg'or avtomatlashtirilgan tizim butunlay AssimilateCrouton kabi alohida MQTT mijozlaridan ishlaydi.
AssimilateCrouton uchun ishlatilganInInfo paketining namunasi:
{ |
"deviceInfo": { |
"endPoints": { |
"CC_device": { |
"qurilma_ nomi": "ash_mezz_A3", |
"karta turi": "assim-qurilma", |
"ssid": "Corelines_2", |
"ip_addr": "192.168.8.104", |
"so'nggi nuqtalar": [ |
{ |
"sarlavha": "Chiroqlar o'sishi", |
"card-type": "crouton-simple-toggle", |
"so'nggi nuqta": "o'tish" |
}, |
{ |
"sarlavha": "Planter chiroqlari", |
"card-type": "crouton-assim-weekview", |
"so'nggi nuqta": "CC_switch" |
} |
] |
}, |
"CC_switch": { |
"card-type": "assim-weekview", |
"info": "Chiroqlarni 15 daqiqali vaqt oralig'ida yoqish yoki o'chirish", |
"yo'l": "https://192.168.8.104/cors", |
"sarlavha": "Planter chiroqlari", |
"interval_mins": 15, |
"qiymatlar": { |
"qiymat": "" |
} |
}, |
"o'tish": { |
"sarlavha": "Chiroqlar o'sishi", |
"card-type": "crouton-simple-toggle", |
"info": "Vaqti -vaqti bilan chiroqlarni yoqish yoki o'chirish", |
"yorliqlar": { |
"noto'g'ri": "O'chirilgan", |
"rost": "ON" |
}, |
"piktogramma": { |
"yolg'on": "quyosh-o", |
"rost": "quyosh-o" |
}, |
"qiymatlar": { |
"qiymat": 0 |
} |
} |
}, |
"status": "yaxshi", |
"ism": "ash_mezz_A3", |
"tavsif": "Ashmore ofis, Mezzanine, A2 maydoni", |
"rang": "#4D90FE" |
} |
} |
GitHub tomonidan ❤ bilan uyushtirilgan rawdeviceInfo.json -ni ko'rish
3 -qadam: QURILMA YIG'ISHI
Uskuna o'zgarishi bo'lmaganligi sababli, tegishli ma'lumotlarga havolalar:
- Qobiq yig'ilishi
- Materiallar va asboblar
- MCUga tayyorgarlik
- MCU uy -joy tayyorlash
- Qullarning past tomonli tugmachasini qurish/RESET-ni o'rnatish
- Asosiy komponentlarni yig'ish
4 -qadam: FIRMWARE
BU QURILISHNI ASOSIY O'ZGARTIRADI
AssimilateCrouton ilovasi qurilmadan CORS resurslaridan foydalana olishi uchun javob sarlavhalarini maxsus tarzda sozlash kerak edi. Bu dasturiy ta'minotning ushbu versiyasida amalga oshirildi (static_server.ino => server_file_read ()).
Bundan tashqari, Polimer uchun asosiy qaramlik grafigi bitta manbadan bo'lishi kerak edi. Qurilmada mavjud bo'lmagan manbalarni AssimilateCrouton veb -saytidan qayta yuklash uchun SPIFFS CORS fayllariga xato ishlagichini (corsLinkOnError) qo'shish strategiyasi ishlatilgan.
DeviceInfo -da yaratilgan so'nggi nuqtalarni sozlash uchun SPIFFS fayl tizimiga 2 ta yangi konventsiya qo'shilgan - AssimilateCrouton asboblar paneli kartalarini yaratish uchun foydalanadi:
- /config/user_card_base.json Oxirgi nuqta ta'rifi, ish vaqti o'zgaruvchilari avval almashtiriladi:,,. Odatda bu erda assim-qurilma kartasi qo'shiladi. Bu qurilma bilan aloqa o'rnatmaydi.
- /config/user_card_#.json Oxirgi nuqta ta'rifi, ish vaqti o'zgaruvchilari avval almashtiriladi:,,. Bu odatda assim-haftalik ko'rish kartasi kabi boy muharrirlar #ga tegishli I2C quliga (aktyor/sensor) qo'shiladi.
Eskiz/kutubxonalar
Ushbu bosqichda loyiha AssimilateBus Arduino kutubxonasi uchun namuna sifatida yig'ilgan. Bu asosan Arduino IDE -dan barcha kerakli fayllarga kirishni osonlashtirish uchun. Asosiy kod artefaktlari:
- mqtt_crouton_esp8266_cors_webcomponents.ino - asosiy kirish nuqtasi.
- assimilate_bus.h/assimilate_bus.cpp - qul sensori/aktyorlari bilan I2C aloqasini boshqaradigan kutubxona.
- VizJson.h/VizJson.cpp - MQTT orqali chop etiladigan har qanday JSON formatlaydigan/quradigan kutubxona.
- config.h/config.cpp - SPIFFS -da konfiguratsiya fayllarini o'qadigan/qutilari/yozadigan kutubxona
- static_i2c_callbacks.ino - qabul qilinayotgan mulk uchun I2C qayta qo'ng'iroqlar va qullar so'rovlari tsikli to'liq static_mqtt.ino - MQTT funktsiyalari
- static_server.ino - veb -server vazifalari
- static_utility.ino - yordamchi vazifalari
Statik INO funktsiyalari turli sabablarga ko'ra ishlatilgan (kutubxonalar o'rniga), lekin asosan Webserver va MQTT funktsiyalari birgalikda yaxshi o'ynashi uchun.
SPIFFS RESURSLARI
SPIFFS fayllarining batafsil tushuntirishlarini bu erda topishingiz mumkin.
- favicon.ico - Ace muharriri tomonidan ishlatilgan manba
- konfiguratsiya
- device.json - qurilma konfiguratsiyasi (Wifi, MQTT…)
- slave_metas _#. json - har bir qul manzili raqami uchun ish vaqtida hosil qilinadi (#)
- user_card _#. json - har bir qo'shimcha manzil raqami (#) uchun qurilma ma'lumotlariga birlashtirilgan maxsus oxirgi nuqta.
- user_card_base.json - qurilma uchun deviceInfo -ga qo'shiladigan maxsus oxirgi nuqta
- user_meta _#. json - har bir qul manzili raqami uchun maxsus metadata qullarning o'rnini bosadi (#)
- user_props.json - qullarning metadatasidagi nomlarini bekor qilish uchun maxsus mulk nomlari
-
korslar
- card -webcomponent.css - har xil maxsus kartalar uchun uslublar jadvali
- card -webcomponent.html - har xil maxsus kartalar uchun veb -komponent
-
muharrir
- assimilate -logo-p.webp" />
- edit.htm.gz - Ace Editor HTML gzip
- edit.htm.src - Ace muharririning asl HTML -si
- favicon -32x32-p.webp" />
ISHLAB CHIQARISH yuklanmoqda
- Kod omborini bu erda topish mumkin (oniy tasvir).
- Bu erda kutubxonaning ZIP kodini topishingiz mumkin (rasm).
- Bu erda "ZIP kutubxonasini import qilish" bo'yicha ko'rsatmalar.
- Kutubxona o'rnatilgandan so'ng siz "mqtt_crouton_esp8266_cors_webcomponents" misolini ochishingiz mumkin.
- Bu erda Wemos D1 Mini uchun Arduino -ni sozlash bo'yicha ko'rsatmalar.
- Bog'liqliklar: ArduinoJson, TimeLib, PubSubClient, NeoTimer (agar omborlardagi o'zgarishlar buzilsa, qo'shimchalarga qarang).
SPIFFS yuklash
Kod Arduino IDE -ga yuklanganidan so'ng, data/config papkasida device.json -ni oching:
- Wi -Fi SSID yordamida wifi_ssid qiymatini o'zgartiring.
- Wi -Fi kaliti yordamida wifi_key qiymatini o'zgartiring.
- Mqtt_device_name qiymatini o'zingiz tanlagan qurilma identifikatori bilan o'zgartiring (qo'shilish shart emas).
- Qurilma tavsifi bilan mqtt_device_description qiymatini o'zgartiring (Croutonda).
- Qurilmani saqlang.json.
- Ma'lumot fayllarini SPIFFS -ga yuklang.
AssimilateBus misoli uchun asosiy kirish nuqtasi:
/* |
* |
*QURILMALARINGIZNING BIZNES QOIDALARI MQTT orqali boshqarilishi kutilmoqda - bu dasturiy ta'minotda qattiq pishirilmagan. |
* |
* Ushbu faylda sozlash va ko'chadan tashqari |
* muhim harakatlanuvchi qismlar |
* on_bus_received va on_bus_complete static_i2c_callbacks.ino saytida |
* va |
* mqtt_publish va mqtt_callback static_mqtt.ino da |
* |
*/ |
#"type.h" ni qo'shing |
#"VizJson.h" ni qo'shing |
#"assimilyatsiya_bus.h" ni qo'shing |
#"debug.h" ni qo'shing |
#"config.h" ni qo'shing |
#qo'shing |
#qo'shing // MQTT_MAX_PACKET_SIZE ni ~ 3000 ga sozlang (yoki sizning ehtiyojlaringizga deviceInfo json). |
#qo'shing |
#qo'shing |
#qo'shing |
#qo'shing |
#qo'shing |
// -------------------------------- Xotira deklaratsiyalari |
// ------------------------------------------------ - belgilaydi |
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMUMUM, RELEASE, FULL |
#define_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS |
#de_mqtt_sub_topic "inbox" ni belgilang |
// ------------------------------------------------ - sinf ob'ektlari |
Debug _debug (DBG_OUTPUT_FLAG); |
AssimilateBus _assimilate_bus; |
VizJson _viz_json; |
_Config_data -ni sozlash; |
WiFiClient _esp_client; |
PubSubClient _client (_esp_client); |
WiFiUDP Udp; |
ESP8266WebServer _server (80); |
Neotimer _timer_property_request = Neotimer (5000); |
// ------------------------------------------------ - ma'lumotlar tuzilmalari / o'zgaruvchilari |
RuntimeDeviceData _runtime_device_data; |
PropertyDto _dto_props [50]; // maksimal 10 ta qul x maksimal 5 ta xususiyat |
// ------------------------------------------------ - nazorat qilish oqimi |
volatilebool _sent_device_info = noto'g'ri; |
bayt _dto_props_index = 0; |
bool _fatal_error = noto'g'ri; |
// -------------------------------- FUNKSIYA QO'LLANIShI BILANCHALARI |
// ------------------------------------------------ - static_i2c_callbacks.ino |
voidon_bus_received (bayt slave_address, bayt prop_index, Rol roli, char nomi [16], char qiymati [16]); |
voidon_bus_complete (); |
// ------------------------------------------------ - static_mqtt.ino |
voidmqtt_callback (char* mavzu, bayt* yuk, imzosiz uzunlik); |
voidmqtt_loop (); |
int8_tmqtt_get_topic_index (char* mavzu); |
voidmqtt_init (constchar* wifi_ssid, constchar* wifi_password, constchar* mqtt_broker, int mqtt_port); |
voidmqtt_create_subscription (); |
voidmqtt_publish (char *root_topic, char *deviceName, char *endpoint, constchar *payload); |
boolmqtt_ensure_connect (); |
voidmqtt_subscribe (char *root_topic, char *deviceName, char *endpoint); |
voidi2c_set_and_get (bayt manzili, bayt kodi, constchar *parametr); |
// ------------------------------------------------ - static_server.ino |
String server_content_type_get (String fayl nomi); |
boolserver_path_in_auth_exclusion (String yo'l); |
boolserver_auth_read (String yo'l); |
boolserver_file_read (String yo'l); |
voidserver_file_upload (); |
voidserver_file_delete (); |
voidserver_file_create (); |
voidserver_file_list (); |
voidserver_init (); |
voidtime_services_init (char *ntp_server_name, bayt time_zone); |
time_tget_ntp_time (); |
voidsend_ntp_packet (IPAddress va manzil); |
char *time_stamp_get (); |
// ------------------------------------------------ - static_utility.ino |
String spiffs_file_list_build (String yo'l); |
voidreport_deserialize_error (); |
voidreport_spiffs_error (); |
boolcheck_fatal_error (); |
boolget_json_card_type (bayt slave_adress, bayt prop_index, char *card_type); |
boolget_struct_card_type (bayt slave_address, bayt prop_index, char *card_type); |
boolget_json_is_series (bayt slave_adress, bayt prop_index); |
voidstr_replace (char *src, constchar *oldchars, char *newchars); |
bayt get_prop_dto_idx (bayt slave_adress, bayt prop_index); |
// -------------------------------- ASOSIY |
voidsetup () { |
DBG_OUTPUT_PORT.begin (115200); |
SetupDeviceData device_data; |
Serial.println (); Serial.println (); // konsol axlatlari uchun chegara |
kechikish (5000); |
agar (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (rost); |
_debug.out_fla (F ("sozlash"), to'g'ri, 2); |
// kerakli konfiguratsiyani oling |
agar (SPIFFS.begin ()) { |
_debug.out_str (spiffs_file_list_build ("/"), rost, 2); |
agar (! _config_data.get_device_data (device_data, _runtime_device_data)) { |
report_deserialize_error (); |
qaytish; |
} |
} boshqa { |
report_spiffs_error (); |
qaytish; |
} |
// device.json -da o'rnatilgan taymer qiymatidan foydalaning |
_timer_property_request.set (device_data.sensor_interval); |
mqtt_init (device_data.wifi_ssid, device_data.wifi_key, device_data.mqtt_broker, device_data.mqtt_port); |
time_services_init (device_data.ntp_server_name, device_data.time_zone); |
server_init (); |
// metadata to'plamini ishga tushiring |
_assimilate_bus.get_metadata (); |
_assimilate_bus.print_metadata_details (); |
mqtt_ensure_connect (); |
// metadata yig'ilishini yakunlash uchun sensor xossasi (ismlari) kerak |
_assimilate_bus.get_properties (avtobusda_ qabul qilingan, avtobusda_to'liq); |
_timer_property_request.reset (); // bu vaqtgacha ma'lum vaqt o'tishi mumkin, shuning uchun uni qaytadan boshlang |
} |
voidloop () { |
agar (! check_fatal_error ()) qaytsa; |
mqtt_loop (); |
_server.handleClient (); |
agar (_timer_property_request.repeat ()) { |
_assimilate_bus.get_properties (avtobusda_ qabul qilingan, avtobusda_to'liq); |
} |
} |
rawmqtt_crouton_esp8266_cors_webcomponents.ino ni GitHub ❤ tomonidan joylashtirilganini ko'rish.
5 -qadam: QURILMA KARTI
Qurilma kartasi (karta turi: assim-qurilma) veb-saytda joylashtirilgan va unga qurilmadan xizmat ko'rsatish shart emas (CORS).
Uning standart sahifalari ro'yxati:
- Qurilmaga o'qish va yozish uchun MQTT mavzulari
- Kirish nuqtasi qurilma ulangan
- ACE EDITOR yordamida qurilmada joylashtirilgan SPIFFS fayl muharririga havola
- Kartani ko'rsatish/yashirish sahifasini ochadigan ko'z belgisi.
Kartani ko'rsatish/yashirish sahifalari ro'yxati:
- Har bir karta alohida element sifatida
- Ko'rsatishda qalin ko'k shrift
- Qora oddiy shrift yashiringanda
- Karta turini tasvirlaydigan belgi.
Kartani yashirish uchun kartalardagi yashirish tugmachasini bosish yoki ro'yxatdagi ko'k-shriftli elementni bosish mumkin. Ro'yxatdagi qora-normal shriftli elementni bosish orqali kartalarni ko'rsatish mumkin.
Ma'lumot tostlari bu xususiyat bilan bog'liq. Agar deviceInfo -dagi so'nggi nuqtalardan birida ma'lumot xususiyati tayinlangan bo'lsa, kartadagi yashirish tugmasi yonida ma'lumot tugmasi ko'rsatiladi. Oxirgi nuqtada aniqlangan kontekstli ma'lumot bosilganda, oynaga "tushadi".
Agar qurilma kartasi aniqlanmagan bo'lsa, kartalarda yashirish tugmalari ko'rsatilmaydi. Buning sababi shundaki, bir marta yashirganingizda, ularni ko'rsatishning iloji yo'q.
ESP8266-dagi SPIFFS fayllari orqali assim-karta kartasini qanday qo'shish mumkinligi haqida ma'lumot olish uchun ENDPOINT CUSTOMIZATION ga qarang.
AssimilateCrouton veb -komponentasi
IKONI YOSHLASH |
QURILMA FORMASI |
div> |
Ro'yxatni yashirish |
shablon> |
qog'oz ro'yxati> |
div> |
crouton kartasi> |
shablon> |
dom-modul> |
GitHub ❤ tomonidan joylashtirilgan rawassim-device.html-ni ko'ring
6 -qadam: WEEKVIEW kartasi
Haftalik ko'rish kartasi (karta turi: assim-weekview) qurilmada joylashgan (cors papkasi). U SPIFFS ga config/user_card _#. Json faylini qo'shish orqali AssimilateCrouton uchun chop etilgan deviceInfo paketiga kiritiladi (bu holda user_card_9.json).
UMUMIY
Ish kunlari vaqt oralig'i ro'yxati sifatida taqdim etiladi. Vaqt oralig'ining tafsilotlari config/user_card _#. Json da "interval_mins" xususiyati bilan o'rnatiladi. Bu bir soatning bir qismi yoki bir vaqtning ko'paytmasi bo'lishi kerak. 10, 15, 20, 30, 60, 120, 360. Vaqt oralig'ini bosish, o'sha vaqtda bog'liq qurilma uchun yoqilgan holatni tasdiqlaydi. Agar vaqt oralig'i hozir bo'lsa, darhol qurilma uchun buyruq yuboriladi (e'lon qilinadi). Odatda davlat har daqiqada tekshiriladi/e'lon qilinadi. Tanlovlar LocalStorage -da saqlanadi, shuning uchun vaqtlar brauzer yangilanishi bilan qayta yuklanadi.
VAZIYATLARDAN FOYDALANISH
Hozirgi holatida, haftalik ko'rish holati vizualizatsiya qilish uchun Toggle tugmachasini ishlatadigan qurilmalar uchun javob beradi, ya'ni ular yoqilgan yoki o'chirilgan va o'rnatilgandan so'ng ular shu holatda qoladilar. Chiroqlar, fanatlar va suv isitgichlari yaxshi nomzodlardir.
Cheklovlar/ogohlantirishlar
- Interval_mins yuqorida ko'rsatilgan qiymatlardan biri bo'lishi kerak
- Haftalik ko'rinish, shuningdek, rejalashtirilgan bir lahzali harakatlarni qo'llab -quvvatlamaydi, masalan, kuniga ikki marta qisqa (5 soniya) ochish.
Kelajak
- Vaqtinchalik harakatlar qo'llab -quvvatlanishi kutilmoqda.
- Jadvalni tanlash uchun qurilmalarda sinxronlangan saqlash joyi ko'rib chiqilmoqda.
7 -qadam: MAXSUS XUSUSIYATLARNI NUQTASI
FIRMWARE -da qisqacha aytib o'tilganidek, so'nggi nuqtalarni sozlash uchun SPIFFS fayl tizimiga 2 ta yangi konventsiya qo'shilgan. JSON fayllari MQTT brokeriga joylashtirilgan deviceInfo paketidagi so'nggi nuqta xususiyatiga qo'shiladigan bo'laklar bo'lib, ular asboblar paneli ta'rifiga aylanadi.
Oxirgi nuqtalarning kalitlari dasturiy ta'minotda yaratiladi:
- User_card_base.json uchun CC_device (Maxsus karta)
- _. Json foydalanuvchi_kartasi uchun CC_SLAVE_ENDPOINT NAME (# qul manzili)
Yuqorida aytib o'tilganidek, ish vaqtida qiymatlar almashtiriladigan o'zgaruvchilar mavjud:
- mqtt_device_name
- wifi_ssid
- mahalliy_ip
user_card_base.json
Misol:
user_card _#. json
Misol:
8 -qadam: VIDEOS
Tavsiya:
IOT123 - D1M BLOCK - 2xAMUX yig'ilishi: 7 qadam (rasmlar bilan)
IOT123 - D1M BLOCK - 2xAMUX yig'ilishi: D1M BLOCKS mashhur Wemos D1 Mini SOC/Shields/Clones uchun sezgir qutilar, teglar, qutbli yo'riqnomalar va uzilishlarni qo'shadi. ESP8266 chipining muammolaridan biri shundaki, u faqat bitta analog IO piniga ega. Bu ko'rsatma 2xA ni qanday yig'ishni ko'rsatadi
IOT123 - D1M BLOCK - RFTXRX yig'ilishi: 8 qadam
IOT123 - D1M BLOCK - RFTXRX Assambleyasi: D1M BLOCKS mashhur Wemos D1 Mini SOC/Shields/Clones uchun sezgir qutilar, teglar, qutbli yo'riqnomalar va uzilishlarni qo'shadi. RF uzatgichlari/qabul qiluvchilari ESP8266 -ga mavjud uy/sanoat avtomatizatsiyasiga kirishga imkon beradi. Ushbu korpus 433/
IOT123 - SENSORNI ASSIMILASH: MAX9812: 4 qadam
IOT123 - ASSIMILATE SENSOR: MAX9812: Microphone Amplifier Sound MIC 3.3V / 5V Fixed Gain 20dB.Bu qurilish I2C MAX9812 BRICK -ga asoslangan, agar sozlanishi daromad kerak bo'lsa, men ushbu sensorni MAX4466 -ga almashtirishni maslahat beraman. bu qo'shilgan har
IOT123 - AKTORNI ASSIMILASH: KY019: 4 qadam
IOT123 - ASSIMILAT ACTOR: KY019: U 5V TIL boshqaruv signaliga ega, u DC / AC signalini boshqarishi mumkin, bu qurilish I2C KY019 BRICK ga asoslangan. Agar sizga 2 ta kanal kerak bo'lsa, men bu aktyorni 2CH RELAY BRICK bilan almashtirishni tavsiya qilaman. ASSIMILAT ACTORS/SENSORS - atrof -muhit aktyorlari/senso
IOT123 - SENSORNI ASSIMILASH: MQ2: 4 qadam
IOT123 - ASSIMILATE SENSOR: MQ2: ASSIMILATE SENSORS - bu qo'shimcha apparat va dasturiy ta'minotni ajratish qatlamiga ega bo'lgan atrof -muhit sensorlaridir, bu esa ASSIMILATE SENSOR HUB -ga mutlaqo yangi turlarni qo'shish va o'qishni kodsiz MQTT serveriga yuborish imkonini beradi