Seite 1 von 1
Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 20:05
von Keulenkarl
Hallo zusammen,
ich bin da grad dabei ein Projekt zu realisieren, soweit klappt alles. Ich kann die Daten die mir der DHT22 gibt auslesen usw.
Jetzt würde ich gerne mein Script so anpassen das wenn:
die Temperatur einen gewissen Wert hat z. B 7Grad das dann ein Script geschalten wird was die Heizung anschaltet. Und natürlich andersrum wenn 25 Grad ->Heizung aus
Ich kann mir schon denken das es sich hierbei um einfache If Else Abfragen handelt aber leider bekomme ich es nicht hin.
Ich hoffe Ihr könnt mir helfen und bedanke mich schon mal im Vorraus
Lg Keulenkarl
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 20:20
von sls
Die Auswertung der Temperatur machst du mit einem if/else, ja, aber was hast du den konkret bisher programmiert? Wo hakt es, was verstehst du nicht? Du hast doch immerhin schon einen Ansatz und weißt was du dafür hernehmen musst, warum probierst du es nicht einfach aus?
Wenn du nicht weißt, wie die Prüfung einer Bedingung in Python aussieht, musst du ein Grundlagentutorial heranziehen.
Außerdem frage ich mich, wie genau du die Heizung ansteuern möchtest.
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 20:42
von Keulenkarl
Das mit der Schaltung der Heizung sollte nur ein Bsp.sein. Ich habe einen Reifeschrank gebaut und diesen mit einem Lüfter, Heizlüfter, Luftbefeuchter ausgestattet. Den DHT22 habe ich nun zum auslesen der Werte verbaut.
Ich habe soweit das Script geschrieben das ich stetig neue Temperatur und Luftfeuchte Werte auf meiner lokalen Seite angezeigt bekomme.
Manuell kann ich nun über ein Python script die einzelnen Geräte schalten. Nun möchte ich dies aber automatisieren. Das eben die Heizung oder Kühlung automatisch einschaltet wenn ein Schwellwert erreicht ist
Ich hoffe Ihr versteht was ich meine =)
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 20:45
von sls
Was du machen möchtest ist klar, zeig' doch am besten dein sagenumwobenes Skript und erkläre, an welcher Stelle es hakt.
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 21:12
von Keulenkarl
das Pythonscript
#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
import sys
import Adafruit_DHT
sensor_args = { '11': Adafruit_DHT.DHT11,
'22': Adafruit_DHT.DHT22,
'2302': Adafruit_DHT.AM2302 }
if len(sys.argv) == 3 and sys.argv[1] in sensor_args:
sensor = sensor_args[sys.argv[1]]
pin = sys.argv[2]
else:
print('Usage: sudo ./Adafruit_DHT.py [11|22|2302] <GPIO pin number>')
print('Example: sudo ./Adafruit_DHT.py 2302 4 - Read from an AM2302 connected to GPIO pin #4')
sys.exit(1)
humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
----->hier sollte die Abfrage kommen <----
if humidity is not None and temperature is not None:
print('Temperatur={0:0.1f}*c __ Luftfeuchtigkeit={1:0.1f}%'.format(temperature, humidity))
else:
print('Failed to get reading. Try again!')
sys.exit(1)
nichts großes aber es tut was es soll, liest die Werte und kann diese ausgeben
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 21:15
von Keulenkarl
das Problem ist:
wenn ich eine Variable Deklariere z.B
temp = '{0:0.1f}'.format(temperature)
kann ich diese nicht für eine Abfrage verwenden
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 21:25
von Keulenkarl
Noch zu erwähnen ist das ich ein PHP script nutze um über shell_exec() die Werte auszugeben!
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 22:02
von Sirius3
Einen String mit einer Zahl zu vergleichen ist auch schwierig. Warum benutzt Du nicht `temperature` direkt?
Aber am besten, nachdem Du geprüft hast, ob das Lesen überhaupt funktioniert hat.
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 22:16
von Keulenkarl
Hm sorry wenn ich so doof frage. Kannst du mir sagen, wie demnach mein Code geschrieben sein müsste?
Lg Keuli
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 22:55
von Sirius3
Hab ich Dir das nicht schon? Was fehlt Dir denn noch?
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Mittwoch 21. November 2018, 23:18
von Keulenkarl
Achso, ich mein ich weis nicht genau wie meine If Abfrage dann geschrieben sein muss
Und sry nochmal, es ist sicherlich ganz leicht, aber ich bin noch relativ frisch bei Python =( und es ist alles noch ein wenig verwirrend
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Donnerstag 22. November 2018, 15:53
von sls
Hier:
Hierbei wird temperature zu einem String, es ist aber in Python nicht möglich einen Integer mit einem String zu vergleichen.
Wenn temperature z.B. ein Float oder Integer ist, kannst du temperature direkt mit einer Zahl vergleichen:
Beispiel:
Code: Alles auswählen
>>> temperature = 20.5
>>> temperature < 30
True
>>> temperature > 18.5
True
>>> temperature < "20"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'float' and 'str'
>>>
Re: Temperatur von DHT22 in Variable speichern
Verfasst: Freitag 23. November 2018, 17:00
von Keulenkarl
Ich wollte mich dafür natürlich noch rechtherzlich bedanken, als ich dann nochmal deinen post durchgelesen hatte, hat es dann klick gemacht
Manchmal hilft es sich nochmal in Ruhe alles durchzulesen
Danke =)