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:



#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);
}
}


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:

void setup()
{ Serial.begin(9600);
BT1.begin(9600);
}

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.

#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);

 

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

 



13 Comments

  1. arturo julio 19, 2016
  2. arturo julio 19, 2016
    • Hector Torres julio 20, 2016
      • arturo julio 22, 2016
  3. arturo julio 22, 2016
  4. Mauricio marzo 15, 2017
    • Saul Jesus marzo 16, 2017
  5. victor hugo marzo 17, 2017
    • Saul Jesus marzo 23, 2017
  6. fernando mayo 22, 2017
  7. Emanuel mayo 14, 2018

Escríbenos tus dudas o comentarios

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Usamos Cookies en nuestro sitio WEB

Por favor confirma, si aceptas nuestras cookies de rastreo. También puedes negar el uso de cookies de rastreo y seguir navegando sin que ninguna información sea enviada a servicios de terceros.