Tuco 1.0 è una targhetta elettronica a porta: "intelligente", open source e open hardware.
E' stata concepita per essere installata (teoricamente) sulle porte degli studi della nostra università.
Lo scopo della targhetta è visualizzare in tempo reale informazioni del tipo: numero dello studio, docente/i, orari di ricevimento, contatti mail e/o telefonici etc etc... ma soprattutto avvisi presi in tempo reale da uno dei canali di comunicazione dell'università.
E' stata realizzata sfruttando l'hardware del famoso progetto 100% Italiano chiamato "Arduino".
Questo prototipo in particolare usa: Arduino Duemilanove, Ethernet Shield, un router (modificato) WiFi Fonera 2100 e un display grafico (G-LCD) parallelo KS0107
Quindi da oggi, le targhette stampate sulle porte della nostra università, potrebbero trasformarsi da queste:
A qualcosa di molto simile a questa:
Dopo aver configurato le impostazioni del firmware DD-WRT (open) correttamente, il nostro router Fonera deve collegarsi alla propria rete WiFi in modalità repeater WiFi (una valida alternativa della Fonera è il TL-WR702N)
Il router andrà collegato all'ethernet shield con un normale cavo RJ45
Il wiring fatto tra GLCD e Arduino si può trovare sulla documentazione ufficiale della librearia grafica GLCD per Arduino: http://www.arduino.cc/playground/Code/GLCDks0108
Avendo l'accortezza, però, di cambiare i pin:
GLCD - ARDUINO
9 -> D2
10 -> D3
e
Dopo aver scaricato e configurato la propria Arduino IDE, bisogna scaricare ed installare nel path giusto la libreria grafica GLCD.
All'interno della libreria grafica GLCD vanno modificato alcuni file in questo modo:
In: glcd/glcd_Config.h
Bisogna: commentare #include "config/ks0108_Panel.h" e togliere il commento da //#include "config/ks0108_Manual_Config.h"
In: glcd/config/ks0108_Manual_Config.h
Bisgona: modificare la linea
#define glcdData2Pin 10 #define glcdData3Pin 11
in
#define glcdData2Pin 2 #define glcdData3Pin 3
Save & exit.
Questa modifica è necessaria in quanto sia l'etherne shield che il glcd hanno in comune i pin 10 e 11, dunque per evitare incompatibilità tra i due hardware, la libreria va modificata come sopra
Il firmware, da me scritto, è presente nella mia cartella personale su: box.uniparthenope.it
Circa i punti salienti del firmware, posso aggiungere che la funzione principale loop (un loop infinito) è strutturata quanto segue:
void loop() { logo(); cornice(); numero(); mail(); myConnect(); parse(); disconnect(); }
In particolare:
Logo
è una funzione che restituisce due immagini bitmap, opportunamente realizzate con un tool (in java e open) all'interno della libreria grafica glcd.
In particolare restituisce il logo della nostra università diviso in due metà.
Cornice
Grazie all'uso dell'oggetto gText ho strutturato il display in tre parti:
Questo mi permette di avere le informazioni divise per aree grafiche tematiche:
Nella superiore visualizzo nome e cognome del/dei docenti e numero dello studio.
Al centro tutte le informazioni DINAMICHE
Nella parte inferiore l'orario di ricevimento
Numero e Mail
Sono due funzioni che stampano sul gText.centrale rispettivamente: numero stanza e l'indirizzo email.
myConnect
E' la funzione che mi permette di instaurare un collegamento in modalità client, tra la mia arduino ed il server sebeto.
In particolare myConnect cerca di instaurare il collegamento, ma se dopo tre tentativi non riesce a stabilire una connessione, avviene un hardreset grazie alla macro definita nell'header del firmware.
Una volta stabilita la connessione, effettuo il comando GET verso l'api news (settata in modo tale da restituire un solo avviso)
parse
E' la funzione che realizza il parsing del primo avviso restituito dall'api news, in particolare cerca la sottostringa content e memorizza il contenuto dei primi 300caratteri in un buffer.
Il buffer viene stampato char by char con un ritardo di 50ms tra un char e l'altro.
disconnect
realizza la disconnessione dell'arduino dal server.
Alcune foto:
Arduino.cc: http://blog.arduino.cc/2012/11/13/tuco-1-0-a-digital-door-plate/
Adafruit.com: http://www.adafruit.com/blog/2012/10/15/electronic-doorplate-with-arduino/
Andrea Esposito
108/1007
Comments
Mirko Zammartino
Fri, 10/12/2012 - 18:22
Permalink
Complimenti!
Complimenti!
Questa è davvero un'ottima idea.
L'unica cosa: l'uni è disposta a spendere diversi euro per una soluzione del genere?
In ogni caso, è un progetto più che interessante! ;) Di nuovo complimenti!
Università Parthenope - Informatica - Scienze e Tecnologie
Home page: students.uniparthenope.it/~0124000223
Email: mirko.zammartino@studenti.uniparthenope.it
Andrea Esposito
Fri, 10/12/2012 - 18:39
Permalink
Grazie.
Grazie.
Who know!? :)
Questa è un idea, che può essere plasmata e adattata in ogni forma.
Se non si vuol mettere un display sulla porta dello studio, si può mettere e realizzare qualcosa di molto simile su ogni oggetto...
Questa *filosofia* si chiama: http://en.wikipedia.org/wiki/Internet_of_Things
Salvatore De Michele
Fri, 10/12/2012 - 19:06
Permalink
O_O
da non credere. STUPENDOOOOOOOOO
my web's work on
http://www.rays.altervista.orgRaffaele Montella
Fri, 10/12/2012 - 23:53
Permalink
Costo
Volendo costruite qualche esemplare sperimentale, quanto costerebbe ?
-----------------------
Raffaele Montella, PhD
Assistant Professor in Computer Science
Department of Applied Science
University of Napoli Parthenope
Andrea Esposito
Sat, 10/13/2012 - 10:30
Permalink
Calcolo dei costi... molto
Calcolo dei costi... molto orientativo:
Glcd ks0108: ~13€
Arduino uno: ~20€ (+IVA)
Ethernet shield: ~29€ (+IVA)
Arduino Ethernet: ~36€ (+IVA)
WiFi shield: ~69€ (+IVA)
WiFi DiamondBack 1.0 (Arduino + Wifi su singola pcb): ~72$ (55.5€)
Router TL-WR702N: ~19€
Combinazioni:
Quindi, un totale per l'opzione:
Vanno inclusi, inoltre: IVA, spese di spezione, un alimentatore da 9v e un box esterno pvc/alluminio.
Andrea Esposito
Sun, 10/14/2012 - 15:09
Permalink
Una soluzione a basso costo
Una soluzione a basso costo potrebbe essere:
Eliminare la parte *internet* e gli avvisi potrebbero esser presi da una sd.
Arduino mini + glcd
Costo: 15 (+IVA) + 13 = 28euro
Oppure:
Realizzare un arduino minimale su mille fori + glcd
Costo: ~10 + 13 = 23euro