Salve a tutti.
Ho un codice per un progetto con arduino yun, così com'è impostato prevede l'utilizzo di pulsanti per accendere o spegnere i pin ma io volevo provare a controllarlo da web digitando sulla barra degli indirizzi: ip/arduino/digital/ ecc ecc.
Ho visto che si può impostare lo skecth in modo da ottenere dei pulsanti sulla pagina web di arduino che viene creata a quell'indirizzo
#include <Adafruit_MCP23017.h>
#include <Wire.h>
Adafruit_MCP23017 mcp;
int pulsante1 = A0;
int statorelay0 = 1;
int statorelay1 = 1;
int statorelay2 = 0;
int statorelay3 = 0;
int statoled0 = 0;
int statoled1 = 1;
int statoled2 = 0;
int statoled3 = 1;
int statoled4 = 1;
int statoled5 = 0;
int statoled6 = 1;
int statoled7 = 0;
void setup() {
// put your setup code here, to run once:
mcp.begin(0);
pinMode(pulsante1, INPUT); //
pinMode(1, INPUT_PULLUP); //
pinMode(4, INPUT_PULLUP); //
pinMode(5, INPUT_PULLUP); //
pinMode(6, OUTPUT); // relay
pinMode(7, OUTPUT); //relay
pinMode(8, OUTPUT); //relay
pinMode(9, OUTPUT); //relat
mcp.pinMode(9, OUTPUT); //led
mcp.pinMode(8, OUTPUT); // led
mcp.pinMode(11, OUTPUT); //led
mcp.pinMode(10, OUTPUT); // led
mcp.pinMode(12, OUTPUT); //led
mcp.pinMode(13, OUTPUT); //led
mcp.pinMode(14, OUTPUT); //led
mcp.pinMode(15, OUTPUT); //led
pinMode(10, INPUT_PULLUP); //
pinMode(11, INPUT_PULLUP); //pulsante
pinMode(12, INPUT_PULLUP); //pulsante
pinMode(13, INPUT_PULLUP); //pulsante
mcp.pinMode(7, OUTPUT); //relay
mcp.pinMode(6, OUTPUT); //relay
mcp.pinMode(5, OUTPUT); //relay
mcp.pinMode(4, OUTPUT); //relay
mcp.digitalWrite(7, 1);
mcp.digitalWrite(6, 1);
mcp.digitalWrite(5, 1);
mcp.digitalWrite(4, 1);
digitalWrite(6, statorelay0);
mcp.digitalWrite(8, statoled0);
mcp.digitalWrite(9, statoled1);
digitalWrite(7, statorelay1);
mcp.digitalWrite(10, statoled2);
mcp.digitalWrite(11, statoled3);
digitalWrite(8, statorelay2);
mcp.digitalWrite(12, statoled4);
mcp.digitalWrite(13, statoled5);
digitalWrite(9, statorelay3);
mcp.digitalWrite(14, statoled6);
mcp.digitalWrite(15, statoled7);
}
void loop() {
// put your main code here, to run repeatedly:
if (analogRead(pulsante1) == LOW )
{
if (statorelay0 == 1) statorelay0 = 0;
else statorelay0 = 1;
if (statoled0 == 0) statoled0 = 1;
else statoled0 = 0;
if (statoled1 == 1) statoled1 = 0;
else statoled1 = 1;
digitalWrite(6, statorelay0);
mcp.digitalWrite(8, statoled0);
mcp.digitalWrite(9, statoled1);
delay(400);
}
if (digitalRead(1) == LOW )
{
if (statorelay1 == 1) statorelay1 = 0;
else statorelay1 = 1;
if (statoled2 == 0) statoled2 = 1;
else statoled2 = 0;
if (statoled3 == 1) statoled3 = 0;
else statoled3 = 1;
digitalWrite(7, statorelay1);
mcp.digitalWrite(10, statoled2);
mcp.digitalWrite(11, statoled3);
delay(400);
}
if (digitalRead(4) == LOW )
{
if (statorelay2 == 0) statorelay2 = 1;
else statorelay2 = 0;
if (statoled4 == 1) statoled4 = 0;
else statoled4 = 1;
if (statoled5 == 0) statoled5 = 1;
else statoled5 = 0;
digitalWrite(8, statorelay2);
mcp.digitalWrite(12, statoled4);
mcp.digitalWrite(13, statoled5);
delay(400);
}
if (digitalRead(5) == LOW )
{
if (statorelay3 == 0) statorelay3 = 1;
else statorelay3 = 0;
if (statoled6 == 1) statoled6 = 0;
else statoled6 = 1;
if (statoled7 == 0) statoled7 = 1;
else statoled7 = 0;
digitalWrite(9, statorelay3);
mcp.digitalWrite(14, statoled6);
mcp.digitalWrite(15, statoled7);
delay(400);
}
if (digitalRead(10)==LOW)
{ mcp.digitalWrite(7, 0);
delay(400);
mcp.digitalWrite(7, 1);
}
if (digitalRead(11)==LOW)
{ mcp.digitalWrite(6, 0);
delay(400);
mcp.digitalWrite(6, 1);
}
if (digitalRead(12)==LOW)
{ mcp.digitalWrite(5, 0);
delay(400);
mcp.digitalWrite(5, 1);
}
if (digitalRead(13)==LOW)
{ mcp.digitalWrite(4, 0);
delay(400);
mcp.digitalWrite(4, 1);
}
}
questo è il codice, cosa devo prevedere all'interno di questo per controllarlo da web?
ho aperto la porta 80 al router all'indirizzo ip di arduino.
scusate ma sono molto a digiuno di networking.
grazie a tutti