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

 



11 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

Leave a Reply