miércoles, 15 de marzo de 2017

ARDUINO MEGA CON WIFI ESP8266 ESP-01S Y ADAPTADOR ESP-01 CON APPINVENTOR 2 Y HTML

COMPONENTES:

ARDUINO MEGA









MODULO WIFI ESP8266 ESP-01S









ADAPTADOR ESP-01










CONEXIONES:




CONFIGURACIÓN DE MODULO WIFI

void setup()
  {  Serial.begin(115200);
     Serial2.begin(115200);
     Serial.println("ESPERANDO COMANDOS AT: ");
  }

void loop()
  {
 
     if (Serial2.available())
         { char c = Serial2.read() ;
           Serial.print(c);
         
         }
     if (Serial.available())
         {  char c = Serial.read();
            Serial2.print(c);
         }
   }

COMANDOS AT:

AT+RST                              RESETEA EL MODULO WIFI
AT+CWMODE?                 EL MODO DE FUNCIONAMIENTO DE MODULO
AT+CWLAP                       SIRVE PARA VER LA REDES INNALAMBIRCAS DISPONIBLES
AT+CWJAP=”NOMBREWIFI”,”CONTRASEÑA”
AT+CIFSR                         VER LA IP ASIGNADA
AT+CIPMUX=1                 ABRE UN SERVICIO EN 1
AT+CIPSERVER=1,80      ABRE EL SERVICIO 1 EN EL PUERTO 80
AT+CIOBAUD=?              NOS DICES LA VELOCIDAD DE CONEXIÓN
AT+SEND=0,NUMERO DE CARACTERES A ENVIAR;
AT+CWSAP?                     NOMBRE DE LA WIFI DE MODULO
AT+GMR                           FIRMWARE INSTALADO                             
AT+CWLIF                       VER SI HAY ALGUIEN CONECTADO A MODULO


CODIGO ARDUINO:


String prueba;
void setup()
  {
    Serial.begin(115200);
    Serial2.begin(115200);
    pinMode(7,OUTPUT);
    delay(500);
    Serial.println("ESPERANDO COMANDOS AT: ");
    startwifi();
  }


void loop()
  {
 
  if (Serial2.available()>0){
        String c = Serial2.readString() ;
        Serial.print(c);
        http("HTTP/1.1 200 OK\n");
        http("Content-Type: text/html\n");
        http("Connection: close\n");
        http("\n");
 
        if(c.indexOf("encender")>=0) {
        digitalWrite(7,HIGH);
        http("rele encendido");
        }
   
        if(c.indexOf("apagar")>=0) {
        digitalWrite(7,LOW);
        http("rele apagado");
        }
   
        Serial.println("he salido");
        delay(100);
        Serial2.println("AT+CIPCLOSE=0");
        prueba=Serial2.readString();
        Serial.println(prueba);
        }

 
   }

void startwifi(){
delay(1000);
Serial2.println("AT+RST");
delay(500);
prueba=Serial2.readString();
Serial.println(prueba);
Serial2.println("AT+CIPMUX=1");
prueba=Serial2.readString();
Serial.println(prueba);
delay(500);
Serial2.println("AT+CIPSERVER=1,80");
prueba=Serial2.readString();
Serial.println(prueba);
delay(500);
}

void http(String output)
  {
    Serial2.print("AT+CIPSEND=0,");   // AT+CIPSEND=0, num
    Serial2.println(output.length());
    if (Serial2.find(">"))            // Si recibimos la peticion del mensaje
        { Serial.println(output);
          Serial2.println(output);     //Aqui va el string
          delay(10);
          while( Serial2.available() > 0)    // Busca el OK en la respuesta
          {
            Serial.println("mensaje mandado");
            if (  Serial2.find("SEND OK")  )  break;
         
          }
         }
  }


APLICACIÓN APPINVENTOR








No hay comentarios:

Publicar un comentario