Sadržaj:

IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI: 8 koraka
IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI: 8 koraka

Video: IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI: 8 koraka

Video: IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI: 8 koraka
Video: IOT123 - BYKO LIVE RIDE 2024, Studeni
Anonim
IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI
IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI
IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI
IOT123 - Čvorište asimiliranih senzora: ICOS10 CORS WEBCOMPONENTI

Podređeni senzor za asimilaciju/glumac ugrađuju metapodatke koji se koriste za definiranje vizualizacija u Croutonu. Ova se konstrukcija malo razlikuje od prethodnih; nema hardverskih promjena. Firmver sada podržava hosting prilagođenih (bogatijih) uređivača koji se mogu integrirati u najnoviju verziju AssimilateCroutona. U ovom će se članku više pažnje posvetiti objašnjenju firmvera i nadzorne ploče MQTT.

Jedna od prednosti posluživanja web -komponenti s uređaja kojim upravljaju je ta što je naprednija kontrola uređaja ograničena na mrežu na koju je uređaj spojen: vašu WiFi pristupnu točku. Iako nakon što koristite MQTT poslužitelj s autentifikacijom postoji sličnost zaštite, na javnim mrežama ako na trenutak napustite svoj Preglednik (web mjesto AssimilateCrouton) netko bi mogao uskočiti i upravljati vašim uređajima za automatizaciju. Ova značajka CORS WebComponent omogućuje javno prikazivanje očitanja (temperature, razine svjetlosti, vlage), a naredbene funkcije (uključivanje/isključivanje, zakazivanje) dostupne su samo s mreže uređaja.

Na uređaju su i dalje podržane sve značajke web poslužitelja s provjerom autentičnosti i hostiranjem u SPIFFS -u, ali poseban naglasak stavljen je na podršku za CORS (Cross Origin Resource Sharing) podršku za Polymer WebComponents (Crouton koristi Polymer 1.4.0).

U AssimilateCrouton (Croutonova račva koja se koristi za Assimilate IOT Network) promjene uključuju

  • podrška za karticu uređaja (assim-uređaj) koja između ostalog prikazuje i skriva, za korisnika, pojedinačne kartice za uređaj
  • info svojstvo na svim karticama koje prikazuje zdravicu korisnih kontekstualnih informacija za karticu
  • podrška za CORS web komponente, u ovom slučaju hostirane na web poslužitelju na uređaju (ESP8266).

Korak 1: KROUTON

KOCKICA PREPEČENOG KRUHA
KOCKICA PREPEČENOG KRUHA
KOCKICA PREPEČENOG KRUHA
KOCKICA PREPEČENOG KRUHA

Crouton je nadzorna ploča koja vam omogućuje vizualizaciju i upravljanje vašim IOT uređajima uz minimalno postavljanje. U biti, to je najjednostavnija nadzorna ploča za postavljanje za svakog ljubitelja IOT hardvera koji koristi samo MQTT i JSON.

ASIMILIRAJUĆI SLOVENI (senzori i glumci) imaju ugrađene metapodatke i svojstva koja master koristi za izgradnju paketa deviceInfo json koji Crouton koristi za izradu nadzorne ploče. Posrednik između ASSIMILATE NODES -a i Croutona je MQTT posrednik koji je prilagođen web -utičnicama: Mosquito se koristi za demonstraciju.

Kako ASSIMILATE MASTER traži svojstva, on formatira vrijednosti odgovora u potrebnom formatu za Croutonova ažuriranja. Vilica AssimilateCrouton dodaje neke značajke koje vam omogućuju decentralizaciju poslovnih pravila koja pokreću vaš uređaj, tj. IOT uređaju nisu potrebna nikakva ugrađena poslovna pravila, već je samo kanal za komunikaciju MQTT/I2C s pametnijim (kontroliranim ATTINY -om) podređenim akterima i senzorima.

Korak 2: ASIMILIRAJTE KROUTON

ASIMILIRAJTE KROUTON
ASIMILIRAJTE KROUTON

PROMJENE KROUTONA

Promjene u odnosu na raširenu verziju uključuju:

  • ako krajnja točka ima definirano svojstvo puta, WebComponent za karticu će izvršiti HTMLImport za CORS resurs (web poslužitelj na ESP8266 u ovoj verziji).
  • svi resursi uzvodno od (ovisnosti) CORS WebComponente upućuju se kao da se poslužuju s web stranice Crouton; kada ne uspiju učitati izvođač iznimki, ponovno mijenja putove i učitava se s web stranice.
  • gore desno prikazuje se lokalno vrijeme, korisno za provjeru zakazivanja.

