All Projects → zoharsf → Raspberry-Pi-E-Ink-Dashboard

zoharsf / Raspberry-Pi-E-Ink-Dashboard

Licence: MIT license
Tri color e-ink dashboard written in Python 3.7, running on Raspberry Pi

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Raspberry-Pi-E-Ink-Dashboard

vaccine-alarm
Check for Vaccine availability in a district at specified intervals and sounds a loud alarm when a slot is available.
Stars: ✭ 22 (-72.5%)
Mutual labels:  covid-19, covid19
OpenCovidDetector
New virsion for multi-categories were available. Since too many changes above old virsion, please refer to this site https://github.com/ChenWWWeixiang/diagnosis_covid19
Stars: ✭ 18 (-77.5%)
Mutual labels:  covid-19, covid19
COVID breakdown
COVID-19 statistics in Taiwan
Stars: ✭ 15 (-81.25%)
Mutual labels:  covid-19, covid19
covid-19
An app made with Flutter to track COVID-19 case counts.
Stars: ✭ 47 (-41.25%)
Mutual labels:  covid-19, covid19
dekontaminasi
DIY static API server for COVID-19 data in Indonesia
Stars: ✭ 66 (-17.5%)
Mutual labels:  covid-19, covid19
CoWin-Vaccine-Notifier
Automated Python Script to retrieve vaccine slots availability and get notified when a slot is available.
Stars: ✭ 102 (+27.5%)
Mutual labels:  covid-19, covid19
CoopTilleulsSyliusClickNCollectPlugin
Sell and deliver securely during the COVID-19 pandemic!
Stars: ✭ 77 (-3.75%)
Mutual labels:  covid-19, covid19
rcvr-app
recover provides localities a privacy-compliant, safe, and easy way for their guests to check in. See https://www.recoverapp.de/ for more details.
Stars: ✭ 43 (-46.25%)
Mutual labels:  covid-19, covid19
NCOV-19
An app that keeps you Updated on the CORONA virus outbreak stats.
Stars: ✭ 16 (-80%)
Mutual labels:  covid-19, covid19
corona tracker
COVID-19 tracking app - submission for https://wirvsvirushackathon.org/
Stars: ✭ 13 (-83.75%)
Mutual labels:  covid-19, covid19
coronainfobd
Real-time corona-virus tracker of Bangladesh 🇧🇩 which includes latest updates, data visualization, public awareness from WHO and some advice to aware people. 🥰❤
Stars: ✭ 46 (-42.5%)
Mutual labels:  covid-19, covid19
COVID19-Algeria-and-World-Dataset
A COVID-19 dataset with 90 World countries including Algeria.
Stars: ✭ 18 (-77.5%)
Mutual labels:  covid-19, covid19
PhoNER COVID19
COVID-19 Named Entity Recognition for Vietnamese (NAACL 2021)
Stars: ✭ 55 (-31.25%)
Mutual labels:  covid-19, covid19
FaceMaskDetector
Real time face-mask detection using Deep Learning and OpenCV
Stars: ✭ 106 (+32.5%)
Mutual labels:  covid-19, covid19
covid19-timeseries
Covid19 timeseries data store
Stars: ✭ 38 (-52.5%)
Mutual labels:  covid-19, covid19
coronablocker
🦠 Chrome extension to block any news about Covid-19 on social networks.
Stars: ✭ 30 (-62.5%)
Mutual labels:  covid-19, covid19
COVID19
A web app to display the live graphical state-wise reported corona cases in India so far. It also shows the latest news for COVID-19. Stay Home, Stay Safe!
Stars: ✭ 122 (+52.5%)
Mutual labels:  covid-19, covid19
covid-19
A web application to display Coronavirus Diseases (COVID19) statistics from different countries.
Stars: ✭ 28 (-65%)
Mutual labels:  covid-19, covid19
COVID19-taiwan
Release COVID-19 (SARS-CoV-2) FDA / NHI drugs screening results.
Stars: ✭ 24 (-70%)
Mutual labels:  covid-19, covid19
COVID-19-train-audio
COVID-19 Coughs files for training AI models
Stars: ✭ 39 (-51.25%)
Mutual labels:  covid-19, covid19

