navigationGo.pngQuick Navigation
allprojects32.pngAll projects
hardware32.pngHardware
links32.pngLinks

favoriteStar32.pngTop projects
Alan numitron clock
Clapclap 2313/1386
SNES Pi Webserver
USB Volume/USB toys
Smokey amp
Laser cutter
WordClock
ardReveil v3
SNES Arcade cabinet
Game boy projects
cameleon
Home Presence Detector

github32.pngGitHub
AlanFromJapan

navigationMail.pngContact me

alanfjmail.png
3flags.pngWho's Alan?


Akizukidenshi
Elec-lab
Rand Nerd Tut
EEVblog
SpritesMods
Switch-science
Sparkfun
Suzusho
Datasheet Lib
Reddit Elec
Ermicro
Carnet du maker (fr)
Marutsu
ATmel blog (defunct)

eink weather station

I want to make a small weather & reminder to throw the trash for my home entrance. Depending on the day in Japan you're supposed to throw one or another type of garbage and I always miss the "non-burnable" one, because it's the "second and fourth Thursday of the month"... So this toy will show me the weather, a few other interresting info and if it's the day for what type of trash.

Presentation

Principle

Points of interrest

Implementation

Bill of materials

  • Raspi Zero W but any clone will do. You will want internet.
  • in my case a 2.13 inches eInk display from eBay (250x128 pixels)
  • Perfboard, buttons, led, etc...
  • Installation

    For the eInk:
    All is here: https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT. Now I think of it I think the bcm2835 extra stuff is not needed if you use Python and GPIO... give a try and tell me.
    
    sudo apt-get install python-dev
    sudo pip install wiringpi spidev
    wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz
    tar zxvf bcm2835-1.xx.tar.gz
    cd bcm2835-1.xx
    ./configure
    make
    sudo make check
    sudo make install
    sudo apt-get install python-smbus  python-serial python-rpi.gpio
    #updated to use Pillow instead of PIL
    sudo python -m pip install pillow
    
    For the weather:
    Python Weather API based on Yahoo!:
    
    sudo pip install weather-api
    
    The above stopped working Jan 2019, so I moved to WeatherBit.io. You register, they have a free plan and comprehensive and simple Json API. I added a class to parse it and extract what I need. You'll need to put your private key in the config.py file though.

    Source code

    On the git : https://github.com/AlanFromJapan/alanarduinotools/tree/master/Python/EinkWeatherStation

    Pretty simple, you have 2 buttons [next and validate], the code revolves around 3 main panels that you can go through by clicking [next]:
  • Main panel: shows the weather of now and tells you what it will look like in a few hours. It also shows today's date and the latest update time
  • Shutdown panel: if you click [validate] the raspi will shutdown and show you a "the end" screen
  • Others panel: misc stuffs, for now only shows the current IP
  • Assembly

    1. Soldered the eInk screen to some perfboard I hadso I don't have to stack it on the Raspi Zero W and I can access the other pins (I'll need some buttons and LED)
    2. Add buttons and LED!

    Red is for the eInk display, Blue is for the buttons, Pin 29 (GPIO05) is for the "we're the non-burrnable day" LED

    Pinout of the eInk screen from the link above

    Pictures

    Links

    Helpful sources

  • The doc of the piece https://www.waveshare.com/wiki/2.13inch_e-Paper_HAT
  • The Yahoo weather API details
  • Inspiration

  • A similar project on GitHub for the PngConverter maybe and insipration
  • https://hackaday.com/2014/01/08/from-epaper-badge-to-weather-station/
  • For the design and the original project that is very good!
  • All content on this site is shared under the MIT licence (do what u want, don't sue me, hat tip appreciated)
    electrogeek.cc ~ Formerly known as Kalshagar.wikispaces.com (AlanFromJapan [2009 - 2019])