POLIMERSKE Ovisnosti i KOR

Listovi stabla ovisnosti o polimerima mogu se smjestiti u CORS. Budući da se korijenske ovisnosti mogu koristiti nekoliko puta u aplikaciji, na njih se ne može referencirati s 2 lokacije (web stranica i uređaj) jer ih učitavač polimernih modula tretira kao 2 odvojena resursa i više pogrešaka pri registraciji brzo nailazi na aplikaciju.

Iz tog razloga WebComponent za karticu (HTML datoteka u 1.4.0) i pridružena CSS datoteka jedine su datoteke hostirane na uređaju. Ostale su ovisnosti referencirane kao da se WebComponent nalazi u mapi "html" na izvornoj web stranici, što olakšava razvoj WebComponenti iz te mape sve dok se ne postave za prijenos u SPIFFS na ESP8266. AssimilateCrouton će otkriti kako doći do ispravnih datoteka.

OTPADANJE

tvorac izvornog Croutona edfungus je napisao izvor u Pug/Less i imao NPM/Grunt alatni lanac. Iscrtao sam Pug/Less kao HTML/css i samo uređivao/distribuirao renderirane datoteke. To je prekinulo NPM/Grunt alatni lanac. Popravljanje toga je pokriveno u odjeljku BUDUĆNOST.

Nadzornu ploču možete testirati lokalno na svom DEV -u:

  • Iz naredbenog retka u korijenskoj mapi
  • npm početak
  • lite-poslužitelj je uključen za https:// localhost: 10001

Postavi na statički web poslužitelj:

  • kopirajte sve mape osim node_modules
  • kopirajte index.html (i eventualno web.config)

BUDUĆNOST

Jedan od glavnih ciljeva je nadogradnja na Polymer3 i rad s Polymer CLI -a. Dodavanje naprednih uređivača i okvira za razvoj IOT programera visoki je prioritet. Na kraju će napredni automatizirani sustav biti u potpunosti pokrenut od odvojenih MQTT klijenata poput AssimilateCroutona.

Primjer paketa deviceInfo koji se koristi za AssimilateCrouton:

