ESP8266 y Arduino con sensor LM35 y servidor Web

 Monitoreo de sensor LM35 y servidor web con modulo ESP8266 y Arduino

En este tutorial aprenderemos como usar y conectar el módulo ESP8266 con Arduino, y un sensor de temperatura LM35 creando  una página web para visualizar los datos que nos manda el Arduino así quedaría al terminar:

lm35 pagina

Lo que necesitaremos es:

Un módulo WI-FI ESP8266.

Un Arduino UNO.

Un sensor de temperatura L.M.35.

Lo primero es saber reconocer los pines de nuestro módulo ESP8266.

Aquí se observa una imagen:

ESP8266

Después de conocer un poco nuestro modulo lo siguiente es conectarlo al Arduino:

-El pin “URXD” este conectado al pin 2 de Arduino.

-El pin “UTXD” este conectado al pin 3 de Arduino.

-El pin “VCC” y “CH_PD” esten conectados  al pin “3.3v” de Arduino (no es recomendable conectarlo a “5v” por qué podrían dañarse).

-El pin “GND” este conectado al pin “GND” de Arduino.

CONECTANDO LM35

Después conectamos nuestro sensor a nuestro Arduino de esta manera:

– pin 1 lo conectamos al pin “5v” de Arduino.

-pin 2 lo conectamos al pin “a0″ de Arduino.

-pin 3 lo conectamos al pin “GND” de Arduino.

lm35 img

aquí se observa una imagen de las conexiones:

lm35

Después de realizar las respectivas conexiones, pasamos a nuestro PC y abrimos un nuevo sketch de arduino, ahora copeamos y pegamos este código al programa de arduino:




[code language=»cpp»]
#include
SoftwareSerial BT1(3, 2); // RX | TX
char txt;
void setup()
{ Serial.begin(9600);
BT1.begin(115200);
}
void loop()
{if (Serial.available())
{txt = Serial.read();
BT1.print(txt);
}
if (BT1.available())
{txt = BT1.read();
Serial.print(txt);
}
}
[/code]


config_ESP8266.

Después de pasar el código, conectamos y lo cargamos al arduino, luego abrimos el monitor serial y nos aseguramos que en la parte de abajo diga “Ambos NL & CR” y en los baudios”9600 baudios” hecho esto ahora cortamos y volvemos a conectar  la alimentación del módulo WI-FI para reiniciarlo y después de unos momentos veremos algo como esto y un poco más abajo la palabra “ready”:

ready

Si no apareciera volver a reiniciar el modulo . Si no se entendiera el mensaje verificar que los baudios del módulo ESP8266 sea “115200 baud” y si no bajar los baudios hasta ver algo legible.

CONFIGURANDO EL ESP8266

ahora cambiamos la configuración del modulo con el siguiente comando.

“AT+CIOBAUD=9600"

BAUD

Después de hacer esto volver a cambiar los baudios de 115200   a  9600   en el codigo para estabilizar la comunicación con Arduino por que podría llegar a tener errores en la comunicación.

Cambiamos esta parte:

[code language=»cpp»]
void setup()
{ Serial.begin(9600);
BT1.begin(9600);
}
[/code]

Después comenzamos a configurar el modulo,  ingresamos  en el monitor serial la palabra “AT”.

Y recibiríamos un “OK”:

AT

Después probamos este comando para ver en qué modo está configurado el modulo, nos respondería con un “+CWMODE: 3”  y si no aparece el modo 3  utilizamos el comando AT “AT+CWMODE=3” :

MODE

CONECTANDO A UNA RED

Después pasamos a revisar nuestras redes WI-FI mediante el comando “AT+CWLAP” y nos mostraría algo como esto:

CWLAP

Ahora nos conectaremos a una red, en mi caso será “FAMILIA TORRES” y claro con su contraseña.

Mediante este comando  AT+CWJAP=”FAMILIA TORRES”,”torres150”.

Después nos respondería con algo como esto:

CWJAP

Después vemos que dirección “IP”  se nos asignó con el comando AT+CIFSR.

Y nuestra dirección será la segunda en aparecer  (la dirección puede variar):

CIFSR

Tenemos que recordar esta IP  o  anotarla porque es la que ingresamos  en  nuestro navegador.



