LED Matrix Clock with Open Weather Map enabled weather running on a Raspberry Pico W and a WaveShare Pico-RGB-Matrix-P3-64x32
This project requires that you use circuitpython 9.x.x. If you still wish to use 8.x you will need to use an older release
An account on Open Weather Map (OWM) is required to display the current conditions and the current condition icon.
Go to the OWM sign up and using the free subscription is enough to create a working Token for this project. Put the token from the OWM API Keys page into the settings.toml file in the OWM_API_TOKEN="" setting. OWM uses your geolocation which gets looked up via the Geolocation API, for this you need to provide your zip code and the Country under OWM settings listed below.
You can define up to 3 NTP servers, one primary and two fallbacks, to use for time synchronization. The servers are separated by a "pipe" | character. You can find a list of NTP Servers to use if you need something closer.
Requires a settings.toml file with the following settings in settings file. A settings.toml.default file has been provided with the required settings for the application. Copy or rename the settings.toml.default file to settings.toml.
- WIFI_SSID="your ssid"
- WIFI_PASSWORD="yoursupersecretpassword"
- NTP_HOST="0.adafruit.pool.ntp.org|0.us.pool.ntp.org"
- TZ_OFFSET=-5
- NTP_INTERVAL=21600 ie 21600 = 6hr, 43200 = 12hr, 86400 = 24hr
- UNITS="imperial" ie imperial or metric
- OWM_ENABLE_WEATHER=1 # 0 disables weather, removing or setting to 1 enables weather
- OWM_API_TOKEN="Your Token"
- OWM_ZIP="zip/post code"
- OWM_COUNTRY="US" # Please use ISO 3166 country codes
To enable you must rename the _boot.py file to boot.py on your device.
With this setting enabled any changes to the in menu setting ( Buzzer/ Autodim / 12/24 hr clock / DST Adjust ) will persist when you turn the device off and turn it back on again.
Settings:
- APPLY DST - Moves time ahead by 1 hour (you must manually turn it on and off) ** Only Works with NTP enabled **
- BEEP SET - Turns the beeping for button presses on and off
- AUTODIM - When the light sensor detects darkness it will dim the display (turn the LED display off).
- 12/24 HR - Changes the clock between 12 and 24 hour display.
NOTE When boot.py is enabled the drive becomes read only for your computer, to make changes you must hold down the menu / KEY0 button (Bottom button) when you turn on the device. This setting is only read at boot and restarting will have no effect on this setting.
This project requires the use of a Raspberry Pico W to use the WIFI for getting information for displaying on the screen such as updated time, and local weather.
This project requires that you use circuitpython 9.x.x.
Circuit libraries are included in the ./lib/src folder, just copy the ./src folder to the Pico. Most of the libraries are located on the CircuitPython libraries page. Notes:
- The IR_RX library is located on github.
Connects to a Network Time Protocol server (0.adafruit.pool.ntp.org) and sets the onboard DS3231 RTC based on the time from the NTP response.
This project moving forward will be converting changed code to loosely meet the google python coding standard.
To ignore the code.py overriding the std lib error add the following to your .vscode.json config file.
"python.languageServer": "Pylance",
[...]
"python.analysis.diagnosticSeverityOverrides": {
"reportShadowedImports": "none"
},