Wir haben im Schlaue Pflanze Projekt schon viel darüber gelernt, Daten auszulesen und auszuwerten. Mit dem Display haben wir eine einfache Möglichkeit, diese Daten darzustellen. Und wenn wir schon einmal dabei sind, können wir das Display natürlich auch für eine Uhr benutzen. Teilweise musst du erst noch die richtige Zeitzone einstellen.
Mehr Über das Display und das Anwenden findest du hier Das 5110 Display.
git clone https://github.com/coding-world/Nokia_LCD
git clone https://github.com/coding-world/fonts
cd Nokia_LCD
sudo python setup.py install
Anschlüsse am Raspberry Pi | Anschlüsse am Display |
---|---|
GPIO 24 | 1 – RST |
GPIO 8 /SPI CE0 | 2 – CE |
GPIO 23 | 3 – DC |
GPIO 10 / SPI MOSI | 4 – Din |
GPIO 11 / SPI CLK | 5 – CLK |
3,3V | 6 – VCC |
3,3V | 7 – BL |
GND | 8 – GND |
display.py
import Nokia_LCD as LCD
import Adafruit_GPIO.SPI as SPI
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import time
spiSettings = SPI.SpiDev(0,1, max_speed_hz=4000000)
d = LCD.PCD8544(23, 24, spi=spiSettings)
d.begin(contrast=60)
d.clear()
d.display()
font = ImageFont.truetype("/home/pi/fonts/Unique.ttf", 28)
fontSmall = ImageFont.truetype("/home/pi/fonts/Unique.ttf", 14)
def anzeige(text1, text2, text3):
image = Image.new("1",(LCD.LCDWIDTH, LCD.LCDHEIGHT))
draw = ImageDraw.Draw(image)
draw.rectangle((0,0,84,48),outline=255,fill=255)
d.clear()
d.display()
draw.text((1,1), text1, font=fontSmall)
draw.text((5,10), text2, font=font)
draw.text((1,34), text3, font=fontSmall)
d.image(image)
d.display()
anzeige_schlaue_pflanze.py
import Python_DHT
from display import anzeige
import spidev
import time
import os
import RPi.GPIO as gpio
# LED
led = 21
gpio.setmode(gpio.BCM)
gpio.setup(led, gpio.OUT)
# DHT11
sensor = Python_DHT.DHT11
pin = 4
# SPI Verbindung herstellen
spi = spidev.SpiDev()
spi.open(0,0)
# Liest Daten vom MCP3008
def analogEingang(channel):
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data
while True:
bodenFeuchtigkeit = analogEingang(1)
textPflanze = "By Norbert"
if bodenFeuchtigkeit > 650:
text2 = "Giess Mich"
gpio.output(led, gpio.HIGH)
else:
text2 = time.strftime("%H:%M")
gpio.output(led, gpio.LOW)
feuchtigkeit, temperatur = Python_DHT.read_retry(sensor, pin)
textTemperatur = str(temperatur)+" c"
anzeige("Feuchtigkeit", str(bodenFeuchtigkeit), textPflanze)
time.sleep(20)
anzeige("Uhrzeit ", text2, textPflanze)
time.sleep(20)
anzeige("Temperatur", textTemperatur, textPflanze)
time.sleep(20)