Բովանդակություն:
- Քայլ 1: CROUTON
- Քայլ 2. ՍՍԻՄԻԼԱՏ ՄԵԿՆԱԲԱՆՈԹՅՈՆ
- Քայլ 3. ՍԱՐՔԱՎՈՐՈՄ
- Քայլ 4: FIRMWARE
- Քայլ 5. ՍԱՐՔԻ ՔԱՐՏ
- Քայլ 6. ՇԱԲԱԹԱՇՐԱՆ ՔԱՐՏ
- Քայլ 7. ԵՐԿՐԱՅԻՆ ՊԱՏԱՍԽԱՆՈՄ
- Քայլ 8: ՏԵՍԱՆՅՈԹԵՐ
Video: IOT123 - ԱՍԻՄԻԼԱՏ Սենսորային հանգույց. ICOS10 CORS ՎԵԲՔՈՄՓՈՆԵՆԹՆԵՐ. 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-31 10:21
ASSIMILATE SENSOR/ACTOR Slaves- ը տեղադրում է մետատվյալներ, որոնք օգտագործվում են Crouton- ում տեսողական պատկերացումների համար: Այս կառուցվածքը փոքր -ինչ տարբերվում է նախորդներից; ապարատային փոփոխություններ չկան: Այժմ որոնվածը աջակցում է հյուրընկալող սովորական (ավելի հարուստ) խմբագիրների, որոնք կարող են ինտեգրվել AssimilateCrouton- ի վերջին կառուցվածքին: Այս հոդվածում ավելի շատ ուշադրություն կդարձվի որոնվածը և MQTT վահանակի բացատրմանը:
WebComponents- ին իրենց կողմից վերահսկվող սարքից սպասարկելու առավելություններից մեկն այն է, որ սարքի առավել առաջադեմ վերահսկողությունը սահմանափակվում է այն ցանցով, որին միացված է սարքը. Ձեր WiFi մուտքի կետը: Չնայած նույնականացման MQTT սերվեր օգտագործելուն պես ՝ պաշտպանվածության նմանություն կա, սակայն հանրային ցանցերում, եթե ձեր դիտարկիչն ակնթարթորեն հեռանաք (AssimilateCrouton կայք), ինչ -որ մեկը կարող է ներխուժել և վերահսկել ձեր ավտոմատացման սարքերը: CORS WebComponent- ի այս հնարավորությունը հնարավորություն է տալիս միայն ընթերցումներ (ջերմաստիճան, լուսավորության մակարդակ, խոնավություն) հրապարակային ցուցադրել, իսկ հրամանի գործառույթները (միացում/անջատում, պլանավորում) ՝ միայն սարքի ցանցից:
Սարքի վրա, SPIFFS- ում վավերացման սերվերի և հոստինգի բոլոր հնարավորությունները դեռևս աջակցվում են, սակայն հատուկ ուշադրություն է դարձվել CORS (Cross Origin Resource Sharing) օժանդակությանը Polymer WebComponents- ի համար (Crouton- ն օգտագործում է Polymer 1.4.0):
AssimilateCrouton- ում (Crouton- ի պատառաքաղը, որն օգտագործվում է Assimilate IOT ցանցի համար) փոփոխությունները ներառում են
- աջակցություն Սարքի քարտին (ասիմ-սարք), որն ի թիվս այլ բաների ցույց է տալիս և թաքցնում է օգտագործողի համար սարքի առանձին քարտերը
- info քարտի բոլոր տեղեկությունների հատկությունը, որը ցույց է տալիս քարտի համար օգտակար համատեքստային տեղեկատվության կենաց
- աջակցություն CORS վեբ բաղադրիչներին, այս դեպքում ՝ սարքի վեբ սերվերի վրա (ESP8266):
Քայլ 1: CROUTON
Croutonis- ի կառավարման վահանակ, որը թույլ է տալիս պատկերացնել և վերահսկել ձեր IOT սարքերը նվազագույն կարգավորմամբ: Ըստ էության, դա ամենահեշտ վահանակն է, որը կարող է տեղադրվել ցանկացած IOT սարքավորման սիրահարների համար ՝ օգտագործելով միայն MQTT և JSON:
ASSIMILATE SLAVES- ը (սենսորներ և դերասաններ) ներկառուցված մետատվյալներ և հատկություններ ունեն, որոնք վարպետն օգտագործում է սարքի կառուցման համար Info json փաթեթ, որը Crouton- ն օգտագործում է կառավարման վահանակի կառուցման համար: ASSIMILATE NODES- ի և Crouton- ի միջև միջնորդը MQTT բրոքեր է, որը ցանցերի համար հարմար է. Mosquito- ն օգտագործվում է ցուցադրման համար:
Քանի որ ASSIMILATE MASTER- ը պահանջում է հատկություններ, այն ձևակերպում է պատասխան արժեքները Crouton- ի թարմացումների համար անհրաժեշտ ձևաչափով: The AssimilateCrouton պատառաքաղը ավելացնում է որոշ առանձնահատկություններ, որոնք հնարավորություն են տալիս ապակենտրոնացնել ձեր սարքը գործարկող բիզնես կանոնները, այսինքն ՝ IOT սարքը կարիք չունի ներդրված բիզնես կանոնների, դա պարզապես խողովակ է MQTT/I2C հաղորդակցության համար ավելի խելացի (ATTINY վերահսկվող) ստրուկ դերասաններին և տվիչներին:.
Քայլ 2. ՍՍԻՄԻԼԱՏ ՄԵԿՆԱԲԱՆՈԹՅՈՆ
ՓՈՓՈԽՈԹՅՈՆՆԵՐ CROUTON- ին
Kedեղված տարբերակից փոփոխությունները ներառում են.
- եթե վերջնակետն ունի ուղու հատկություն, քարտի համար WebComponent- ը կկատարի HTMLImport CORS ռեսուրսի համար (ESP8266- ի վեբ սերվերը այս կառուցվածքում):
- CORS վեբ բաղադրիչից (կախվածությունից) ցանկացած ռեսուրս հղվում է այնպես, կարծես դրանք սպասարկվում են Crouton- ի կայքից. երբ նրանք չեն կարողանում բեռնել մի բացառություն handler- ը վերադառնում է ուղիները և բեռնում, եթե դրանք վեբ կայքից են:
- ընթացիկ տեղական ժամանակը ցուցադրվում է վերևից աջ, որն օգտակար է ստուգման պլանավորման համար:
ՊՈԼԻՄԵՐԻ ԿԱԽՈԹՅՈՆՆԵՐԸ ԵՎ ԿՈՐԻՍՆԵՐԸ
Պոլիմերային կախվածության ծառի տերևները կարող են տեղակայվել CORS- ում: Քանի որ արմատային կախվածությունները կարող են մի քանի անգամ օգտագործվել հավելվածում, դրանք չեն կարող հղվել 2 վայրից (կայքէջից և սարքից), քանի որ Polymer Module Loader- ը դրանք վերաբերվում է որպես 2 առանձին ռեսուրսների և գրանցման բազմաթիվ սխալներ, որոնք արագորեն խեղաթյուրում են ծրագիրը:
Այդ պատճառով քարտի համար նախատեսված WebComponent- ը (HTML ֆայլ 1.4.0 -ում) և դրա հետ կապված CSS ֆայլը սարքում պահվող միակ ֆայլերն են: Մնացած կախվածությունները հղվում են այնպես, կարծես WebComponent- ը տեղակայված է սկզբնաղբյուրի «html» թղթապանակում, ինչը հեշտացնում է WebComponents- ի մշակումն այդ թղթապանակից մինչև պատրաստ լինել SPIFFS- ում ESP8266- ում վերբեռնելու համար: AssimilateCrouton- ը կմշակի, թե ինչպես ստանալ ճիշտ ֆայլեր:
EPԲԱՎԱՈԹՅՈՆ
Բնօրինակի Crouton- ի ստեղծողը edfungus- ը գրել է աղբյուրը Pug/Less- ում և ուներ NPM/Grunt գործիքաշար: Ես Pug/Less- ը մատուցեցի որպես HTML/css և պարզապես խմբագրեցի/տարածեցի մատուցված ֆայլերը: Սա կոտրեց NPM/Grunt գործիքակազմը: Սրա ուղղումն ընդգրկված է ԱՊԱԳԱ բաժնում:
Դուք կարող եք վահանակը տեղում ստուգել ձեր DEV տուփի վրա.
- Արմատային թղթապանակի հրամանի տողից
- npm սկիզբը
- lite-server- ը պտտվում է https:// localhost: 10001- ի համար
Տեղադրեք ստատիկ վեբ սերվեր.
- պատճենեք բոլոր թղթապանակները, բացառությամբ node_modules- ի
- պատճենել index.html (և, հնարավոր է, web.config)
ԱՊԱԳԱ
Հիմնական նպատակներից մեկն է `կատարելագործել Polymer3- ը և աշխատել Polymer CLI- ից: Բարձր առաջնահերթություն է IOT- ի ծրագրավորողների համար զարգացած խմբագիրների և շրջանակների ավելացումը: Ի վերջո, առաջադեմ ավտոմատացված համակարգը ամբողջությամբ գործարկվելու է անջատված MQTT հաճախորդներից, ինչպիսին է AssimilateCrouton- ը:
Սարքի Info փաթեթի օրինակ, որն օգտագործվում է AssimilateCrouton- ի համար
{ |
"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", |
"info": "Միացրեք կամ անջատեք լույսերը 15 րոպե տևողությամբ": |
"ուղի": "https://192.168.8.104/cors", |
"վերնագիր": "Տնկող լույսեր", |
"interval_mins": 15, |
"արժեքներ": { |
"արժեքը": "" |
} |
}, |
"անջատիչ": { |
"title": "Աճիր լույսեր", |
"card-type": "crouton-simple-toggle", |
"info": "Միացնել կամ անջատել լույսերը ժամանակավորապես", |
"պիտակները": { |
"false": "OFF", |
"true": "ON" |
}, |
"սրբապատկերներ": { |
"կեղծ": "sun-o", |
"true": "sun-o" |
}, |
"արժեքներ": { |
«արժեք»: 0 |
} |
} |
}, |
"կարգավիճակ": "լավ", |
"name": "ash_mezz_A3", |
"նկարագրություն": "Գրասենյակ Ashmore, Mezzanine, A2 տարածք", |
"գույն": "#4D90FE" |
} |
} |
դիտել rawdeviceInfo.json- ը GitHub- ի կողմից հյուրընկալված է
Քայլ 3. ՍԱՐՔԱՎՈՐՈՄ
Քանի որ ապարատային փոփոխություններ չկան, ահա համապատասխան տեղեկատվության հղումները.
- Shell հավաքում
- Նյութեր և գործիքներ
- MCU պատրաստում
- MCU Բնակարանային պատրաստում
- Կառուցելով ստրուկների ցածր կողմի անջատիչը/RESET դուստր-տախտակը
- Հիմնական բաղադրիչների հավաքում
Քայլ 4: FIRMWARE
ՀԻՄՆԱԿԱՆ ՓՈՓՈԽՈԹՅՈՆՆԵՐ ԱՅՍ ՇԵՆՔԸ
Որպեսզի AssimilateCrouton հավելվածը կարողանա օգտագործել CORS ռեսուրսները սարքից, անհրաժեշտ է, որ արձագանքի վերնագրերը կազմաձևվեն որոշակի եղանակով: Սա իրականացվել է որոնվածի այս թողարկման մեջ (static_server.ino => server_file_read ()):
Նաև Պոլիմերի հիմնական կախվածության գրաֆիկը պետք է լիներ մեկ ծագումից: Ստրատեգիա է կիրառվել ՝ SPIFFS CORS ֆայլերին մեկ այլընտրանքային կառավարիչ (corsLinkOnError) ավելացնելու համար ՝ AssimilateCrouton կայքից ռեսուրսները վերբեռնելու համար, երբ դրանք սարքում չեն հայտնաբերվում:
SPIFFS ֆայլային համակարգում ավելացվել է 2 նոր պայմանագիր ՝ սարքի Ինֆո -ում ստեղծված վերջնակետերը հարմարեցնելու համար, որոնք AssimilateCrouton- ն օգտագործում է վահանակի քարտեր ստեղծելու համար.
- /config/user_card_base.json Վերջնակետի սահմանում, երբ գործարկման ժամանակ փոփոխականները փոխանակվում են առաջին հերթին ՝,,. Սովորաբար դա այն վայրն է, որտեղ կավելացվեն սարքի քարտը: Սա հետ չի կապվում սարքի հետ:
- /config/user_card_#.json Վերջնակետի սահմանում, երբ գործարկման ժամանակ փոփոխականները փոխանակվում են առաջին հերթին ՝,,. Սա սովորաբար այն վայրն է, որտեղ հարուստ խմբագիրները, ինչպիսիք են assim-weekview քարտը, կավելացվեն I2C ստրուկին (դերասան/ցուցիչ), որը վերաբերում է #-ին:
ԷՍԿԻՉԸ/ԳՐԱԴԱՐԱՆՆԵՐԸ
Այս փուլում նախագիծը փաթեթավորվել է որպես օրինակ AssimilateBus Arduino գրադարանի համար: Սա հիմնականում այն է, որպեսզի բոլոր անհրաժեշտ ֆայլերը հեշտ հասանելի դառնան Arduino IDE- ից: Հիմնական ծածկագրի արտեֆակտներն են.
- mqtt_crouton_esp8266_cors_webcomponents.ino - մուտքի հիմնական կետը:
- assimilate_bus.h/assimilate_bus.cpp - գրադարանը, որը կարգավորում է I2C հաղորդակցությունը Slave Sensor/Actors- ի հետ
- 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 գործառույթները (գրադարանների փոխարեն) օգտագործվել են տարբեր պատճառներով, բայց հիմնականում այնպես, որ Վեբ սերվերի և MQTT գործառույթները կարողանան լավ խաղալ միասին:
SPIFFS- ի ռեսուրսները
SPIFFS ֆայլերի մանրամասն բացատրությունները կարող եք գտնել այստեղ:
- favicon.ico - ռեսուրս, որն օգտագործվում է Ace խմբագրի կողմից
-
կազմաձևել
- device.json - սարքի կազմաձևում (Wifi, MQTT…)
- slave_metas _#. json - ստեղծվում է գործարկման ժամանակ յուրաքանչյուր ստրուկի հասցեի համարի համար (#)
- user_card _#. json - հարմար վերջնական կետ, որը պետք է ինտեգրվի սարքի տեղեկատվությանը յուրաքանչյուր ստրուկի հասցեի համարի համար (#)
- user_card_base.json - հարմարեցված վերջնակետ, որը պետք է ինտեգրվի սարքի տեղեկատվությանը սարքի համար
- user_meta _#. json - սովորական մետատվյալները գերակշռում են ստրուկների յուրաքանչյուր ստրուկի հասցեի համարին (#)
- user_props.json - ստրուկների մետատվյալներում եղածները փոխարինելու համար սեփականության հատուկ անուններ
-
cors
- card -webcomponent.css - ոճերի թերթ տարբեր հարմարեցված քարտերի համար
- card -webcomponent.html - տարբեր անհատականացված քարտերի վեբ բաղադրիչ
-
խմբագիր
- assimilate -logo-p.webp" />
- edit.htm.gz - gzip Ace Editor HTML- ի
- 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- ում, բացեք device.json- ը տվյալների/կազմաձևման թղթապանակում.
- Փոփոխեք wifi_ssid- ի արժեքը ձեր WiFi SSID- ով:
- Փոփոխեք wifi_key- ի արժեքը ձեր WiFi բանալիով:
- Փոփոխեք mqtt_device_name- ի արժեքը ձեր նախընտրած Սարքի նույնականացման միջոցով (միացման կարիք չկա):
- Փոփոխեք mqtt_device_description- ի արժեքը ձեր նախընտրած Սարքի նկարագրությամբ (Crouton- ում):
- Պահել device.json- ը:
- Վերբեռնեք տվյալների ֆայլերը SPIFFS- ում:
AssimilateBus- ի հիմնական մուտքի կետը ՝
/* |
* |
*ՁԵՐ ՍԱՐՔԻ ԳՈՐUSԱՐԱՐ ԿԱՆՈՆՆԵՐԸ ՍՊԱՍՎՈՄ ԵՆ ԿՈՆՏՐՈԼՎԵԼ MQTT- ի միջոցով. Դժվար չէ թխել այս FIRMWARE- ում |
* |
* Բացի այս ֆայլում տեղադրումից և հանգույցից |
* կարևոր շարժական մասերն են |
* on_bus_received and on_bus_complete in static_i2c_callbacks.ino |
* և |
* mqtt_publish և mqtt_callback static_mqtt.ino- ում |
* |
*/ |
#ներառել "types.h" |
#ներառել «VizJson.h» |
#ներառել «յուրացնել_բուսը.հ» |
#ներառել «debug.h» |
#ներառել «config.h» |
#ներառում |
#ներառում // սահմանել MQTT_MAX_PACKET_SIZE- ը 3000 ֆունտ ստեռլինգ (կամ ձեր կարիքները deviceInfo json- ին) |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
#ներառում |
// --------------------------------- ՀԻՇԱՏԱԿԱՐԱՆ ՀԱՅՏԱՐԱՐՈԹՅՈՆՆԵՐ |
// ---------------------------------------------------- - սահմանում է |
#սահմանել DBG_OUTPUT_FLAG2 // 0, 1, 2 ԱՆՎԱՐ, ԹՈԱՐԿՈ,Մ, Ամբողջական |
#define_mqtt_pub_topic "outbox" // CROUTON CONVENTIONS |
#սահմանել_մքտտ_հիմն_թեմա «մուտքի արկղ» |
// ---------------------------------------------------- - դասի առարկաներ |
Debug _debug (DBG_OUTPUT_FLAG); |
AssimilateBus _assimilate_bus; |
VizJson _viz_json; |
Config _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 = false; |
բայթ _dto_props_index = 0; |
bool _fatal_error = false; |
// --------------------------------- Ֆունկցիոնալ ոլորտի հռչակագրեր |
// ---------------------------------------------------- - static_i2c_callbacks.ino |
voidon_bus_received (բայթ 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 (նշան* թեմա); |
voidmqtt_init (constchar* wifi_ssid, constchar* wifi_password, constchar* mqtt_broker, int mqtt_port); |
voidmqtt_create_subscriptions (); |
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 (բայտ հասցե, բայտ կոդ, constchar *param); |
// ---------------------------------------------------- - static_server.ino |
Լարային server_content_type_get (լարային ֆայլի անուն); |
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 |
Լարային spiffs_file_list_build (լարային ուղի); |
voidreport_deserialize_error (); |
voidreport_spiffs_error (); |
boolcheck_fatal_error (); |
boolget_json_card_type (բայթ slave_address, բայթ prop_index, char *card_type); |
boolget_struct_card_type (բայթ slave_address, byte prop_index, char *card_type); |
boolget_json_is_series (բայթ slave_address, բայթ prop_index); |
voidstr_replace (char *src, constchar *oldchars, char *newchars); |
բայթ get_prop_dto_idx (բայթ slave_address, բայթ prop_index); |
// ------------------------------------- ՀԻՄՆԱԿԱՆ |
voidsetup () { |
DBG_OUTPUT_PORT. սկիզբ (115200); |
SetupDeviceData device_data; |
Serial.println (); Serial.println (); // լուսանցք մխիթարել աղբի համար |
ուշացում (5000); |
եթե (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (ճշմարիտ); |
_debug.out_fla (F («կարգավորում»), ճշմարիտ, 2); |
// ստանալ անհրաժեշտ կազմաձևը |
եթե (SPIFFS.begin ()) { |
_debug.out_str (spiffs_file_list_build ("/"), true, 2); |
եթե (! _config_data.get_device_data (device_data, _runtime_device_data)) { |
report_deserialize_error (); |
վերադարձ; |
} |
} ուրիշ { |
report_spiffs_error (); |
վերադարձ; |
} |
// օգտագործել սարքում տեղադրված ժմչփի արժեքը: 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 (on_bus_received, on_bus_complete); |
_timer_property_request.reset (); // կարող է ուշացած ժամանակ անցնել մինչև այս պահը, այնպես որ նորից սկսեք |
} |
voidloop () { |
եթե (! check_fatal_error ()) վերադառնա; |
mqtt_loop (); |
_server.handleClient (); |
եթե (_timer_property_request.repeat ()) { |
_ assimilate_bus.get_properties (on_bus_received, on_bus_complete); |
} |
} |
դիտել rawmqtt_crouton_esp8266_cors_webcomponents.ino հյուրընկալված ❤ -ի կողմից GitHub- ի կողմից
Քայլ 5. ՍԱՐՔԻ ՔԱՐՏ
Սարքի քարտը (քարտի տեսակը ՝ assim-device) տեղակայված է կայքում և անհրաժեշտ չէ այն մատուցել սարքից (CORS):
Դրա կանխադրված էջը թվարկում է
- MQTT թեմաները `սարքին կարդալու և գրելու համար
- Մուտքի կետը, որին միացված է սարքը
- Հղում դեպի SPIFFS ֆայլի խմբագրիչ, որը տեղակայված է սարքում ՝ օգտագործելով ACE EDITOR
- Աչքի պատկերակ, որը բացահայտում է Showուցադրել/Թաքցնել քարտի էջը:
Քարտի ցուցադրում/թաքցնում էջերի ցանկերը
- Յուրաքանչյուր քարտ `որպես առանձին տարր
- Համարձակ կապույտ տառատեսակ ցուցադրելիս
- Սև նորմալ տառատեսակ, երբ թաքնված է
- Քարտի տեսակը պատկերող պատկերակ:
Քարտը կարող է թաքցվել `կտտացնելով քարտերի վրա թաքցնելու կոճակը կամ կտտացնելով ցուցակում գտնվող կապույտ-համարձակ տառատեսակով: Քարտերը կարող են ցուցադրվել `կտտացնելով ցուցակում սև-սովորական տառատեսակով:
Այս հատկության հետ թույլ առնչություն ունի տեղեկատվական կենացները: Եթե deviceInfo- ի վերջնակետերից որևէ մեկին հատկացված է տեղեկատվության հատկություն, քարտի թաքցնելու կոճակի կողքին կցուցադրվի տեղեկատվական կոճակ: Կտտացնելով վերջակետում սահմանված համատեքստային տեղեկատվությունը «կենաց» կլինի պատուհանում:
Եթե սարքի քարտը սահմանված չէ, ապա թաքցնելու կոճակները չեն ցուցադրվի քարտերի վրա: Դա պայմանավորված է նրանով, որ երբ թաքնված է, այլևս դրանք ցուցադրելու միջոց չկա:
Տե՛ս ENDPOINT CUSTOMIZATION ՝ մանրամասնելու համար, թե ինչպես կարելի է հավելյալ սարքի քարտը ավելացնել SPIFFS ֆայլերի միջոցով ESP8266- ում:
AssimilateCrouton վեբ բաղադրիչ
SHՈOWՅԵԼ Թաքցնել սրբապատկերը |
ՍԱՐՔԻ ՁԵՎ |
div> |
SHՈOWՅԵԼ Թաքցնել ցանկը |
կաղապար> |
paper-listbox> |
div> |
crouton-card> |
կաղապար> |
dom-module> |
դիտել rawassim-device.html hosted -ի հետ GitHub- ի կողմից հյուրընկալված
Քայլ 6. ՇԱԲԱԹԱՇՐԱՆ ՔԱՐՏ
Շաբաթվա դիտման քարտը (քարտի տեսակը ՝ assim-weekview) տեղակայված է սարքում (cors թղթապանակ): Այն ներարկվում է AssimilateCrouton- ի համար հրատարակված deviceInfo փաթեթում ՝ SPIFFS- ին (այս դեպքում user_card_9.json) ֆայլի config/user_card _#. Json ֆայլ ավելացնելով:
ԱՌԱՆՈԹՅՈՆ
Աշխատանքային օրերը ներկայացվում են որպես ժամանակամիջոցների ցուցակներ: Timeամկետի մանրամասնությունը սահմանվում է «interval_mins» հատկությամբ ՝ config/user_card _#. Json- ում: Այն պետք է լինի ժամի կոտորակ կամ ժամի բազմապատիկ օրինակ. 10, 15, 20, 30, 60, 120, 360. Clickամկետի վրա սեղմելը ապահովում է միացված վիճակի հրամանը համապատասխան սարքի համար այդ ժամանակ: Եթե ժամանակի սլոթը հիմա է, հրաման ուղարկվում է (հրապարակվում) անմիջապես սարքի համար: Սովորաբար վիճակը ստուգվում/հրապարակվում է ամեն րոպե: Ընտրվածները պահվում են LocalStorage- ում, ուստի ժամերը կբեռնվեն բրաուզերի թարմացմամբ:
ՕԳՏԱԳՈՐՄԱՆ Դեպքեր
Իր ներկայիս վիճակում շաբաթաթերթը հարմար է այն սարքերի համար, որոնք կարող են օգտագործել Toggle անջատիչը `իրենց վիճակը պատկերացնելու համար, այսինքն` դրանք միացված կամ անջատված են, և կարգավորումից հետո մնում են այդ վիճակում: Լույսերը, օդափոխիչները և ջրատաքացուցիչները լավ թեկնածուներ են:
ՍԱՀՄԱՆԱՓԱԿՈՄՆԵՐ/VEԱՆԱՊԱՐՀՆԵՐ
- Interval_mins- ը պետք է լինի վերը նշված արժեքներից մեկը
- Շաբաթվա դիտումը չի աջակցում նաև ակնթարթային գործողություններին, ինչպիսիք են օրական երկու անգամ ծորակը կարճ միացնելը (5 վայրկյան):
ԱՊԱԳԱ
- Ակնկալվում է, որ վայրկենական գործողություններին կաջակցեն:
- Devicesամանակացույցի ընտրության համար դիտարկվում է սարքերի համաժամեցված պահեստավորում:
Քայլ 7. ԵՐԿՐԱՅԻՆ ՊԱՏԱՍԽԱՆՈՄ
Ինչպես կարճ նշվեց FIRMWARE- ում, վերջնական կետերը հարմարեցնելու համար SPIFFS ֆայլային համակարգում ավելացվել է 2 նոր պայմանագիր: JSON ֆայլերը բեկորներ են, որոնք ավելացվում են սարքի վերջնական կետերի հատկությանը MIQTT բրոքերին տեղադրված տեղեկատվական փաթեթում, որը դառնում է վահանակի սահմանումը:
Վերջնական կետերի բանալիները ստեղծվում են որոնվածի մեջ.
- CC_device (Պատվերով քարտ) user_card_base.json- ի համար
- CC_SLAVE_ENDPOINT NAME user_card _#. Json- ի համար (# ստրուկի հասցեն է)
Ինչպես արդեն նշվեց, կան փոփոխականներ, որոնք փոխարինվում են արժեքներով գործարկման ժամանակ.
- mqtt_device_name
- wifi_ssid
- local_ip
user_card_base.json
Օրինակ:
user_card _#. json
Օրինակ:
Քայլ 8: ՏԵՍԱՆՅՈԹԵՐ
Խորհուրդ ենք տալիս:
Էժան NMEA/AIS հանգույց - RS232 դեպի Wifi Bridge կամրջի օգտագործման համար. 6 քայլ
Էժան NMEA /AIS Hub - RS232 դեպի Wifi Bridge ներկառուցման համար. Թարմացրեք 2021 թվականի հունվարի 9 -ին - Ավելացվեց լրացուցիչ TCP կապ և կրկին օգտագործեց վերջին կապը, եթե ավելի շատ հաճախորդներ միանան: Թարմացում 13 դեկտեմբերի 2020 թ. - Առկա երթուղիչներով նավերի կոդի ոչ մի կոնֆիգուրացիոն տարբերակ չի ավելացվել: Ներածություն Այս NMEA / AIS RS232 դեպի WiFi կամուրջը
RaspberryPi WSPR հանգույց ՝ 7 քայլ
RaspberryPi WSPR հանգույց. Ես ուզում էի պատրաստել WSPRnet (Թույլ ազդանշանի տարածման լրագրող) հաղորդիչ, որպեսզի ոտքերս թրջվեն WSPRnet խաղում և սկսեմ տեսնել, թե որքան հեռու կարող եմ փարոս փոխանցել: Ես ունեի այս սարքավորումներից մի քանիսը և որոշեցի, որ արագ փորձարկում եմ նետելու
Աուդիո ձայներիզների հանգույց. 13 քայլ (նկարներով)
Աուդիո ձայներիզների հանգույց. Տեսականորեն դա իսկապես հեշտ է հնչում. կարող եք ժապավենային օղակ պատրաստել ՝ իրար կպցնելով կարճ մագնիսական ժապավենի ծայրերը և նորից կպցնելով այն ձայներիզների ներսում: Այնուամենայնիվ, եթե երբևէ իրականում փորձել եք դա անել, շուտով կհասկանաք, որ ես
IOT123 - ՍՍԻՄԻԼԱՏ Սենսորային հանգույց. ICOS10 3V3 MQTT ՆՈԴ. 6 քայլ
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 3V3 MQTT NODE. Սա առաջինն է մի շարք MCU/Feature կոմբինացիաներում ASSIMILATE SENSOR HUBS- ում. Վարպետները, որոնք հավաքում են տվյալների աղբանոցները I2C ASSIMILATE SENSORS ստրուկներից: Այս կառուցվածքն օգտագործում է Wemos D1 Mini ՝ ASSIMILATE- ից թափված ցանկացած տվյալ հրապարակելու համար
IOT123 - ԸՆԴՀԱՆՈՐ Սենսորային հանգույց. ICOS10 ՊԱՀՄԱՆԱԴՐՈԹՅԱՆ ՏԵEԱԴՐՈԹՅՈՆ. 11 քայլ
IOT123 - ASSIMILATE SENSOR HUB: ICOS10 CUSTOMIZATION WEBSEREVER. ASSIMILATE SENSOR/ACTOR Ստրուկները ներդնում են մետատվյալներ, որոնք օգտագործվում են Crouton- ում տեսողական պատկերացումների համար: Այս կառուցվածքը վեբ սերվեր է ավելացնում ESP8266 Master- ին, ծառայում է որոշ կազմաձևման ֆայլեր, որոնք կարող են փոփոխվել օգտվողի կողմից, այնուհետև օգտագործում է այդ ֆայլերը վերաիմաստավորելու համար