This is a simple clock + calendar + thermometer made using an ESP8266 NodeMCU and 8 dotmatrix led display. It have the possibility to publish temperature and humidity value over MQTT. I published the whole project on Hackster.
- EasyNTPClient by Harsha Alva
- TimeLib by Paul Stoffregen
- MD_Parola by Majic Designs
- MD_MAX72xx by Majic Designs
- Adafruit Unified Sensor Driver
- Adafruit DHT library
- (optional if you want to use MQTT) https://github.com/knolleary/pubsubclient by Nick O' Leary
Amazon links are affiliated links:
- 32x8 Dot Matrix Displays driven by MAX7219 (you need 2 of them)
- NodeMCU ESP8266
- DHT22
Attach together 2 4x32 dot matrix displays: every display has a 5 pin-male header on the right side marked as DIN and 5 pads on the left side marked as DOUT:
The free male header will be connected to the NodeMCU. Here is a simplified schematic:
Display -> NodeMCU connections:
- CLK -> D5
- CS -> D8
- DIN -> D7
- GND -> GND
- VCC - > VU (o VV o VUSB)
DHT22 -> NodeMCU connections:
- PIN 1 (VCC) -> 3V3
- PIN 2 (Data) -> D2
- PIN 3 (NC) : not connected
- PIN 4 (GND) : GND
Having DHT22 in front of you, pin 1 is on the left. Some DHT22, like the one I linked before, are shipped soldered on an adapter board having only 3 pins: follow the markings on the PCB
NodeMCU will be powered from USB port
Edit the file secret.h by writing your Wi-Fi SSID and Password: exact time will be taken from an NTP server. In case time can't be updated:
- try to turn off and on the router
- try to use a static IP
Edit yadm_clock.ino by commenting the row #define MQTT if you don't want to use an MQTT broker. If you want to use the MQTT broker for publishing data from the DHT22 sensor, then edit also the row const char* mqtt_topic="garage"; by writing your own Topic. If you, for example, use the topic garage, you'll have the umidity value on garage/humidity and the temperature value on garage/temperature.
Here is a video showing how YADM Clock works:
DotMatrixClock_header.jpg)

DotMatrixClock_schematic.png)
