Categories

PrestaShop

BILANCIA WI-FI BASATA SU ARDUINO - IN KIT

28,06 €
22,45 € Risparmia 20%
Tasse incluse

BILANCIA WI-FI BASATA SU ARDUINO - IN KIT

  • Politiche per la sicurezza (modificale con il modulo "Rassicurazioni cliente") Politiche per la sicurezza (modificale con il modulo "Rassicurazioni cliente")
  • Politiche per le spedizioni (modificale con il modulo Rassicurazioni cliente) Politiche per le spedizioni (modificale con il modulo Rassicurazioni cliente)
  • Politiche per i resi merce (modificale con il modulo Rassicurazioni cliente) Politiche per i resi merce (modificale con il modulo Rassicurazioni cliente)

Realizzata appositamente per essere abbinata ad una scheda Arduino Uno (7300-ARDUINOUNOREV3), da una shield Wi-Fi (8190-WIFI_SHIELD) 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 8190-WEIGHT_SHIELD, mentre i prodotti 7300-ARDUINOUNOREV3, WI-FI SHIELD (8190-WIFI_SHIELD), SDCARD SHIELD (8190-SDCARDSHIELD) e il sensore peso della bilancia Velleman (8220-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 () 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.
DOCUMENTAZIONE E LINK UTILI

FE-8190-WEIGHT_SHIELD