Salve a tutti. Ultimamente sto provando a integrare l' html con alcuni banalissimi sketch di arduino.
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Mi sarebbe quindi molto utile sapere se e' possibile porre una semplice condizione in questo loop che faccia eseguire le istruzioni solo se un pulsante sul web e' acceso.
Non so se chiedo troppo ma qualcuno sa niente a proposito?
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
Quale shield ethernet? C'e' la ufficiale con chip WIZ e una economica con ENC28j60
Se quella ufficiale, di tutorial ne trovi molti.
Qui tutorial per la ENC:
http://www.lucadentella.it/2012/08/10/enc28j60-e-arduino-7/
Mi sarebbe quindi molto utile sapere se e' possibile porre una semplice condizione in questo loop che faccia eseguire le istruzioni solo se un pulsante sul web e' acceso.
Non hai speso molte parole sullo sketch che usi.
Se usi arduino come server è chiaro che è il micro a inviare quella segnalazione "che accende il quadretto" sul client, quindi conosci già quella condizione facendo una lettura di stato del pin all'interno del loop().
Mi spiego meglio
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(x,x,x,x);
EthernetServer server(80);
void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
// start the Ethernet connection and the server:
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("
");
}
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disconnected");
}
}
Questo e' lo sketch di esempio per controllare lo stato di alcuni pin analogici dal web.
Mi piacerebbe introdurre questo pulsante in un caso analogo.