IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Gestion de chauffe-eau et panneau solaire


Sujet :

Raspberry Pi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Gestion de chauffe-eau et panneau solaire
    Bonjour,
    je prends le risque de paraitre un peu "neuneu" mais je butte
    Je surveille la production de mes panneaux solaires en autoconsommation
    Mon chauffe eau est programmé par horloge a partir de 13h
    Mais dans la mâtiné il se peut qu'il y ai du soleil et pas de consommation
    J'ai crée un module électronique avec un petit panneau récupéré qui me donne le niveau d'ensoleillement
    j' ai 2 modules qui récupèrent les impulsions EDF et production panneau
    les trois modules me gèrent des relais
    Je dois donc gérer des contacts secs
    j'ai commencé un programme python sur Raspi qui me calcul la conso et la prod instantanées
    Si le module "soleil" me dit OK et que Conso est faible Je veux démarrer le CE
    Comment intégrer la variable Soleil dans la boucle qui gere la prod et la conso

    Ne riez pas SVP mais je débute en Raspi et python
    Merci à ceux qui s'intéresserons à mon problème
    Je joins le programme !!!

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    #!/usr/bin/env python3
    ########################################################################
    # Filename    : I2CLCD1602.py
    # Description : Use the LCD display data
    # Author      : freenove
    # modification: 2018/08/03
    ########################################################################
    from PCF8574 import PCF8574_GPIO
    from Adafruit_LCD1602 import Adafruit_CharLCD
    from time import sleep, strftime
    from datetime import datetime
    import RPi.GPIO as GPIO
    import time
    #from os import path
    import os
    GPIO.setmode(GPIO.BCM)
    jecris = 0
    LEDV = 17
    #LEDR = 13
    INPT = 18
    INPT2 = 23
    from datetime import datetime
    datetime.now()
    GPIO.setwarnings(False)
    appui = True
    tutu=0
    global tito
    tito=("eee")
    global titoa
    titoa=("eee")
    now = datetime.now()
    PCF8574_address = 0x27  # I2C address of the PCF8574 chip.
    PCF8574A_address = 0x3F  # I2C address of the PCF8574A chip.
    # Create PCF8574 GPIO adapter.
     
    if os.path.isfile('/media/pi/8Elise/MonFichier.txt') == False :
      f = open('/media/pi/8Elise/MonFichier.txt','w')
     
    def temp_ref1() :
       now = datetime.now()
       heure = now.strftime('%Y-%m-%d %H:%M:%S.%f')
       virgule()
       global secon_ref1
       secon_ref1 = (int (now.strftime('%M') )* 60)+(int (now.strftime('%S')))+tutu
       print (secon_ref1)
       print (heure)
    def temp_ref2() :
       now = datetime.now()
       heure = now.strftime('%Y-%m-%d %H:%M:%S.%f')
       virgule()
       global secon_ref2
       secon_ref2 = (int (now.strftime('%M') )* 60)+(int (now.strftime('%S')))+tutu
       print (secon_ref2)
       print (heure)
    def temp_ecoul1() :
     
       now = datetime.now()
     
       heure = now.strftime('%Y-%m-%d %H:%M:%S.%f')
       virgule()
     
       global seco1
     
       seco1 = (int (now.strftime('%M') )* 60)+(int (now.strftime('%S')))+tutu
     
       print (seco1)
       print (heure)
     
    def temp_ecoul2() :   
     
       now = datetime.now()
       heure = now.strftime('%Y-%m-%d %H:%M:%S.%f')
       virgule()
       global seco2
     
       print (seco2)
       print (heure)
     
    def jecri() :
        global f
        f = open('/media/pi/8Elise/MonFichier.txt','a')
     
        jecris = 0
        f.write(tito +'\n')   
     
     
    def virgule():
       now = datetime.now()
       toto = now.strftime('%S.%f')
       print(now.strftime('%S.%f'))
       titi = int( (toto[3:9]))
       global tutu
       tutu=titi/1000000
       print (tutu)
     
     
    def get_cpu_temp():     # get CPU temperature and store it into file "/sys/class/thermal/thermal_zone0/temp"
        tmp = open('/sys/class/thermal/thermal_zone0/temp')
        cpu = tmp.read()
        tmp.close()
        return '{:.2f}'.format( float(cpu)/1000 ) + ' C'
     
    def get_time_now():     # get system time
        return datetime.now().strftime('    %H:%M:%S')
     
    def loop():
        mcp.output(3,1)     # turn on LCD backlight
        lcd.begin(16,2)     # set number of LCD lines and columns
        global titoa
        while titoa == ('eee'):         
            #lcd.clear()
            lcd.setCursor(0,0)  # set cursor position
            lcd.message( 'CPU: ' + get_cpu_temp()+'    '+'\n' )# display CPU temperature
            lcd.message( get_time_now() )   # display the time
            sleep(1)
     
            lcd.setCursor(0,0)  # set cursor position
            #lcd.message( 'ce que je veux'+'\n' )# display CPU temperature
            lcd.message( str((3600/(seco1-secon_ref1)))+'\n' )# display CPU temperature
            lcd.message( get_time_now() )   # display the time
            sleep(1)
            titoa = ('rrr')
    def destroy():
        lcd.clear()
     
    virgule()
     
    secon_ref1 = (int (now.strftime('%M') )* 60)+(int (now.strftime('%S')))+tutu
    secon_ref2 = secon_ref1
    seco1      = secon_ref1
    seco2      = secon_ref1
     
    temp_ref1()
    temp_ref2()
    print('robert')
     
    jecri()
     
    GPIO.setup(LEDV, GPIO.OUT)
    GPIO.output(LEDV, False)
     
    GPIO.setup(INPT,  GPIO.IN, pull_up_down=GPIO.PUD_UP)
    GPIO.setup(INPT2, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    COMPTEUR1 = 0
    COMPTEUR2 = 0
     
    try:
        mcp = PCF8574_GPIO(PCF8574_address)
    except:
        try:
         mcp = PCF8574_GPIO(PCF8574A_address)
        except:
             print ('I2C Address Error !')
             exit(1)
     
    lcd = Adafruit_CharLCD(pin_rs=0, pin_e=2, pins_db=[4,5,6,7], GPIO=mcp)
     
    loop()
     
    while appui:
      if GPIO.input(INPT)==0:
     
         temp_ecoul1()
     
         COMPTEUR1 += 1
         print (str(COMPTEUR1)+" 1 ")
         print(" watt produit : " + str((3600/(seco1-secon_ref1))))
         f.write(" watt produit : "+str((3600/(seco1-secon_ref1)))+'\n')
         loop()
         time.sleep(0.36)
         temp_ref1()
         jecris += 1
         if (jecris > 10):
            f.close()
            jecri()
         titoa = ('eee')
     
         #appui = False
         #loop()
     
    # Create LCD, passing in MCP GPIO adapter.
     
     
      if GPIO.input(INPT2)==0:
         temp_ecoul2()
         COMPTEUR2 += 1
         print (str(COMPTEUR2) +" 2 ")
         print(" watt conso : "+str((3600/(seco2-secon_ref2))))
     
         tito =" watt conso : "+str(round(3600/(seco2-secon_ref2),2))
         time.sleep(0.36)
         temp_ref2()
         jecris +=1
         if (jecris >10):
     
            f.close()
            jecri()
         titoa = ('eee')
        # f.close()
    if __name__ == '__main__':
        print ('Program is starting ... ')
        try:
            loop()
        except KeyboardInterrupt:
            destroy()
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Salut,

    Citation Envoyé par lolodromeprovencale Voir le message
    Je surveille la production de mes panneaux solaires en autoconsommation
    Mon chauffe eau est programmé par horloge a partir de 13h
    Mais dans la mâtiné il se peut qu'il y ai du soleil et pas de consommation
    Ton projet est absolument GENIAL, mais c'est extrêmement compliqué!
    Ces jours-ci je m'instruis au maximum dans le domaine de l'énergie que je connais déjà assez bien
    Hier j'étais sur le Peak Shaving.
    Dans un monde parfait, on aurait remplacé les centrales nucléaires, les voitures à essence et installé au moins 10-20 fois plus de panneaux solaires (chiffre pour la Suisse).

    Le Peak Shaving est en relation directe avec l'autoconsommation et c'est un sujet qui va émerger dans 10 à 20 ans.
    Il faudra de plus en plus consommer en direct et stocker cette énergie photovoltaïque et même la transformer en gaz (pas trop de souci de CO2, car il n'y aura plus de voiture à essence ou de chauffage au mazout (il faut un peu rêver)).

    Pour la partie technique, je mettrais sur ton Raspberry Pi un simple capteur de lumière, voir mieux sur un ESP qui communiquerait avec ton Pi.

    Moi-même, j'ai 60m2 de panneaux PV et une pompe à chaleur géothermique ... et je n'ai rien fait avec mes Pi, ESP ou autres Arduino dans ce domaine.

    La raison est simple, mon tarif de reprise est équivalent au tarif de l'électricité de nuit. Donc il n'y a aucune raison de chauffer mon eau le jour et d'avoir à programmer un truc de fou, avec des nuages qui passe et repasse. De plus, mon eau sera chauffé la nuit avec ma pompe à chaleur géothermique (gain de 2/3).

    La seule chose que j'ai fait en hiver, simplement chauffer plus la maison entre 11:00 et 15:00 pour profiter au mieux de l'énergie des PV.
    Là j'ai fait des calculs et je chauffe moins la nuit (chauffage utilisant une sonde de température extérieur).
    Ce serait trop complexe d'attaquer mon chauffage et chauffe-eau, qui sont d'ailleurs connectés, avec des relais bricolés ou autres!

    Ma production PV (je suis en Suisse centrale) est entre 1/4 et 1/6 pour les mois de novembre à février.
    C'est là qu'on a des soucis et qu'on s'approvisionne en hiver en France (électricité nucléaire ... grr) et en Allemagne (centrale à charbon et au gaz ... grr grr ... grr: grincements de dents)

    Cool ton programme et bon succès.

  3. #3
    Membre actif
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Points : 236
    Points
    236
    Par défaut
    C'est dommage que tu n'ai pas eu de réponse car le sujet m'aurait intéressé aussi.
    As tu trouvé une solution ?
    Merci.
    Débusqueur de bug et chercheur en améliorations

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut,
    ça avance doucement
    Je reviendrai quand ce sera plus abouti
    @+

  5. #5
    Membre actif
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Points : 236
    Points
    236
    Par défaut
    OK. Merci pour ce que tu pourras partager.
    Débusqueur de bug et chercheur en améliorations

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Urbaniste
    Inscrit en
    Janvier 2022
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Janvier 2022
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Autre solution
    Bonjour,
    Ça fait un moment que je commence à réfléchir à l'autoconsommation. Mon contrat de rachat va avoir bientôt 20 ans. Et pour ne pas renvoyer la production dans le réseau publique, il faudra trouver une solution pour optimiser l'autoconsommation. J'ai une chaudière granulés qui produit également l'eau chaude sanitaire. Mon ballon tampon me permet d'y ajouter une résistance électrique. Je pense que la meilleure solution pour parvenir à diriger l'électricité vers cette résistance, c'est de pouvoir contrôler l'électricité que je pourrais envoyer vers le réseau. Et la meilleure solution, c'est un Anglais qui nous la donne. Il faut installer une pince ampermetrique sur la phase d'injection sur le réseau (au niveau du compteur). Pour résumer, si tu ne consommes pas tout, tu stockes de l'énergie en eau chaude. Qu'en pensez vous ?
    Il faudra voir comment articuler cela avec un raspberry.

  7. #7
    Membre actif
    Homme Profil pro
    électronicien
    Inscrit en
    Octobre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : électronicien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 225
    Points : 236
    Points
    236
    Débusqueur de bug et chercheur en améliorations

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Mon installation
    Merci a lampe rouge pour https://forum.arduino.cc/t/decodeur-tic-linky/512858 très intéressant mais je suis très RASPI
    Voir peut-être une reconversion !!! A étudier

    pour ma par je n'ai que 2 panneaux de 260 W mais je n'utilise pas tout Le compteur injection du linky me le dit

    pour limiter les pertes j'ai modifier la résistance du CE pour qu'il consomme plus longtemps 1600 W -> 400 W

    mais j'en donne quant même un peu

    j'ai mis sur la LED du linky une photo résistance pour mesurer la conso et je récupère les impulsions du compteur des panneaux
    Je voudrais comparer ces deux données pour démarrer ou non le CE

    j'ai eu un problème sur mon raspi J'ai du refaire tout mon câblage et je n'ai toujours pas fini

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Retraite
    Inscrit en
    Mars 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraite
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut j'ai trouvé un site qui fait tout
    bonjour

    je suis tombé sur ce site https://f1atb.fr/index.php/fr/

    C'est super bien expliqué et très facile à mettre en œuvre et il fait tout ce que je voulais
    MERCI à lui

    cordialement

Discussions similaires

  1. détection de poussiére sur panneau solaire
    Par ashoma dans le forum Images
    Réponses: 0
    Dernier message: 10/02/2018, 13h13
  2. Réponses: 4
    Dernier message: 04/02/2018, 12h32
  3. Gestion des accents dans le panneau de sortie "Problèmes"
    Par Invité dans le forum Qt Creator
    Réponses: 0
    Dernier message: 29/05/2014, 16h52
  4. le panneau solaire
    Par atam1987 dans le forum MATLAB
    Réponses: 1
    Dernier message: 23/12/2012, 22h49
  5. Panneau solaire sur simscape
    Par Delaready dans le forum Simulink
    Réponses: 2
    Dernier message: 15/07/2012, 22h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo