Python programering och temperaturer.
Hej
Mina kunskaper i programmering är väl lite begränsade men en del kan jag lista ut själv i alla fall.
Hittills har jag bara behövt brytt mig i 1 värde över eller under. Nu blir det 3st det är ju 2 för mycket för mig.
I korthet:
Jag vill att relä 1 drar i 10 sekunder när temperaturen gått över 20 grader och stoppa där för att vänta på nästkommande instruktioner.
Går temperaturen upp till 26 ska relä 1 dra i 20 sekunder till, sjunker däremot temperaturen under 17 ska relä 2 dra i 30sekunder i stället.
Sen ska allt vara beredd på 20, 26 eller 17 igen.
Har försökt tittat på https://www.w3schools.com/python/default.asp fått några idéer men vet inte riktigt hur jag ska göra ändå.
Det jag nu har lyckats åstadkomma gör ju att relä 1 drar 10sekunder för att sen konstatera att det är över 20 igen och gör om samma sak hela tiden.
import Adafruit_DHT
import RPi.GPIO as GPIO
import time
DHT_SENSOR = Adafruit_DHT.DHT22
DHT_PIN = 4
Relay_Ch1 = 26
Relay_Ch2 = 20
Relay_Ch3 = 21
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(Relay_Ch1,GPIO.OUT)
GPIO.setup(Relay_Ch2,GPIO.OUT)
GPIO.setup(Relay_Ch3,GPIO.OUT)
try:
while True:
humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
if humidity is not None and temperature is not None:
print("Temp={0:0.1f}C Fuktighet={1:0.1f}%".format(temperature, humidity))
if temperature > 20:
print("Över 20c,")
GPIO.output(Relay_Ch1,GPIO.LOW)
time.sleep(10.0)
GPIO.output(Relay_Ch1,GPIO.HIGH)
time.sleep(1.0)
if temperature > 26:
print("över 26")
GPIO.output(Relay_Ch1,GPIO.LOW)
time.sleep(20.0)
GPIO.output(Relay_Ch1,GPIO.HIGH)
time.sleep(1.0)
else:
print("inte över 26 än")
else:
print(" Ingen kontakt med Sensorn")
except:
print("except")
GPIO.cleanup()