Kazalo:

IOT123 - POVEZALO SENZORJA ZA ASIMILIRANJE: ICOS10 CORS WEBCOMPONENTI: 8 korakov
IOT123 - POVEZALO SENZORJA ZA ASIMILIRANJE: ICOS10 CORS WEBCOMPONENTI: 8 korakov

Video: IOT123 - POVEZALO SENZORJA ZA ASIMILIRANJE: ICOS10 CORS WEBCOMPONENTI: 8 korakov

Video: IOT123 - POVEZALO SENZORJA ZA ASIMILIRANJE: ICOS10 CORS WEBCOMPONENTI: 8 korakov
Video: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, November
Anonim
IOT123 - POVEZALO SENZORJA: ICOS10 CORS WEBCOMPONENTI
IOT123 - POVEZALO SENZORJA: ICOS10 CORS WEBCOMPONENTI
IOT123 - POVEZALO SENZORJA: ICOS10 CORS WEBCOMPONENTI
IOT123 - POVEZALO SENZORJA: ICOS10 CORS WEBCOMPONENTI

Pomožni senzorji/akterji podrejeni vdelajo metapodatke, ki se uporabljajo za definiranje vizualizacij v Croutonu. Ta zgradba se nekoliko razlikuje od prejšnjih; strojne opreme ni. Vdelana programska oprema zdaj podpira gostovanje (bogatejših) urejevalnikov po meri, ki jih je mogoče vključiti v najnovejšo različico AssimilateCrouton. Več pozornosti bo v tem članku namenjeno razlagi vdelane programske opreme in nadzorne plošče MQTT.

Ena od prednosti strežnika WebComponents iz naprave, ki jo nadzorujejo, je, da je naprednejši nadzor nad napravo omejen na omrežje, na katero je naprava povezana: vašo dostopno točko WiFi. Čeprav po uporabi strežnika MQTT s preverjanjem pristnosti obstaja podobnost zaščite, bi lahko v javnih omrežjih, če za trenutek zapustite brskalnik (spletno mesto AssimilateCrouton), kdo priskočil in nadziral vaše avtomatizacijske naprave. Ta funkcija CORS WebComponent omogoča javno prikazovanje odčitkov (temp, raven svetlobe, vlaga), ukazne funkcije (vklop/izklop, razpored) pa so na voljo samo v omrežju naprave.

V napravi so še vedno podprte vse funkcije spletnega strežnika s preverjanjem pristnosti in gostovanjem v SPIFFS, posebna pozornost pa je bila namenjena podpori CORS (Cross Origin Resource Sharing) za Polymer WebComponents (Crouton uporablja Polymer 1.4.0).

V AssimilateCrouton (razcepu Croutona, ki se uporablja za Assimilate IOT Network) spremembe vključujejo

  • podpora za kartico Device (assim-device), ki med drugim prikazuje in skriva za uporabnika posamezne kartice za napravo
  • info lastnost na vseh karticah, ki prikazuje zdravico uporabnih kontekstualnih informacij za kartico
  • podpora za spletne komponente CORS, v tem primeru gostuje na spletnem strežniku v napravi (ESP8266).

1. korak: CROUTON

CROUTON
CROUTON
CROUTON
CROUTON

Crouton je nadzorna plošča, ki vam omogoča vizualizacijo in upravljanje vaših naprav IOT z minimalnimi nastavitvami. V bistvu je najpreprostejša nadzorna plošča za vse ljubitelje strojne opreme IOT, ki uporablja samo MQTT in JSON.

ASIMILATIVE SLAVES (senzorji in akterji) imajo vdelane metapodatke in lastnosti, ki jih mojster uporablja za izdelavo paketa deviceInfo json, ki ga Crouton uporablja za izdelavo nadzorne plošče. Posrednik med ASSIMILATE NODES in Crouton je posrednik MQTT, ki je prijazen do spletnih vtičnic: za predstavitev se uporablja Mosquito.

