COMPONENTES:
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);
?>
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