Weight Shield per Arduino - in kit

Weight Shield per Arduino - in kit

TT-WEIGSHIELD

Il prodotto è disponibile Disponibile

Spedizioni gratuite per ordini superiori a 90 euro

21,34 € IVA esclusa

Acquista

Dettagli dello Shield per Arduino Weight

BILANCIA WI-FI BASATA SU ARDUINO - IN KIT 

Realizzata appositamente per essere abbinata ad una scheda Arduino Uno, da una shield Wi-Fi e da un sensore di peso (non compresi), consente di realizzare una bilancia in grado di leggere il vostro peso e comunicarlo, via rete wireless ed Internet, ad un documento di Google Documents, dove potrete tracciare grafici o semplicemente, se state lottando con il sovrappeso, rendere noti ad amici e conoscenti i vostri progressi. La Weight-Shield è dotata di un display LCD da 8 caratteri per 2 righe, utilizzato per visualizzare il peso e altre informazioni. Il software identifica ciascun utente (fino ad un massimo di 10) tramite un nome che, insieme all’ultimo peso rilevato, viene memorizzato in una E²PROM, quindi anche in caso di spegnimento del sistema le informazioni non vengono perse. Per dire al sistema qual è l’utente che si sta pesando, è previsto l’uso di uno dei due pulsanti presenti sulla Weight-Shield, mentre la configurazione dei nomi degli utenti deve essere effettuata da un Personal Computer mediante la connessione seriale di Arduino (si può usare Serial Monitor dell’IDE di Arduino).
Il kit comprende solo il prodotto WEIGHT-SHIELD, mentre i prodotti ARDUINOUNOREV3, WI-FI SHIELD, SDCARD SHIELD e il sensore peso della bilancia Velleman (VTBAL8) sono acquistabili separatamente.

ANALISI SOFTWARE
Il firmware completo da caricare in Arduino è composto da circa 570 linee, quindi non lo analizzeremo in toto ma ci limiteremo a spiegare le funzionalità principali e a definire come viene gestito ciascun componente hardware. Per quanto riguarda il display LCD, Arduino mette a disposizione una comoda libreria (<LiquidCrystal.h>) già predisposta per diversi tipi di LCD (sia 8 caratteri per 2 righe che 16 per 2) basati sul parallel interface chipset HD44780. Dopo l’inclusione della libreria, è necessario inizializzare il collegamento con il display, mediante l’istruzione LiquidCrystal LCDDisplay (8, A0, 3, 5, 6, 7); in questa istruzione i parametri passati alla funzione indicano rispettivamente i piedini di Arduino utilizzati per collegare i pin RS, Enable, D4, D5, D6 e D7 del display. Nella funzione setup di Arduino è necessario eseguire l’istruzione LCDDisplay.begin (width, height) in cui i parametri del gateway, subnet_mask[ ] per la Subnet Mask e ssid[ ] per l’SSID access point). Viene inoltre richiesto di definire la cifratura con relativa password della rete. La scheda per collegarsi e pubblicare i dati su Google Documents deve funzionare come Web Client: tale configurazione viene realizzata nel setup dall’istruzione WiServer.init (NULL) in cui il parametro NULL specifica proprio la modalità client.
È necessario specificare una funzione che riceverà e gestirà la risposta ottenuta dal server; nel nostro esempio ciò viene fatto dall’istruzione googlePublish.setReturnFunc (Gestione_Risposte_ Web). Tale funzione deve essere definita più avanti nel codice: nel nostro esempio è void Gestione_Risposte_Web (char* data, int len) e riceve come parametri sia un puntatore a una stringa contente la risposta ottenuta, sia la lunghezza (in numero di byte) della risposta. Come spiegato più nel dettaglio nel box “Come configurare la pubblicazione”, l’invio delle informazioni necessita di effettuare una richiesta di tipo POST al server di Google: la libreria WiServer mette a disposizione lo strumento POSTrequest utilizzabile proprio per eseguire questa operazione. È necessario definire l’indirizzo IP del server a cui collegarsi (nel nostro caso definiamo quello di Google tramite la variabile google_ip[ ] = {209, 85, 229, 101}) e definire una struttura di tipo POSTrequest (nel nostro caso la variabile è denominata googlePublish) a cui passiamo l’indirizzo IP del server, la porta TCP/IP a cui collegarsi (lo standard per il Web è 80), il link del server in formato stringa (spreadsheets. google.com), l’URL di esecuzione del POST (nel nostro caso stringa nulla in quanto dovremo crearlo adattato alle informazioni correnti) ed infine una funzione (searchQuery nel nostro caso) che costruisce il body della richiesta POST. Come già detto, nel nostro progetto la richiesta POST non deve essere eseguita utilizzando una stringa costante tra una pubblicazione e la successiva, ma indicando di volta in volta il nome dell’utente e il peso corrente. A questo scopo definiamo una variabile newURL[] di tipo array di caratteri, inizializzata con un valore standard ma aggiornata (solo nelle sezioni necessarie) di volta in volta.
Dopo che questa variabile è stata aggiornata, tramite l’istruzione googlePublish.setURL(newURL) la impostiamo con l’URL della richiesta POST da inviare e tramite googlePublish.submit() eseguiamo la pubblicazione vera e propria.
INSTALLARE LE LIBRERIE WiShield
Lo shield Wi-Fi, per funzionare correttamente, necessita delle librerie software WiShield di AsyncLabs che chiaramente devono essere installate nell’IDE Arduino utilizzato per compilare i sorgenti.
Come prima operazione è necessario scaricare le librerie (ultima versione: 1.3.0), estrarle nel PC locale, se necessario rinominare la directory ottenuta come “WiShiled” e copiarle all’interno della cartella “<directory di arduino> libraries” in modo che l’IDE Arduino sia in grado di vederle ed utilizzarle. La libreria WiShield supporta varie modalità di funzionamento (APP_WEBSERVER, APP_WEBCLIENT, APP_SOCKAPP, APP_UDPAPP e APP_WISERVER) rispettivamente come Web Server, Web Client, Socket, UDP e WiServer. Il valore di default è APP_WEBSERVER, che funziona sulla maggior parte dei sistemi Arduino ma presenta diverse limitazioni tra le quali la principale è che non è in grado di funzionare sia come client che come server simultaneamente. Una modalità alternativa sicuramente più interessante, maggiormente diffusa, utilizzata e consigliata è la APP_WISERVER (libreria denominata “WiServer.h”) che permette a un sistema Arduino equipaggiato con shield Wi-Fi di essere configurato e funzionare sia
come Web Server sia come Web Client. Nel primo caso sarà possibile servire richieste di connessione provenienti da web client esterni ed inviare delle pagine HTML in risposta; nel secondo sarà invece
possibile collegarsi a un web server e, tramite la modalità request GET o POST, inviare richieste di esecuzione comandi e ricevere pagine HTML di risposta. Nel nostro progetto abbiamo utilizzato proprio questa funzionalità (come Client) e la tecnologia request POST. Per configurare la libreria WiShield scaricata come APP_WISERVER è necessario aprire il ile “<directory di arduino>librariesWiShieldappsconf.
h”, andare circa alla riga numero 39, commentare il “#deine” di APP_ WEBSERVER e rimuovere il commento al “#deine” di APP_WISERVER.
La sezione di codice in esame deve risultare qualcosa come:
//#deine APP_WEBSERVER
//#deine APP_WEBCLIENT
//#deine APP_SOCKAPP
//#deine APP_UDPAPP
#deine APP_WISERVER 

11 altri prodotti della stessa categoria: