Code Monkey home page Code Monkey logo

e_ink_dashboard's Introduction

e_paper_dashboard

E-ink display using Raspberry Pi to display realtime weather, transit information, calendar and soon more.

Gallery

E_paper_1 E_paper_2 E_paper_3

Setup

I created a wiki for you to set up the project, please follow it and let me know if you have any issues.

Run python3 dashboard.py to start it. You will need PIL/Pillow for it to run, install it via pip install Pillow.

Note

This code is made for 7.5 inch Version 2 display, if you are using another type of display please consult the documentation and adjust accordingly.

Go to this website for the e-ink display documentation of how to set it up and get it to work on your raspberry pi: https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT

I used a Raspberry Pi Zero W for this project however it should work fine on any other Pi as long as it has GPIO headers.

This is my first project on Github, I'm still learning all its intricasies, if something is missing please let me know.

Still learning Python and squashing bugs as I progress, there is probably redundancies in the code so be gentle with it =)

Have fun with it and do something awesome!

Credit

Inspiration and using some of his code by Abnormal Distributions. Go check out his cool project.

Icon designs are originally by Erik Flowers. Some icons have been modified.

Licensing

e_ink_dashboard's People

Contributors

duxenmx avatar william-stearns avatar goodclover avatar

Stargazers

 avatar  avatar Zarek Parker avatar  avatar  avatar Aaron Ciuffo avatar Ed avatar  avatar  avatar Ryan M avatar Eduardo Sanchez avatar  avatar Leo avatar  avatar Garrett Heath Koller avatar  avatar  avatar Richard Eriksson avatar  avatar Simon Law avatar Eric Vitiello avatar Chris avatar  avatar Dan Clegg avatar Marcus Silva avatar Gergo N. avatar John Mitchell avatar  avatar  avatar  avatar Paul Meharg avatar  avatar  avatar  avatar Marwen Issaoui avatar  avatar Peter Hadorn avatar MisterTFM avatar Emiliano Tosolini avatar Eric D Prescott avatar Chris Jones avatar Ben avatar Giorgio avatar Jón Ragnarsson avatar  avatar Ciprian Voinea avatar SimDifRandomHD avatar Giovanni Bravaccini avatar David Martinez avatar  avatar  avatar Byron Nelson avatar  avatar Ahmed avatar  avatar Manas Mallick avatar André Kilchenmann avatar Marcus Giarrusso avatar Alexei Matusevski avatar  avatar  avatar  avatar  avatar  avatar Tim Droz avatar Brian Kimotho avatar Orlando Carnate avatar  avatar Ondřej Plátek avatar Falko Hofmann avatar

Watchers

Luis Alberto avatar Paul Meharg avatar  avatar  avatar  avatar  avatar

e_ink_dashboard's Issues

Modules translation

Hi all,

Finally my dashboard works great, but obviously all the descriptions are in english and I need to translate all in italian (but it will possible to every language).

I'm starting to evaluate to use a string replace in every single module, like this:

cal_n_m = calendar.month_name[cal_month]
    for r in (("December", "Dicembre"), ("January", "Gennaio"), ("February", "Febbraio"), ("March", "Marzo"), ("April", "Aprile"), ("May", "Maggio"), ("June", "Giugno"), ("July", "Luglio"), ("August", "Agosto"), ("September", "Settembre"), ("October", "Ottobre"), ("November", "Novembre")):
        cal_n_m_it = cal_n_m.replace(*r)
................................
 draw.text((cal_s_x + 60, cal_s_y-65), str(cal_n_m_it) + ' ' + str(cal_year),
              font=font_size(35), fill=color_1)

Where I've replace the month one-to-one from English to Italian.
It doesn't works, but I'm really new in python language so probably I've missed something.
Anyone can help me to generate a function to translate the description?

Thank you.

Display burned

Hi all,
I've write to you because from Waveshare support haven't found a great answer to know why my display is start to burn these column of pixel.
My refresh rate is every 5 minutes.
The display can be restored? What I've do wrong?

Thanks for your support.

burned1

burned2

Use Spotify API to view track info in one form

Hi all,

I really like this project and I would like to create one similar but in one form I would like to put some information about the track that my Spotify is playng.
But unfortunately I'm very noob with Raspberry and Python, I hope to found someone that help me with this project.
With Python I've found this code: https://github.com/plamere/spotipy/tree/94e164385e1b64f99e45053c6bdd638770c982e2
that use the official Spotify APIs to found all track information.

The code is something like this:

def current_playback(self, market=None, additional_types=None):
        """ Get information about user's current playback.
            Parameters:
                - market - an ISO 3166-1 alpha-2 country code.
                - additional_types - `episode` to get podcast track information
        """
        return self._get("me/player", market=market, additional_types=additional_types)

Someone can help me to modify the form, the webserver and so on?

Thanks in advance!

Help for projcet based on E_Ink_dashboard

Hi @duxenmx!

