Código de AIREduino para agregar a la placa arduino V 1.0

Código de AIREduino para agregar a arduino

A continuación puedes ver el vídeo explicativo y más abajo agregamos el código depurado y probado (en la placa arduino D1 WIFI) que podrás agregar a tu placa arduino para que comience a funcionar tu proyecto AIREduino con 2 rejillas de aire por conductos.

#include <ESP8266WiFi.h> //LIBRERIA1
#include <Servo.h> //LIBRERIA2

//CONFIGURACION ROUTER
const char ssid[] = "NOMBRE_DE_MI_RED_WIFI"; //Definimos la SSDI de nuestro servidor WiFi -nombre de red-
const char password[] = "CONTRASEÑA"; //Definimos la contraseña de nuestro servidor
IPAddress ip(192,168,1,44); //Definimos el número de conexión de AIREDUINO al router (predeterminado el 44)
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
WiFiServer server(80);
//FIN CONFIGURARION RUTER

//VARIABLES A UTILIZAR
Servo servo;
Servo servo2;
int grados = 85;
int grados2 = 85;
int apertura = 2;
int apertura2 = 2;
int PinLED = 4; //PIN DE SALIDA PARA RELE1
int PinLED2 = 1; //PIN DE SALIDA PARA RELE2
int estadoLED = LOW;
int estadoLED2 = LOW;
//FIN DE VARIABLES A UTILIZAR

void setup() {

Serial.begin(115200);

servo.attach(D3); //PIN DE SALIDA PARA SERVO1 - GPIO5 / D3
servo2.attach(D2); //PIN DE SALIDA PARA SERVO2 - GPIO16 / D2

pinMode(PinLED, OUTPUT); //Inicializamos el GPIO2 como salida
digitalWrite(PinLED, HIGH); //Dejamos inicialmente el GPIO2 apagado

pinMode(PinLED2, OUTPUT); //Inicializamos el GPIO1 como salida
digitalWrite(PinLED2, HIGH); //Dejamos inicialmente el GPIO1 apagado

WiFi.begin(ssid, password);
WiFi.config(ip, gateway, subnet);
WiFi.setAutoReconnect(true); // Realiza la reconexión a la red WiFi si se pierde la conexión

server.begin();

Serial.println();

Serial.print("Direccion IP Access Point - por defecto: "); //Imprime la dirección IP
Serial.println(WiFi.softAPIP());
Serial.print("Direccion MAC Access Point: "); //Imprime la dirección MAC
Serial.println(WiFi.softAPmacAddress());

digitalWrite(PinLED, estadoLED);
digitalWrite(PinLED2, estadoLED2);
delay(200);
servo.write(grados);
delay(200);
servo2.write(grados2);
delay(1500);
estadoLED = HIGH;
estadoLED2 = HIGH;
digitalWrite(PinLED, estadoLED);
digitalWrite(PinLED2, estadoLED2);

}

void loop()
{
// Comprueba si el cliente ha conectado
WiFiClient client = server.available();
if (!client) {
return;
}

// Espera hasta que el cliente envía alguna petición
Serial.println("nuevo cliente");
while(!client.available()){
delay(1);
}

// Imprime el número de clientes conectados
Serial.printf("Clientes conectados al Access Point: %dn", WiFi.softAPgetStationNum());

// Lee la petición
String peticion = client.readStringUntil('r');
Serial.println(peticion);
client.flush();

// Comprueba la petición

//MOVIMIENTO DE APERTURA DE SERVOMOTOR 1
if (peticion.indexOf('/A') != -1) {
estadoLED = LOW;
grados = grados + 86;
apertura = 2;
if (grados > 160) {grados = 160; apertura = 3;}
}

//MOVIMIENTO DE CIERRE DE SERVOMOTOR 1
else if (peticion.indexOf('/B') != -1) {
estadoLED = LOW;
grados = grados - 86;
apertura = 2;
if (grados < 0) {grados = 0; apertura = 1;}
}

// Comprueba la petición2

//MOVIMIENTO DE APERTURA DE SERVOMOTOR 2
else if (peticion.indexOf('/D') != -1) {
estadoLED2 = LOW;
grados2 = grados2 + 86;
apertura2 = 2;
if (grados2 > 160) {grados2 = 160; apertura2 = 3;}
}

//MOVIMIENTO DE CIERRE DE SERVOMOTOR 2
else if (peticion.indexOf('/Z') != -1) {
estadoLED2 = LOW;
grados2 = grados2 - 86;
apertura2 = 2;
if (grados2 < 0) {grados2 = 0; apertura2 = 1;}
}

//Enciende o apaga el RELÉ en función de la petición DURANTE 1,5 SEGUNDOS
digitalWrite(PinLED, estadoLED);
digitalWrite(PinLED2, estadoLED2);
delay(200);
servo.write(grados);
servo2.write(grados2);
delay(1500);
estadoLED = HIGH;
estadoLED2 = HIGH;
digitalWrite(PinLED, estadoLED);
digitalWrite(PinLED2, estadoLED2);

// Envía la página HTML de respuesta al cliente
client.println("HTTP/1.1 200 OK");
client.println(""); //IMPORTANTE ESTA LÍNEA DE SEPARACIÓN
client.println("<!DOCTYPE HTML>");
client.println("<meta charset='UTF-8'>");
client.println("<html>");

//Imprime el estado del MOTOR 1
client.print("<center><h1><b>El AIRE del DESPACHO está ahora ");
if(apertura == 1) {
client.print("<font color='red'>CERRADO</font></b></h1><br></center>");
}
if(apertura == 2) {
client.print("<font color='blue'>MEDIO ABIERTO</font></b></h1><br></center>");
}
if(apertura == 3) {
client.print("<font color='green'>ABIERTO</font></b></h1><br></center>");
}

//Se crean botones con estilos para modificar el estado del MOTOR 1
client.println("<center><button type='button' onClick=location.href='/A' style='margin:auto; background-color:green; color:#A9F5A9; padding:5px; border:2px solid black; width:300'> <h1> ABRIR </h1> </button>");
client.println("<button type='button' onClick=location.href='/' style='margin:auto; background-color:blue; color:#A9F5A9; padding:5px; border:2px solid black; width:300'> <h1> ACTUAL </h1> </button>");
client.println("<button type='button' onClick=location.href='/B' style='margin:auto; background-color:red; color:#F6D8CE; padding:5px; border:2px solid black; width:300'> <h1> CERRAR </h1> </button><br><br></center>");

//Imprime el estado del MOTOR 2
client.print("<center><h1><b>El AIRE del DORMITORIO 2 está ahora ");
if(apertura2 == 1) {
client.print("<font color='red'>CERRADO</font></b></h1><br></center>");
}
if(apertura2 == 2) {
client.print("<font color='blue'>MEDIO ABIERTO</font></b></h1><br></center>");
}
if(apertura2 == 3) {
client.print("<font color='green'>ABIERTO</font></b></h1><br></center>");
}

//Se crean botones con estilos para modificar el estado del MOTOR 2
client.println("<center><button type='button' onClick=location.href='/D' style='margin:auto; background-color:green; color:#A9F5A9; padding:5px; border:2px solid black; width:300'> <h1> ABRIR </h1> </button>");
client.println("<button type='button' onClick=location.href='/' style='margin:auto; background-color:blue; color:#A9F5A9; padding:5px; border:2px solid black; width:300'> <h1> ACTUAL </h1> </button>");
client.println("<button type='button' onClick=location.href='/Z' style='margin:auto; background-color:red; color:#F6D8CE; padding:5px; border:2px solid black; width:300'> <h1> CERRAR </h1> </button><br><br></center>");

client.println("</html>");
delay(1);
Serial.println("Petición finalizada"); // Se finaliza la petición al cliente. Se inicaliza la espera de una nueva petición.

}




No dudes en consultarnos si tienes dudas de cómo hacer el soporte o, si lo deseas, puedes pedirnos el soporte a medida y desde MKapp te lo haremos.

Esperamos tus comentarios, dudas o aportaciones de este post sobre el novedoso sistema AIREduino.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *