Select Page

Descripción

De todos los productos hoy en dia en mercado pensados para IOT, este es sin dudas el mejor. En orden de importancia vamos a empezar a hablar de su precio, que es lo que lo hizo tan popular, por unos 200pesos argentinos le podemos dar comunicacion wifi a cualquier microcontrolador. Cabe mencionar que el Esp8266 ya es un micro en si con 16 pines GPIO pero de esto vamos a hablar mas adelante. Otra caracteristica en la teoria es su bajo consumo de energia, en modo sleep estamos hablando de uA. Digo en teoria, porque para iniciar, el modulo llega a consumir unos 200mA y mas tambien, corriente que el arduino no puede brindarle, y esto puede convertirse en un problema, aunque solucionable de momento con una fuente para proto

Este modulo  incluye todo lo necesario para conectarse a un punto de acceso WIFI mediante comandos de texto AT, vía una puerta serie, que puede ser configurada a diferentes velocidades. Una vez que lo programamos para conectarse a nuestra red WIFI, el modulo es capaz de enviar información que le remitimos vía la puerta serie a una dirección  IP y puerto que deseemos. Cuando se trata de recibir, limpia todo el empaquetado TCPIP y nos reenvía por la puerta serie la información de datos limpia de polvo y paja, con lo que tiene la enorme virtud de permitirnos olvidarnos de la gestión del TCPIP y de las demandas de procesador y memoria que suponen. A cambio no es exactamente una conexión WIFI, porque no tenemos acceso al stack o al socket IP pero para el Arduino esto es casi una ventaja.

Con una experiencia bastante mas avanzada, mas que nada en programacion se puede hacer uso del micrcontrolador que tiene integrado este poderoso modulo, el cual posee 16 GPIO (General Purpose Input Output), los cuales se pueden configurar como entradas o salidas, al igual que con Arduino, como interrupciones para sacar al modulo de modo sleep, y hasta posee un ADC. Los 16 pines, son en total los que posee este microcontrolador, por lo tanto por mas que podemos darles las funciones antes mencionadas, en algunos de ellos tambien se encuentran la comunicacions SPI, UART, entre otras funciones. Para mas info chequear el Datasheet.

WiFi Serial Transceiver Module

Caracteristicas Técnicas

  • Protocolos soportados: 802.11 b/g/n
  • Wi-Fi Direct (P2p), Soft Access Point
  • Stack TCP/IP integrado
  • PLL, reguladores y unidades de manejo de energía integrados
  • Potencia de salida: +19.5dBm en modo 802.11b
  • Sensor de temperatura integrado
  • Consumo en modo de baja energía: <10 uA
  • Procesador integrado de 32 bits, puede ser utilizado como procesador de aplicaciones
  • Wi-Fi 2.4 GHz, soporta WPA/WPA2
  • Tamaño ultra reducido (11.5mm x 11.5mm)
  • Conversor analogico a digital de 10-bit
  • Soporta variedad de antenas
  • Integrated low power 32-bit MCU
  • SDIO 2.0, SPI, UART, I2C
  • Encendido y transmicion de datos en menos de 2ms
  • Rango de operacion -40C° ~ 125C°

Consumo:

Mode Min Typ Max Unit
Transmit 802.11b, CCK 1Mbps, POUT=+19.5dBm 215 mA
Transmit 802.11b, CCK 11Mbps, POUT=+18.5dBm 197 mA
Transmit 802.11g, OFDM 54Mbps, POUT =+16dBm 145 mA
Transmit 802.11n, MCS7, POUT=+14dBm 135 mA
Receive 802.11b, packet length=1024 byte, -80dBm 60 mA
Receive 802.11g, packet length=1024 byte, -70dBm 60 mA
Receive 802.11n, packet length=1024 byte, -65dBm 62 mA
Standby 0.9 mA
Deep sleep 10 uA
Power save mode DTIM 1 1.2 mA
Power save mode DTIM 3 0.86 mA
Total shutdown 0.5 uA

Conexionado

Es importante mencionar que en nuestra experiecia con este modulo, no pudimos hacerlo funcionar sin la fuente para proto, ya que en el momento en que se enciende puede llegar a tener picos de consumo de mas de 200mA, corriente que el Arduino no puede entregar.

El modulo se alimenta ESTRICTAMENTE con 3.3v, los pines de señal soportan tensiones de 5v, por lo que no es necesario colocar resistencias. En varios foros colocan las mismas pero nosotros sacamos el modulo funcionando sin estas.

Como ultimo dato de importancia, como muestra el circuito debemos compartir la tierra de nuestro arduino, con la del resto del circuito.

esp8266-pinout-800x379

Sesion-75_bb

Productos Necesarios para la Utilización

Arduino Uno

Fuente para Proto

Código de Programacion (Archivo .txt)

El codigo mas abajo mostrado sera utilizado exclusivamente para la configuracion del modulo.

#include <SoftwareSerial.h>

SoftwareSerial mySerial(3, 2); // RX, TX

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
mySerial.begin(9600);
}

void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}

Not all pins on the Mega and Mega 2560 support change interrupts,
so only the following can be used for RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69

Not all pins on the Leonardo support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).

Luego tenemos que abrir el monitor serie y chequear que lo tengamos configurado de la siguiente manera:

I_1

Como ultimo paso desconectamos la alimentacion del modulo, volvemos a conectarla y nos tiene que aparecer algo como esto:

I_2

Si asi es, es porque hemos realizado todo correctamente y el modulo esta listo para ser configurado e utilizado. Si no aparece nada por el puerto serie repetir algunas veces el paso de desconectar y volver a conectar la alimentacion del modulo. Luego chequear que este correctamente armado el circuito segun el esquema de mas arriba. Si de todas maneras el modulo sigue sin funcionar el 80% de las probabilidades es que la fuente que lo este alimentando no tenga la corriente necesaria, en el caso de estar usando una fuente para proto, desconectar uno de los canales quitando el jumper y dejar unicamente el que utiliza el modulo. Si sigue sin funcionar les recomiendo conseguir una fuente de 3.3v y por lo menos 500mA.

Si ya estan leyendo este parrafo quiere dcir que hasta aca ha funcionado todo correctamente. Pueden ver haciendo click aca el listado de comandos AT para poder conectarse a una red wifi y enviar comandos al arduino desde un navegador web. Muy pronto estaremos subiendo un tutorial para esto, pero hasta entonces les recomendamos este: Tutorial.

Links

Datasheet

Listado de comandos AT

Proyectos

Servidor Web con Arduino y Esp8266

Tutorial para usar el Esp8266 como microcontrolador independientemente del Arduino