vuoi
o PayPal
tutte le volte che vuoi
Riassunto Di TPS 3-3: Arduino Web-Server
Arduino è in grado di utilizzare le funzionalità di rete attraverso l’Ethernet Shield, una scheda aggiuntiva con dei circuiti che permettono la trasmissione e la ricezione di dati attraverso un Cavo Ethernet.
Ethernet Shield
Descrizione
Fisicamente l’Ethernet Shield mostra una porta Ethernet, un lettore MicroSD e la stessa piedinatura di Arduino. Per quanto riguarda il funzionamento e la ricetrasmissione, la scheda utilizza i pin 10, 11, 12, 13; il pin 4 è riservato al lettore MicroSD, quando utilizzato. Alcuni Tipi Di Arduino hanno l’Ethernet Shield Integrato (Arduino Yun, ecc.)
Codice
Setup
Per poter utilizzare l’Ethernet Shield, bisogna inserire nell’IDE le seguenti librerie:
#include<SPI.h>
#include<Ethernet.h>
è anche necessario inserire l’indirizzo MAC (scritto sotto la scheda Ethernet) ed un indirizzo IP compatibile con la rete.
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,2, 130 };
Con la funzione EthernetServer inizializziamo il server con la porta da utilizzare:
EthernetServer server(80);
Se vogliamo collegare Arduino ad un router e non direttamente al computer, bisogna dichiarare anche l’indirizzo IP del gateway ed il Server DNS:
byte gateway[] = { 192,168,2,254 };
byte DnsServer[] = { 8,8,8,8 };
Si inizia la connessione col server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
Loop
Inizia la ricerca di eventuali client:
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
Finisce le richieste http(porta 80) con una linea vuota:
while (client.connected()) {
[/i]while (client.available()) {
char c = client.read();
Serial.write(c); }
Caricamento Della Pagina Web
Per caricare una pagina web su Arduino, vi sono due modi:
scrivere l’intera pagina HTML nel programma, utilizzando dei “client.println()”
Esempio:
client.println(<html>);
.
.
.
client.println(</html>)
caricare la pagina in una MicroSD e richiamarla nel programma con apposite istruzioni.
Lettore MicroSD
L’Ethernet Shield di Arduino ha installato un lettore MicroSD che può supportare una capacità massima di 2 GB, è solitamente utilizzato per richiamare pagine web dalla memoria.
Istruzioni
Per poter utilizzare il Lettore MicroSD, bisogna dichiarare la seguente libreria:
#include<SD.h>
Dichiariamo una variabile che utilizza il pin 4, quello riservato al LettoreMicroSD:
const int chipSelect = 4;
Se la Scheda MicroSD è presente, verrà inizializzata:
if (!SD.begin(chipSelect)) {
return;
}
}
Dopo che il server si è connesso col client, Arduino aprirà dalla MicroSD la pagina web:
File dataFile = SD.open("index.htm");
if (dataFile) {
while (dataFile.available()) {
client.write(dataFile.read());
}
FUNZIONAMENTO
L’ Ethernet Shield, per funzionare,
utilizza i Pin 10, 11, 12 e 13. Il Pin 4
è riservato al Lettore Micro SD,
quando utilizzato [figure verdi].
Oltre al collegamento Hardware, c’è
anche bisogno di determinate
istruzioni.
This presentation is a property of Marco Carega, All Right Reserved ISTRUZIONI: LIBRERIE E
VARIABILI
Prima di tutto bisogna inserire le
librerie:
• #include<Ethernet.h>;
• #include<SPI.h>;
In seguito si dichiarano MAC (scritto
sotto la scheda), IP (con la stessa Se vogliamo collegare Arduino ad un
classe) e la porta di trasmissione: Router (secondo schema), bisogna
anche inserire gli indirizzo IP del
• byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE,
0xED}; gateway e del server DNS:
byte ip[] = {192,168,2,33};
• byte gateway[]={192,168,2,1};
•
• EthernetServer server(80); byte DnsServer[]={8,8,8,8};
•
This presentation is a property of Marco Carega, All Right Reserved
ISTRUZIONI: SETUP & LOOP
A questo punto inizia la connessione Dopo l’inizializzazione, il server
dell’Ethernet e del server: incomincia la ricerca dei client:
EthernetClient client = server.available();
•
Ethernet.begin(mac, ip);
• Se la connessione è avvenuta con
server.begin();
• successo, il server invia al client la
Nel caso in cui Arduino è collegato pagina web.
ad un router, l’istruzione è questa:
Ethernet.begin(mac,ip,gateway,DnsServer
• );
This presentation is a property of Marco Carega, All Right Reserved HTML
HTML è un linguaggio che permette Una pagina HTML inizia con <html>
la costruzione di pagine web. e finisce con </html>. È inoltra
divisa in due parti:
• Head: parte che riguarda
l’intestazione, lo stile e varie
informazioni sulla pagina web;
Body:
• il corpo effettivo della
pagina web.
This presentation is a property of Marco Carega, All Right Reserved HTML & ARDUINO
HTML può anche interfacciarsi È anche possibile stampare i
con Arduino in due modi: valori dei componenti montati su
Arduino o creare dei pulsanti
Scrivere l’intera pagina web
• virtuali che ne
nell’IDE; accendono/spengono altri .
Mettere la pagina web in una
• Micro SD e richiamarla nel
programma;
This presentation is a property of Marco Carega, All Right Reserved IL LETTORE MICROSD
Come già detto prima, si può
caricare una pagina web dal Lettore
MicroSD montato sulla Shield. In
questo modo, il programma è più
leggero e si evita di appesantire
l’EEPROM di Arduino.
This presentation is a property of Marco Carega, All Right Reserved LETTORE MICROSD: IL
SOFTWARE
Per utilizzare Il lettore MicroSD, Infine, dopo che il server si è
bisogna inserire la seguente libreria: connesso col client, Arduino
carica la pagina web:
#include<SD.h>
•
In seguito si dichiara una variabile File dataFile = SD.open("index.htm");
•
che utilizza il Pin 4, quello ad esso • if (dataFile) {
dedicato: while(dataFile.available())
•
• const int chipSelect = 4; • {client.write(dataFile.read());}
Se la memoria è presente, verrà
inizializzata:
if (!SD.begin(chipSelect)) { return };
•
This presentation is a property of Marco Carega, All Right Reserved