Surfend op de jijbuis kwam ik in mijn bubbel iets tegen over e-paperschermen die via interpret veranderd konden worden; geüpdatet.
Ik had me al eens beziggehouden met een androidscherm dat m.b.v. een gratis website van google werd aangepast. Alleen (?) een scherm
en niet een heel apparaat met software die vanzelf verouderd, leek me eleganter. Onzin natuurlijk, maar zo dacht ik even. Want je
hebt nog steeds een apparaat nodig, met software, dat verbonden wordt met het scherm. Daarna, en dat is ook interessant, kun je de
verbinding verbreken en behoudt de e-paper zijn beeld, heel lang. Maar ja, als je regelmatig de inhoud wilt aanpassen is het wel
handig om de verbinding te behouden.
Achteraf vond ik mijn weg vinden in de 'service account' en de oAuth van Google behoorlijk lastig. Want het loopt via een gedeeld
rekenvel (sheets.google.com) en de gebruikte pythoncode op de raspi moet toegang krijgen tot dat rekenvel om de informatie op te
halen en naar het e-Ink-scherm te schrijven.
Elders, in mijn blog is er nog wat meer en andere info te vinden.
#!/usr/bin/python
# -*- coding:utf-8 -*-
# importing the required libraries
import sys
import os
import csv
picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic')
libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib')
if os.path.exists(libdir):
sys.path.append(libdir)
from waveshare_epd import epd7in5b_HD
import time
from PIL import Image,ImageDraw,ImageFont
font35 = ImageFont.truetype(os.path.join(picdir, 'Font.ttc'), 35)
def SchrijfScherm():
### e-Paper display stuff
epd = epd7in5b_HD.EPD()
epd.init()
epd.Clear()
# Drawing on the Vertical image
Limage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame
Rimage = Image.new('1', (epd.height, epd.width), 255) # 255: clear the frame
draw = ImageDraw.Draw(Limage)
tekenR = ImageDraw.Draw(Rimage)
print ("rendering display")
max= 18
r = 1
h = 0 #hoogte
while r <= max:
val = wks.cell(r, 1).value
draw.text((2, h), val, font = font35, fill = 0)
r += 1
h += 49
#draw.text((2, 0), A1, font = font35, fill = 0)
tekenR.text((500,10),rtekst, font = font35, fill=0)
epd.display(epd.getbuffer(Limage), epd.getbuffer(Rimage))
epd.sleep()
import gspread
gc = gspread.service_account()
# get the instance of the Spreadsheet
# sheet = gc.open("REKENVELNAAM").sheet1
wks = gc.open("REKENVELNAAM".sheet1
# read old vaues from laatste keer
print("gegevens ophalen van werkblad")
# 2 benoemde gebieden: kolA17 en oudeInfo
# de waarden van benoemde reeks kolA17
# die feitelijk tot A18 loopt.
val = wks.cell(1,1).value
rtekst=";-))"
lijstA = wks.get('kolA17')
lijstOud = wks.get('oudeInfo')
if lijstA == lijstOud:
print("Ze zijn GELIJK.")
print("Er hoeft niets te gebeuren.")
else:
print("Ze zijn on-Gelijk")
# schrijven naar kol C met naam oudeInfo
wks.update('C1', lijstA)
print("Scherm wordt ingelezen en geschreven.")
# A1 = wks.acell('A1').value A19 = wks.acell('A1').value
SchrijfScherm()
print("ga slapen ")
print("KLAAR.....met.......data")
Wat heb je nodig?
- - een e-paperscherm
- - een raspberry pi of iets dergelijks. (raspi zero werkt ook)
- - een rekenvel van sheets.google.com :: https://docs.google.com/spreadsheets/
- - een authenticatievorm passend bij het project (oAuth)
- - beetje programmeerwerk
Dat u me gevonden hebt!
voor de apenstaart: digitale.klusjesman
dan volgt de apenstaart
en dan gmail
gevolgd door een punt. En daarachter com