Përmbajtje:

IOT123 - HUB SENSOR ASSIMILATE: ICOS10 CORS WEBCOMPONENTS: 8 Hapa
IOT123 - HUB SENSOR ASSIMILATE: ICOS10 CORS WEBCOMPONENTS: 8 Hapa

Video: IOT123 - HUB SENSOR ASSIMILATE: ICOS10 CORS WEBCOMPONENTS: 8 Hapa

Video: IOT123 - HUB SENSOR ASSIMILATE: ICOS10 CORS WEBCOMPONENTS: 8 Hapa
Video: Indefinite Pitch PREMIERES. Mod.1 - Into The Circle [Linderluft Records] 2024, Korrik
Anonim
IOT123 - NJUBSIA E SENSORIT TS ASIMIMIMIT: WEBCOMPONENTS ICOS10 CORS
IOT123 - NJUBSIA E SENSORIT TS ASIMIMIMIT: WEBCOMPONENTS ICOS10 CORS
IOT123 - NJUBSIA E SENSORIT TS ASIMIMIMIT: WEBCOMPONENTS ICOS10 CORS
IOT123 - NJUBSIA E SENSORIT TS ASIMIMIMIT: WEBCOMPONENTS ICOS10 CORS

SENSORI ASIMILATOR/ACTOR Slaves ngërthejnë meta të dhëna që përdoren për vizualizimet përcaktuese në Crouton. Kjo ndërtesë është paksa e ndryshme nga ato të mëparshme; nuk ka ndryshime në harduer. Firmware tani mbështet hostet e redaktuesve me porosi (më të pasur) që mund të integrohen në ndërtimin e fundit të AssimilateCrouton. Më shumë vëmendje do t'i kushtohet shpjegimit të firmware -it dhe pultit MQTT në këtë artikull.

Një nga avantazhet e shërbimit të WebComponents nga pajisja që ata kontrollojnë, është se kontrolli më i avancuar i pajisjes kufizohet në rrjetin me të cilin pajisja është e lidhur: Pika juaj e hyrjes WiFi. Edhe pse sapo përdorni një server MQTT me vërtetim ka një ngjashmëri mbrojtjeje, në rrjetet publike nëse e lini shfletuesin tuaj për një moment (faqja e internetit AssimilateCrouton) dikush mund të hyjë dhe të kontrollojë pajisjet tuaja të automatizimit. Ky funksion i CORS WebComponent bën të mundur që vetëm leximet (temperatura, nivelet e dritës, lagështia) të shfaqen publikisht dhe funksionet e komandës (ndezja/fikja, planifikimi) të jenë të disponueshme vetëm nga rrjeti i pajisjes.

Në pajisje, të gjitha veçoritë e serverit të uebit me Autentifikimin dhe Pritjen në SPIFFS janë ende të mbështetura, por fokus i veçantë i është kushtuar mbështetjes së CORS (Cross Origin Resource Sharing) për Polymer WebComponents (Crouton përdor Polymer 1.4.0).

Në AssimilateCrouton (piruni i Crouton i përdorur për Assimilate IOT Network) ndryshimet përfshijnë

  • mbështetje për një kartë Device (assim-device) që ndër të tjera tregon dhe fsheh, për një përdorues, karta individuale për një pajisje
  • pronë e informacionit në të gjitha kartat që tregon një dolli informacioni të dobishëm kontekstual për një kartë
  • mbështetje për komponentët e uebit CORS, në këtë rast të pritur në serverin e uebit në pajisje (ESP8266).

Hapi 1: CROUTON

CROUTON
CROUTON
CROUTON
CROUTON

Crouton është një pult që ju lejon të vizualizoni dhe kontrolloni pajisjet tuaja IOT me konfigurim minimal. Në thelb, është pulti më i lehtë për tu konfiguruar për çdo entuziast të pajisjeve IOT duke përdorur vetëm MQTT dhe JSON.

SKLAVT ASSIMILATE (sensorë dhe aktorë) kanë të përfshirë metadata dhe veti që masteri përdor për të ndërtuar paketën e informacionit json të pajisjes që Crouton përdor për të ndërtuar pultin. Ndërmjetësi midis ASSIMILATE NODES dhe Crouton është një ndërmjetës MQTT që është miqësor me rrjetet në internet: Mushkonja përdoret për demonstrimin.

