https://github.com/jake1164/tempest-led-weather-clock
A WaveShare Pico-RGB-Matrix-P3-64x32 LED panel Clock powered by a Raspberry Pico W and displaying local weather from your local Tempest weather station
https://github.com/jake1164/tempest-led-weather-clock
clock led-panels raspbery-pi-pico rp2040w tempest waveshare weather
Last synced: 5 months ago
JSON representation
A WaveShare Pico-RGB-Matrix-P3-64x32 LED panel Clock powered by a Raspberry Pico W and displaying local weather from your local Tempest weather station
- Host: GitHub
- URL: https://github.com/jake1164/tempest-led-weather-clock
- Owner: jake1164
- License: mit
- Created: 2023-06-01T20:52:07.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-21T16:53:13.000Z (5 months ago)
- Last Synced: 2025-02-21T17:43:51.279Z (5 months ago)
- Topics: clock, led-panels, raspbery-pi-pico, rp2040w, tempest, waveshare, weather
- Language: Python
- Homepage:
- Size: 225 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# tempest-led-weather-clock
LED Matrix Clock with weather running on a Raspberry Pico 2 W with a WaveShare [Pico-RGB-Matrix-P3-64x32](https://www.waveshare.com/wiki/Pico-RGB-Matrix-P3-64x32) and displaying weather information from a WeatherFlow Tempest weather station. For those without a Tempest check out the Open Weather Maps driven solution [Pico-RGB-Matrix-Weather-Clock](https://github.com/jake1164/Pico-RGB-Matrix-Weather-Clock)## NOTE: RASPBERRY PICO 2 W is REQUIRED for this to work.
The pico while wonderful has too many memory limitations. The [pico 2 W](https://www.raspberrypi.com/products/raspberry-pi-pico-2/) is a drop in replacement and will make everything just work.## NOTE: THIS PROJECT REQUIRES CircuitPython 9.0.0 or later
This project requires that you use [circuitpython 9.x.x](https://circuitpython.org/board/raspberry_pi_pico_w/).### [Tempest](https://tempestwx.com/)
Sign into your tempest portal to create a application token under [Settings](https://tempestwx.com/settings) and find your stationID (in the URL after you sign up).
Put the token from [Data Authorizations](https://tempestwx.com/settings/tokens) in the settings.toml file under TEMPEST_API_TOKEN="" and enter the station under the TEMPEST_STATION=xxxxx where xxxxx is the number from tempestwx.com/station/xxxxx/## Configuration File Settings
Rename settings.toml.default file to settings.toml on the Pico and adjust the following settings:### Wifi Settings
* WIFI_SSID="your ssid"
* WIFI_PASSWORD="yoursupersecretpassword"
* NTP_HOST="0.adafruit.pool.ntp.org"
* TZ_OFFSET= ie TZ_OFFSET=-5
* NTP_INTERVAL=21600 # note: 21600 = 6hr, 43200 = 12hr, 86400 = 24hr
### tempestwx.com (tempest) Data Authorization
* TEMPEST_API_TOKEN="yourDataAuthorizationToken"
* TEMPEST_STATION=0 #YourStationNumber
### Data configuration
* UNITS="imperial" # Valid Settings: imperial (temp=f, wind=mph, pressure=inhg, precip=in, distance=mi) or metric (temp=c, wind=kph, pressure=mb, precip=cm, distance=km)
### Fine Tuning of settings. Use these settings to adjust any (or all) of the settings
## Temperature (Note this will override the default UNITS setting if enabled)
UNITS_TEMP = "f" # Valid Settings: f or c## Wind Speed (Note this will override the default UNITS setting if enabled)
UNITS_WIND = "mph" # Valid Settings: mph, kph, kts, mps, bft, lfm## Pressure units (Note this will override the default UNITS setting if enabled)
UNITS_PRESSURE = "mb" # Valid Settings: mb, inhg, mmhg, hpa## Amount of rain (Note this will override the default UNITS setting if enabled)
UNITS_PRECIP = "in" # Valid Settings: mm, cm, in## Lightning strike distance (Note this will override the default UNITS setting if enabled)
UNITS_DISTANCE = "mi" # Valid Settings: km, mi## Persistant Settings
To enable in application settings you must rename the _boot.py file to boot.py and place it 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 its dark 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.
## Board
This project requires the use of a Raspberry [pico 2 W](https://www.raspberrypi.com/products/raspberry-pi-pico-2/) to use the WIFI for getting information for displaying on the screen such as updated time, and eventually local weather. (api to be defined soon)## Circuitpython 9.0.0
This project requires that you use [circuitpython 9.x.x](https://circuitpython.org/board/raspberry_pi_pico_w/).## Libraries
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](https://circuitpython.org/libraries) page.
Notes:
* The schedule library is located in the version 8.x Community Bundle.
* The IR_RX library is located on [github](https://github.com/peterhinch/micropython_ir).## Clock
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.## Weather Plugin
Not implemented yetS## Images



# Code Standards
This project moving forward will be converting changed code to loosely meet the
google python [coding standard](https://google.github.io/styleguide/pyguide.html#316-naming).## pylint settings
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"
},
```# KNOWN ISSUES
Memory is on the ragged edge of the Pico W limits and as such many api requests fail do to memory allocation issues.