La placa Wemos D1 WiFi, con su formato compatible con el Arduino UNO se presenta como una excelente opción para iniciarse en el mundo del Internet de las cosas. Veremos en este artículo sus principales características y que necesitamos para utilizarla en nuestros proyectos.
Aunque ya tiene algunos años en el mercado, la placa Wemos D1 tiene características sumamente interesantes para aquellos que quieren comenzar a experimentar en el campo del Internet de las cosas (IoT), ya que tiene el mismo formato que un Arduino UNO, lo que permite hacer conexiones con facilidad y utilizar algunas placas shield compatibles. Predecesora de la D1 mini, esta placa puede encontrarse en dos versiones, la revisión 1 (D1 R1) y la revisión 2 (D1 R2).
Hay varias diferencias entre ambos modelos. Una es el módulo ESP8266 utilizado. Mientras que la R1 (original) incluye un módulo ESP-12B o ESP-12E, la R2 viene con el mas moderno ESP-12F. Aclaro que esta diferencia se aplica a los modelos originales de Wemos, ya que hay algunos clones de la R1 con el módulo ESP-12F (Wemos ha discontinuado la producción de los dos modelos, así que en la actualidad solo pueden encontrarse placas de otros fabricantes). Otra diferencia importante es la distribución de los pines digitales, que cambia de una placa a otra, como veremos mas abajo. Por último, una pequeña diferencia en la R2 es la presencia de un conector de 8 pines (2×4) con señales de datos y alimentación. Por el resto, los dos modelos tienen las mismas características y funciones.
Características
- Microcontrolador: ESP8266 de 32 bits
- Velocidad: 80 MHz / 160 MHz
- Memoria Flash: 4 MB
- Tensión de funcionamiento: 3.3V
- Tensión de alimentación: 7 a 12 VDC
- Entradas/salidas digitales: 11
- Entradas analógicas: 1
- Chip USB: CH340G
- Comunicaciones: I2C, SPI, Serie
- WiFi: 802.11 b/g/n
Entradas/salidas digitales
Las placas cuentan con 11 pines digitales que pueden programarse como entradas o salidas. Todos pueden ser pines de interrupción y pueden ser usados como salidas PWM o para los protocolos I2C y one-wire, a excepción del pin D0.
Los pines funcionan con 3,3V, así que debe tenerse especial cuidado, sobre todo si los usamos como entradas (aunque la documentación oficial del fabricante deja lugar a dudas, numerosas pruebas realizadas por la comunidad indican que las entradas si tolerarían 5V).
En la D1 R1 las entradas/salidas digitales están numeradas desde D0 hasta D15, pero en realidad desde D11 hasta D15 están unidas a otros pines ya existentes.
En la D1 R2 las entradas/salidas digitales están numeradas desde D0 hasta D8 y algunas están duplicadas, tanto en los conectores del lado derecho como el izquierdo (de la imagen anterior).
Cuando se programa cualquiera de las dos placas desde el IDE de Arduino, los pines digitales deben referenciarse por los símbolos Dx (D3, D4, etc). Si se usa sólo el número (3, 4, etc) en realidad se estará referenciando el pin GPIO correspondiente del ESP8266. Por ejemplo:
digitalWrite (D5, HIGH); //Activa la salida marcada como “D5” en la placa
digitalWrite (5, HIGH); //Activa GPIO5
Entrada analógica
La D1 (en sus dos versiones) dispone de solo una entrada analógica (A0), con una tensión máxima de 3,3V. Aunque la entrada analógica del ESP8266 soporta sólo 1V, la placa tiene un divisor resistivo que divide el valor de tensión en el pin A0 por 3,2
Alimentación
Aunque el ESP8266EX funciona con 3,3V, la placa puede ser alimentada a través del Jack de alimentación con una tensión entre 7 y 12 Volts, que luego es regulada a 3,3V. También podemos alimentarla a través del conector micro USB o del pin Vin.
Programación
Existe una variedad de herramientas de programación para estas placas, como el ESPlorer IDE, que permite programarlas en Lua y Python, o el IDE de Arduino, configurado según las instrucciones detalladas en este artículo, si queremos programar en C/C++.
Conclusión
Si bien estas placas no son las mas recientes en el mercado, su bajo costo, sencillez de uso y la posibilidad de utilizar algunos shield del Arduino UNO las hacen una buena elección para iniciarse en el desarrollo con el ESP8266.
Más info
Hola, buenas noches. ¿Sabes si este módulo puedo conectarle un shield de arduino uno?, estuve viendo y los pines no coinciden, ¿re-cablearlos podria ser una opción?.
Hola Mario, si en principio se puede porque tiene la misma disposición de pines. Sin embargo hay que tener cuidado. Por ejemplo, la entrada del ADC del ESP soporta sólo 1V y el Arduino 5V, así que un shield que introduzca 5V en el ESP puede dañarlo. Fijate en este artículo en el que uso precisamente un shield con ese inconveniente y muestro como resolverlo. https://www.profetolocka.com.ar/2021/07/05/micropython-usando-el-lcd-y-keypad-shield-en-la-wemos-d1/