Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/healeycodes/pi
:pie: Monorepo for my Raspberry Pi dashboard and GPS satellite listener.
https://github.com/healeycodes/pi
dashboard dht22 gps gps-device heroku pos58 raspberry-pi receipt-printer
Last synced: about 2 months ago
JSON representation
:pie: Monorepo for my Raspberry Pi dashboard and GPS satellite listener.
- Host: GitHub
- URL: https://github.com/healeycodes/pi
- Owner: healeycodes
- License: mit
- Created: 2021-05-08T14:54:04.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2021-05-31T09:09:29.000Z (over 3 years ago)
- Last Synced: 2024-11-17T14:12:10.697Z (3 months ago)
- Topics: dashboard, dht22, gps, gps-device, heroku, pos58, raspberry-pi, receipt-printer
- Language: Python
- Homepage: https://healeycodes.com/listening-to-satellites-with-my-raspberry-pi/
- Size: 10.3 MB
- Stars: 27
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Flask tests](https://github.com/healeycodes/pi/actions/workflows/python-app.yml/badge.svg)](https://github.com/healeycodes/pi/actions/workflows/python-app.yml)
# :pie: pi dashboard
> My blog post: [Listening to Satellites with my Raspberry Pi](https://healeycodes.com/listening-to-satellites-with-my-raspberry-pi/)
This is the monorepo for my Raspberry Pi dashboard!
It includes: a module system allows different features to be toggled on and off so you don't need my exact hardware setup. It also allows multiple Pis to use the same server.
- :house: a Windows 98 themed dashboard.
- :satellite: view the list of visible GPS satellites from a GPS hardware device.
- :printer: receive printer messages to a POS58 compatible printer.
- :thermometer: live temperature/humidity collected from an AMxx compatible sensor.
![The dashboard home page with weather, printer, and sky modules enabled.](https://github.com/healeycodes/pi/blob/main/client/preview.png)
## Run
#### Server
Toggle server modules in `server/config.py`.
1. Create a Heroku project.
2. Add a PostgreSQL database via the GUI.
3. Add a config var of `PW` via GUI.
4. Deploy from this GitHub repository.
That's it. No migrations or other setup required.
For local development:
```bash
pip install -r requirements.txt
export FLASK_APP=wsgi:app ;python3.9 -m flask run
```A SQLite database is automatically created and used instead of PostgreSQL. If no `PW` environment variable is provided, no password is required for client requests.
#### Client
The client is written with a Raspberry Pi in mind and has been tested with the latest Raspbian (v10) and the bundled Python 3 that comes with it.
Depending on what modules you've enabled in `client/clientconfig.py` you may need hardware connected and setup e.g. to use the sky module, your GPS device must be communicating with `gpsd`.
```
cd client/
pip install -r requirements.txt
sudo python3 poller.py https://your-url.herokuapp.com password_here
```I run that last command on boot via `/etc/rc.local`.
Note: in the client config, I use `sleep_at_night` to put my Pi to sleep so it can sit on the Heroku free tier without using up all the monthly hours.
## Tests
End to end tests that make sure the server + all mods are working correctly.
`pip install -r requirements.txt`
`python -m pytest`
## License
Licensed MIT