Raspberry Pi E-Ink Dashboard

Tri color e-ink dashboard written in Python 3.7, running on Raspberry Pi

desk dashboard

What does it do?

This dashboard displays information easily read at a glance:

  • Date info: day of the week, month, day of the month and year
  • Weather info: weather icon, current temperature, description, what it feels like, humidity and temperature range for the day
  • Covid-19 info: global and local infections and deaths
  • Internet speed: current upload and download speeds

Any information can be displayed on the display (to-do list items, calendar events for the day, current song playing on Spotify)

Data sources

This dashboard uses two data sources accessed via REST API:

  • Weather info: gathered from openweathermap.org
  • Covid info: gathered from corona.lmao.ninja (API version 2.0 was used for this dashboard but a newer API version is already available)

Any datasource can be used instead of the ones chosen for this dashboard, but changing the datasource will require modifying the parsing of the response

And two local data sources:

  • Date info: from the local machine
  • Internet speed: by locally running the speed-test CLI application

Software prerequisites

Any font may be used instead of Rubik, but not all fonts will look good on the display, especially in smaller sizes.

Hardware prerequisites

Code configuration

  • The assets used in this dashboard were chosen from flaticon for their aesthetics and appearances on the low resolution e-ink display used. The repository includes an icon for the US flag, if you would like to display Covid-19 data for a different country, an appropriate <country_name>.jpeg flag icon must be added under dashboard/assets/covid.
  • The repository includes a Config.py file which holds all the configurations required to run the dashboard. In order for the dashboard to run correctly, all of the properties must be provided:
    • lon and lat are used to gather weather information for the desired location
    • units used to determine which temperature units will be used in the weather request. Options are imperial for Fahrenheit and metric for Celsius
    • unit_letter used to determine which temperature letter will be used in the display. F for Fahrenheit and C for Celsius
    • open_weather_map_api_key is the openweathermap.org API key.

      An account is required to access the openweathermap.org weather API, you can register for free here.

    • country is used to query Covid-19 data and to load the flag icon so it must match the <country_name>.jpeg
    • [small\medium\large]_font_[size\name] were chosen to fit the size of the e-ink display

Every application that includes usage of an e-ink display will require two files provided by the manufacturer: epd2in7b.py and epdconfig.py. These files have been provided and are in the lib folder in the repository so no configuration is required.

Running

Running the dashboard requires the following steps:

  • Connecting the e-ink display to the Raspberry Pi
  • Cloning the repository
  • Configuring the properties listed in the Code configuration section, and
  • Running the main.py script

This will display the dashboard on the display and will not be cleared even if the Raspberry Pi is shut down or disconnected from a power source. In order to refresh the dashboard in a predefined interval, using crontab is recommended:

  1. Run the command crontab -e in the CLI
  2. Add a new line to the file and insert */30 * * * * cd /absolute/path/to/the/project/folder && python3 main.py
  3. Save and close the editor

The meaning of */30 * * * * is "run the following command at the top of the hour and 30 minutes past the top of the hour". More examples may be found here.

Keep in mind that it takes the dashboard approximately 70 seconds to load the required data and another 33 seconds for the display to clear and refresh, so running it too often won't be effective. Not to mention that the screen flickers when refreshing which is distracting.

Future improvements

  • Dynamically load country flag according to provided lon and lat values
  • Load weather data according to city name instead of lon and lat values
  • Display weather data for upcoming days
  • Change Covid-19 datasource to a newer API version
  • Graph Covid-19 data for a given timeframe
  • Graph Internet speed data for a given timeframe
  • Support use of the display buttons to select which information will be displayed on screen
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].