Cliente NTP con placa Wemos D1 para mostrar la hora en un LCD

La Wemos D1 es una placa de desarrollo similar a las de Arduino con la ventaja que en vez de usar un microcontrolador ATmega usa el módulo WiFi ESP8266 como microcontrolador y como módulo de conexión inalámbrica.

Y es que este módulo WiFi cuenta con un microcontrolador de 32bits a 80/160Mhz y 4MB de memoria flash, características técnicas muy superiores a la mayoría de Arduinos, y si a eso le sumas su bajo precio al final terminaron saliendo placas de desarrollo que no solo permiten conectarse a internet si no también que les carguemos nuestro código y nos ahorremos el Arduino.

En este caso la Wemos D1 cuenta con las siguientes conexiones:

Pin Función ESP8266 Pin
TX TXD TXD
RX RXD RXD
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull-up GPIO0
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull-down, SS GPIO15
G Ground GND
5V 5V
3V3 3.3V 3.3V
RST Reset RST

Para la mayoría de las cosas tendremos mas que suficiente, aunque eso si hay que recordar que todos los pines de entrada y salida funcionan con una tensión de 3.3V y no los 5V que se usan en la mayoría de placas de Arduino.

La placa se programa desde el propio IDE de Arduino, pero antes de ello hay que cargar el nuevo tipo de placa al IDE como se explica aquí. Después de eso podremos programarla como con un Arduino, por ejemplo el siguiente código ejecuta un blick:

Y este otro, que es para lo que he creado esta entrada, permite visualizar en una pantalla LCD I2C la fecha y hora sacada previamente de Internet, en mi caso no un servidor NTP si no un fichero PHP que devuelve esa información de forma limpia y lista para leer desde Arduino.

wemosd1_ntp

El código refresca los datos cada 5 segundos, he probado ha disminuir el tiempo a 1 segundo pero lo mas que permite es 2 segundos ya que por tareas o por el tiempo que le cuesta recuperar los datos no es capaz de hacerlo mas rápido.

En realidad seria mas útil que la propia placa contara con un reloj como el DS1307 o DS3231 y que se pusiese en hora al encender la placa.

2 comentarios en “Cliente NTP con placa Wemos D1 para mostrar la hora en un LCD”

  1. Buenas tardes, Alberto.
    Quiero conectar un Arduino pro micro con una WEMOS D1 mini, por el puerto serie de cada uno. Uno es de 5V y el otro de 3.3V. ¿Puedo conectarlos directamente o necesito un conversor de tensiones?
    Muchisimas gracias

    1. Hola Alberto,

      No puedes conectarlo directamente, podrías quemar el ESP8266, necesitas un conversor de tensiones como bien dices o un divisor de tensión con unas resistencias.

      Saludos.

Escriba aquí su comentario