Can I please ask help for a new project?
Is based on your code but without a server, just spotify service and a DHT22 sensor.
I've trying to refresh the screen when I change the spotify song but I've some serious problem with the get_spot_info() because it write always the same info and it doesn't change. Can I send you my code for a quick review please?
I'm stuck up over 2 weeks, I really don't know how to exit.
I hope in your help... 😢

API Request

Hi buddy,

the dashboard is working absolutly fine the last days. It's an amazing project.
I was thinking if you could add an api for a picture of a day or something like that.
Maybe this one from wikipedia would be great:
https://en.wikipedia.org/wiki/Wikipedia:Picture_of_the_day

Let me know, if i can help you somehow. Sheers and have a good day

Time data error in west-europe

Hi Adrian,

can you help with this problem?
After the installation i try to start the dashboard.py with cmd:

python3 dashboard.py

It seems that the meetings section throw an error like following:

image

contents of JSON?

Gret project! I have the screen up and running, installed the dependencies and run the main program.

It gives the error

Traceback (most recent call last):
  File "/home/cal/software/E_ink_dashboard/dashboard.py", line 54, in <module>
    with open(os.path.join(creddir, 'dash_id.json'), "r") as rdash_id:
FileNotFoundError: [Errno 2] No such file or directory: '/home/cal/software/E_ink_dashboard/credentials/dash_id.json'

So there needs to be a JSON with that name, but what needs to be in it exactly?

Refresh time handled by an event

Hi @duxenmx !
I hope you're well!

I'm thinking to made another project to view only the spotify information so I need to try to refresh the screen every time that the song change.
I know that is not safe for the hardware but I want to try to see what happen.
I don't know how to handle the epd.sleep (and other write and sleep commands...) using a event handler (change the value of "track" variable).
Can you help me with this please?

Thank you!

Need Help for the webserver

Hi all!
I'm tryng to start up the server. Where I read "your domain" in the instruction, I write local Ip (192.168.x.x) right? Or the public IP? Sorry but I don't know how to continue because when I write the local IP of the raspberry in the browser I see only the standard "NGINX presentation page" and nothing else. If I write my public IP address I see my modem router configuration page. Can someone help me?

Issue with running the Server

Hi mate,

thx for your great work. I really try to get it working for days now.

Please can you help me?

I did all the steps to run the server.
This what i got as an error msg:

Dashenv.service - Gunicorn instance to serve Dashenv
Loaded: loaded (/etc/systemd/system/Dashenv.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2020-12-08 12:32:38 CET; 17s ago
Process: 1042 ExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:Dashenv.sock -m 007 wsgi:app (code=exited, status=1/FAILURE)
Main PID: 1042 (code=exited, status=1/FAILURE)

Dez 08 12:32:25 raspberrypi systemd[1]: Started Gunicorn instance to serve Dashenv.
Dez 08 12:32:33 raspberrypi gunicorn[1042]: [2020-12-08 12:32:33 +0000] [1042] [INFO] Starting gunicorn 19.10.0
Dez 08 12:32:33 raspberrypi gunicorn[1042]: [2020-12-08 12:32:33 +0000] [1042] [ERROR] Retrying in 1 second.
Dez 08 12:32:34 raspberrypi gunicorn[1042]: [2020-12-08 12:32:34 +0000] [1042] [ERROR] Retrying in 1 second.
Dez 08 12:32:35 raspberrypi gunicorn[1042]: [2020-12-08 12:32:35 +0000] [1042] [ERROR] Retrying in 1 second.
Dez 08 12:32:36 raspberrypi gunicorn[1042]: [2020-12-08 12:32:36 +0000] [1042] [ERROR] Retrying in 1 second.
Dez 08 12:32:37 raspberrypi gunicorn[1042]: [2020-12-08 12:32:37 +0000] [1042] [ERROR] Retrying in 1 second.
Dez 08 12:32:38 raspberrypi gunicorn[1042]: [2020-12-08 12:32:38 +0000] [1042] [ERROR] Can't connect to Dashenv.sock
Dez 08 12:32:38 raspberrypi systemd[1]: Dashenv.service: Main process exited, code=exited, status=1/FAILURE
Dez 08 12:32:38 raspberrypi systemd[1]: Dashenv.service: Failed with result 'exit-code'.

After installing Gunicorn i could find the Gunivcron file in the directory you named. So placed the default value to it:

GNU nano 3.2 /etc/systemd/system/Dashenv.service

[Unit]
Description=Gunicorn instance to serve Dashenv
After=network.target

[Service]
User=pi
Group=www-data
WorkingDirectory=/home/pi/E_ink_dashboard/www
Environment="PATH=/home/pi/E_ink_dashboard/www/Dashenv/bin"
ExecStart=gunicorn --workers 3 --bind unix:Dashenv.sock -m 007 wsgi:app

[Install]
WantedBy=multi-user.target

Do you have an idea what im doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.