Grafici di stato dei sensori connessi all'Internet of Things IoT

Grafici di stato dei sensori connessi all'Internet of Things IoT

Grafici di stato dei sensori connessi all'Internet of Things IoT

Uno dei vantaggi di connettere una rete di sensori all’Internet of Things è la possibilità di analizzare i dati ottenuti. Rappresentando graficamente queste informazioni, una persona (e non un programma) può comprendere in modo più intuitivo il significato delle grandezze monitorate, ad esempio confrontandole tra loro o seguendone l'evoluzione nel tempo.

Sommario

    Questo articolo inizia una serie, composta da quattro parti, che spiega una semplice proposta di rappresentazione grafica dei dati ottenuti dai sensori collegati all'IoT. Con la stessa filosofia degli altri articoli, il metodo suggerito è perfettamente funzionale nonostante l'obiettivo principale sia didattico. Come il profilo tecnico del pubblico a cui si rivolge il blog polaridad.es, e questo testo riguarda l'elettronica e non lo sviluppo web, ciascuna delle sezioni funge da introduzione ai linguaggi o alla tecnologia utilizzata: HTML, CSS, SVG y JavaScript.

    Grafici di dati provenienti da sensori collegati al contenitore Internet of Things (IoT) in HTMLGrafici di dati provenienti da sensori collegati alla definizione dell'aspetto dell'Internet delle cose (IoT) nei CSSGrafici di dati provenienti da sensori collegati al disegno Internet of Things (IoT) con SVGGrafici di dati provenienti da sensori connessi all'Internet of Things (IoT) Generazione e modifica con JavaScript

    Gli articoli della serie precedente su come archiviare i dati ottenuti dai dispositivi connessi all'Internet of Things (IoT) Hanno concluso spiegando come accedere alle informazioni archiviate nei database. Negli esempi della serie, per facilitare il processo, è stato utilizzato un server web come intermediario che si occupava di ricevere i dati tramite richieste POST del protocollo HTTP, memorizzarli in un database e visualizzarli su una pagina web.

    Server web dell'IoTServer Web IoT HTTP POSTDatabase MySQL. Server web dell'IoTServer Web IoT in linguaggio PHP

    Sebbene lo svantaggio principale di questo sistema siano le prestazioni (che potrebbero essere alleviate con alternative come Node.js e MongoDB, che verranno spiegate nei prossimi articoli), in cambio offre due grandi vantaggi: la sua implementazione è molto semplice (inclusa la disponibilità di servizi pubblici) e può visualizzare i dati in un browser, cioè non necessita di applicazioni specifiche (come un'app per un dispositivo mobile) per presentare le informazioni memorizzate che rappresenterebbero lo stato storico dei dispositivi connessi a Internet di Cose.

    Sfruttando il vantaggio di poter presentare facilmente su una pagina web le informazioni memorizzate con questo sistema sullo stato dei dispositivi connessi all'IoT, questo articolo spiega come visualizzare graficamente queste informazioni utilizzando il formato SVG da JavaScript per generare dinamicamente una pagina web in HTML.

    Ci sono molte librerie JavaScript con cui risolvere la presentazione grafica dei dati. Questi articoli non intendono svilupparne un altro; Lo scopo di questo testo è comprendere il processo ed essere in grado di sviluppare le proprie implementazioni; un obiettivo didattico oltre che produttivo. Se sei interessato a utilizzare un prodotto anziché svilupparlo da solo, ti consiglio di dare un'occhiata ad alcune delle eccellenti librerie per generare grafica con JavaScript con licenze gratuite come Charts.js, Highcharts, Strumenti grafici di Google, Epoch, Raphael, Grafico (basato su Raphael), dc.js, Chartist.js, D3.js (la mia raccomandazione), C3.js (basato su D3.js), NVD3 (grafica riutilizzabile per D3.js) ...

    Struttura del documento HTML con grafica SVG

    Nella proposta di questo articolo di presentare graficamente i dati dei sensori, la pagina web su cui vengono visualizzati è composta da:

    • è scritto il documento che funge da contenitore HTML,
    • l'aspetto della pagina è definito con il codice CSS,
    • il disegno del grafico viene eseguito utilizzando il linguaggio SVG y
    • La lettura dei dati dal server e la visualizzazione dei grafici è programmata in JavaScript

    Schema di presentazione dei dati Internet of Things (IoT) con JavaScript su una pagina Web HTML con JavaScript

    Tutti gli elementi, in particolare il codice HTML della pagina, possono essere generati sul server con PHP come spiegato nell'articolo sul Linguaggio di programmazione PHP dalla serie su archiviazione dei dati da dispositivi connessi all’Internet of Things.

    Il codice CSS y JavaScript può essere caricato (importato) nel codice HTML invece di essere scritto direttamente come parte del documento HTML. Questo ha il vantaggio di poter riutilizzare gli stessi documenti su più pagine e poterli modificare più comodamente; ma forse l'inconveniente di impiegare un po' più tempo di caricamento a seconda che si possa utilizzare il codice contenuto nella cache (caricato nell'utilizzo precedente) o anche un CDN. In fase di produzione è banale integrare tutto il codice proveniente da PHP, generando un unico documento in HTML con tutte le informazioni se scegli questa alternativa. In tutta questa serie di articoli, per chiarezza, si considera che stiamo lavorando con documenti separati.

    Per gli scopi che ci interessano, per usarlo come contenitore grafico, e molto approssimativamente, il contenuto del primo livello della struttura di un documento HTML voluto:

    La prima riga serve ad indicare al browser web che il documento che sta leggendo è scritto HTML, in particolare nella versione 5 (nota come HTML5). Versioni precedenti di HTML, basato su SGML (Standard Generalized Markup Language), includeva una definizione del tipo di documento (DTD) in cui veniva dichiarato il tipo di regole utilizzate nella lingua per descrivere il documento.

    La seconda e l'ultima riga contengono il codice HTML tra le direttive <html> y </html> che funzionano rispettivamente come apertura e chiusura. Le direttive HTML Racchiudono il nome e gli attributi tra i segni “minore di” e “maggiore di” formando una sorta di segni di “parentesi acuta”. Gli elementi HTML che racchiudono il contenuto hanno una direttiva di chiusura che include la barra davanti al nome come in </html>.

    Le proprietà o gli attributi degli elementi sono separati da spazi dal nome e tra loro e sono espressi come testo semplice o, più frequentemente, come testo (il nome della proprietà) seguito da un segno di uguale e da un valore racchiuso tra virgolette. Nel caso della direttiva sull'apertura del codice HTML la proprietà è stata utilizzata lang con il valore es, lang="es" per indicare che il testo del documento HTML usa la lingua spagnola.

    È stato incluso un commento dopo la direttiva di apertura del codice HTML. I commenti dentro HTML Possono occupare più righe e utilizzare il codice come segno di apertura <!-- e come chiusura -->

    Il codice HTML È composto da due blocchi: l'intestazione <head> e il corpo <body>. Il primo ha lo scopo di informare sul documento stesso, comprese le informazioni su di esso (meta-informazione) e il secondo è di supportare il contenuto del documento.

    Nella direttiva <body> è stato incluso un evento onload con cui eseguire automaticamente una funzione JavaScript una volta caricato il contenuto. Questa risorsa consente di avviare l'esecuzione del codice che definirà gli oggetti grafici e di aggiornarli man mano che le informazioni vengono caricate dal server sullo stato dei sensori che rappresentano questi grafici.

    Di tutte le metainformazioni che possono essere incluse nell'intestazione del documento HTML, ci interessa soprattutto conoscere quella descritta dalle seguenti direttive:

    • <title> che serve a dare un titolo al documento. Normalmente apparirà nella finestra del browser o nella scheda corrispondente e ci aiuterà a identificare la grafica che contiene.
    • <charset> dichiara il set di caratteri utilizzato per codificare il documento. È particolarmente importante per i segni "speciali" come eñes o accenti.
    • <link> consente di stabilire una relazione tra il documento HTML attuali e altri esterni. Ci aiuterà a caricare il foglio di stile in formato CSS con l'aspetto del documento.
    • <script> contiene uno script con codice eseguibile. Usando questa direttiva caricheremo le funzioni JavaScript con cui generare o modificare la grafica SVG.

    Come si può vedere nell'esempio di HTML sopra, il nome (e il percorso, se applicabile) del documento con lo stile CSS è indicato con l'attributo href, mentre nel caso del codice JavaScript è usato src. Entrambi condividono la proprietà type con il valore text/css y text/javascript rispettivamente.

    Rispetto al contenuto del documento, la parte che corrisponde all'elemento <body>, HTML5 Permette di creare strutture specifiche per i componenti più frequenti di una pagina web come un footer, una sezione laterale o una barra di navigazione, ma quello che ci interessa è utilizzare il documento come contenitore grafico. SVG sono gli elementi <div> che funzionano come blocchi indipendenti che consentono di definire una struttura gerarchica annidandone alcuni <div> all'interno degli altri.

    Nell'esempio precedente viene utilizzato un elemento <div> che ne contiene altri due. Questo esempio introduce due proprietà molto importanti per l'uso che vogliamo fare del codice. HTML: id che viene utilizzato per assegnare un identificatore univoco a un elemento HTML (One <div>, in questo caso) e class con la quale viene assegnata una categoria che utilizzeremo per stabilirne l'aspetto. La categoria, la classe, non deve essere unica, infatti gran parte della sua efficacia risiede nel fatto che più elementi condividono lo stesso aspetto.

    L'elemento (o tag) <p> serve a definire un paragrafo che normalmente conterrà testo (anche se in HTML non vi è alcuna limitazione al riguardo). Per creare raggruppamenti all'interno di un paragrafo (o a <div>, non ci sono inoltre limitazioni) viene utilizzato il tag <span>. Con questo elemento è possibile, ad esempio, includere del testo all'interno di un paragrafo per conferirgli un aspetto diverso come sottolineato o grassetto.

    La definizione delle caratteristiche grafiche e in generale il comportamento che viene associato ad un elemento HTML L'attribuzione di una classe viene eseguita nel codice CSS; nel caso dell'esempio precedente nel documento aspecto.css.

    Per ottimizzare l'assegnazione delle caratteristiche CSS è possibile che lo stesso elemento HTML appartiene a diverse classi e quindi ha l'aspetto o il comportamento da esse definito. Per effettuare questa assegnazione, scrivi i nomi delle diverse classi, separandole con virgole a destra della proprietà. class

    Nell'esempio precedente, l'elemento <div> che è stato identificato come primer_hijo Sono state assegnate tre classi: aspecto_de_hijo, aspecto_raro y tipografia_grande, che dovrebbero definire insieme l'aspetto e il comportamento dell'elemento. Come spiegato nel seguente articolo su Definizione dell'aspetto Web della grafica del sensore IoT con CSS, quando si utilizzano più classi, se una qualsiasi delle proprietà che definiscono l'aspetto è definita in entrambe, prevale l'ultima a cui si fa riferimento.

    Come si è visto, gli elementi <div> Possono contenere altri elementi, inclusi altri <div>. Un caso più semplice sarebbe <div> che conteneva testo. Il look che definisce lo stile CSS influenzerebbe anche il testo contenuto nell'elemento.

    Per ottimizzare l'assegnazione delle caratteristiche CSS è possibile che lo stesso elemento HTML appartiene a diverse classi e quindi ha l'aspetto o il comportamento da esse definito. Per effettuare questa assegnazione, scrivi i nomi delle diverse classi, separandole con virgole a destra della proprietà. class

    Nell'esempio precedente, le tre classi associate a <div> primer_hijo Definirebbero l'aspetto dell'elemento e del testo che lo contiene, ad esempio, rendendo grande il carattere con cui è scritto (se è vero lo scopo indicato dal suo nome nell'ultima classe)

    Dalla versione 5 (HTML5) è possibile includere il codice grafico nel formato SVG all'interno del codice stesso HTML come un elemento in più. Dal punto di vista del codice HTML, il contenuto SVG è un elemento <svg> che contiene i diversi elementi grafici (linee, cerchi, rettangoli...

    Anche se è stato detto che le caratteristiche grafiche degli elementi HTML sono definiti in uno stile CSS e ad esso associati tramite una classe, è inoltre possibile assegnarne alcuni direttamente agli elementi in due modi. Da un lato è possibile utilizzare la proprietà style e assegnare come valore le diverse caratteristiche grafiche dell'oggetto. Logicamente è preferibile utilizzare la tecnica sopra citata di assegnare l'aspetto ad una classe, ma con questa possibilità è possibile aggiungere una piccola correzione ad un elemento (un'eccezione molto particolare) senza dover creare una nuova classe.

    D'altra parte, alcuni elementi HTML Permettono di utilizzare proprietà specifiche che ne definiscono l'aspetto. In generale, anche se queste proprietà esistono, è preferibile utilizzare le classi ma, purtroppo, non tutti gli elementi offrono questa alternativa, alcuni pretendono che un certo valore venga indicato direttamente con quelle specifiche proprietà invece che fare riferimento alla classe associata. Uno degli elementi che hanno questo tipo di comportamento è proprio il codice SVG, a cui dobbiamo assegnare nelle proprietà il valore percentuale della larghezza e dell'altezza width y height, rispettivamente, invece della classe.

    Come si vedrà più in dettaglio nel articolo che parla del codice SVG, per utilizzare il semplice metodo proposto, è consigliabile considerare le dimensioni del grafico in percentuale. Nel caso della dimensione totale dell'oggetto, indicando 100% nei valori di larghezza e altezza, sarà il contenitore a fissare le dimensioni finali (la <div> con id="dibujo", nell'esempio precedente)

    Nel caso delle diverse componenti del grafico SVG (linee, cerchi, rettangoli...), sono compresi in un'area che misura 100×100 (qualsiasi unità) e si espandono in forma rettangolare senza conservare la proporzione. Le proprietà viewBox y preserveAspectRatio dell'elemento SVG Sono loro a dover stabilire questi valori. nel primo caso con una vista rettangolare che va dal punto delle coordinate (0,0) al punto delle coordinate (100,100) ed è espressa come "0 0 100 100" e nel secondo con il valore none.

    Con tutto quanto sopra, ora puoi definire un codice completo che fungerebbe da contenitore grafico. SVG generato o modificato da JavaScript. L'esempio seguente contiene quattro blocchi grafici che utilizzano il formato HTML della proposta di rappresentazione che utilizzeremo.

    Di seguito puoi vedere come apparirebbe il codice precedente, formattato con lo stile CSS corrispondente, generando con JavaScript la grafica SVG con letture da parte del server dei dati memorizzati dai sensori collegati all'IoT. Tranne che i dati non vengono caricati dal server ma vengono generati in modo casuale nel client (il browser), il resto del codice è quello che verrà utilizzato nella proposta definita in questa serie di articoli.

    Il prossimo articolo di questa serie spiega come definire gli stili CSS per dare aspetto al codice HTML che funge da contenitore per la grafica SVG con cui rappresentare lo stato dei sensori connessi all'Internet of Things (IoT).

    1 commento

    commenti utente
    casinò

    ??

    Invia commento

    Potresti aver perso