Edison Web Server
- 0 Collaborators
Il progetto Edison Web Server è stato pensato per dimostrare le potenzialità della scheda Intel Edison come dispositivo IoT. ...learn more
Overview / Usage
Si tratta di un dispositivo IoT in grado di comunicare, tramite una rete Wi-Fi, i dati dei sensori di luce e temperatura su una pagina web di un qualunque browser e, allo stesso tempo, di ricevere i controlli remoti dalla stessa pagina per l’accensione e lo spegnimento di un LED (o un relè) e lo spostamento del braccetto di un servomotore a varie angolazioni. Contemporaneamente è possibile visualizzare sul display LCD RGB le informazioni dei sensori e dell’attività del server. Inoltre, tramite un pulsante locale, è possibile variare la luminosità del display e osservarne lo stato in remoto sulla pagina web. Anche la posizione corrente del servomotore e lo stato ON/OFF del LED sono altrettanto visualizzati sulla pagina web. La pagina web viene automaticamente aggiornata con un refresh di 10 secondi con i dati di temperatura, luce, posizione del servomotore, luminosità del display e stato ON/OFF del LED.
Materiale
Il progetto Edison Web Server prevede l’utilizzo dei seguenti materiali:
Scheda Intel Edison
Scheda breakout Intel Edison
Grove Base Shield by Seeed Studio
Grove temperature sensor by Seeed Studio
Grove light sensor by Seeed Studio
Grove button by Seeed Studio
Grove LED by Seeed Studio
Grove Servo by Seeed Studio
Grove LCD RGB backlit by Seeed Studio
Si fa notare che, essendo la scheda breakout di Edison perfettamente compatibile con la piedinatura di Arduino, il montaggio dello shield Grove e dei suoi accessori e davvero molto facile.
Lo sketch
Lo sketch per Edison è stato scritto e caricato in memoria utilizzando l’interfaccia IDE di Arduino (1.6.11), opportunamente aggiornata per la scheda Intel Edison.
(img sketch_arduino.jpg)
Per non dover caricare lo sketch ad ogni accensione della scheda Edison, è stato modificato l’autostart nel system di Edison.
In questo modo, basterà collegare la scheda breakout a una sorgente di alimentazione esterna per far funzionare il dispositivo.
A tal proposito, si consiglia di alimentare la scheda con un alimentatore esterno da 9 volt, non dalla presa USB di un computer,
visto l’elevato assorbimento della retroilluminazione e del servomotore.
Lo sketch prevede l’uso delle seguenti librerie:
<SPI.h> <WiFi.h> <Servo.h> <Wire.h> <rgb_lcd.h>
La libreria rgb_lcd.h, necessaria per la gestione del display LCD RGB, viene fornita con gli esempi dello shield Grove (vedere http://wiki.seeedstudio.com/wiki/Grove_-_Starter_Kit_v3).
Collegamenti allo shield (img shield_grove.png)
Il modulo Grove LCD RGB è dotato di interfaccia I2C, per cui basta collegarlo a una delle prese I2C dello shield. Il modulo Grove light sensor va collegato a un ingresso analogico dello shield (p.es. A0) Il modulo Grove temperature sensor va collegato a un ingresso analogico dello shield (p.es. A1) Il modulo Grove button va collegato a un ingresso digitale (p.es. D2) Il modulo Grove LED va collegato a un’uscita digitale (p.es. D7) Il modulo Grove Servo va collegato a un’uscita digitale (p.es. D3)
Funzionamento
Una volta caricato lo sketch in Edison, si vedrà apparire sul display “Hello EDISON”.
(img edison_01.jpg) Dopodiché la scheda tenterà di collegarsi alla rete Wi-Fi esistente, ovvero la rete Wi-Fi del router di casa. Dopo alcuni secondi, se la connessione ha successo, sul display appariranno le indicazione della porta di connessione (p.es. 8080) e l’IP dinamico ricevuto dalla rete (p.es. 192.168.1.2).
(img edison_02.jpg) Dopo cinque secondi apparirà Server ready! E l’indicazione di lux e di gradi centigradi. (img edison_03.jpg) A questo punto, è possibile digitare l’indirizzo IP e la porta in un browser per vedere la pagina web in azione (p.es. 192.168.1.152:8080). Ricordiamo che, per un corretta connessione, bisogna impostare il server su una porta diversa dalla porta 80. Quello che apparirà sul browser sarà simile all’immagine sottostante. Notare che il codice HTML è stato modificato grazie alla connessione remota con un foglio stile residente nel sito Pierduino (www.pierduino.com). (img edison_04.jpg) Da questa pagina, si potrà accendere o spegnere il LED (o un modulo relè) collegato al pin 7(img edison_05.jpg) oppure cambiare lo stato della retroilluminazione premendo ripetutamente sul pulsante collegato al pin 2. Volendo, si può anche spegnere la retroilluminazione (img edison_06.jpg) Si può cambiare la posizione del braccetto del servomotore su posizioni fisse a 0, 45, 90, 135 e 180 gradi. Volendo, si potrebbe installare una web cam sul servomotore per effettuare un videocontrollo remoto. Con un secondo servomotore si potrebbe controllare anche il tilt della web cam. (img edison_07.jpg) Infine, si fa notare che, invece di digitare l’indirizzo IP della rete Wi-Fi locale nel browser di casa, sarà possibile controllare il dispositivo IoT con Edison da qualsiasi postazione remota, impostando un port forwarding nel router di casa. Basterà configurare opportunamente un DNS (ottenuto anche gratuitamente: p.es. DynDNS.it, noip.com ecc.)