{
"informacije o uređaju": {
"krajnje točke": {
"CC_uređaj": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"krajnje točke": [
{
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"endpoint": "switch"
},
{
"title": "Svjetla za sadnju",
"card-type": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"info": "Uključite ili isključite svjetla u vremenskim intervalima od 15 minuta",
"path": "https://192.168.8.104/cors",
"title": "Svjetla za sadnju",
"interval_min": 15,
"vrijednosti": {
"value": ""
}
},
"sklopka": {
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"info": "Uključivanje ili isključivanje svjetla na ad hoc osnovi",
"oznake": {
"false": "OFF",
"true": "ON"
},
"ikone": {
"false": "sun-o",
"true": "sun-o"
},
"vrijednosti": {
"vrijednost": 0
}
}
},
"status": "dobro",
"name": "ash_mezz_A3",
"description": "Ured u Ashmoreu, Mezanin, područje A2",
"color": "#4D90FE"
}
}

pogledajte rawdeviceInfo.json hostirano sa ❤ od strane GitHub -a

Korak 3: SKLOP UREĐAJA

SKLOP UREĐAJA
SKLOP UREĐAJA
SKLOP UREĐAJA
SKLOP UREĐAJA
SKLOP UREĐAJA
SKLOP UREĐAJA

Kako nema hardverskih promjena, evo veza do relevantnih informacija:

  • Sklop ljuske
  • Materijali i alati
  • Priprema MCU -a
  • MCU Priprema stambenog prostora
  • Izgradnja Slaves prekidača s niske strane/RESET kćeri
  • Sastavljanje glavnih komponenti

Korak 4: FIRMWARE

FIRMWARE
FIRMWARE
FIRMER
FIRMER
FIRMER
FIRMER
FIRMWARE
FIRMWARE

GLAVNE PROMJENE OVE ZGRADE

Da bi aplikacija AssimilateCrouton mogla koristiti CORS resurse s uređaja, zaglavlja odgovora trebala su biti konfigurirana na određeni način. To je implementirano u ovom izdanju firmvera (static_server.ino => server_file_read ()).

Također, glavni grafikon ovisnosti o polimeru trebao je biti jednog podrijetla. Korištena je strategija za dodavanje rukovatelja onerror -a (corsLinkOnError) u SPIFFS CORS datoteke za ponovno učitavanje resursa s web stranice AssimilateCrouton kada se ne nalaze na uređaju.

U datotečni sustav SPIFFS dodane su dvije nove konvencije za prilagođavanje krajnjih točaka stvorenih u deviceInfo - koje AssimilateCrouton koristi za izradu kartica nadzorne ploče:

  • /config/user_card_base.json Definicija krajnje točke s promjenjivim varijablama vremena izvođenja:,,. Tu će se obično dodati kartica asim-uređaja. Ovo ne komunicira natrag s uređajem.
  • /config/user_card_#.json Definicija krajnje točke s promjenjivim varijablama vremena izvođenja:,,. Ovo je obično mjesto gdje će se bogati urednici, poput kartice asimedenskog pregleda, dodati spojeni na I2C rob (glumac/senzor) koji se odnosi na #.

SKIC/KNJIŽNICE

U ovoj fazi projekt je pakiran kao primjer za biblioteku AssimilateBus Arduino. Ovo je uglavnom radi olakšavanja pristupa svim potrebnim datotekama iz Arduino IDE -a. Glavni artefakti koda su:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - glavna ulazna točka.
  • assimilate_bus.h/assimilate_bus.cpp - knjižnica koja upravlja I2C komunikacijom s podređenim senzorom/glumcima
  • VizJson.h/VizJson.cpp - knjižnica koja formatira/gradi bilo koji JSON objavljen putem MQTT -a
  • config.h/config.cpp - biblioteka koja čita/kutira/upisuje konfiguracijske datoteke na SPIFFS
  • static_i2c_callbacks.ino - povratni pozivi I2C za svojstvo koje se prima i ciklus podređenih zahtjeva koji su potpuni static_mqtt.ino - funkcije MQTT
  • static_server.ino - funkcije web poslužitelja
  • static_utility.ino - pomoćne funkcije

Statičke INO funkcije korištene su (umjesto knjižnica) iz raznih razloga, ali uglavnom kako bi se funkcije Web poslužitelja i MQTT mogle dobro igrati zajedno.

RESURSI SPIFFA

Detaljna objašnjenja SPIFFS datoteka možete pronaći ovdje.

  • favicon.ico - resurs koji koristi Ace Editor
  • config

    • device.json - konfiguracija uređaja (Wifi, MQTT …)
    • slave_metas _#. json - generira se za vrijeme izvođenja za svaki broj adrese slave (#)
    • user_card _#. json - prilagođena krajnja točka koja se integrira u deviceInfo za svaki broj adrese slave (#)
    • user_card_base.json - prilagođena krajnja točka koja se integrira u deviceInfo za uređaj
    • user_meta _#. json - prilagođeni metapodaci nadjačavaju podatke slave -a za svaki broj adrese slave (#)
    • user_props.json - prilagođena imena svojstava za nadjačavanje onih u metapodacima podređenih
  • korice

    • card -webcomponent.css - tablica stilova za razne prilagođene kartice
    • card -webcomponent.html - webkomponenta za razne prilagođene kartice
  • urednik

    • assimilate -logo-p.webp" />
    • edit.htm.gz - gzip HTML -a Ace Editor -a
    • edit.htm.src - izvorni HTML uređivača Acea
    • favicon -32x32-p.webp" />

UČITAJUĆI FIRMER

  • Spremište koda možete pronaći ovdje (snimak).
  • ZIP biblioteke možete pronaći ovdje (snimak).
  • Upute za "Uvoz ZIP knjižnice" ovdje.
  • Nakon što je knjižnica instalirana, možete otvoriti primjer "mqtt_crouton_esp8266_cors_webcomponents".
  • Upute za postavljanje Arduina za Wemos D1 Mini ovdje.
  • Ovisnosti: ArduinoJson, TimeLib, PubSubClient, NeoTimer (pogledajte privitke ako se krše promjene u spremištima).

UČITAJ U SPIFFOVE

Nakon što se kôd učita u Arduino IDE, otvorite device.json u mapi data/config:

  • Izmijenite vrijednost wifi_ssid sa svojim WiFi SSID -om.
  • Izmijenite vrijednost wifi_key ključem za WiFi.
  • Izmijenite vrijednost mqtt_device_name sa željenom identifikacijom uređaja (spajanje nije potrebno).
  • Izmijenite vrijednost mqtt_device_description sa svojim željenim opisom uređaja (u Croutonu).
  • Spremi uređaj.json.
  • Prenesite podatkovne datoteke u SPIFFS.

Glavna ulazna točka za primjer AssimilateBus:

/*
*
*Očekuje se da će se poslovna pravila za vaš uređaj kontrolirati putem MQTT - ne tvrdo pečena u ovom softveru
*
* Osim postavljanja i petlje u ovoj datoteci
* Važni pokretni dijelovi su
* primljeno na_autobusu i dovršeno na_sabirnici u static_i2c_callbacks.ino
* i
* mqtt_publish i mqtt_callback u static_mqtt.ino
*
*/
#include "types.h"
#include "VizJson.h"
#include "assimilate_bus.h"
#include "debug.h"
#include "config.h"
#uključi

#uključi

// postavite MQTT_MAX_PACKET_SIZE na ~ 3000 (ili vaše potrebe za deviceInfo json)

#uključi
#uključi
#uključi
#uključi
#uključi
// --------------------------------- DEKLARACIJE SJEĆANJA
// ------------------------------------------------ - definira
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMALNO, OSLOBOĐENJE, PUNO
#define_mqtt_pub_topic "outbox" // KROVONSKE KONVENCIJE
#define_mqtt_sub_topic "pristigla pošta"
// ------------------------------------------------ - objekti klase
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);
// ------------------------------------------------ - strukture podataka / varijabla
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // max 10 slave x max 5 svojstava
// ------------------------------------------------ - upravljanje protokom
volatilebool _sent_device_info = false;
bajt _dto_props_index = 0;
bool _fatal_error = false;
// --------------------------------- IZJAVE O OBIMU FUNKCIJE
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (byte slave_address, byte prop_index, role role, name char [16], char value [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* tema, bajt* korisni teret, duljina bez potpisa);
voidmqtt_loop ();
int8_tmqtt_get_topic_index (char* 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 *krajnja točka, constchar *korisni teret);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *Naziv uređaja, char *krajnja točka);
voidi2c_set_and_get (adresa bajta, kôd bajta, constchar *param);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (String naziv datoteke);
boolserver_path_in_auth_exclusion (Staza niza);
boolserver_auth_read (Staza niza);
boolserver_file_read (Staza niza);
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 (IP adresa i 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 (bajt slave_adress, byte prop_index, char *type_card);
boolget_struct_card_type (bajt slave_adrress, byte prop_index, char *type_card);
boolget_json_is_series (bajt slave_adress, byte prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
bajt get_prop_dto_idx (bajt slave_adresa, bajt prop_index);
//---------------------------------GLAVNI
voidsetup () {
DBG_OUTPUT_PORT.počnite (115200);
SetupDeviceData device_data;
Serial.println (); Serial.println (); // margina za smeće konzole
kašnjenje (5000);
if (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (true);
_debug.out_fla (F ("postavljanje"), istina, 2);
// dobiti potrebnu konfiguraciju
if (SPIFFS.begin ()) {{100} {101}
_debug.out_str (spiffs_file_list_build ("/"), istina, 2);
if (! _config_data.get_device_data (device_data, _runtime_device_data)) {{100} {101}
report_deserialize_error ();
povratak;
}
}drugo{
report_spiffs_error ();
povratak;
}
// koristiti vrijednost timera postavljenu u 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 (data_data.ntp_server_name, device_data.time_zone);
server_init ();
// započinje prikupljanje metapodataka
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// treba svojstvo senzora (imena) za dovršetak prikupljanja metapodataka
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // može izgubiti vidljivo vrijeme do ove točke pa ga pokrenite ponovno
}
voidloop () {
if (! check_fatal_error ()) return;
mqtt_loop ();
_server.handleClient ();
if (_timer_property_request.repeat ()) {{100} {101}
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

pogledajte rawmqtt_crouton_esp8266_cors_webcomponents.ino hosted with ❤ by GitHub

5. korak: KARTICA UREĐAJA

KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA
KARTICA UREĐAJA

Kartica uređaja (vrsta kartice: assim-device) hostirana je na web stranici i nije ju potrebno posluživati s uređaja (CORS).

Zadana stranica prikazuje:

  • MQTT teme za čitanje i pisanje na uređaj
  • Pristupna točka na koju je uređaj spojen
  • Veza na uređivač datoteka SPIFFS hostiran na uređaju pomoću ACE EDITOR -a
  • Ikona oka koja otkriva stranicu Prikaži/sakrij karticu.

Na stranici Prikaži/sakrij karticu navedene su:

  • Svaka kartica kao zasebna stavka
  • Podebljani plavi font pri prikazivanju
  • Crni normalni font kada je skriven
  • Ikona koja prikazuje vrstu kartice.

Karticu možete sakriti klikom na gumb sakrij na karticama ili klikom na stavku s plavim podebljanim fontom na popisu. Kartice se mogu prikazati klikom na stavku crnog-normalnog fonta na popisu.

Slabo povezani s ovom značajkom su i zdravice s informacijama. Ako bilo koja od krajnjih točaka u deviceInfo ima dodijeljeno svojstvo info, gumb za informacije prikazat će se pokraj gumba za skrivanje na kartici. Kada se klikne, kontekstualni podaci definirani u krajnjoj točki bit će "nazdravljeni" prozoru.

Ako kartica uređaja nije definirana, gumbi za skrivanje neće se prikazivati na karticama. To je zato što jednom skriveni više ne postoji način da ih pokažete.

Pogledajte ENDPOINT CUSTOMIZATION za detalje o tome kako se kartica asim-uređaja može dodati putem SPIFFS datoteka na ESP8266.

AssimilateCrouton WebComponent

željezni signali>
div>
POKAŽI SAKRIJ IKONU
i> span>
OBLIK UREĐAJA
MQTT TEMEdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP ADRESAdiv>
{{endPointJson.ip_addr}} a> div>
div>
PRIKAŽI Skrivanje popisa
element>papir-stavka>
predložak>
papir-popisni okvir>
div>
crouton-card>
predložak>
dom-module>

pogledajte rawassim-device.html hostirano sa ❤ na GitHubu

Korak 6: KARTICA TJEDNIKA

KARTICA TJEDNIKA
KARTICA TJEDNIKA
KARTICA ZA VIKEND
KARTICA ZA VIKEND
KARTICA ZA VIKEND
KARTICA ZA VIKEND

Kartica tjednog prikaza (vrsta kartice: assim-weekview) hostirana je na uređaju (mapa cors). Ubrizgava se u paket deviceInfo objavljen za AssimilateCrouton, dodavanjem datoteke config/user_card _#. Json u SPIFFS (u ovom slučaju user_card_9.json).

PREGLED

Radni dani prikazani su kao popisi vremenskih intervala. Zrnatost vremenskog ugla postavljena je svojstvom "interval_mins" u datoteci config/user_card _#. Json. To mora biti djelić sata ili višekratnik sata npr. 10, 15, 20, 30, 60, 120, 360. Klikom na vremenski utor provjerite je li za to vrijeme zapovijeđeno stanje uključenosti za pridruženi uređaj. Ako je vremensko mjesto sada, naredba se odmah šalje (objavljuje) za uređaj. Obično se stanje provjerava/objavljuje svake minute. Izbori se spremaju u LocalStorage, pa će se vremena ponovno učitati osvježavanjem preglednika.

UPOTREBA SLUČAJEVA

U svom trenutnom stanju, tjedni prikaz prikladan je za uređaje koji mogu koristiti preklopni prekidač za vizualizaciju svog stanja, tj. Jesu li uključeni ili isključeni, a nakon postavljanja ostaju u tom stanju. Svjetla, ventilatori i grijači vode dobri su kandidati.

OGRANIČENJA/UPOZORENJA

  • Interval_mins mora biti jedna od gore navedenih vrijednosti
  • Tjedni prikaz ne podržava trenutne radnje koje su također zakazane, poput kratkog uključivanja dodira (5 sekundi) dva puta dnevno.

BUDUĆNOST

  • Očekuje se da će trenutne akcije biti podržane.
  • Sinkronizirana pohrana na različitim uređajima za odabir rasporeda se razmatra.

Korak 7: PRILAGOĐAVANJE KONAČNE TAČKE

Kao što je spomenuto u FIRMWARE -u, postoje dvije nove konvencije dodane u SPIFFS datotečni sustav za prilagođavanje krajnjih točaka. JSON datoteke su fragmenti koji se dodaju svojstvu krajnjih točaka u paketu deviceInfo objavljenom u posredniku MQTT koji postaje definicija nadzorne ploče.

Ključevi krajnjih točaka generiraju se u firmveru:

  • CC_device (prilagođena kartica) za user_card_base.json
  • CC_SLAVE_ENDPOINT NAME za user_card _#. Json (# je adresa slave)

Kao što je već spomenuto, postoje varijable koje se zamjenjuju za vrijednosti tijekom izvođenja:

  • mqtt_naziv_uređaja
  • wifi_ssid
  • local_ip

user_card_base.json

Primjer:

user_card _#. json

Primjer:

Korak 8: VIDEOZAPISI

Preporučeni: