Hamburger Hamburger

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)

python

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

php

1/HV_colorMap.php
2/HV_Admin_Login.php
3/HV_readOperationState.php
4/HV_setParameters.php
5/HV_config.php
6/EM_handleJSON.php
7/index.php
8/readFilenames.php
9/HV_restart.php
10/HV_moveGate.php
11/HV_showLog.php
12/HV_RollerShutter.php
13/EM_editParameter.php
14/HV_serviceLog.php
15/HV_H2Olevel.php
16/HV_TempCal.php
17/HV_Fronius.php
18/EM_plot.php
19/readNamedData.php
20/HV_composeH2Oplot.php
21/HVdoc.php
22/HV_showWeatherForecast.php
23/HV_showHouse.php

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