viernes, 21 de septiembre de 2018

ESP8266 ESP-01S Y ADAPTADOR ESP-01 S COMO CLIENTE CON HOSTIGER CON ARDUINO MEGA


COMPONENTES:
                                                                 ARDUINO MEGA
ADAPTADOR ESP-01 S
ESP8266 ESP-01 S
CONEXIONES:

TX ESP8266 CON RX1 DE ARDUINO MEGA
RX ESP8266 CON TX1 DEL ARDUINO MEGA

PRECAUCIONES
CON ESTE ADAPTADOR SE PUEDE CONECTAR A 5V PERO SIN EL ADAPTADOR ESP-01 ES A 3.3 V.

CÓDIGO ARDUINO

String nombrewifi="NOMBREWIFI";   //PONER EL NOMBRE DE LA WIFI
String clavewifi="CLAVEWIFI";        //PONER LA CLAVE DE LA WIFI


String direcion;   //guardar la ruta de hostinger
String mensajerecibido="";    //guardar los mensajes recibidos de ESP8266
int valor=0;   //Es el valor que vamos a introducir en la base de datos
boolean modotrabajo=true;  // proyecto terminado  y funcionando lo ponemos a false.

void setup() {
Serial.begin(115200);
Serial1.begin(115200);
iniciar();   //función para iniciar la conexión wifi con el router de casa

}

void loop() 
{
  
delay(5000);  //PONE UN VALOR A LA BASE DE DATOS CADA CINCO SEGUNDOS
cliente();
}

//--------------------------------------------INICIO  CONEXION  CON RED WIFI------------------

void iniciar()
{

if (modotrabajo==true){Serial.println("INICIANDO CONEXION A RED");}
delay(2000);
Serial1.println("AT+RST");
// REINICIAMOS EL MDOULO Y ESPERAMOS EL OK
int a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("OK")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("REINCIADO");}  
          a=21;
          }
      }
delay(2000);
// CON EL COMANDO AT+CWJAP LE ASIGNAMOS EL USUARIO Y LA CLAVE, ESPERAMOS AL MENSAJE WIFI CONNECTED
Serial1.print("AT+CWJAP=");
Serial1.print('"');
Serial1.print(nombrewifi);
Serial1.print('"');
Serial1.print(",");
Serial1.print('"');
Serial1.print(clavewifi);
Serial1.println('"');
a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("WIFI CONNECTED")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("WIFI CONECTADA");}  
          a=21;
          }
      }
delay(4000);
//CON EL COMANDO AT+CIFSR VEMOS SI EL ROUTER NOS HA ASIGNADO UNA IP
Serial1.println("AT+CIFSR");
a=0;
while (a<20)
      {
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("OK")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("DATOS DE IP");}  
          a=21;
          }
      }
  
  
}

//----------------------------------------FIN  CONEXION  CON RED WIFI----------------------------------

//----------------------------------------INICIO  CONEXION CLIENTE CON HOSTINGER-------------
void cliente()
{
URL();//ACTUALIZAR EL DATO
if (modotrabajo==true){Serial.println("INICIANDO CONEXION CON EL SERVIDOR");}
int a=0;
Serial1.println("AT+CWMODE=1");
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("OK")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("SALGO DEL BUCLE CWMODE=1");}  
          a=21;
          }
      }  
Serial1.println("AT+CIPMUX=0");
a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("OK")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("SALGO DEL BUCLE AT+CIPMUZ=0");}  
          a=21;
          }
      } 
Serial1.println("AT+CIPSTART=\"TCP\",\"NOMBREDOMINIO.esy.es\",80");
a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("CONNECT")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("CONECTADO CON SERVIDOR");}  
          a=21;
          }
      } 


int largo;
String envio="";
envio="AT+CIPSEND=";
largo=direcion.length();
envio=envio+largo;
Serial1.println(envio);
a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf(">")>=0)
          {
          
          if (modotrabajo==true){mensajerecibido=Serial.println("ENVIANDO MENSAJE A LA URL");}
          Serial1.println(direcion);
          a=21;
          }
      } 

a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      
          if (mensajerecibido.indexOf("SEND OK")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("MENSAJE ENVIADO");}  
          a=21;
          }
      } 

//CERRAMOS LA CONEXION
Serial1.println("AT+CIPCLOSE");
a=0;
while (a<20){
      a++;
      mensajerecibido=Serial1.readString();
      delay(100);
      if (modotrabajo==true){Serial.println(mensajerecibido);}
      if (modotrabajo==true){Serial.println(a);}
          if (mensajerecibido.indexOf("CLOSE")>=0)
          {
          if (modotrabajo==true){mensajerecibido=Serial.println("CERRANDO LA CONEXION CLIENTE");}  
          a=21;
          }
      } 

}

//----------------------------------FIN CONEXION CLIENTE CON HOSTINGER---------------------------

//-------------------------------------------------------INICIO URL----------------------------------------------

// LO UTILIZAMOS PARA PODER CAMBIAR EL VALOR QUE DESEAMOS PONER EN LA BASE DE DATOS, EN ESTE CASO VAMOS AUMENTANDO LA VARIABLE VALOR UNO A UNO
void URL(){
String pepe="/ HTTP/1.1\r\nHost: www.NOMBREDOMINIO.esy.es\r\nUser-Agent: Arduino 1.0\r\n\r\n";
valor++;
direcion="";
direcion="GET /ARHIVO.php?valor=";
direcion=direcion+valor;
direcion=direcion+pepe;
if (modotrabajo==true){Serial.println(direcion);}
}

HOSTINGER:



ARCHIVO.php
<?php
 
    require("conexion.php");
    $valor = trim(mysqli_real_escape_string($con, $_GET['valor']));
    $query = "INSERT INTO temperatura(temperatura) VALUES('".$valor."')";
    mysqli_query($con, $query);
    mysqli_close($con);
    echo $dato;
?>

conexion.php
<?php
$host="mysql.hostinger.es";
$user="USUARIO";
$pw="CLAVE";
$bd="NOMBREBASEDEDATOS";
$con = mysqli_connect($host,$user,$pw,$bd);
?>



No hay comentarios:

Publicar un comentario