Ndërsa ASSIMILATE MASTER kërkon veti, ai formaton vlerat e përgjigjes në formatin e kërkuar për përditësimet e Crouton. Piruni AssimilateCrouton shton disa veçori që ju mundësojnë të decentralizoni rregullat e biznesit që drejtojnë pajisjen tuaj dmth pajisja IOT nuk ka nevojë për ndonjë rregull të integruar të biznesit, është thjesht një tubacion për komunikimin MQTT/I2C me aktorët dhe sensorët më të zgjuar (të kontrolluar nga ATTINY) Me

Hapi 2: ASRIMILIMI I KRUTONIT

KRUTONI I ASIMIMIMIT
KRUTONI I ASIMIMIMIT

NDRYSHIMET N C CROUTON

Ndryshimet nga versioni i pirunit përfshijnë:

  • nëse një pikë përfundimtare ka një pronë të përcaktuar, WebComponent për kartën do të bëjë një HTMLImport për një burim CORS (serveri i uebit në ESP8266 në këtë ndërtim).
  • çdo burim në rrjedhën e sipërme nga (varësitë e) një Komponenti Ueb CORS referohen sikur të shërbehen nga uebfaqja e Crouton; kur ata nuk arrijnë të ngarkojnë një kontrollues përjashtimi rejigs shtigjet dhe ngarkimet nëse nga faqja e internetit.
  • një orë aktuale lokale shfaqet në të djathtë, e dobishme për planifikimin e verifikimit.

VARENDSIT AND DHE KORMET E POLIMERIT

Gjethet e një peme të varësisë nga Polimeri mund të strehohen në CORS. Për shkak se varësitë rrënjësore mund të përdoren disa herë në një aplikacion, ato nuk mund të referohen nga 2 vende (faqja e internetit dhe pajisja) sepse Ngarkuesi i Modulit Polimer i trajton ato si 2 burime të veçanta dhe gabime të shumta regjistrimi shpejt çorodisin një aplikacion.

Për këtë arsye, WebComponent për një kartë (skedar HTML në 1.4.0) dhe skedari i lidhur CSS janë skedarët e vetëm të pritur në pajisje. Varësitë e tjera referohen sikur WebComponent të jetë i vendosur në dosjen "html" në faqen e internetit origjinale, gjë që e bën të lehtë zhvillimin e WebComponents nga ai dosje derisa të jetë gati për t'u ngarkuar në SPIFFS në ESP8266. AssimilateCrouton do të punojë se si të marrë skedarët e duhur.

PUNLSIM

krijuesi i edfungus i Crouton origjinal shkroi burimin në Pug/Less dhe kishte një zinxhir mjetesh NPM/Grunt. Unë e dhashë Pug/Less si HTML/css dhe sapo redaktova/shpërndava skedarët e dhënë. Kjo prishi zinxhirin e veglave NPM/Grunt. Rregullimi i kësaj mbulohet në seksionin E ARDHSHME.

Mund ta provoni pultin në vend në kutinë tuaj DEV:

  • Nga linja e komandës në dosjen rrënjë
  • npm fillimi
  • serveri lite është rrotulluar për https:// localhost: 10001

Vendoseni në një server në internet statik:

  • kopjoni të gjithë dosjet përveç node_modules
  • kopjoni index.html (dhe ndoshta web.config)

E ARDHME

Një nga qëllimet kryesore është të azhurnoni në Polymer3 dhe të punoni nga Polymer CLI. Shtimi i redaktuesve të avancuar dhe kuadrit për zhvilluesit e IOT për të zhvilluar të tyrin është një përparësi e lartë. Përfundimisht sistemi i avancuar i automatizuar do të drejtohet tërësisht nga klientët e shkëputur MQTT si AssimilateCrouton.

Një shembull i paketës së pajisjesInfo të përdorur për AssimilateCrouton:

{
"deviceInfo": {
"endPoints": {
"CC_device": {
"emri i pajisjes": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"pikat përfundimtare": [
{
"title": "Rriten Dritat",
"card-type": "crouton-simple-toggle",
"pika përfundimtare": "kalo"
},
{
"title": "Dritat e mbjellësit",
"card-type": "crouton-assim-weekview",
"pika përfundimtare": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"info": "Ndezja ose fikja e dritave në afate kohore 15 minutëshe",
"shteg": "https://192.168.8.104/cors",
"title": "Dritat e mbjellësit",
"interval_min": 15,
"vlerat": {
"vlera": ""
}
},
"kalo": {
"title": "Rriten dritat",
"card-type": "crouton-simple-toggle",
"info": "Ndizni ose fikni dritat në baza ad hoc",
"etiketat": {
"false": "OFF",
"e vërtetë": "ON"
},
"ikona": {
"false": "diell-o",
"true": "sun-o"
},
"vlerat": {
"vlera": 0
}
}
},
"status": "mirë",
"emri": "ash_mezz_A3",
"description": "Zyra në Ashmore, Mezzanine, Area A2",
"ngjyra": "#4D90FE"
}
}

shikoni rawdeviceInfo.json të pritur me ❤ nga GitHub

Hapi 3: KUVENDIMI I Pajisjeve

KUVENDI I Pajisjeve
KUVENDI I Pajisjeve
KUVENDI I Pajisjeve
KUVENDI I Pajisjeve
KUVENDI I Pajisjeve
KUVENDI I Pajisjeve

Meqenëse nuk ka ndryshime në harduer, këtu janë lidhjet me informacionin përkatës:

  • Asambleja e Shellit
  • Materialet dhe Mjetet
  • Përgatitja e MCU
  • Përgatitja e Strehimit MCU
  • Ndërtimi i skllevërve Ndërprerësja me anë të ulët/RESET Vajza
  • Montimi i përbërësve kryesorë

Hapi 4: FIRMWARE

FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE
FIRMWARE

NDRYSHIMET KRYESORE K THT B NDRTIM

Në mënyrë që aplikacioni AssimilateCrouton të jetë në gjendje të përdorë burimet CORS nga pajisja, titujt e përgjigjeve duhej të konfiguroheshin në një mënyrë të veçantë. Kjo u zbatua në këtë lëshim të firmuerit (static_server.ino => server_file_read ()).

Gjithashtu grafiku kryesor i varësisë për Polimerin duhej të ishte nga një origjinë e vetme. Një strategji u përdor për të shtuar një kontrollues të gabimeve (corsLinkOnError) në skedarët SPIFFS CORS për të ringarkuar burimet nga faqja e internetit AssimilateCrouton kur ato nuk gjenden në pajisje.

Janë shtuar 2 konventa të reja në sistemin e skedarëve SPIFFS për personalizimin e pikave përfundimtare që krijohen në pajisjenInfo - të cilat AssimilateCrouton i përdor për të krijuar kartat e pultit:

  • /config/user_card_base.json Përkufizimi i pikës përfundimtare me ndryshoret e kohës së funksionimit që ndërrohen së pari:,,. Kjo është zakonisht vendi ku do të shtohet karta e pajisjes assim. Kjo nuk komunikon përsëri me pajisjen.
  • /config/user_card_#.json Përkufizimi i pikës fundore me ndryshoret e kohës së funksionimit që ndërrohen së pari:,,. Kjo është zakonisht aty ku redaktorët e pasur si karta assim-weekview do të shtohen të lidhura me skllavin I2C (aktor/sensor) që lidhet me #.

SKISHA/BIBLIOTEKAT

Në këtë fazë projekti është paketuar si shembull për bibliotekën AssimilateBus Arduino. Kjo është kryesisht për të bërë të lehtë qasjen në të gjithë skedarët e nevojshëm nga Arduino IDE. Artefaktet kryesore të kodit janë:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - pika kryesore e hyrjes.
  • assimilate_bus.h/assimilate_bus.cpp - biblioteka që trajton komunikimin I2C me Sensorin/Skllevërit/Aktorët
  • VizJson.h/VizJson.cpp - biblioteka që formaton/ndërton çdo JSON të publikuar përmes MQTT
  • config.h/config.cpp - biblioteka që lexon/kutitë/shkruan skedarët e konfigurimit në SPIFFS
  • static_i2c_callbacks.ino - thirrjet e I2C për një pronë që merret dhe cikli i kërkesave të skllevërve është i plotë static_mqtt.ino - funksionet MQTT
  • static_server.ino - funksionet e serverit në internet
  • static_utility.ino - funksionet ndihmëse

Funksionet statike INO u përdorën (në vend të bibliotekave) për një sërë arsyesh, por kryesisht në mënyrë që funksionet e Webserver dhe MQTT të luajnë mirë së bashku.

BURIMET SPIFFS

Shpjegimet e hollësishme të skedarëve SPIFFS mund të gjenden këtu.

  • favicon.ico - burim i përdorur nga Ace Editor
  • konfiguro

    • device.json - konfigurimi për pajisjen (Wifi, MQTT…)
    • slave_metas _#. json - e krijuar në kohën e ekzekutimit për secilin numër të adresës së skllavit (#)
    • karta e përdoruesit _#.
    • user_card_base.json - pika përfundimtare e personalizuar për t'u integruar në pajisjenInfo për pajisjen
    • user_meta _#.
    • user_props.json - emrat e pronave të personalizuara për të anashkaluar ato në meta të dhënat e skllevërve
  • cors

    • card -webcomponent.css - fletë stili për karta të ndryshme me porosi
    • card -webcomponent.html - webcomponent për karta të ndryshme me porosi
  • redaktor

    • assimilate -logo-p.webp" />
    • edit.htm.gz - gzip i Ace Editor HTML
    • edit.htm.src - HTML origjinale e Ace Editor
    • favicon -32x32-p.webp" />

P URFUNDIMI I FIRMWARE

  • Depoja e kodeve mund të gjendet këtu (fotografi).
  • Një ZIP i bibliotekës mund të gjendet këtu (fotografi).
  • Udhëzimet për "Importimi i një biblioteke ZIP" këtu.
  • Pasi të jetë instaluar biblioteka, mund të hapni shembullin "mqtt_crouton_esp8266_cors_webcomponents".
  • Udhëzimet për vendosjen e Arduino për Wemos D1 Mini këtu.
  • Varësitë: ArduinoJson, TimeLib, PubSubClient, NeoTimer (shihni bashkëngjitjet nëse prishen ndryshimet në depo).

NGARKIM P TOR SPIFFS

Pasi kodi të jetë ngarkuar në Arduino IDE, hapni pajisjen.json në dosjen e të dhënave/konfigurimit:

  • Ndryshoni vlerën e wifi_ssid me SSID -in tuaj WiFi.
  • Ndryshoni vlerën e çelësit wifi_ me çelësin tuaj WiFi.
  • Ndryshoni vlerën e mqtt_device_name me identifikimin e pajisjes tuaj të preferuar (nuk nevojitet bashkim).
  • Ndryshoni vlerën e mqtt_device_description me përshkrimin e pajisjes tuaj të preferuar (në Crouton).
  • Ruani pajisjen.json.
  • Ngarko skedarët e të dhënave në SPIFFS.

Pika kryesore e hyrjes për shembullin AssimilateBus:

/*
*
*RREGULLAT E BIZNESIT P FORR PAJISJEN TUAJ PRITEN T TO KONTROLLOHEN PIARMJET MQTT - NUK HSHT PARDRFSHIR N K THTIS FIRMWARE
*
* Përveç konfigurimit dhe lakut në këtë skedar
* pjesët e rëndësishme lëvizëse janë
* on_bus_mbledhur dhe on_bus_complete në static_i2c_callbacks.ino
* dhe
* mqtt_publish dhe mqtt_callback në static_mqtt.ino
*
*/
#përfshi "llojet.h"
#përfshi "VizJson.h"
#include "assimilate_bus.h"
#përfshi "debug.h"
#include "config.h"
#përfshi

#përfshi

// vendosni MQTT_MAX_PACKET_SIZE në 3000 ~ (ose nevojat tuaja për pajisjenInfo json)

#përfshi
#përfshi
#përfshi
#përfshi
#përfshi
// --------------------------------- DEKLARATAT KUJTESORE
// ---------------------------------------------------- - përcakton
#përcaktoDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMUM, LIRIM, I PLOT
#define_mqtt_pub_topic "outbox" // KONVENTET KROUTON
#define_mqtt_sub_topic "inbox"
// ---------------------------------------------------- - objekte të klasës
Debug _debug (DBG_OUTPUT_FLAG);
AssimilateBus _assimilate_bus;
VizJson _viz_json;
Konfiguro _config_data;
WiFiClient _esp_client;
PubSubClient _klient (_esp_client);
WiFiUDP Udp;
ESP8266WebServer _server (80);
Neotimer _timer_property_request = Neotimer (5000);
// ---------------------------------------------------- - strukturat / ndryshoret e të dhënave
RuntimeDeviceData _ruantime_device_data;
PropertyDto _dto_props [50]; // max 10 skllevër x max 5 veti
// ---------------------------------------------------- - kontrollin e rrjedhës
volatilebool _sent_device_info = false;
byte _dto_props_index = 0;
bool _fatal_error = false;
// --------------------------------- DEKLARATAT E FUSHSIMIT TUN FUNKSIONIT
// ---------------------------------------------------- - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address, byte prop_index, Roli i rolit, emri char [16], char char [16]);
voidon_bus_complete ();
// ---------------------------------------------------- - static_mqtt.ino
voidmqtt_callback (temë char*, byte* ngarkesë, gjatësi pa shenjë);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (tema**);
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 *pika e fundit);
voidi2c_set_and_get (adresa e bajtit, kodi i bajtit, constchar *param);
// ---------------------------------------------------- - serveri statik.ino
String_content_type_get string (Emri i skedarit të vargut);
boolserver_path_in_auth_exclusion (Rruga e vargut);
boolserver_auth_read (Rruga e vargut);
boolserver_file_read (Rruga e vargut);
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 (IPAdresa & adresa);
char *time_stamp_get ();
// ---------------------------------------------------- - static_utility.ino
String spiffs_file_list_build (String path);
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);
byte get_prop_dto_idx (byte slave_address, byte prop_index);
// --------------------------------- KRYESORE
voidsetup () {
DBG_OUTPUT_PORT.filloj (115200);
Të dhënat e pajisjes SetupDeviceData;
Serial.println (); Serial.println (); // diferenca për plehrat e tastierës
vonesa (5000);
nëse (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (e vërtetë);
_debug.out_fla (F ("konfigurimi"), e vërtetë, 2);
// merrni konfigurimin e kërkuar
nëse (SPIFFS.filloj ()) {
_debug.out_str (spiffs_file_list_build ("/"), true, 2);
nëse (! _config_data.get_device_data (të dhënat e pajisjes, _runtime_device_data)) {
report_deserialize_error ();
kthim;
}
} tjetër {
report_spiffs_error ();
kthim;
}
// përdor vlerën e kohëmatësit të vendosur në pajisje.json
_timer_property_request.set (pajisje_data.sensor_interval);
mqtt_init (pajisje_data.wifi_ssid, pajisje_data.wifi_key, pajisje_data.mqtt_broker, pajisje_data.mqtt_port);
time_services_init (pajisja_data.ntp_server_name, device_data.time_zone);
server_init ();
// filloni koleksionin e meta të dhënave
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// ka nevojë për vetinë e sensorit (emrat) për të përfunduar mbledhjen e meta të dhënave
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // mund të kalojë kohë e dukshme deri në këtë pikë, kështu që fillojeni përsëri
}
voidloop () {
nëse (! check_fatal_error ()) kthehet;
mqtt_loop ();
_server.handleClient ();
nëse (_timer_property_request.repeat ()) {
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

shiko rawmqtt_crouton_esp8266_cors_webcomponents.ino pritur me ❤ nga GitHub

Hapi 5: KARTA E PAJISJES

KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE
KART PEVR PAJISJE

Karta e pajisjes (lloji i kartës: assim-device) është pritur në faqen e internetit dhe nuk është e nevojshme ta shërbeni atë nga pajisja (CORS).

Faqja e saj e paracaktuar liston:

  • Temat MQTT për leximin dhe shkrimin në pajisje
  • Pika e hyrjes me të cilën është lidhur pajisja
  • Një lidhje me redaktuesin e skedarëve SPIFFS të vendosur në pajisje duke përdorur ACE EDITOR
  • Një ikonë e syrit që zbulon faqen Trego/Fshih kartën.

Listat e faqeve të Shfaq/Fshih kartën:

  • Çdo kartë si një artikull i veçantë
  • Font blu i guximshëm kur shfaqet
  • Shkronja normale e zezë kur fshihet
  • Një ikonë që përshkruan llojin e kartës.

Karta mund të fshihet duke klikuar butonin e fshehjes në karta, ose duke klikuar në një artikull me shkronja blu të guximshme në listë. Kartat mund të shfaqen duke klikuar në një artikull me shkronja të zeza-normale në listë.

E lidhur ngushtë me këtë veçori është dolli i informacionit. Nëse ndonjë prej pikave përfundimtare në pajisjenInfo ka një pronë të caktuar të informacionit, një buton informacioni do të shfaqet pranë butonit të fshehjes në kartelë. Kur klikohet, informacioni kontekstual i përcaktuar në pikën përfundimtare do të "theksohet" në dritare.

Nëse karta e pajisjes nuk është e përcaktuar, butonat e fshehjes nuk do të shfaqen në karta. Kjo ndodh sepse pasi fshihet nuk ka asnjë mënyrë për t'i treguar ato, përsëri.

Shihni PURSHIRIMI ENDPOINT për të detajuar sesi karta e pajisjes assim mund të shtohet përmes skedarëve SPIFFS në ESP8266.

Komponenti Web AssimilateCrouton

sinjale hekuri>
div>
TREGO Fsheh Ikonën
i> shtrirje>
FORMULARI I PAJISJES
TEMAT MQTTdiv>
/dalëse/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADRESAdiv>
{{endPointJson.ip_addr}} a> div>
div>
TREGO FSHEHUR LISTA
element>artikull letre>
shabllon>
letër-listbox>
div>
crouton-card>
shabllon>
dom-modul>

shikoni rawassim-device.html të pritur me ❤ nga GitHub

Hapi 6: KARTA E PARASHIKIMIT

KARTA E PARASHIKIMIT
KARTA E PARASHIKIMIT
KARTA E PARASHIKIMIT
KARTA E PARASHIKIMIT
KARTA E PARASHIKIMIT
KARTA E PARASHIKIMIT

Karta e shikimit të javës (lloji i kartës: assim-weekview) ruhet në pajisje (dosja cors). Injektohet në paketën deviceInfo të publikuar për AssimilateCrouton, duke shtuar një skedar config/user_card _#. Json në SPIFFS (në këtë rast user_card_9.json).

P ORMBLEDHJE

Ditët e javës paraqiten si lista të afateve kohore. Hollësia e hapësirës kohore është vendosur me vetinë "interval_min" në konfigurimin/user_card _#. Json. Duhet të jetë një fraksion i një ore ose shumëfish i një ore p.sh. 10, 15, 20, 30, 60, 120, 360. Klikimi në një hapësirë kohore sigurohuni që një gjendje ndezjeje të komandohet për pajisjen e lidhur në atë kohë. Nëse afati kohor është tani, një komandë dërgohet (publikohet) menjëherë për pajisjen. Normalisht gjendja kontrollohet/publikohet çdo minutë. Zgjedhjet ruhen në LocalStorage, kështu që kohët do të ringarkohen me një rifreskim të shfletuesit.

RASTE TE PERDORIMIT

Në gjendjen e tij aktuale, pamja e javës është e përshtatshme për pajisjet që mund të përdorin një çelës Toggle për të vizualizuar gjendjen e tyre, domethënë ato janë ose të ndezura ose të fikura dhe pasi të jenë vendosur ato mbeten në atë gjendje. Dritat, tifozët dhe ngrohësit e ujit janë kandidatë të mirë.

KUFIZIMET/Shpellat

  • Intervali_min duhet të jetë një nga vlerat e përmendura më lart
  • Pamja e javës nuk mbështet veprimet momentale që janë planifikuar gjithashtu, të tilla si hapja e një trokitje e lehtë shkurtimisht (5 sekonda) dy herë në ditë.

E ARDHME

  • Pritet që veprimet momentale të mbështeten.
  • Magazinimi i sinkronizuar nëpër pajisje, për zgjedhjet e orarit po merret parasysh.

Hapi 7: KUSTOMIZIMI PPRFUNDIM

Siç u përmend shkurtimisht në FIRMWARE, janë 2 konventa të reja të shtuara në sistemin e skedarëve SPIFFS për personalizimin e pikave përfundimtare. Skedarët JSON janë fragmente që shtohen në pronën e pikave përfundimtare në paketën deviceInfo të postuara në ndërmjetësin MQTT që bëhet përkufizimi i pultit.

Çelësat e pikave përfundimtare gjenerohen në firmware:

  • CC_device (Kartë e personalizuar) për user_card_base.json
  • CC_SLAVE_ENDPOINT EMRI për kartën e përdoruesit _#. Json (# duke qenë adresa e skllavit)

Siç u përmend më parë, ka variabla që zëvendësohen me vlerat në kohën e ekzekutimit:

  • mqtt_device_name
  • wifi_ssid
  • lokale_ip

user_card_base.json

Nje shembull:

karta e përdoruesit _#. json

Nje shembull:

Hapi 8: VIDEO

Recommended: