PaoloP:
Si ho visto che la libreria è stata spostata su GitHub --> GitHub - sirleech/Webduino: Arduino WebServer library
Ho compilato e caricato l'esempio sull'autenticazione di base e funziona.
Adesso bisogna capire come creare le varie pagine.
Sto provando a unire i 2 codici questo: GitHub - sirleech/Webduino: Arduino WebServer library
e uno che ho modificato con webduino per accendere e spegnere tre led, provandoli uno alla volta funzionano, la mia intenzione
era unire i due codici in modo di avere autenticazione e gestione dei led, ma quando faccio la verifica ho sempre qualche
errore, spesso sulle parentesi graffe.
Questo è il codice per i led:
Codice di esempio:
#include <Ethernet.h>
#include <SPI.h>
#include <WebServer.h> //libreria webduino
//variabili statiche per il mac address e lìip address
static byte mac_Add[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//cambiare l'ip in funzione della propria rete
static byte ip_Add[] = {
192, 168, 1, 220 };
//creazione oggetto Webduino
WebServer webserver("", 80);
//Variabili booleane che memorizzano
//lo stato delle uscite collegate ai relè
boolean Rele1 = false;
boolean Rele2 = false;
boolean Rele3 = false;
//=============================================================================
//funzione pagina Start
void Start(WebServer &server, WebServer::ConnectionType type,
char *url_param, bool param_complete)
{
//restituisce al browser l'intestazione http 200 OK
server.httpSuccess();
//gestisco il tipo di richiesta HEAD
if (type != WebServer::HEAD)
{
String s = "";
if (param_complete == true)
{
s = url_param;
if ( s == "R1=ON")
{
Rele1 = true;
digitalWrite(3, HIGH);
}
else if ( s == "R1=OFF")
{
Rele1 = false;
digitalWrite(3, LOW);
}
if ( s == "R2=ON")
{
Rele2 = true;
digitalWrite(5, HIGH);
}
else if ( s == "R2=OFF")
{
Rele2 = false;
digitalWrite(5, LOW);
}
if ( s == "R3=ON")
{
Rele3 = true;
digitalWrite(6, HIGH);
}
else if ( s == "R3=OFF")
{
Rele3 = false;
digitalWrite(6, LOW);
}
}
//gestisco la pagina html in base allo stato delle uscite di Arduino
P(htmlHead) =
"<html>"
"<head>"
"<title>Arduino Scheda Rele</title>"
"</head>"
"<body>";
server.printP(htmlHead);
server.print("<table border=\"1\">");
server.print("<tr><td>Stato Rele</td><td>Comandi</td></tr>");
if(Rele1 == true)
server.print("<tr><td style=\"color: red;\">RELE 1 ON</td><td>");
else
server.print("<tr><td style=\"color: black;\">RELE 1 OFF</td><td>");
if(Rele1 == false)
// server.print("<input type=button onclick=location.href='index.htm?R1=ON'" value='clicca qui\">");
// server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R1=ON'\">");
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R1=ON'\">");
else
// server.print("<input type=button onclick=location.href='index.htm?R1=OFF'" value='clicca qui\">");
//server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R1=OFF'\">");
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R1=OFF'\">");
server.print("</td></tr>");
if(Rele2 == true)
server.print("<tr><td style=\"color: red;\">RELE 2 ON</td><td>");
else
server.print("<tr><td style=\"color: black;\">RELE 2 OFF</td><td>");
if(Rele2 == false)
//server.print("<input type=button onclick="location.href='index.htm?R2=ON'" value='clicca qui\">");
//server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R2=ON'\">");
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R2=ON'\">");
else
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R2=OFF'\">");
//server.print("<input type=button onclick="location.href='index.htm?R2=OFF'" value='clicca qui\">");
//server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R2=OFF'\">");
//server.print("<input type=\"button\" value=\"clicca qui\"
// onclick=\"location.href='index.htm?R2=OFF'\">");
server.print("</td></tr>");
if(Rele3 == true)
server.print("<tr><td style=\"color: red;\">RELE 3 ON</td><td>");
else
server.print("<tr><td style=\"color: black;\">RELE 3 OFF</td><td>");
if(Rele3 == false)
//server.print("<input type=button onclick="location.href='index.htm?R3=ON'" value='clicca qui\">");
//server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R3=ON'\">");
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R3=ON'\">");
else
//server.print("<input type=button onclick="location.href='index.htm?R3=OFF'" value='clicca qui\">");
//server.print (" <input type='button' value='clicca qui' onclick='location.href=index.htm?R3=OFF'\">");
server.print("<input type= button value='clicca qui'onclick=\"location.href='index.htm?R3=OFF'\">");
server.print("</td></tr>");
server.print("</table></body></html>");
}
}
//=============================================================================
void setup()
{
//inizializzo l'ethernet shield con il mac e il address
Ethernet.begin(mac_Add, ip_Add);
//definisci l'azione di default che verrà eseguita quando l'utente
//naviga nella root del sito
webserver.setDefaultCommand(&Start);
webserver.addCommand("index.htm", &Start);
//avvia il web server
webserver.begin();
delay(100);
//definisci i pin 2 3 4 in uscita
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
//inizializza i le uscite
digitalWrite(3, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
void loop()
{
//elabora costantemente tutte le richieste provenienti dal browser
webserver.processConnection();
}