Public projects 2

LED Matrix NTP Clock with DS3231, BME280, BH1750 & ESP01

Project tutorial by Ratti3

  • 31 respects

4-Digit 7-Segment Counter with LiPo Backup

Project showcase by Ratti3

  • 10 respects

Toolbox 2

Respected projects 2

Gixie Clock

Project showcase by xingda

  • 139 respects

Set DS3231 by GPS

Project tutorial by glennedi

  • 27 respects

  • LED Matrix NTP Clock with DS3231, BME280, BH1750 & ESP01 12 months ago

    Hi, Sorry don't get notifications from this site for some reason, I've been busy working on a Nano 33 IoT Nixie Clock. I moved away from ESP01 as it was awkward to work with (as you have discovered).

    You say it printed out the SSID, is that because you enabled these lines on the ESP code?

      //Uncomment to troubleshoot SSID and Password

    If so it means the ESP and Arduino are talking, I'm not sure where "ERROR" comes from, as I can't see that in my code.
    If the output is garbled then it could be noise, I only sometimes get garbled print on just the first line.

    Do you see the ESP connecting to your router.
    Does sound like a comms issue.

    I can't remember now, but I believe my ESP01 code was based on a sample code I found somewhere, see if you can find some code that can get the 2 devices talking to each other (without my code).

    I'm not sure about ESP8266, it probably will work, the same way Arduino code works on multiple devices, I've only tried the ESP01. I now only use Genuine Arduino's and don't bother with clones.

    Once my Nixie clock is complete (about 1 week), I'll actually be working on a new version of this clock, most of it designed from scratch, custom PCBs, no ESP01 and it will have a WebUI. I've learnt a lot since this original code, I now code in quite a differnt way (code all refactored to behave like libraries).
    Have a look here if you're interested, it's the Nixie code (older version):

  • LED Matrix NTP Clock with DS3231, BME280, BH1750 & ESP01 about 1 year ago

    I assume you are using: LEDClock32x8_ESP01-NTP.ino

    The "NTP" is sent to the ESP to "wake/trigger" it. This is part of the code on the Arduino that triggers it:

    //function for setting NTP time via ESP01
    void ntp() {

    char buffer[80];
    char unixString[10];
    bool timeSync = 0;
    byte wait = 0;

    //trigger ESP01 via software serial to receive NTP time

    and on the ESP side (ESP-01_NTP.ino) it looks for NTP one letter at a time:

    void loop() {

    // Read the software serial and look for NTP string received from the Arduino
    // The number after
    if (readline(, buffer, 80) > 0) {
    if (buffer[0] == 'N' && buffer[1] == 'T' && buffer[2] == 'P') {

    You need to test the ESP by uploading a different sketch and see if it is working as expected.
    The only way to troubleshoot is using Serial Monitor, also this code will not work with IDE 2.x, it should work with 1.8.13.

    For the light sensor you would need to use more serial prints in other places to find out where it gets stuck, work your way down the code, follow the calls to routines etc.

    It could by anything causing issues, for example, faulty BME/Light sensors, also not having a sensor connected may cause the code to stop working. I've not tested the code for all sorts of scenarios. This was my first time coding and the code is a mess.

    I've made several of these and each one works, the key is Serial Print to find where the code stops/or does not get to when you expect it.

    I will be making a new of this using a Nano 33 IoT, code will be more efficient and better error handling.
    I'm currently working in a WiFi enabled Nixie clock, almost done.

  • LED Matrix NTP Clock with DS3231, BME280, BH1750 & ESP01 about 1 year ago

    Have you used a level shifter for connecting the ESP01 to the Nano?
    Have you specified your wifi creds in the file?
    The ESP01 also requires it's own 3.3v regulator.

    The pins are (via level shifter):
    D7 - ESP01 TX
    D6 - ESP01 RX

    If you debug via the serial monitor you should be able to see if the two devices are talking to each other.

    For the brightness you need to check two things:

    First debug the light sensor and see what it outputs (and to see if it works):
    Debug here:
    if (auto_intensity && !shut) {
    switch(lx) {
    case 0:
    auto_intensity_value = 0;
    case 2:
    auto_intensity_value = 1;

    From the above debug out to serial monitor you'll see if the brigtness level is being set to max because of the LUX level. You can adjust the brightess levels here, or turn of auto lx.

Add projectSign up / Login