smart Clock

This is a smart clock that displays the time and weather information.

The columns and colors represent the temperature forecast over a 32-hour period (1 column = 1 hour). The weather icons show the forecast trend at +4 h, +9 h, and +24 h.

Updates

  • Fixed the weather type display.
  • February 5, 2025: Replaced the time API request with an NTP request, as the previous API server was no longer available.

Bill of Materials (BOM)

  • 1 × Adafruit Matrix Portal - CircuitPython Powered Internet Display
  • 1 × Medium 16×32 RGB LED Matrix Panel - 6 mm pitch (I bought mine from Adafruit)
  • 1 × Motion sensor (generic)
  • 1 × Black LED Diffusion Acrylic Panel - 10.2" × 5.1" - 0.1" / 2.6 mm thick (bought from Adafruit)
  • 1 × Clear Adhesive Squares - 6 pack - Uglu Dashes
  • 4 × M4 screws
  • 5 × 3 mm self-tapping screws

Assembly

  1. Trim the back of the LED matrix panel. There are two small plastic extrusions that need to be removed.
  2. Attach the base to the LED matrix using the four M4 screws.
  3. Prepare the Matrix Portal as described here:
    https://learn.adafruit.com/adafruit-matrixportal-m4
  4. Connect the Matrix Portal to the motion sensor. Make sure to respect the polarity.

    • The default pin for the signal wire is A4.
    • Solder the connection.
  5. Install the Matrix Portal into the case.
  6. Hot-glue the motion sensor to the base.

    • The adjustment screws should face outward.
  7. Install the rear panel using the five self-tapping screws.
  8. Cut the diffuser panel to size and install it.

Arduino Software

  1. In the Arduino IDE, install all required libraries (see the Adafruit Matrix Portal documentation).
  2. Place the provided .ino and .h files in your Arduino project folder and open smartClock.ino.
  3. Create an OpenWeather API key.
  4. Add your Wi-Fi credentials and OpenWeather API key to the credentials.h file.
  5. Customize the parameters marked with // to customise in the main Arduino file.
  6. Upload the program to the board.
  7. Adjust the display timeout using the potentiometer on the motion sensor.

Have fun! :)