bclose

WeMos D1 ESP8266 WIFI

Una placa comoda para trabajar con ESP8266

Objetivos

 

 

  • Presentar la familia WeMos D1.
  • Al menos la D1 y la D1 mini
  • Mostrar como programarlos.

 

Material requerido.

 

VIsta principal 

 

Placa WeMos D1.

 

 

Vista superior 

 

O bien, una placa WeMos D1 mini

 

La WeMos D1

 

No cabe duda de que los chips ESP8266 han sido una autentica revelación en el mercado de los WIFI sencillos y más importante aún, baratos. Cuando miro el Google Analitics para ver qué cosas son lo que más os interesan, de esta vuestra casa, las páginas relativas al ESP8266 suelen ser siempre las primeras en la lista.

Hace algo más de un año, conseguir que tu Arduinillo se conectara a la WIFI, suponía rascarte el bolsillo hasta encontrar unos 70E además de  tu Arduino.

Pero con la aparición delos ESP8266 empezaron a aparecer multitud de modelos sencillos basados en el, de modo que conseguir una conexión básica era sencillo y por poco más de 5€, lo que ha sido toda una revolución sin duda.

Pero como la felicidad nunca es completa, el fabricante chino de este chip se prodigó sacando al mercado toda una colección de modelos con diferentes pines hasta conseguir que tuviéramos una empanada mental de tamaño extra luxe.

Y no me extraña porque hacía falta dedicar un rato al tema para entender que a pesar de los infinitos módulos de montaje que nos vendían como cosas distintas, el chip era siempre el mismo y la diferencia correspondía solamente a la montura en la que se soldaba el chip base.

Las características eran espectaculares. Un  SOC (System On Chip o procesador central) de 32 bits a 160 MHz con RAM y EEPROM mas el stack WIFI completo por unos 5€ era algo que nos atraía como moscas a la miel.

Pero como cuestión de principio, uno ya ha aprendido suficientes lenguajes de programación y estructuras de micro procesadores a lo largo de mi vida, como para salir corriendo a aprender otro que aún no había demostrado que fuese a permanecer.

 
  • Muchos buenos productos son enterrados por las arenas del tiempo sin dejar más rastro que la cara de memo que se te queda después de dedicarle unos cuantos cientos de horas.
  • De esto se yo un rato, he dedicado muchas horas a cantidad de productos prometedores que se fueron al vertedero a pesar de las mejores promesas técnicas.
  • Al final es lo que se vende lo que permanece y eso raramente es lo mejor técnicamente, aunque os parezca asombroso.  

Cuando unos benefactores anónimos de la humanidad se descolgaron con un pluggin para el IDE Arduino, que permitía programar este chip como si fuera un Arduino, la marea cambió y fue el momento de embarcarse y corriendo si no querías quedarte en tierra, pero trabajar el ESP8266 no ha sido nunca fácil, por el lio de pines, placas y montajes.

Ahora para rizar el rizo, han aparecido placas basadas en el ESP8266 que además, remedan los pines de nuestro venerable y muy confortable Arduino UNO, con lo que ni siquiera tenemos que complicarnos la vida con que pin hace qué (Que es lo que a mi me gusta. Recordad que soy un vago natural)

Llevaba ya un tiempo tratando de conseguir unos cuantas  de estas placas y por fin los he recibido (Casi al mismo tiempo, que en Internet dicen que ya están obsoletas, hay que joderse) Ahora toca jugar con ellas y ver qué tal se portan y esta es la idea de esta sesión. Vamos a probarlas y ver si son lo que parecen y prometen.

 

Conociendo las WeMos D1

 

Para empezar podemos decir que esta placa está gobernada por un ESP8266 que se encarga de las tareas de procesamiento y del control de WIFI tranquilamente, todo en un único chip, que si nos leei de vez en cuando os sonará ya de sobra.

Vista de distribucion de pines

Las características principales de la placa:

 
  • 11 entradas/ salidas digitales.
  • 1 entrada analógica.
  • Conector micro USB
  • Distribución de pines tipo Arduino UNO.  
MicrocontrollerESP-8266EX
Operating Voltage3.3V
Digital I/O Pins11
Analog Input Pins1
Clock Speed80MHz/160MHz
Flash4M bytes

No quiero comparar, que siempre me dijeron que era muy feo, pero este es un procesador de potencia similar a un DUE, no a un UNO y eso a 80 MHz que si lo subimos a 160 MHz, no te digo y además incluye WIFI, por una fracción del precio.

Aparentemente no le falta nada, e incluye tanto I2C como SPI y una puerta analogica de 3.3V