Ahora tenemos que habilitar las conexiones múltiples y habilitar un servidor momentáneo.

Mediante los comandos «AT+CIPMUX=1» y este otro «AT+CIPSERVER=1,80»:

MUX

Después ingresamos la dirección  IP del módulo en nuestro navegador:

IP

Ahora probaremos escribiendo un “/” después de la IP  luego escriban lo que gusten y en el monitor serial aparecerá lo que escribieron en su navegador:

IP SERIAL

Ahora descargamos este condigo que aparece a continuacion este código en su arduino (sin desconectar el módulo wifi y recordando la IP  sino tendrían que volver a configurar su módulo otra vez).

PROGRAMA EN ARDUINO

LM35_ESP8266

En el código esta agregado un poco de código html lo cual explicare un poco para que saber que hace cada línea en el código.

[code language=»cpp»]
#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX
int n1;
float temp;
void setup()
{Serial.begin(9600);
BT1.begin(9600);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
}
void loop()
{ while (BT1.available() >0 )
{char c = BT1.read();
if (c == 71)
{Serial.println("peticion web enviada");
delay(500);
servidor();
}
}
}
void escribir(String text)
{BT1.print("AT+CIPSEND=0,");
BT1.println(text.length());
if (BT1.find(">")) // Si se recibe el mensaje
{Serial.println(text);
BT1.println(text); //mandamos el mensaje por el wifi
delay(10);
while ( BT1.available() > 0 )
{if ( BT1.find("SEND OK") ) //buscamos "ok" y luego salimos
break;
}
}
}
void servidor(void)
{ escribir("<!DOCTYPE HTML>");
escribir("<html>"); //una pagina web necesita esto <HTML> y </HTML> es el inicio y fin del documento
escribir("<head><title>lm35 arduino esp8266 html</title>"); //nombre de la pestaña que llevara la pagina
escribir("<meta http-equiv=\"refresh\" content=\"5\"></head>"); //tiempo para refrescar la pagina web
escribir("<body><h1> <FONT SIZE=\"5\" COLOR=\"red\"> ejemplos </h1>"); //titulo del inicio de la pagina
escribir(" <BODY BGCOLOR=\"black\"> ");
temp = (5.0 * analogRead(0) * 100.0) / 1024;
escribir("<FONT FACE=\"Arial\" SIZE=\"5\" COLOR=\"blue\"> la temperatura es </FONT>"); //escribimos y cambiamos el tamaño, letra y color
escribir(String(temp)); //imprimimos la variable
escribir(" grados <br /><br />");
escribir("<DIV align=\"center\"><A HREF=\"http://www.hetpro.com\" target=\"_blank\">hetpro.com</a><BR></DIV>");
delay(1);
BT1.println("AT+CIPCLOSE=0");
//delay(500);
[/code]

 

Después de cargar el código en el Arduino abrimos en monitor serial e ingresamos la dirección IP y tendríamos una página como esta:

lm35 pagina

 



14 comentarios en «ESP8266 y Arduino con sensor LM35 y servidor Web»

  1. BUEN APORTE , UNA PREGUNTA TENDRAS EL FIRMWARE PARA CONFIGURAR EL ESP8266 . CON EL QUE TENGO NO RECONOCE EL PROCESO DEL LOS COMANDOS AT

  2. ya realize todos los pasos al pie de la letra ya tengo datos y respuesta solo que no me aparece la pagina tal cual esta en tu imagen solo me da los grados y los partes que estan entre comillas, pro la pantalla en fondo blanco

  3. Saludos;

    Excelente trabajo.

    Este programa debe cargarse eligiendo el modulo Generic ESP8266 o se debe cargar el programa a la placa Arduino, en mi caso un arduino Nano. quedo atento.
    Gracias

  4. hola muy buen trabajo me ayudo mucho.
    quiero consultarte algo, tienes algún ejemplo de como enviar una cadena serial y visualizarlo en una pagina web?

  5. BUEN DIA, disculpa tengo un problema y es la siguiente:
    AT+CIFSR

    +CIFSR:APIP.!192.168.4.0″
    +CIFSR:APN�C,»a2:20:`6:08:58:d7″
    +CIFSR:T.Fa7
    como puedes ver no recibo bien la segunda dirección, sabrías el motivo ?

Deja una respuesta

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