Salve a tutti,
possiedo una scheda Arduino Ethernet e sto cercando di sviluppare un programma per il controllo di più pin da remoto, ho scritto il codice per 2 soli pin inizialmente e il tutto sembra funzionare alla perfezione, tuttavia non appena aggiungo un ulteriore pin al codice scritto, non permette più l'accesso alla scheda tramite ip ("Impossibile collegarsi a 192.168.1.20.").
Vi posto il codice in questione, le righe di codice relative al pin5 sono commentate.
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetClient.h>
#include <EthernetServer.h>
byte mac[]= {0x90, 0xA2, 0xDA, 0x0F, 0x45, 0xD4};
byte ip[] = {192,168,1,20};
EthernetServer server(80);
int pin2=2;
int pin3=3;
int pin5=5;
String stringa;
void setup(){
Ethernet.begin(mac,ip);
Serial.begin(9600);
pinMode(pin2, OUTPUT);
pinMode(pin3, OUTPUT);
pinMode(pin5, OUTPUT);
server.begin();
}
void loop(){
EthernetClient client = server.available();
if(client){
Serial.println("Nella prima if");
while(client.connected()){
Serial.println("Nel while");
if(client.available()){
char c=client.read();
stringa.concat(c);
if(c=='\n'){
Serial.println(stringa);
delay(100);
/* PAGINA HTML */
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Refresh: 5");
client.println();
client.print("<html><head><title> Controller remoto </title><head>");
client.print("<body><p align=center><font size=7 face=verdana> CONTROLLER REMOTO </font>
");
client.print("<p align=left><font size=5 face=verdana> Stato Uscite </font>
");
client.print("<p align=center><table width=400 height=200 border=1>");
/* INTESTAZIONE TABELLA */
client.print("<tr><td><p align=center><font size=5 face=verdana> Pin </font>");
client.print("<td><p align=center><font size=5 face=verdana> Stato </font>");
client.print("<td><p align=center><font size=5 face=verdana> Azione </font>");
/* RIGA PIN 2 */
client.print("<tr><td><p align=center><font size=5 face=verdana> Pin2 </font>");
if(digitalRead(pin2)==true){
client.print("<td><p align=center><font size=5 color=green face=verdana> ON </font>");
//client.print("<td><form method=get name=pin2 action=PIN2OFF><input type=submit style='background-color:red' value=Spegni></form>");
client.print("<td><p align=center><font size=5 color=red face=verdana><a href=PIN2OFF> Spegni </a></font>");
}
else{
client.print("<td><p align=center><font size=5 color=red face=verdana> OFF </font>");
//client.print("<td><form method=get name=pin2 action=PIN2ON><input type=submit style='background-color:green' value=Accendi></form>");
client.print("<td><p align=center><font size=5 color=green face=verdana><a href=PIN2ON> Accendi </a></font>");
}
/* RIGA PIN 3 */
client.print("<tr><td><p align=center><font size=5 face=verdana> Pin3 </font>");
if(digitalRead(pin3)==true){
client.print("<td><p align=center><font size=5 color=green face=verdana> ON </font>");
//client.print("<td><form method=get name=pin3 action=PIN3OFF><input type=submit style='background-color:red;width:100;height:50' value=Spegni></form>");
client.print("<td><p align=center><font size=5 color=red face=verdana><a href=PIN3OFF> Spegni </a></font>");
}
else{
client.print("<td><p align=center><font size=5 color=red face=verdana> OFF </font>");
//client.print("<td><form method=get name=pin3 action=PIN3ON><input type=submit style='background-color:green;width:100;height:50' value=Accendi></form>");
client.print("<td><p align=center><font size=5 color=green face=verdana><a href=PIN3ON> Accendi </a></font>");
}
/* RIGA PIN 5 */
/* client.print("<tr><td><p align=center><font size=5 face=verdana> Pin5 </font>");
if(digitalRead(pin5)==true){
client.print("<td><p align=center><font size=5 color=green face=verdana> ON </font>");
//client.print("<td><form method=get name=pin5 action=PIN5OFF><input type=submit style='background-color:red;width:100;height:50' value=Spegni></form>");
client.print("<td><p align=center><font size=5 color=red face=verdana><a href=PIN5OFF> Spegni </a></font>");
}
else{
client.print("<td><p align=center><font size=5 color=red face=verdana> OFF </font>");
//client.print("<td><form method=get name=pin5 action=PIN5ON><input type=submit style='background-color:green;width:100;height:50' value=Accendi></form>");
client.print("<td><p align=center><font size=5 color=green face=verdana><a href=PIN5ON> Accendi </a></font>");
}
*/
client.print("</table>");
client.print("</body></html>");
if(stringa.indexOf("PIN2ON")>0){
digitalWrite(pin2,HIGH);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
if(stringa.indexOf("PIN2OFF")>0){
digitalWrite(pin2,LOW);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
if(stringa.indexOf("PIN3ON")>0){
digitalWrite(pin3,HIGH);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
if(stringa.indexOf("PIN3OFF")>0){
digitalWrite(pin3,LOW);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
/* if(stringa.indexOf("PIN5ON")>0){
digitalWrite(pin5,HIGH);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
if(stringa.indexOf("PIN5OFF")>0){
digitalWrite(pin5,LOW);
client.println("<meta http-equiv=refresh content=0;url=http://192.168.1.20>");
}
*/
stringa="";
delay(200);
client.flush();
client.stop();
}
}
}
}
}