PinFunctionESP-8266 Pin
D0RXGPIO3
D1TXGPIO1
D2IOGPIO16
D3 (D15)IO, SCLGPIO5
D4 (D14)IO, SDAGPIO4
D5 (D13)IO, SCKGPIO14
D6 (D12)IO, MISOGPIO12
D7 (D11)IO, MOSIGPIO13
D8IO, Pull-upGPIO0
D9IO, Pull-up, BUILTIN_LEDGPIO2
D10IO, Pull-down,SSGPIO15
A0Analog InputA0

Fíjate que esta placa dispone de capacidad PWM en todos los pines digitales ya además dispone de I2C y SPI, pero todos los pines son de 3.3V incluyendo el convertido analógico al digital.

El fabricante pone una nota diciendo que en esta tarjeta todos los pines soportan interrupciones, SPI e I2C, además de PWM excepto el pin2, lo que es un bonus espectacular.

Además esta placa soporta la programación OTA (Over The Air) es decir sin hilos directamente a través del WIFI, algo que habrá que investigar.

 

Programando la WeMos D1

 

La gran virtud esta placa es que incorpora un ESP8266 con los pines de Arduino, lo que nos resulta mucho mas sencillo de hacernos con ella, por lo familiar de todo y en principio debería correr con cualquier Shield que acepte 3.3V (Que deberían ser todos) y también compilar sin demasiados problemas las librerías existentes.

 
  • Mucho cuidado aquí. Aunque la buena gente que se ha dejado los cuernos trabajando para nosotros haciendo las librerías y el pluggin Arduino, han puesto todo su cuidado en duplicar las llamadas a las librerías estándar, no os fiéis demasiado hasta que no lo probéis cuidadosamente.
  • Al final son diferentes procesadores con diferentes directivas y poco a poco se irá puliendo todo, pero los errores en esto son inevitables y conviene no dar por supuesto que todo va a funcionar a la primera.
  • Cómprate una y empieza a probar, pero no supongas de entrada que todo funcione y luego te quejes amargamente de que te hemos engañado. No te fíes de nadie (Y mucho menos de nosotros que somos bien conocidos por frecuentar bares y lugares dudosos a deshoras)  

Para empezar el fabricante pone a nuestra disposición una buena colección de ejemplos que podéis descargar aquí , pero siguiendo la costumbre imbécil habitual, no proporciona ninguna descripción de ellos y hay que ajustarse a lo que podemos sacar leyendo los programas y aun así hay mucha información.

Hay ejemplos básicos para hacer el blinking led y fadding en LEDs (Ajustar el brillo) así como la forma de leer la puerta analógica. Incluye varios ejemplos de lo más interesantes como mover un servo y mucho más útil como implementar un Ticker o interrupción programada cada cierto tiempo para llamar a una de nuestras funciones, además del ejemplo adaptado del I2C scanner que ya vimos en su día para explorar el I2C en busca de dispositivos conectados.

También tenemos un ejemplo de cómo leer un sensor de temperatura Dallas DS18x20 y varios ejemplos de cómo usar diferentes Shield que sospecho no son los que esperáis sino unos pequeñajos que el mismo fabricante proporciona, pero que en cualquier caso nos proporcionara pistas sobre el asunto.

Lo asombroso es no proporcionan ni un joido ejemplo de cómo acceder y usar la WIFI interna. Si, ya sabemos que se supone que el Shield y el ESP8266 es 100% compatibilice con los ejemplos oficiales del WIFI Shield Arduino.

 

Pero uno echa de menos que hubieran colocado aquí unos cuantos ejemplos probados y que pudiéramos revisar para aprender.

Vamos a empezar programando algo rápido como un blinking LED para variar ya acostumbrarnos a la placa.

Tenemos que empezar instalado el pluggin IDE para el ESP8266 (los que no lo hayáis instalado aun), y podéis hacerlo leyendo la sesión que dedicamos al asunto aquí.

Además estas placas utilizan, como no, el chip CHG340 por lo que si aún no habéis instalado el driver correspondiente podéis hacerlo descargándolo de aquí ch341ser_win (Ya estáis tardando, porque os lo vais a encontrar en todos los sitios)

  • Los amigos de Apple podéis encontrar aquí el driver correspondiente. Los de Linux no lo necesitais porque suelev venir de fábrica.

Y ahora conectad vuestro flamante WeMos D1 a un USB y seleccionad la placa correspondiente:

Arduino IDE
 
  • Os fijareis que ahora marca la D1 R1 como retirada porque la nueva R2  que acaba de salir, es lo mismo pero incluye además, con una modificación para que junto con Arduino se le pueda cargar NodeMCU (Que es otro lenguaje similar a Arduino pero pensado para la Web)
  • También aparece las WeMos D1 mini de la que hablaremos enseguida..  

Seleccionad ahora el puerto serie en el que se os haya instalado la placa y así como sin querer, fijaros que podemos variar la velocidad de la CPU y si es preciso mejorarla.

Wemos D1

Vamos a volcar un Blinking LED como este para hacer boca:

void setup()
   {  pinMode(BUILTIN_LED, OUTPUT); // Onboard LED
      Serial.begin(9600);
   }

void loop()
   { digitalWrite(BUILTIN_LED, HIGH);  // turn on LED with voltage HIGH
     delay(1000);                      // wait one second
     digitalWrite(BUILTIN_LED, LOW);   // turn off LED with voltage LOW
     delay(1000);                      // wait one second
     Serial.println(BUILTIN_LED);
   }

Enseguida veréis parpadear la luz interna, que como curiosidad no está conectado al pin 13 sino al pin 2.

 

WeMos D1 mini

 

Hay una variante de esta misma placa con muchos menos pines pero las mismas posibilidades y de mucho menor tamaño ideal para pequeños proyectos que requieran poco tamaño y WIFI, que se llama WeMos D1 mini.

Vista superior
Vista inferior

Es una placa bastante minúscula (Tened en cuenta que el cable de la foto es un micro USB )y con muy buena pinta que está pidiendo a gritos usarla en algo para hacer pruebas con sensores y enviando datos a través de WIFI. Aquí os dejo el pinout:

pin out

Son al final una buena solución para usar los ESP8266 de una manera cómoda y bien empaquetada que nos evite los dolores de cabeza habituales de que pines hay que colocar o dejar. La placa viene completa y lista para usar directamente desde le IDE Arduino sin más historias, lo que resulta una novedad de lo mas bienvenida y casi apetece decir eso tan castellano de “Dios mio. Por fin

Aunque seguro que habrá cosas que fallarán, son unas placas de lo más curiosas y recomendables si queréis pelearos con los WIFI baratos y los ESP8266, os recomiendo que empecéis por aquí y os olvidéis inicialmente de ESP01 y demás. Ya tendréis tiempo de usar chips cuando estáis diseñando una placa integrada.

Al final estas placas pueden ser una muy buena solución para enredar con los ESP8266 y las WIFI de un modo sencillo y sin problemas de pines raros y puñetas similares.

Aun no las he probado suficiente y desde luego me he encontrado varios shield de pantallas TFT que no funcionan porque necesitan los pines A4 y A5 y otros como el Shield keypad que necesita alimentacion a 5V y sencillamente no parece ir, pero para conectar sensores y cosas asi deberia funcionar bastante bien si podemos aceptar que es de 3.3V

 

Resumen de la sesión

 

 

    • Presentamos las nuevas placs WeMos basadas en los chips WIFI ESP8266.
    • Presentamos los modelos D1 y el D1 mini.
    • Vimos que podemos progranmarlo directamente desde el IDE Arduino sin mas que instalar el pluggin IDE
    • VImos com programar el mas sencillo ejemplo de blinking LED. 

 

 

(5) Comments

  • vale, ignoren el post anterior, no m habia dado cuenta q la nomenclatura de los pines cambiaba en el wemos, si conecto algo en el pin 8, seria D8 , disculpen las molestias xd

  • buenas, no m canso de felicitarte por estos tutoriales, tengo un problema con una wemos d1, ya digiste en este post q posiblemente algunas cosas no funcionarian, pues bien, llevo toda la mañana intentado poner un sersor de temparatura, he probado varios: dht 11, dht22, e incluso un lm35 dz, todos m dan el mismo error:
    wdt reset
    load 0x4010f000, len 1384, room 16
    tail 8
    chksum 0x2d
    csum 0x2d
    … y sigue
    he probado antes los circuitos con un arduno normal y funcionaban bien, a ver si alguien puede aconsejarme, gracias

  • Para la conexión Wifi y el servidor web, a mi me sirvió esta pagina http://www.esp8266learning.com/wemos-webserver-example.php

    • Tamairon

    Auténtico. Me sirvió de mucha ayuda para empezar. Animo a que sigamos entre todos probando cosas.

    Saludos.

  • Gracias por estos excelentes tutoriales y muy bien explicados, excelente aporte. Saludos.

Give a Reply

WordPress Anti-Spam by WP-SpamShield