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:

PinFunciónESP8266 Pin
TXTXDTXD
RXRXDRXD
A0Analog input, max 3.3V inputA0
D0IOGPIO16
D1IO, SCLGPIO5
D2IO, SDAGPIO4
D3IO, 10k Pull-upGPIO0
D4IO, 10k Pull-up, BUILTIN_LEDGPIO2
D5IO, SCKGPIO14
D6IO, MISOGPIO12
D7IO, MOSIGPIO13
D8IO, 10k Pull-down, SSGPIO15
GGroundGND
5V5V
3V33.3V3.3V
RSTResetRST

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