El ESP8266

En ocasiones, es necesario para nuestros proyectos, conectar a internet o a una red para mandar o recibir datos desde o hacia un arduino. Normalmente se utilizaría un Shield preparado para ello; pero estos pueden ser muy caros y ocupar bastante espacio. Hasta que llegó el ESP8266; en principio es un chip que nos provee a través de un protocolo por comandos AT, la manera de conectarnos por Wifi usando un puerto serie.
Sin embargo, el ESP8266, va más allá. Este chip tiene bastante potencia y nos permite directamente programar en él como si de un arduino se tratara. Utiliza Wifi 802.11 g/b/n por lo que permite conectarse con alta velocidad. Además contiene un procesador que puede tener hasta 160Mhz de velocidad (comparado con los 16Mhz de un arduino Uno); y tiene 64Kb de memoria de programa y 96KB de memoria de datos. Podemos programar en él con LUA, Arduino e incluso Python.

En este artículo veremos como utilizarlo para programarlo con Arduino. Viendo como vamos a programarlo y como montar un pequeño ejemplo. En primer lugar, vamos a ver que tipo de chip compraremos ya que hay de distintos tipos y con distintos Pines. Para este artículo, vamos a utilizar la versión más reducida. Que podemos comprar por poco más de un par de euros. Os dejamos dos enlaces por si queréis comprarlos.

Como podemos ver por poco menos de 3 euros podemos tener Wifi en nuestro arduino. Una vez tenemos nuestro ESP8266, vamos a pasar a programarlo. Pero antes tenemos que configurar nuestro entorno Arduino para poder cargar programas en ellos. Por lo que instalaremos las configuraciones en nuestro IDE Arduino.

Para ello, necesitaremos la siguiente dirección:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Tras copiar la dirección, vamos a añadirlo a nuestro gestor de tarjetas.  Por lo que añadiremos la URL a nuestras preferencias.

Y aquí abriremos el gestor de targetas del menú Herramientas->placa->Gestor de tarjetas…

En el gestor de tarjetas buscaremos la configuración del ESP8266; para que podamos tener toda la configuración. Una vez seleccionado, lo instalaremos y esperaremos que termine su instalación.

Una vez instalado, ya podemos pasar a programar nuestro ESP8266, si tenéis la version anterior, necesitaréis un FTDI para convertir de USB a puerto serie para programar el ESP. Aquí os dejamos un enlace por si necesitáis comprar uno. NOTA: Aquí recomendamos uno de 3,3V pero podéis comprar uno de 5V y usar un regulador que veremos más adelante.

Con el FTDI podremos programar el ES8266 pero necesitaremos los siguientes materiales adicionales:

  • 2 Botones
  • 1 Regulador LV117(de 5v a 3.3); no es necesario si nuestro FTDI es de 3.3V.
  • Cables.
  • 1 BreadBoard




Con los materiales ya listos vamos a realizar el siguiente montaje.

Podemos ver que en el esquema anterior usamos un regulador de voltaje ya que el ESP8266, trabaja con 3.3V(es importante). Vemos que hay dos botones. El primero(Izquierda), sirve para resetear el ESP8266 y el segundo al ser pulsado con el primero, inicia el ESP8266 en modo flash; es decir, que permitirá que se programe el chip. Con esto listo, ya podemos empezar a programar un ejemplo para por ejemplo, activar un led a través de la wifi.

Aquí dejamos una fotografía donde podemos ver los pines del ESP8266.

Primero vamos a escribir el programa.

#include 
 
const char* ssid = "SSID";
const char* password = "Password";
 
int ledPin = 2; 
WiFiServer server(80);//Service Port
 
void setup() {
  Serial.begin(115200);
  delay(10);
 
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
  // Start the server
  server.begin();
  Serial.println("Server started");
 
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");
}
 
void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
 
  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  // Match the request
 
  int value = LOW;
  if (request.indexOf("/LED=ON") != -1) {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  } 
  if (request.indexOf("/LED=OFF") != -1){
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
 
 
 
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("");
  client.println("");
 
  client.print("Led pin is now: ");
 
  if(value == HIGH) {
    client.print("On");  
  } else {
    client.print("Off");
  }
  client.println("");
  client.println("Click here turn the LED on pin 2 ON");
  client.println("Click here turn the LED on pin 2 OFF
");
  client.println("");
 
  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");
}

El programa primero se conectará a nuestra WiFi; de manera que escribe el SSID y password de ella cuando vayas a programarlo o no funcionara. Una vez ha conectado, iniciará un servidor en el puerto 80(servidor http); y esperará a que un cliente se conecte. Cuando un cliente se conecta, encenderá o apagará el led conectado al GPIO2. Además mostrará en nuestro navegador una página web informandonos.

Ahora pasaremos a programar el ESP8266 usando el montaje anterior; por lo que conectaremos el FTDI al USB y subiremos el programa pulsando primero el botón de reset y después el de Flash y tras esto, soltaremos el botón de reset. Veremos como parpadea el led del ESP8266. Al final nuestro ESP8266 estará listo para ser utilizado. Por lo que para ello necesitaremos los siguientes manteriales.

  • 1 led
  • 1 Resitencia 220 Ohmios.
  • 1 BreadBoard
  • 1 ESP8266
  • 1 LM117(regulador a 3.3V).

Con los materiales, realizaremos el siguiente montaje.

Como podemos ver en el montaje anterior, conectamos el Led con su resistencia al GPIO2; el cual al conectarnos al ESP8266 por su dirección IP, se encenderá o se apagará. De esta forma ya tenemos nuestro desarrollo de arduino conectado a internet y podemos usarlo para recibir o mandar información a través de una red. Esto es importante para el llamado internet de las cosas; muchos de nuestros usuarios nos han pedido como utilizar el ESP8266 para mandar información a través de una Wifi. Este tutorial lo haremos en próximas entregas de BooleanBite.

Esperemos que la vuelta de BooleanBite este siendo de vuestro agrado y agradecemos los comentarios de nuestros usuarios. Además próximamente dejaremos un tutorial de como utilizar el ESP8266 para que sea programado usando MicroPython.

Be the first to comment on "El ESP8266"

Deja un comentario.

Tu dirección de correo no será publicada.


*


*