WeatherPaper

I looking for low energy consumption weatherstation and then I found epaper. So raspberry pi is obvious and ruuvitag to sensors.

So what you need
-Ruuvitags
https://tag.ruuvi.com/
-raspberry pi zero w . (small)
https://www.raspberrypi.org/products/raspberry-pi-zero-w/
-waveshare epaper display (7.5 inch)
https://www.waveshare.com/wiki/7.5inch_e-Paper_HAT
-pictureframe

solder 7 wires to raspberry or use pins

install rasbian to raspberry

use python to get ruuvitag data and show it to epaper.(i remove some personal data for picture)

I also show forecast data from yr.no api. I use python BeautifulSoup
https://www.crummy.com/software/BeautifulSoup/bs4/doc/

datasource example:
https://www.yr.no/place/Finland/Laponia/Rovaniemi/forecast.xml

I publish a code if anyone is interested. it is not yet fully done (maybe some graph from history data etc)

4 Likes

Nice, this looks very good!

Planning new layout… Today, tomorrow, and? What info should show on this display?

Now there is left to right
Day, sunrise, sunset, 24h min/max, rain 24h, and finnish name days
Ruuvitag temperature and hour-by-hour forecast to present day and tomorrow (it show rain precipitation if raining on current hour)

1 Like

Cool, very nice idea. I’m interested in the code :slight_smile: As for the 3rd column, maybe something like quote / joke / fact of the day?

You can find code here

code is not professional, just my first python project. I try translate code comments to english in future

Its my first github also :slight_smile:

1 Like

Maybe the trend of outside temperature from Ruuvi? Is it getting hotter or colder, a simple arrow pointing upwards or downwards would suffice.

Or make similar like old fashion barometer showing rain - cloudy - sun estimation.

Thanks for the ideas… First I have to code some error handling etc

I have exactly same ePaper display available. Might have to use this code for it :slight_smile:

Have you tried to use a separate wlan-receiver for the display and just use the Raspi to refresh the screen? What I gathered, the display itself could basically run from an USB battery.

Got the code working. Suggestions what might be the easiest way to change orientation of the display from landscape to vertical?

I’m not an expert, but i think the easiest way to do this is to rotate the image, not to change the display orientation. Instead of

img = Image.new('1', (EPD_WIDTH, EPD_HEIGHT), 1)

do

img = Image.new('1', (EPD_HEIGHT, EPD_WIDTH), 1)

then, after you draw everything you want, just rotate the image and display it

img = img.rotate(90)
epd.display_frame(epd.get_frame_buffer(img))

@Vee Hi, did you have any problems with the image losing ‘contrast’? It looks fine for the first 8-10 hours and then it starts to slowly degrade, up to the point where you can barely see anything.

Yes, I have same problem and no fix. Contrast is back if you not use it a while.

Maybe is better if not update it so often and maybe not night at all?

Not tested yet

Sorry english

Thank you for the answer. Yes, exactly the same for me. It is strange that for the first 3-4 days it worked fine, although i updated it many times and quite frequently while testing. I think that once per hour is quite rare, it should not have any problems.

Anyway, i have already contacted waveshare. They’ve told me to change that vcom value, but it doesn’t do any good. They said that if it doesn’t work they’ll probably send me another or a refund.

I’ll let you know what they tell me.