Ker ASSIMILATE MASTER zahteva lastnosti, oblikuje odzivne vrednosti v zahtevani obliki za posodobitve Crouton. Vilica AssimilateCrouton dodaja nekatere funkcije, ki vam omogočajo decentralizacijo poslovnih pravil, ki vodijo vašo napravo, tj. Naprava IOT ne potrebuje nobenih vgrajenih poslovnih pravil, ampak je samo kanal za komunikacijo MQTT/I2C do pametnejših (pod nadzorom ATTINY) podrejenih igralcev in senzorjev..

2. korak: ASIMILIRAJTE KROUTON

ASIMILIRAJTE KROUTON
ASIMILIRAJTE KROUTON

SPREMEMBE KROUTONA

Spremembe v razcepljeni različici vključujejo:

  • če ima končna točka definirano lastnost poti, bo WebComponent za kartico naredil uvoz HTMLI za vir CORS (spletni strežnik na ESP8266 v tej gradnji).
  • na vse vire v smeri toka od (odvisnosti) spletne komponente CORS se sklicuje, kot da so na voljo s spletnega mesta Crouton; ko ne naložijo izvajalca izjem, znova spremenijo poti in se naložijo, če so s spletnega mesta.
  • zgoraj desno je prikazan trenutni lokalni čas, ki je uporaben za preverjanje razporeda.

ODVISNOSTI OD POLIMERJA IN KORE

Liste drevesa odvisnosti od polimerov lahko gostite v CORS -u. Ker se lahko korenske odvisnosti v aplikaciji uporabljajo večkrat, jih ni mogoče sklicevati z dveh lokacij (s spletnega mesta in naprave), ker jih polimerni nalagalnik polimernih modulov obravnava kot dva ločena vira in več napak pri registraciji hitro naleti na aplikacijo.

Zaradi tega sta WebComponent za kartico (datoteka HTML v 1.4.0) in z njo povezana datoteka CSS edina datoteka, ki gostuje v napravi. Na druge odvisnosti se sklicuje, kot da WebComponent gostuje v mapi "html" na izvornem spletnem mestu, kar olajša razvoj spletnih komponent iz te mape, dokler niso pripravljene za nalaganje v SPIFFS na ESP8266. AssimilateCrouton se bo odločil, kako priti do pravilnih datotek.

RAZPOLOŽITEV

ustvarjalec edfungusa izvirnega Croutona je vir napisal v Pug/Less in imel orodno verigo NPM/Grunt. Pug/Less sem upodobil kot HTML/css in samo urejal/distribuiral upodobljene datoteke. To je prekinilo verigo orodij NPM/Grunt. Odpravljanje tega je obravnavano v razdelku PRIHODNOST.

Armaturno ploščo lahko preizkusite lokalno na svojem ohišju DEV:

  • Iz ukazne vrstice v korenski mapi
  • npm start
  • Lite-strežnik je odprt za https:// localhost: 10001

Razmestitev na statični spletni strežnik:

  • kopirajte vse mape razen node_modules
  • kopirajte index.html (in morda web.config)

PRIHODNOST

Eden glavnih ciljev je nadgradnja na Polymer3 in delo iz Polymer CLI. Dodajanje naprednih urejevalnikov in okvira za razvijalce IOT -a je velika prioriteta. Sčasoma bo napredni avtomatizirani sistem popolnoma deloval od ločenih odjemalcev MQTT, kot je AssimilateCrouton.

Primer paketa deviceInfo, uporabljenega za AssimilateCrouton:

{
"deviceInfo": {
"endPoints": {
"CC_device": {
"device_name": "ash_mezz_A3",
"card-type": "assim-device",
"ssid": "Corelines_2",
"ip_addr": "192.168.8.104",
"končne točke": [
{
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"endpoint": "switch"
},
{
"title": "Luči za sejanje",
"card-type": "crouton-assim-weekview",
"endpoint": "CC_switch"
}
]
},
"CC_switch": {
"card-type": "assim-weekview",
"info": "Vklopite ali izklopite luči v 15 -minutnih časovnih režah",
"path": "https://192.168.8.104/cors",
"title": "Luči za sejanje",
"interval_min": 15,
"vrednote": {
"value": ""
}
},
"switch": {
"title": "Grow Lights",
"card-type": "crouton-simple-toggle",
"info": "ad hoc vklop ali izklop luči",
"oznake": {
"false": "OFF",
"true": "ON"
},
"ikone": {
"false": "sonce-o",
"true": "sun-o"
},
"vrednote": {
"vrednost": 0
}
}
},
"status": "dobro",
"name": "ash_mezz_A3",
"description": "Pisarna v Ashmoreju, Mezanin, območje A2",
"color": "#4D90FE"
}
}

