Агуулгын хүснэгт:

IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS: 8 алхам
IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS: 8 алхам

Видео: IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS: 8 алхам

Видео: IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS: 8 алхам
Видео: IOT123 - BYKO LIVE RIDE 2024, Долдугаар сарын
Anonim
IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS
IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS
IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS
IOT123 - Мэдрэгч төвийг нэгтгэх: ICOS10 CORS WEBCOMPONENTS

ASSIMILATE SENSOR/ACTOR Slaves нь Crouton дахь дүрслэлийг тодорхойлоход ашигладаг мета өгөгдлийг суулгадаг. Энэхүү бүтэц нь өмнөх загваруудаас арай өөр юм; тоног төхөөрөмжийн өөрчлөлт байхгүй байна. Програм хангамж нь AssimilateCrouton -ийн хамгийн сүүлийн үеийн бүтцэд нэгтгэгдэх боломжтой (илүү баялаг) редакторуудыг байршуулахыг дэмждэг. Энэ нийтлэлд firmware болон MQTT хяналтын самбарыг тайлбарлахад илүү их анхаарал хандуулах болно.

WebComponents -ийг хянадаг төхөөрөмжөөс нь ашиглах давуу талуудын нэг бол төхөөрөмжийн илүү дэвшилтэт удирдлага нь таны холбогдсон сүлжээнд хязгаарлагддаг явдал юм: таны WiFi хандалтын цэг. Хэдийгээр та баталгаажуулалт бүхий MQTT серверийг ашигласны дараа хамгаалалт нь ижил төстэй боловч олон нийтийн сүлжээнд хэрэв та хөтөчөө түр орхивол (AssimilateCrouton вэбсайт) хэн нэгэн таны автоматжуулалтын төхөөрөмжийг удирдах боломжтой болно. Энэхүү CORS WebComponent функц нь зөвхөн төхөөрөмжийн сүлжээнээс унших боломжтой (температур, гэрлийн түвшин, чийгшил) болон командын функцуудыг (асаах/унтраах, хуваарь гаргах) боломжтой болгодог.

Төхөөрөмж дээр SPIFFS -д нэвтрэлт танилт, хостинг бүхий вэб серверийн бүх функцууд дэмжигдсэн хэвээр байгаа боловч Polymer WebComponents (Crouton Polymer 1.4.0 ашигладаг) CORS (Cross Origin Resource Sharing) дэмжлэгт онцгой анхаарал хандуулсан болно.

AssimilateCrouton (IOT сүлжээг ассимиляци хийхэд ашигладаг Crouton -ийн салаа) -д өөрчлөлтүүд орно.

  • Хэрэглэгчийн хувьд төхөөрөмжийн хувийн картуудыг бусад зүйлсийн дунд харуулдаг, нуудаг төхөөрөмжийн карт (ассимум төхөөрөмж) -ийг дэмжих.
  • картын талаархи ашигтай контекст мэдээллийн шарсан талхыг харуулсан бүх карт дээрх мэдээллийн өмч
  • CORS вэб бүрэлдэхүүн хэсгүүдийн дэмжлэг, энэ тохиолдолд төхөөрөмж дээрх вэб сервер дээр байрладаг (ESP8266).

Алхам 1: CROUTON

Крутон
Крутон
Крутон
Крутон

Croutonis бол IOT төхөөрөмжөө хамгийн бага тохируулгатайгаар төсөөлөх, удирдах боломжийг олгодог хяналтын самбар юм. Үндсэндээ энэ нь зөвхөн MQTT болон JSON ашиглан IOT тоног төхөөрөмж сонирхогчдод тохируулах хамгийн хялбар самбар юм.

ASSIMILATE SLAVES (мэдрэгч ба жүжигчид) нь мастерын төхөөрөмжийг бүтээхэд ашигладаг мета өгөгдөл, шинж чанаруудтай бөгөөд Crouton -ийн хяналтын самбарыг бүтээхэд ашигладаг json пакет юм. ASSIMILATE NODES ба Crouton хоёрын зуучлагч нь MQTT брокер бөгөөд вэбсокетуудад ээлтэй: Шумуулыг демо хийхэд ашигладаг.

ASSIMILATE MASTER нь шинж чанар хүсдэг тул энэ нь Crouton -ийн шинэчлэлтүүдэд шаардлагатай форматын хариултын утгыг форматладаг. AssimilateCrouton салаа нь таны төхөөрөмжийг ажиллуулдаг бизнесийн дүрмийг төвлөрлийг сааруулах боломжийг олгодог зарим онцлог шинж чанарыг нэмж өгдөг, өөрөөр хэлбэл IOT төхөөрөмж нь бизнесийн ямар ч дүрмийг шаарддаггүй бөгөөд энэ нь MQTT/I2C холболтыг илүү ухаалаг (ATTINY хяналттай) боолын жүжигчид болон мэдрэгч рүү дамжуулах хоолой юм..

Алхам 2: CROUTON -ийг нэгтгэх

Крутоныг нэгтгэх
Крутоныг нэгтгэх

Крутоны өөрчлөлт

Салаа хувилбарын өөрчлөлтөд дараахь зүйлс орно.

  • хэрэв төгсгөлийн цэг нь path шинж чанарыг тодорхойлсон бол картын WebComponent нь CORS нөөцийг HTMLImport хийх болно (энэ бүтцэд ESP8266 дээрх вэб сервер).
  • CORS WebComponent -аас (хамааралтай) эх үүсвэрийг Crouton вэбсайтаас үйлчилсэн мэтээр иш татдаг; Тэд онцгой тохиолдлыг ачаалж чадаагүй тохиолдолд вэбсайтаас авсан замуудыг дахин ачаалж, ачаалдаг.
  • баталгаажуулалтыг төлөвлөхөд хэрэгтэй орон нутгийн одоогийн цагийг баруун дээд талд харуулна.

ПОЛИМЕРИЙН ХАРИУЦЛАГА, СОР

Полимерээс хамааралтай модны навчийг CORS дээр байрлуулж болно. Аппликешнд үндэс хамаарлыг хэд хэдэн удаа ашиглаж болох тул тэдгээрийг 2 байршлаас (вэбсайт ба төхөөрөмж) лавлах боломжгүй, учир нь Полимер модуль ачигч нь тэдгээрийг 2 тусдаа нөөц гэж үздэг бөгөөд олон бүртгэлийн алдаа нь програмыг хурдан дардаг.

Энэ шалтгааны улмаас картын WebComponent (1.4.0 дэх HTML файл) болон холбогдох CSS файл нь төхөөрөмж дээр байрлуулсан цорын ганц файл юм. Бусад хамаарлыг WebComponent -ийг гарал үүслийн вэбсайт дээрх "html" фолдерт байрлуулсан мэтээр иш татдаг бөгөөд энэ нь ESP8266 дээр SPIFFS -д байршуулахад бэлэн болтол уг хавтаснаас WebComponents -ийг хөгжүүлэхэд хялбар болгодог. AssimilateCrouton нь хэрхэн зөв файлуудыг олж авах талаар ажиллах болно.

ХӨДӨЛГӨӨН

анхны Crouton -ийн edfungus бүтээгч эх сурвалжийг Pug/Less дээр бичсэн бөгөөд NPM/Grunt багаж хэрэгсэлтэй байсан. Би Pug/Less -ийг HTML/css хэлбэрээр хөрвүүлж, үзүүлсэн файлуудыг дөнгөж засварлаж/тараасан. Энэ нь NPM/Grunt хэрэгслийн сүлжээг эвдсэн. Үүнийг засах нь ИРЭЭДҮЙ хэсэгт багтсан болно.

Та хяналтын самбарыг DEV хайрцаг дээрээ орон нутгийн хэмжээнд туршиж үзэх боломжтой.

  • Үндэс фолдер дахь тушаалын мөрөөс
  • npm эхлэх
  • lite-серверийг https:// localhost: 10001 дээр холбосон болно

Статик вэб сервер рүү байршуулах:

  • node_modules -ээс бусад бүх фолдерыг хуулах
  • index.html (магадгүй web.config) хуулах

ИРЭЭДҮЙ

Гол зорилтуудын нэг бол Polymer3 -ийг сайжруулж, Polymer CLI -ээс ажиллах явдал юм. Дэвшилтэт редакторууд болон IOT хөгжүүлэгчдэд өөрсдийнхөө хөгжүүлэлтийн хүрээг нэмэх нь нэн тэргүүний зорилт юм. Эцэст нь дэвшилтэт автомат системийг AssimilateCrouton гэх мэт тусдаа MQTT үйлчлүүлэгчдээс ажиллуулах болно.

AssimilateCrouton-д ашигладаг Informo пакетийн жишээ:

{
"deviceInfo": {
"endPoints": {
"CC_device": {
"төхөөрөмжийн_нэр": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"төгсгөлийн цэгүүд": [
{
"title": "Гэрлийг ургуулах",
"card-type": "crouton-simple-toggle",
"төгсгөлийн цэг": "шилжих"
},
{
"гарчиг": "Тариалагчийн гэрэл",
"card-type": "crouton-assim-weekview",
"төгсгөлийн цэг": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"мэдээлэл": "Гэрлийг 15 минутын хугацаанд асаах, унтраах",
"зам": "https://192.168.8.104/cors",
"гарчиг": "Тариалагчийн гэрэл",
"интервал_минууд": 15,
"утга": {
"утга": ""
}
},
"шилжих": {
"title": "Гэрлийг ургуулах",
"card-type": "crouton-simple-toggle",
"info": "Гэрлийг түр хугацаагаар асаах, унтраах",
"шошго": {
"false": "OFF",
"үнэн": "асаалттай"
},
"дүрс": {
"худал": "нар-о",
"үнэн": "нар-о"
},
"утга": {
"утга": 0
}
}
},
"байдал": "сайн",
"нэр": "ash_mezz_A3",
"description": "Ashmore, Mezzanine, A2 Area дахь оффис",
"өнгө": "#4D90FE"
}
}

GitHub -ийн ❤ дээр зохион байгуулагдсан rawdeviceInfo.json -ийг үзэх

Алхам 3: ТӨХӨӨРӨМЖИЙН ХУРАЛ

ТӨХӨӨРӨМЖИЙН ЧУУЛГАН
ТӨХӨӨРӨМЖИЙН ЧУУЛГАН
ТӨХӨӨРӨМЖИЙН ЧУУЛГАН
ТӨХӨӨРӨМЖИЙН ЧУУЛГАН
ТӨХӨӨРӨМЖИЙН ЧУУЛГАН
ТӨХӨӨРӨМЖИЙН ЧУУЛГАН

Тоног төхөөрөмжийн өөрчлөлт ороогүй тул холбогдох мэдээллийн линкийг энд оруулав.

  • Бүрхүүлийн угсралт
  • Материал ба багаж хэрэгсэл
  • MCU -ийн бэлтгэл
  • MCU -ийн орон сууцны бэлтгэл
  • Боолууд Бага талын унтраалга/ДАХИН тохируулах Охин самбар
  • Гол бүрэлдэхүүн хэсгүүдийг угсрах

Алхам 4: FIRMWARE

ФИРМАВАР
ФИРМАВАР
ФИРМАВАР
ФИРМАВАР
ФИРМАВАР
ФИРМАВАР
ФИРМАВАР
ФИРМАВАР

ЭНЭ БАРИЛГЫН ҮНДСЭН ӨӨРЧЛӨЛТ

AssimilateCrouton програмыг төхөөрөмжөөс CORS нөөцийг ашиглах боломжтой байхын тулд хариултын толгойг тодорхой байдлаар тохируулах шаардлагатай байв. Үүнийг firmware -ийн энэ хувилбарт хэрэгжүүлсэн (static_server.ino => server_file_read ()).

Мөн полимерийн хамаарлын гол график нь нэг гарал үүсэлтэй байх шаардлагатай байв. Асуудал гаргагч (corsLinkOnError) -г SPIFFS CORS файлуудад нэмж, төхөөрөмж дээр байхгүй тохиолдолд AssimilateCrouton вэбсайтаас нөөцийг дахин ачаалах стратегийг ашигласан.

AsimilateCrouton нь хяналтын самбар үүсгэхэд ашигладаг deviceInfo -д үүсгэсэн төгсгөлийн цэгүүдийг тохируулах зорилгоор SPIFFS файлын системд 2 шинэ конвенц нэмж оруулсан болно.

  • /config/user_card_base.json Ажлын цагийн хувьсагчдыг эхлээд сольж байгаа төгсгөлийн цэгийн тодорхойлолт:,,. Энэ нь ихэвчлэн ассимум төхөөрөмжийн картыг нэмж оруулах болно. Энэ нь төхөөрөмжтэй буцаж холбоо барихгүй.
  • /config/user_card_#.json Ажлын цагийн хувьсагчдыг эхлээд сольж байгаа төгсгөлийн цэгийн тодорхойлолт:,,. Энэ нь ихэвчлэн ассим-долоо хоногийн үзэх карт гэх мэт баян редакторуудыг #2-той холбоотой I2C боол (жүжигчин/мэдрэгч) -тэй холбох болно.

СКЕТЧ/НОМЫН САН

Энэ үе шатанд төслийг AssimilateBus Arduino номын санд жишээ болгон багцалсан болно. Энэ нь голчлон шаардлагатай бүх файлыг Arduino IDE -ээс хялбархан авахад зориулагдсан болно. Гол кодын олдворууд нь:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - нэвтрэх гол цэг.
  • assimilate_bus.h/assimilate_bus.cpp - Боол мэдрэгч/жүжигчидтэй I2C холболтыг зохицуулдаг номын сан
  • VizJson.h/VizJson.cpp - MQTT -ээр хэвлэгдсэн JSON форматыг бүрдүүлж/бүтээдэг номын сан
  • config.h/config.cpp - SPIFFS дээр тохиргооны файлуудыг унших/хайрцаглах/бичих номын сан
  • static_i2c_callbacks.ino - үл хөдлөх хөрөнгийн I2C дуудлага хүлээн авах, боолуудын хүсэлтийн мөчлөг бүрэн static_mqtt.ino - MQTT функцууд
  • static_server.ino - вэб серверийн функцууд
  • static_utility.ino - туслах функцууд

Статик INO функцуудыг янз бүрийн шалтгаанаар (номын сангийн оронд) ашигласан боловч ихэвчлэн Webserver болон MQTT функцүүд хоорондоо сайн тоглож чаддаг байхын тулд ашигладаг байсан.

SPIFFS -ийн НӨӨЦ

SPIFFS файлуудын дэлгэрэнгүй тайлбарыг эндээс авах боломжтой.

  • favicon.ico - Ace Editor ашигладаг нөөц
  • тохиргоо

    • device.json - төхөөрөмжийн тохиргоо (Wifi, MQTT…)
    • slave_metas _#. json - боолын хаягийн дугаар тус бүрийг ажиллуулах явцад үүсгэсэн
    • user_card _#. json - slave хаягийн дугаар тус бүрийн хувьд төхөөрөмжийн мэдээлэлд нэгтгэх тусгай төгсгөлийн цэг (#)
    • user_card_base.json - төхөөрөмжид зориулагдсан deviceInfo -д нэгтгэх тусгай төгсгөлийн цэг
    • user_meta _#. json - тусгай мета өгөгдөл нь боолын хаягийн дугаар тус бүрийн боолуудын утгыг дардаг (#)
    • user_props.json - боолуудын мета өгөгдөлд байгаа нэрийг дарж өөрчлөх захиалгат өмчийн нэрс
  • корс

    • card -webcomponent.css - төрөл бүрийн захиалгат картуудад зориулсан загварын хуудас
    • card -webcomponent.html - янз бүрийн захиалгат картуудад зориулсан вэб бүрэлдэхүүн хэсэг
  • редактор

    • assimilate -logo-p.webp" />
    • edit.htm.gz - Ace Editor HTML -ийн gzip
    • edit.htm.src - Ace Editor -ийн анхны HTML
    • favicon -32x32-p.webp" />

ХӨДӨЛМӨРИЙН ХӨДӨЛГӨӨНИЙГ АЧААХ

  • Кодын санг эндээс олж болно (хормын хувилбар).
  • Номын сангийн ZIP -ийг эндээс олж болно (хормын хувилбар).
  • "ZIP номын санг импортлох" зааврыг эндээс үзнэ үү.
  • Номын санг суулгасны дараа "mqtt_crouton_esp8266_cors_webcomponents" жишээг нээж болно.
  • Wemos D1 Mini -д зориулсан Arduino -ийг тохируулах заавар энд байна.
  • Хамаарал: ArduinoJson, TimeLib, PubSubClient, NeoTimer (репозиторуудын өөрчлөлтийг зөрчсөн тохиолдолд хавсралтыг үзнэ үү).

SPIFFS -ийг АЧААХ

Кодыг Arduino IDE -д ачаалсны дараа data/config хавтсанд device.json -ийг нээнэ үү.

  • WiFi SSID ашиглан wifi_ssid -ийн утгыг өөрчилнө үү.
  • WiFi түлхүүр ашиглан wifi_key -ийн утгыг өөрчилнө үү.
  • Mqtt_device_name -ийн утгыг өөрийн хүссэн төхөөрөмжийн таних тэмдгээр өөрчлөх (нэгдэх шаардлагагүй).
  • Mqtt_device_description -ийн утгыг хүссэн төхөөрөмжийн тайлбараар өөрчилнө үү (Crouton дээр).
  • Төхөөрөмжийг хадгалах.json.
  • Өгөгдлийн файлуудыг SPIFFS руу байршуулах.

AssimilateBus-ийн жишээ оруулах гол цэг:

/*
*
*ТАНЫ ТӨХӨӨРӨМЖИЙН БИЗНЕСИЙН Дүрмийг MQTT -ээр хянана гэж найдаж байна.
*
* Энэ файлын тохиргоо ба давталтаас бусад
* Хөдөлгөөний чухал хэсгүүд нь
* static_i2c_callbacks.ino хаягаар автобусны хүлээн авалт болон автобусны_бүрэн
* ба
static_mqtt.ino дахь mqtt_publish ба mqtt_callback
*
*/
#"type.h" -ийг оруулна уу
#"VizJson.h" -ийг оруулна уу
#"Автобусыг шингээх_хэрэглэх" -ийг оруулна уу
#"debug.h" оруулах
#"config.h" -г оруулна уу
#оруулах

#оруулах

// MQTT_MAX_PACKET_SIZE -ийг ~ 3000 болгож тохируулах (эсвэл таны төхөөрөмжийнInfo json -ийн хэрэгцээ)

#оруулах
#оруулах
#оруулах
#оруулах
#оруулах
// ------------------------------- ДУРСАМЖИЙН МЭДЭГДЭЛ
// ------------------------------------------------ - тодорхойлдог
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 МИНИМУМ, ЧӨЛӨӨЛӨХ, БҮРЭН
#тодорхойлох_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS
#тодорхойлох_mqtt_sub_topic "ирсэн имэйл хайрцаг"
// ------------------------------------------------ - ангийн объектууд
Debug _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_bus;
VizJson _viz_json;
_Config_data тохируулах;
WiFiClient _esp_client;
PubSubClient _client (_esp_client);
WiFiUDP Udp;
ESP8266WebServer _server (80);
Neotimer _timer_property_request = Neotimer (5000);
// ------------------------------------------------ - өгөгдлийн бүтэц / хувьсагч
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // хамгийн ихдээ 10 боол x max 5 шинж чанар
// ------------------------------------------------ - хяналтын урсгал
volatilebool _sent_device_info = худал;
байт _dto_props_index = 0;
bool _fatal_error = худал;
// -------------------------------- ФУНКЦИОН ХАМРАХ ТУХАЙ МЭДЭГДЭЛ
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address, byte prop_index, Role role, char name [16], char value [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* сэдэв, байт* ачаалал, гарын үсэг зураагүй урт);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* сэдэв);
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 *төхөөрөмжийн нэр, char *төгсгөлийн цэг);
voidi2c_set_and_get (байтын хаяг, байтын код, constchar *парам);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (String файлын нэр);
boolserver_path_in_auth_exclusion (мөрийн зам);
boolserver_auth_read (мөрийн зам);
boolserver_file_read (мөрийн зам);
voidserver_file_upload ();
voidserver_file_delete ();
voidserver_file_create ();
voidserver_file_list ();
voidserver_init ();
voidtime_services_init (char *ntp_server_name, byte time_zone);
time_tget_ntp_time ();
voidsend_ntp_packet (IPAddress & address);
char *time_stamp_get ();
// ------------------------------------------------ - static_utility.ino
String spiffs_file_list_build (String зам);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (byte slave_address, byte prop_index, char *card_type);
boolget_struct_card_type (byte slave_address, byte prop_index, char *card_type);
boolget_json_is_series (byte slave_address, byte prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
байт get_prop_dto_idx (байтын боолын_хаяг, байтын prop_index);
// -------------------------------- ГОЛ
voidsetup () {
DBG_OUTPUT_PORT.begin (115200);
SetupDeviceData device_data;
Serial.println (); Serial.println (); // консолын хогны маржин
саатал (5000);
хэрэв (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (үнэн);
_debug.out_fla (F ("тохиргоо"), үнэн, 2);
// шаардлагатай тохиргоог авах
if (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), үнэн, 2);
хэрэв (! _config_data.get_device_data (төхөөрөмжийн_ өгөгдөл, _runtime_device_data)) {
report_deserialize_error ();
буцах;
}
} өөр {
report_spiffs_error ();
буцах;
}
// device.json -д тохируулсан таймерын утгыг ашиглах
_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 ();
// мета өгөгдлийн цуглуулгыг эхлүүлэх
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// мета өгөгдлийг цуглуулахын тулд мэдрэгчийн шинж чанар (нэр) хэрэгтэй
_assimilate_bus.get_properties (автобусанд_хүлээн авсан, автобусны_дууран дээр);
_timer_property_request.reset (); // энэ хүртэл мэдэгдэхүйц хугацаа өнгөрч болох тул дахин эхлүүлнэ үү
}
voidloop () {
хэрэв (! check_fatal_error ()) буцах;
mqtt_loop ();
_server.handleClient ();
хэрэв (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (автобусанд_хүлээн авсан, автобусны_дууран дээр);
}
}

rawmqtt_crouton_esp8266_cors_webcomponents.ino -г GitHub -аас ❤ зохион байгуулснаар үзэх

Алхам 5: DEVICE CARD

Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт
Төхөөрөмжийн карт

Төхөөрөмжийн картыг (картын төрөл: assim-төхөөрөмж) вэбсайт дээр байрлуулсан бөгөөд үүнийг төхөөрөмжөөс (CORS) ашиглах шаардлагагүй.

Анхдагч хуудасны жагсаалт:

  • Төхөөрөмжид унших, бичих MQTT сэдэв
  • Хандалтын цэг нь төхөөрөмжийг холбосон байна
  • ACE EDITOR ашиглан төхөөрөмж дээр байрлуулсан SPIFFS файл засварлагчийн холбоос
  • Картын хуудсыг харуулах/далдлах нүдний дүрс.

Картыг харуулах/нуух хуудасны жагсаалт:

  • Карт бүрийг тусдаа зүйл болгон оруулсан болно
  • Үзүүлэх үед тод цэнхэр фонт
  • Нуух үед хар ердийн фонт
  • Картын төрлийг дүрсэлсэн дүрс тэмдэг.

Картыг нуух товчлуур дээр дарж эсвэл жагсаалтаас цэнхэр өнгийн тод үсгээр дарж болно. Жагсаалтанд байгаа хар хэвийн үсгийн зүйл дээр дарж картуудыг үзүүлэх боломжтой.

Мэдээллийн талх нь энэ онцлогтой холбоотой юм. Хэрэв deviceInfo -ийн төгсгөлийн цэгүүдийн аль нэгэнд мэдээллийн өмч оноосон бол картын нуух товчны хажууд мэдээллийн товчлуур гарч ирнэ. Дарах үед төгсгөлийн цэг дээр тодорхойлсон контекстийн мэдээлэл цонхонд "шарсан болно".

Хэрэв төхөөрөмжийн карт тодорхойлогдоогүй бол далдлах товчлуурууд карт дээр харагдахгүй болно. Учир нь нэг удаа нуусан бол дахин харуулах арга байхгүй.

ESP8266 дээрх SPIFFS файлуудаар ассимимент картыг хэрхэн нэмэх талаар нарийвчлан үзэхийн тулд ENDPOINT CUSTOMIZATION-ийг үзнэ үү.

Cruuton вэбийн бүрэлдэхүүн хэсгийг ассимиляци хийх

төмөр дохио>
div>
ИКОНЫГ НУУХ
би> урт>
Төхөөрөмжийн маягт
MQTT сэдвүүд
/outbox/{{endPointJson.device_name}}/*div>
/ирсэн имэйл хайрцаг/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADDRESSdiv>
{{endPointJson.ip_addr}} a> div>
div>
ЖАГСААЛТЫГ ХАРУУЛАХ
элемент>цаасан зүйл>
загвар>
цаасан жагсаалтны хайрцаг>
div>
crouton карт>
загвар>
дом-модуль>

GitHub-аас ❤ дээр байршуулсан rawassim-device.html-ийг үзэх

Алхам 6: WEEKVIEW CARD

ДОЛОО ХОНОГИЙН КАРТ
ДОЛОО ХОНОГИЙН КАРТ
ДОЛОО ХОНОГИЙН КАРТ
ДОЛОО ХОНОГИЙН КАРТ
ДОЛОО ХОНОГИЙН КАРТ
ДОЛОО ХОНОГИЙН КАРТ

Долоо хоногийн үзэх карт (картын төрөл: assim-weekview) нь төхөөрөмж дээр байрладаг (cors фолдер). Үүнийг SPIFFS -д config/user_card _#. Json файлыг нэмж оруулах замаар AssimilateCrouton -д нийтлэгдсэн deviceInfo пакетад тарьдаг (энэ тохиолдолд user_card_9.json).

ТОЙМ

Ажлын өдрүүдийг цагийн хуваарийн жагсаалт хэлбэрээр танилцуулдаг. Цагийн хуваарийн нарийвчлалыг config/user_card _#. Json дахь "interval_mins" шинж чанараар тохируулсан болно. Энэ нь нэг цагийн хэсэг эсвэл нэг цагийн үржвэр байх шаардлагатай. 10, 15, 20, 30, 60, 120, 360. Хугацааны товчлуур дээр дарахад холбогдох төхөөрөмжид тухайн үед асаалттай байх төлөвт байгаа эсэхийг шалгаарай. Хэрэв цаг хугацаа одоо байгаа бол төхөөрөмжид командыг нэн даруй илгээнэ (нийтэлнэ). Ихэвчлэн мужийг минут тутамд шалгаж/нийтэлдэг. Сонголтыг LocalStorage -д хадгалдаг тул хөтчийг шинэчлэх замаар цагийг дахин ачаалах болно.

ХЭРЭГЛЭЭГ АШИГЛАХ

Одоогийн байдлаар долоо хоногийн тойм нь Toggle унтраагуур ашиглан өөрийн төлөв байдлыг дүрслэх боломжтой төхөөрөмжүүдэд тохиромжтой, өөрөөр хэлбэл асаалттай эсвэл унтраалттай байгаа бөгөөд тохируулсны дараа тэдгээр төлөвт үлдэх болно. Гэрэл, сэнс, ус халаагч нь сайн нэр дэвшигчид юм.

ХЯЗГААРЛАЛ/АВАМЖ

  • Interval_mins нь дээр дурдсан утгуудын нэг байх ёстой
  • Долоо хоногийн тойм нь товшсон товчлуурыг (5 секунд) өдөрт хоёр удаа эргүүлэх гэх мэт төлөвлөсөн түр зуурын үйлдлийг дэмждэггүй.

ИРЭЭДҮЙ

  • Түр зуурын арга хэмжээг дэмжих болно гэж найдаж байна.
  • Төхөөрөмжүүдийн синхрон хадгалалтыг хуваарийн дагуу авч үзэх болно.

Алхам 7: Төгсгөлийн тохиргоог хийх

FIRMWARE дээр товч дурдсанчлан, эцсийн цэгүүдийг тохируулах зорилгоор SPIFFS файлын системд 2 шинэ конвенц нэмж оруулсан болно. JSON файлууд нь MQTT брокерт байрлуулсан deviceInfo пакетийн төгсгөлийн цэгүүдийн шинж чанарт нэмэгдэх хэсгүүд бөгөөд энэ нь хяналтын самбарын тодорхойлолт болдог.

Төгсгөлийн цэгүүдийн түлхүүрийг firmware дээр үүсгэдэг.

  • User_card_base.json -ийн CC_device (Custom Card)
  • _. Json хэрэглэгчийн картны CC_SLAVE_ENDPOINT NAME (# боолын хаяг байх)

Өмнө дурьдсанчлан, ажлын үед утгыг орлох хувьсагчид байдаг:

  • mqtt_device_name
  • wifi_ssid
  • local_ip

user_card_base.json

Жишээ:

user_card _#. json

Жишээ:

Алхам 8: ВИДЕО

Зөвлөмж болгож буй: