Quantcast
Viewing all articles
Browse latest Browse all 5493

Français • Re: gpio c++

merci

donc j'ai ajouter des nouvelles fonctions pour alleger les plus lourdes :

je vais mettre des commentaires ne vous inquieter pas Image may be NSFW.
Clik here to view.
;)

Code:

#/usr/bin/python3 # -*- coding:UTF-8 -*# Allows camelCase# pylint: disable=C0301# pylint: disable=C0103# pylint: disable=E1101import timeimport RPi.GPIO as GPIO # Ajouter la gestion des GPIO# mode GPIOGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)# les Configurations des Sorties RelaisrelaiAutoEteHiver = 26relaiComp = 5relaiV4V = 6relaiVentUnitExt = 13relaiVitesseVentExt = 16relaiVentUnitInt = 19relaiVitesseVentInt = 20GPIO.setup(relaiAutoEteHiver,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiComp,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiV4V,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVentUnitExt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVitesseVentExt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVentUnitInt,GPIO.OUT, initial = GPIO.HIGH)GPIO.setup(relaiVitesseVentInt,GPIO.OUT, initial = GPIO.HIGH)# les Configurations des Entrées ThermostatspinThermostats = 17GPIO.setup(pinThermostats,GPIO.IN)# les Consignes de TemperaturesconsigneExt = 14.0 # Consigne temperature de l'automatique 13,5°C // pour test 23.5consigneCa = 25.0consigneVentExtFr = 25.0consigneVentExtCh = 5.0consigneVentIntFr = 23.0consigneVentIntCh = 23.0consigneDemarageVentUnitIntCh = 35.0consigneDegCh = 5.0consigneFinDegCh = 12.5consigneDegFr = -3.0consigneFinDegFr = 15.0# les Temporisationsmillis = lambda: int(round(time.time()))tempoComp = 20departTempoComp = millis()tempoDegCh = 20departTempoDegCh = millis()tempoV4VDeg = 20departTempoV4VDeg = millis()tempoCompDeg = 10departTempoCompDeg = millis()tempoDegNatCh = 30departTempoDegNatCh = millis()tempoDegElec = 15departTempoDegElec = millis()tempoEgouttage = 15departTempoEgouttage = millis()tempoFinDegElec = 10departTempoFinDegElec = millis()tempoV4V = 20departTempoV4V = millis()# Lecture température DS18B20def lireFichier(emplacement):    fichTemp = open(emplacement)    contenu = fichTemp.read()    fichTemp.close()    return contenu# Recuperation temperature DS18B20def recupTemp(contenuFich):    temperature = float(contenuFich)    temperature = temperature / 1000    return temperature# les Variableschauffage = FalsedegivrageCh = FalsetempFinDegCh = Falsefroid = FalsedegivrageFr = Falsecanicule = False# Mise a jour Tempos au demarragedef majTempos():    print("---majTempos---")    global departTempoComp, departTempoDegCh ,departTempoV4V ,departTempoV4VDeg    global departTempoDegNatCh, departTempoDegElec, departTempoCompDeg    global departTempoFinDegElec, departTempoEgouttage    departTempoComp = millis()    departTempoDegCh = millis()    departTempoV4VDeg = millis()    departTempoCompDeg = millis()    departTempoDegNatCh = millis()    departTempoDegElec = millis()    departTempoFinDegElec = millis()    departTempoV4V = millis()    departTempoEgouttage = millis()# Fonction été hiver "Automatique"def autoMode():    print("---autoMode---")    global froid, canicule ,chauffage    if temperatureExt < consigneExt:        chauffage = True    elif temperatureExt < consigneCa:        froid = True    else:        canicule = True# le Mode Chauffagedef modeChauffage():    print("---modeChauffage---")    global degivrageCh, departTempoDegNatCh, departTempoDegCh, departTempoV4VDeg    if etatThermostats == 0 and degivrageCh is False:        GPIO.output(relaiVentUnitExt, GPIO.LOW)        ventilChauffage()        if millis() > (departTempoComp + tempoComp):            GPIO.output(relaiComp, GPIO.LOW)            print("!! COMPRESSEUR ON !!")            if millis() > (departTempoDegCh + tempoDegCh):                degivrageCh = True            else:                departTempoV4VDeg = millis()                departTempoDegNatCh = millis()        else:            departTempoDegCh = millis()    else:        if degivrageCh is False:            arret()        else:            GPIO.output(relaiComp, GPIO.HIGH)            GPIO.output(relaiVentUnitExt, GPIO.HIGH)            GPIO.output(relaiVitesseVentExt, GPIO.HIGH)            GPIO.output(relaiVentUnitInt, GPIO.HIGH)            GPIO.output(relaiVitesseVentInt, GPIO.HIGH)            if temperatureUnitExt < consigneDegCh:                degivrageElectric()            else:                degivrageNaturel()# la Ventilationdef ventilChauffage():    print("---ventilChauffage---")    if temperatureUnitExt < consigneVentExtCh:        GPIO.output(relaiVitesseVentExt, GPIO.LOW)        print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!")    else:        GPIO.output(relaiVitesseVentExt, GPIO.HIGH)        print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!")    if temperatureEchangeurInt > consigneDemarageVentUnitIntCh:        GPIO.output(relaiVentUnitInt, GPIO.LOW)        if temperatureUnitInt > consigneVentIntCh:            GPIO.output(relaiVitesseVentInt, GPIO.HIGH)            print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!")        else:            GPIO.output(relaiVitesseVentInt, GPIO.LOW)            print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# le Degivrage Natureldef degivrageNaturel():    print("---degivrageNaturel---")    global departTempoEgouttage, degivrageCh    if millis() > (departTempoDegNatCh + tempoDegNatCh):        GPIO.output(relaiVentUnitExt, GPIO.LOW)        GPIO.output(relaiVitesseVentExt, GPIO.LOW)        print("!! EGOUTTAGE NATUREL !!")        if millis() > (departTempoEgouttage + tempoEgouttage):            GPIO.output(relaiVentUnitExt, GPIO.HIGH)            GPIO.output(relaiVitesseVentExt, GPIO.HIGH)            degivrageCh = False            finDegivrage()    else:        departTempoEgouttage = millis()        print("!! DEGIVRAGE NATUREL !!")# le Degivrage Electriquedef degivrageElectric():    print("---degivrageElectric---")    global departTempoCompDeg, departTempoDegElec, departTempoEgouttage, departTempoFinDegElec, degivrageCh, chauffage    if millis() > (departTempoV4VDeg + tempoV4VDeg):        GPIO.output(relaiV4V, GPIO.LOW)        print("!! V4V ON !!")        if millis() > (departTempoCompDeg + tempoCompDeg):            GPIO.output(relaiComp, GPIO.LOW)            print("!! COMPRESSEUR ON !!")            if temperatureEchangeurExt > consigneFinDegCh or millis() > (departTempoDegElec + tempoDegElec):                GPIO.output(relaiComp, GPIO.HIGH)                GPIO.output(relaiV4V, GPIO.HIGH)                if millis() > (departTempoEgouttage + tempoEgouttage):                    GPIO.output(relaiVentUnitExt, GPIO.LOW)                    GPIO.output(relaiVitesseVentExt, GPIO.LOW)                    print("!! EGOUTTAGE ELECTRIC !!")                    if millis() > (departTempoFinDegElec + tempoFinDegElec):                        GPIO.output(relaiVentUnitExt, GPIO.HIGH)                        GPIO.output(relaiVitesseVentExt, GPIO.HIGH)                        degivrageCh = False                        finDegivrage()                else:                    departTempoFinDegElec = millis()            else:                departTempoEgouttage = millis()                print("!! DEGIVRAGE ELECTRIC !!")        else:            departTempoDegElec = millis()    else:        departTempoCompDeg = millis()# le Mode Froiddef modeFroid():    print("---modeFroid---")    global departTempoComp, degivrageFr, froid    if etatThermostats == 0 and degivrageFr is False:        GPIO.output(relaiVentUnitExt, GPIO.LOW)        GPIO.output(relaiVentUnitInt, GPIO.LOW)        ventilFroid()        if millis() > (departTempoV4V + tempoV4V):            GPIO.output(relaiV4V, GPIO.LOW)            print("!! V4V ON !!")            if millis() > (departTempoComp + tempoComp):                GPIO.output(relaiComp, GPIO.LOW)                print("!! COMPRESSEUR ON !!")                if temperatureEchangeurInt < consigneDegFr:                    GPIO.output(relaiComp, GPIO.HIGH)                    GPIO.output(relaiV4V, GPIO.HIGH)                    GPIO.output(relaiVentUnitExt, GPIO.HIGH)                    GPIO.output(relaiVitesseVentExt, GPIO.HIGH)                    GPIO.output(relaiVentUnitInt, GPIO.HIGH)                    GPIO.output(relaiVitesseVentInt, GPIO.HIGH)                    degivrageFr = True        else:            departTempoComp = millis()    else:        if degivrageFr is False:            froid = False            arret()        else:            degivrageFroid()            print("!! DEGIVRAGE FROID !!")# ventilation Froiddef ventilFroid():    print("---ventilfroid---")    if temperatureUnitExt > consigneVentExtFr:        GPIO.output(relaiVitesseVentExt, GPIO.LOW)        print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!")    else:        GPIO.output(relaiVitesseVentExt, GPIO.HIGH)        print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!")    if temperatureUnitInt < consigneVentIntFr:        GPIO.output(relaiVitesseVentInt, GPIO.HIGH)        print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!")    else:        GPIO.output(relaiVitesseVentInt, GPIO.LOW)        print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# le Degivrage Froiddef degivrageFroid():    print("---degivrageFroid---")    global departTempoEgouttage, degivrageFr, froid, canicule    if temperatureEchangeurInt > consigneFinDegFr:        GPIO.output(relaiVentUnitInt, GPIO.LOW)        print("!! EGOUTTAGE FROID !!")        if millis() > (departTempoEgouttage + tempoEgouttage):            GPIO.output(relaiVentUnitInt, GPIO.HIGH)            degivrageFr = False            finDegivrage()            print("!! FIN DEGIVRAGE FROID !!")    else:        departTempoEgouttage = millis()# les Fin de Degivragedef finDegivrage():    print("---finDegivrage---")    global degivrageFr,degivrageCh, chauffage, froid, canicule    if degivrageFr is False or degivrageCh is False:        chauffage = False        froid = False        canicule = False        arret()# le Mode Caniculedef modeCanicule():    print("---modeCanicule---")    global departTempoComp, degivrageFr, canicule    ventilIntCanicule()    if temperatureUnitInt > consigneDelta and canicule and degivrageFr is False:        GPIO.output(relaiVentUnitExt, GPIO.LOW)        ventilExtCanicule()        if millis() > (departTempoV4V + tempoV4V):            GPIO.output(relaiV4V, GPIO.LOW)            print("!! V4V ON !!")            if millis() > (departTempoComp + tempoComp):                GPIO.output(relaiComp, GPIO.LOW)                print("!! COMPRESSEUR ON !!")                if temperatureEchangeurInt < consigneDegFr:                    GPIO.output(relaiComp, GPIO.HIGH)                    GPIO.output(relaiV4V, GPIO.HIGH)                    GPIO.output(relaiVentUnitExt, GPIO.HIGH)                    GPIO.output(relaiVitesseVentExt, GPIO.HIGH)                    GPIO.output(relaiVentUnitInt, GPIO.HIGH)                    GPIO.output(relaiVitesseVentInt, GPIO.HIGH)                    degivrageFr = True        else:            departTempoComp = millis()    else:        if degivrageFr is False:            canicule = False            arret()        else:            degivrageFroid()# ventilation Interieur Caniculedef ventilIntCanicule():    print("---ventilIntCanicule---")    if temperatureUnitInt < consigneVentIntFr:        GPIO.output(relaiVitesseVentInt, GPIO.HIGH)        print("!! VENTILATEUR INTERIEUR PETITE VITESSE !!")    else:        GPIO.output(relaiVitesseVentInt, GPIO.LOW)        print("!! VENTILATEUR INTERIEUR GRANDE VITESSE !!")# ventilation Exterieur Caniculedef ventilExtCanicule():    print("---ventilExtCanicule---")    if temperatureUnitExt > consigneVentExtFr:        GPIO.output(relaiVitesseVentExt, GPIO.LOW)        print("!! VENTILATEUR EXTERIEUR GRANDE VITESSE !!")    else:        GPIO.output(relaiVitesseVentExt, GPIO.HIGH)        print("!! VENTILATEUR EXTERIEUR PETITE VITESSE !!")# Arret Modesdef arret():    print("---arret---")    global departTempoComp, departTempoV4V    GPIO.output(relaiComp, GPIO.HIGH)    GPIO.output(relaiV4V, GPIO.HIGH)    GPIO.output(relaiVentUnitExt, GPIO.HIGH)    GPIO.output(relaiVitesseVentExt, GPIO.HIGH)    GPIO.output(relaiVentUnitInt, GPIO.HIGH)    GPIO.output(relaiVitesseVentInt, GPIO.HIGH)    departTempoComp = millis()    departTempoV4V = millis()# Mon codetry:    while True:        contenuFichExt = lireFichier("/sys/bus/w1/devices/28-3ce1e3801251/temperature")  # contenuFich la temperature        temperatureExt = recupTemp(contenuFichExt)        contenuFichUnitExt = lireFichier("/sys/bus/w1/devices/28-3ce1e3805e9f/temperature")        temperatureUnitExt = recupTemp(contenuFichUnitExt)        contenuFichEchangeurExt = lireFichier("/sys/bus/w1/devices/28-3ce1e38060ec/temperature")        temperatureEchangeurExt = recupTemp(contenuFichEchangeurExt)        contenuFichUnitInt = lireFichier("/sys/bus/w1/devices/28-3ce1e3809744/temperature")        temperatureUnitInt = recupTemp(contenuFichUnitInt)        contenuFichEchangeurInt = lireFichier("/sys/bus/w1/devices/28-3ce1e3804835/temperature")        temperatureEchangeurInt = recupTemp(contenuFichEchangeurInt)        consigneDelta = temperatureExt - 6        print("%s" %time.strftime("%d/%m/%y %H:%M"))        print("TempExt: " + str(temperatureExt)+"°C")        print("TempUnitExt: " + str(temperatureUnitExt)+"°C")        print("TempEchangeurExt: " + str(temperatureEchangeurExt)+"°C")        print("TempUnitInt: " + str(temperatureUnitInt)+"°C")        print("TempEchangeurInt: " + str(temperatureEchangeurInt))        print("TempDeltacanicule: " + str(consigneDelta))        print("chauffage: " + str(chauffage))        print("degivrageCH: " + str(degivrageCh))        print("froid: " + str(froid))        print("degivrageFr: " + str(degivrageFr))        print("canicule: " + str(canicule))        print("millis: " + str(millis()))        print("departTempoComp: " + str(departTempoComp))        print("departTempoV4V: " + str(departTempoV4V))        etatThermostats = GPIO.input(pinThermostats)        if chauffage is False and froid is False and canicule is False:            majTempos()            autoMode()        elif chauffage:            modeChauffage()            GPIO.output(relaiAutoEteHiver, GPIO.LOW)        elif froid:            modeFroid()            GPIO.output(relaiAutoEteHiver, GPIO.HIGH)        elif canicule:            modeCanicule()            GPIO.output(relaiVentUnitInt, GPIO.LOW)        else:            arret()except KeyboardInterrupt: # Appui ctrl+c pour effacer et eteindre tous les relais    print("Fin Programme !")    GPIO.cleanup()

Statistics: Posted by ludoraspberry — Sun Jan 21, 2024 8:46 am



Viewing all articles
Browse latest Browse all 5493

Trending Articles