Dr. Arne JachensDr. Arne Jachens

Heating and Ventilation Control

HvcSetGPIO

Keine Erläuterungen gefunden.

import  RPi.GPIO as  GPIO


class HvcSetGPIO:
    
    def  __init__(self):
        """
        Connect your actuators to specific GPIO pins.
        """
        #Relays  links nach rechts: 27, 22, 23, 24, 25
        self.ActPins={}
        self.ActPins['solar'] = 25 #22
        self.ActPins['oven']  = 24 #23
        self.ActPins['pump']  = 23
        #self.ActPins['serv']  = 24
        #self.ActPins['door']  = 25

        
    def  setMode(self):
        """
        At startup, you need to set the mode once.
        """
        #Setup GPIO
        GPIO.setmode(GPIO.BCM)
        message = "HvcSetGPIO.setMode: \n"
        actuators={}
        for  pin in self.ActPins:
            GPIO.setup(self.ActPins[pin], GPIO.OUT)
            message = message + "GPIO "+pin+":\t"+str(self.ActPins[pin])+"\t=> OUT \n"
            actuators[pin] = 0

        return actuators,message

    
    def  set(self,actuators):
        """
        Set the GPIO according to the actuator settings,
        The actuators are expected to be in the range [0:1],
        where values > 0.5 are assumed to be ON.
        """
        for  pin in self.ActPins:
            if actuators[pin]>0.0:
                GPIO.output(self.ActPins[pin], GPIO.HIGH)
            else:
                GPIO.output(self.ActPins[pin], GPIO.LOW)
        return

"""
For testing, toggle some relays and hear the click.
Secondly, the status of all actuator pins is reported.
"""
if __name__ == "__main__":
    import  time
    myIO = HvcSetGPIO()
    actuators,message = myIO.setMode()
    print(message)
    actuators['oven']=1
    #myIO.set(actuators)
    time.sleep(1)
    actuators['oven']=0
    #myIO.set(actuators)
    #check status of GPIOS
    for  pin in myIO.ActPins:
        GPIO.output(myIO.ActPins[pin], GPIO.HIGH)
        foo = GPIO.input(myIO.ActPins[pin])
        print(pin,foo)
        
    time.sleep(2)
    for  pin in myIO.ActPins:
        GPIO.output(myIO.ActPins[pin], GPIO.LOW)
        foo = GPIO.input(myIO.ActPins[pin])
        print(pin,foo)

Index of Library

1EnergyManager.py
2HvcControl.py
3HvcHCSR04ultrasonic.py
4HvcLightControl.py
5HvcMain.py
6HvcMotorDriver.py
7HvcMqtt.py
8HvcOneWire.py
9HvcOperationMode.py
10HvcRaw2phys.py
11HvcReadSPI.py
12HvcSendI2C.py
13HvcSetGPIO.py
14HvcTables.py
15HvcWeather.py
16HvcWifiRelay.py
17makeDoc.py

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.