oglejte si rawdeviceInfo.json, ki ga gosti ❤ GitHub

3. korak: SESTAVLJANJE NAPRAVE

SKLOP NAPRAVE
SKLOP NAPRAVE
SKLOP NAPRAVE
SKLOP NAPRAVE
SKLOP NAPRAVE
SKLOP NAPRAVE

Ker ni sprememb strojne opreme, so tukaj povezave do ustreznih informacij:

  • Shell montaža
  • Materiali in orodja
  • Priprava MCU
  • Priprava stanovanj MCU
  • Izdelava pomožnega stikala nizke strani/RESET hčerinske plošče
  • Sestavljanje glavnih sestavnih delov

4. korak: PROGRAMSKA OPREMA

PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA
PROGRAMSKA OPREMA

GLAVNE SPREMEMBE TE ZGRADBE

Da bi lahko aplikacija AssimilateCrouton uporabljala vire CORS iz naprave, je bilo treba odzivne glave konfigurirati na poseben način. To je bilo implementirano v tej izdaji vdelane programske opreme (static_server.ino => server_file_read ()).

Tudi glavni graf odvisnosti za Polymer je moral biti iz enega izvora. Uporabljena je bila strategija za dodajanje upravljalnika ene napake (corsLinkOnError) v datoteke SPIFFS CORS za ponovno nalaganje virov s spletnega mesta AssimilateCrouton, ko jih v napravi ni.

V datotečni sistem SPIFFS sta dodani dve novi konvenciji za prilagajanje končnih točk, ustvarjenih v deviceInfo - ki jih AssimilateCrouton uporablja za ustvarjanje kartic nadzorne plošče:

  • /config/user_card_base.json Definicija končne točke s spremenljivkami časa izvajanja, ki se najprej zamenjajo:,,. Tu se običajno doda kartica asim-naprave. To ne komunicira nazaj z napravo.
  • /config/user_card_#.json Definicija končne točke s spremenljivkami časa izvajanja, ki se najprej zamenjajo:,,. Tu se običajno dodajo bogati uredniki, kot je kartica asimenski ogled tedna, priključeni na podrejeno enoto I2C (igralec/senzor), ki se nanaša na #.

SKIC/KNJIŽNICE

Na tej stopnji je bil projekt zapakiran kot primer za knjižnico AssimilateBus Arduino. To je predvsem zato, da omogočite enostaven dostop do vseh potrebnih datotek iz Arduino IDE. Glavni artefakti kode so:

  • mqtt_crouton_esp8266_cors_webcomponents.ino - glavna vstopna točka.
  • assimilate_bus.h/assimilate_bus.cpp - knjižnica, ki upravlja komunikacijo I2C s podrejenim senzorjem/igralci
  • VizJson.h/VizJson.cpp - knjižnica, ki oblikuje/gradi kateri koli JSON, objavljen prek MQTT
  • config.h/config.cpp - knjižnica, ki bere/škatle/zapisuje konfiguracijske datoteke na SPIFFS
  • static_i2c_callbacks.ino - povratni klici I2C za prejeto lastnost in cikel podrejenih zahtev je popoln static_mqtt.ino - funkcije MQTT
  • static_server.ino - funkcije spletnega strežnika
  • static_utility.ino - pomožne funkcije

Statične funkcije INO so bile uporabljene (namesto knjižnic) iz različnih razlogov, predvsem pa zato, da sta se funkciji spletnega strežnika in MQTT dobro igrali.

VIRI SPIFFS

Podrobne razlage datotek SPIFFS najdete tukaj.

  • favicon.ico - vir, ki ga uporablja Ace Editor
  • config

    • device.json - konfiguracija naprave (Wifi, MQTT …)
    • slave_metas _#. json - ustvarjeno med izvajanjem za vsako številko naslova pomožnika (#)
    • user_card _#. json - končna točka po meri, ki jo je treba integrirati v deviceInfo za vsako številko podrejenega naslova (#)
    • user_card_base.json - končna točka po meri, ki jo je treba integrirati v deviceInfo za napravo
    • user_meta _#. json - metapodatki po meri preglasijo podrejene za vsako številko naslova podrejenega (#)
    • user_props.json - imena lastnosti po meri za preglasitev tistih v metapodatkih podrejenih
  • cors

    • card -webcomponent.css - slog za različne kartice po meri
    • card -webcomponent.html - spletna komponenta za različne kartice po meri
  • urednik

    • assimilate -logo-p.webp" />
    • edit.htm.gz - gzip HTML -ja urejevalnika Ace
    • edit.htm.src - izvirni HTML urejevalnika Ace
    • favicon -32x32-p.webp" />

NALOŽBA PROGRAMSKE OPREME

  • Repozitorij kod najdete tukaj (posnetek).
  • ZIP knjižnice najdete tukaj (posnetek).
  • Navodila za "Uvoz knjižnice ZIP" tukaj.
  • Ko je knjižnica nameščena, lahko odprete primer "mqtt_crouton_esp8266_cors_webcomponents".
  • Navodila za nastavitev Arduina za Wemos D1 Mini tukaj.
  • Odvisnosti: ArduinoJson, TimeLib, PubSubClient, NeoTimer (glejte priloge, če kršite spremembe v skladiščih).

NALOŽI V SPIFFE

Ko je koda naložena v Arduino IDE, odprite device.json v mapi data/config:

  • Spremenite vrednost wifi_ssid z vašim SSID -jem WiFi.
  • S ključem WiFi spremenite vrednost wifi_key.
  • Spremenite vrednost imena mqtt_device_name z želeno identifikacijo naprave (združevanje ni potrebno).
  • Spremenite vrednost mqtt_device_description z želenim opisom naprave (v Croutonu).
  • Shrani napravo.json.
  • Naložite podatkovne datoteke v SPIFFS.

Glavna vstopna točka za primer AssimilateBus:

/*
*
*PRAVILA POSLOVANJA VAŠE NAPRAVE PRIČAKUJEMO, KI JIH UPRAVLJAJO PREKO MQTT - V TEJ VGRADNJI NE TEŽKO
*
* Razen nastavitve in zanke v tej datoteki
* pomembni gibljivi deli so
* on_bus_received in on_bus_complete v static_i2c_callbacks.ino
* in
* mqtt_publish in mqtt_callback v static_mqtt.ino
*
*/
#include "types.h"
#include "VizJson.h"
#include "assimilate_bus.h"
#include "debug.h"
#include "config.h"
#vključi

#vključi

// nastavite MQTT_MAX_PACKET_SIZE na ~ 3000 (ali vaše potrebe po napraviInfo json)

