-
Notifications
You must be signed in to change notification settings - Fork 0
/
KY-015-RPi_Kombi-Sensor_Temperatur_Feuchtigkeit.py
54 lines (40 loc) · 2.04 KB
/
KY-015-RPi_Kombi-Sensor_Temperatur_Feuchtigkeit.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/python
# coding=utf-8
# Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import Adafruit_DHT
import time
# Die Pause von zwei Sekunden zwischen den Messungen wird hier eingestellt
sleeptime = 60
# Email verschicken, wenn Luftfeuchtigkeit nicht richtig
# http://techfrage.de/question/2178/gmail-smtp-server-einstellungen/
# Sensor should be set to Adafruit_DHT.DHT11,
# Adafruit_DHT.DHT22, or Adafruit_DHT.AM2302.
DHTSensor = Adafruit_DHT.DHT11
# Hier kann der Pin deklariert werden, an dem das Sensormodul angeschlossen ist
GPIO_Pin = 4
print('KY-015 Sensortest - Temperatur und Luftfeuchtigkeit')
try:
while(1):
# Messung wird gestartet und das Ergebnis in die entsprechenden Variablen geschrieben
Luftfeuchte, Temperatur = Adafruit_DHT.read_retry(DHTSensor, GPIO_Pin)
print("-----------------------------------------------------------------")
if Luftfeuchte is not None and Temperatur is not None:
# Das gemessene Ergebnis wird in der Konsole ausgegeben
print('Temperatur = {0:0.1f}°C | rel. Luftfeuchtigkeit = {1:0.1f}%'.format(Temperatur, Luftfeuchte))
if Luftfeuchte > 41:
print("Super Luftfeuchtigkeit weil über 40 %")
msg['Subject'] = 'Luftfeuchtigkeit im Keller'
else:
print("Aufpassen es ist zu trocken")
# Da der Raspberry Pi aufgrund des Linux-Betriebsystems für Echtzeitanwendungen benachteiligt ist,
# kann es sein, dass aufgrund von Timing Problemen die Kommunikation scheitern kann.
# In dem Falle wird eine Fehlermeldung ausgegeben - ein Ergebnis sollte beim nächsten Versuch vorliegen
else:
print('Fehler beim Auslesen - Bitte warten auf nächsten Versuch!')
print("-----------------------------------------------------------------")
print("")
time.sleep(sleeptime)
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()