#vključi
#vključi
#vključi
#vključi
#vključi
// --------------------------------- SPOMINSKE IZJAVE
// ------------------------------------------------ - opredeljuje
#defineDBG_OUTPUT_FLAG2 // 0, 1, 2 MINIMALNO, RELEASE, FULL
#define_mqtt_pub_topic "outbox" // KROVONSKE KONVENCIJE
#define_mqtt_sub_topic "nabiralnik"
// ------------------------------------------------ - predmeti razreda
Odpravljanje napak _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);
// ------------------------------------------------ - podatkovne strukture / spremenljivka
RuntimeDeviceData _runtime_device_data;
PropertyDto _dto_props [50]; // največ 10 pomožnih oseb x največ 5 lastnosti
// ------------------------------------------------ - krmilni tok
volatilebool _sent_device_info = false;
bajt _dto_props_index = 0;
bool _fatal_error = false;
// --------------------------------- IZJAVE O PODROČJU DELOVANJA
// ------------------------------------------------ - static_i2c_callbacks.ino
voidon_bus_received (bajt slave_address, bajt prop_index, vloga vloge, ime char [16], vrednost char [16]);
voidon_bus_complete ();
// ------------------------------------------------ - static_mqtt.ino
voidmqtt_callback (char* tema, bajt* koristna obremenitev, dolžina brez podpisa);
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 *končna točka, constchar *koristna obremenitev);
boolmqtt_ensure_connect ();
voidmqtt_subscribe (char *root_topic, char *DeviceName, char *končna točka);
voidi2c_set_and_get (naslov bajtov, koda bajtov, constchar *param);
// ------------------------------------------------ - static_server.ino
String server_content_type_get (ime datoteke niza);
boolserver_path_in_auth_exclusion (Pot niza);
boolserver_auth_read (pot niza);
boolserver_file_read (pot 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 naslov in naslov);
char *time_stamp_get ();
// ------------------------------------------------ - static_utility.ino
String spiffs_file_list_build (Pot niza);
voidreport_deserialize_error ();
voidreport_spiffs_error ();
boolcheck_fatal_error ();
boolget_json_card_type (bajt slave_address, bajt prop_index, char *type_card);
boolget_struct_card_type (bajt slave_address, byte prop_index, char *type_card);
boolget_json_is_series (bajt slave_address, bajt prop_index);
voidstr_replace (char *src, constchar *oldchars, char *newchars);
byte get_prop_dto_idx (bajt slave_address, bajt prop_index);
// --------------------------------- GLAVNO
voidsetup () {
DBG_OUTPUT_PORT.začni (115200);
SetupDeviceData device_data;
Serial.println (); Serial.println (); // rob za smeti konzole
zamuda (5000);
if (DBG_OUTPUT_FLAG == 2) DBG_OUTPUT_PORT.setDebugOutput (true);
_debug.out_fla (F ("nastavitev"), res, 2);
// dobimo zahtevano konfiguracijo
if (SPIFFS.begin ()) {
_debug.out_str (spiffs_file_list_build ("/"), res, 2);
if (! _config_data.get_device_data (device_data, _runtime_device_data)) {
report_deserialize_error ();
vrnitev;
}
} drugo {
report_spiffs_error ();
vrnitev;
}
// uporabite vrednost časovnika, nastavljeno v 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 (ime_podatka.ntp_server_name, data_data.time_zone);
server_init ();
// začetek zbiranja metapodatkov
_assimilate_bus.get_metadata ();
_assimilate_bus.print_metadata_details ();
mqtt_ensure_connect ();
// potrebuje lastnost senzorja (imena) za dokončanje zbiranja metapodatkov
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
_timer_property_request.reset (); // lahko do te točke izteče opazen čas, zato začnite znova
}
voidloop () {
if (! check_fatal_error ()) vrnitev;
mqtt_loop ();
_server.handleClient ();
if (_timer_property_request.repeat ()) {{100} {101}
_assimilate_bus.get_properties (on_bus_received, on_bus_complete);
}
}

oglejte si rawmqtt_crouton_esp8266_cors_webcomponents.ino, ki ga gosti ❤ GitHub

5. korak: KARTICA ZA NAPRAVO

KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE
KARTICA NAPRAVE

Kartica naprave (tip kartice: assim-device) gostuje na spletnem mestu in je ni treba vročiti iz naprave (CORS).

Na privzeti strani so navedeni:

  • Teme MQTT za branje in pisanje v napravo
  • Dostopna točka, na katero je naprava povezana
  • Povezava do urejevalnika datotek SPIFFS, ki gostuje v napravi z urejevalnikom ACE
  • Ikona oči, ki razkrije stran Pokaži/skrij kartico.

Na strani Pokaži/skrij kartico so navedeni:

  • Vsaka kartica kot ločen predmet
  • Krepko modra pisava pri prikazu
  • Črna navadna pisava, ko je skrita
  • Ikona, ki prikazuje vrsto kartice.

Kartico lahko skrijete tako, da kliknete gumb za skrivanje na karticah ali kliknete element z modro krepko pisavo na seznamu. Kartice lahko prikažete s klikom na element črne normalne pisave na seznamu.

S to funkcijo so ohlapno povezani nazdravljeni z informacijami. Če ima katera od končnih točk v DeviceInfo dodeljeno lastnost info, bo poleg gumba za skrivanje na kartici prikazan gumb z informacijami. Ko kliknete, bodo kontekstni podatki, opredeljeni v končni točki, "nazdravljeni" v oknu.

Če kartica naprave ni definirana, gumbi za skrivanje ne bodo prikazani na karticah. To je zato, ker jih enkrat, ko so skriti, ni več mogoče prikazati.

Za podrobnosti o tem, kako lahko kartico asim-naprave dodate prek datotek SPIFFS na ESP8266, glejte ENDPOINT CUSTOMISATION.

Spletna komponenta AssimilateCrouton

železni signali>
div>
POKAŽI Skrij ikono
i> span>
OBLIKA NAPRAVE
MQTT TEMEdiv>
/outbox/{{endPointJson.device_name}}/*div>
/inbox/{{endPointJson.device_name}}/*div>
WIFI SSIDdiv>
{{endPointJson.ssid}} div>
IP NASLOVdiv>
{{endPointJson.ip_addr}} a> div>
div>
POKAŽI Skrij seznam
element>paper-item>
predloga>
paper-listbox>
div>
crouton-card>
predloga>
dom-module>

oglejte si rawassim-device.html, ki ga gosti ❤ GitHub

6. korak: KARTICA ZA VIDIK

KARTICA ZA VIDIK
KARTICA ZA VIDIK
KARTICA ZA VIDIK
KARTICA ZA VIDIK
KARTICA ZA VIDIK
KARTICA ZA VIDIK

Kartica tedenskega ogleda (vrsta kartice: assim-weekview) gostuje v napravi (mapa cors). Vbrizga se v paket deviceInfo, objavljen za AssimilateCrouton, z dodajanjem datoteke config/user_card _#. Json v SPIFFS (v tem primeru user_card_9.json).

PREGLED

Delovni dnevi so predstavljeni kot seznami časovnih razporedov. Zrnatost časovne reže je nastavljena z lastnostjo "interval_mins" v config/user_card _#. Json. To mora biti del ure ali večkratnik ure, npr. 10, 15, 20, 30, 60, 120, 360. S klikom na časovno režo zagotovite, da je za povezano napravo v tem času ukazano stanje vklopa. Če je časovni razpored zdaj, se za napravo takoj pošlje (objavi) ukaz. Običajno se stanje preverja/objavlja vsako minuto. Izbire se shranijo v LocalStorage, zato se bodo časi znova naložili z osvežitvijo brskalnika.

UPORABA PRIMEROV

V svojem trenutnem stanju je tedenski pogled primeren za naprave, ki lahko uporabijo preklopno stikalo za prikaz stanja, kar pomeni, da so vklopljene ali izklopljene in po nastavitvi ostanejo v tem stanju. Luči, ventilatorji in grelniki vode so dobri kandidati.

OMEJITVE/OPOZORILA

  • Interval_mins mora biti ena od zgoraj navedenih vrednosti
  • Tedenski pogled ne podpira trenutnih dejanj, ki so tudi načrtovana, na primer na kratko vklopite dotik (5 sekund) dvakrat na dan.

PRIHODNOST

  • Pričakuje se, da bodo podprti trenutni ukrepi.
  • Sinhroniziran pomnilnik med napravami, za izbiro urnika se razmišlja.

7. korak: PRILAGAJANJE KONČNE TOČKE

Kot je bilo omenjeno v FIRMWARE, sta v datotečnem sistemu SPIFFS dodani dve novi konvenciji za prilagajanje končnih točk. Datoteke JSON so fragmenti, ki se dodajo lastnosti končnih točk v paketu deviceInfo, objavljenem v posredniku MQTT, ki postane definicija nadzorne plošče.

Ključi končnih točk so ustvarjeni v vdelani programski opremi:

  • CC_device (kartica po meri) za user_card_base.json
  • CC_SLAVE_ENDPOINT NAME za user_card _#. Json (# je podrejeni naslov)

Kot smo že omenili, obstajajo spremenljivke, ki se med izvajanjem nadomestijo z vrednostmi:

  • mqtt_device_name
  • wifi_ssid
  • local_ip

user_card_base.json

Primer:

user_card _#. json

Primer:

8. korak: VIDEO

Priporočena: