{"id":173,"date":"2021-12-27T18:06:41","date_gmt":"2021-12-27T17:06:41","guid":{"rendered":"http:\/\/ma-serre.org\/?page_id=173"},"modified":"2022-11-06T08:38:48","modified_gmt":"2022-11-06T07:38:48","slug":"circuit-energie","status":"publish","type":"page","link":"https:\/\/ma-serre.org\/index.php\/circuit-energie\/","title":{"rendered":"circuit \u00e9nergie"},"content":{"rendered":"\n<p><a href=\"https:\/\/ma-serre.org\/index.php\/comment\/\">retour<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">cahier des charges<\/h2>\n\n\n\n<p>Pour faire circuler l&rsquo;eau, il va nous falloir de l&rsquo;\u00e9nergie !<br>     &#8211; Je souhaite ne pas faire appel \u00e0 Monsieur EDF.<br>     &#8211; Id\u00e9alement, le fonctionnement doit \u00eatre automatis\u00e9.<br>     &#8211; la quantit\u00e9 d&rsquo;\u00e9nergie doit \u00eatre suffisante pour la \u00ab\u00a0vie\u00a0\u00bb de l&rsquo;eau (v. <a href=\"https:\/\/ma-serre.org\/index.php\/circuit-eau\/\">circuit de l&rsquo;eau<\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">mes choix :<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Je dispose d&rsquo;un panneau solaire de 210Wc ab\u00eem\u00e9 (il a re\u00e7u un choc), mais il fonctionne encore, bien que diminu\u00e9.<\/li><li>Je choisis de tout faire fonctionner en 12V, il me faut une batterie de ~50Wh. J&rsquo;ai r\u00e9cup\u00e9r\u00e9 une batterie de voiture, batterie de d\u00e9marrage&#8230; Mais ce n&rsquo;est pas une bonne id\u00e9e ! Celle-ci va se d\u00e9grader tr\u00e8s rapidement.<\/li><li>Je confie le travail de contr\u00f4le de charge \u00e0 un <a href=\"https:\/\/www.myshop-solaire.com\/regulateur-solaire-mppt-100-15-12-24v-victron-energy-_r_22_i_11.html\">Victron MPPT 100|15<\/a> (une r\u00e9f\u00e9rence en la mati\u00e8re). <br>Il fonctionne en 12V ou 24V, et peut accepter 1 ou 2 px solaires.<br><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" class=\"wp-image-326\" style=\"width: 150px;\" src=\"https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/bluesolar-charger-mppt-100-15_face_prd2.jpg\" alt=\"\" srcset=\"https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/bluesolar-charger-mppt-100-15_face_prd2.jpg 370w, https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/bluesolar-charger-mppt-100-15_face_prd2-300x300.jpg 300w, https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/bluesolar-charger-mppt-100-15_face_prd2-150x150.jpg 150w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/li><li>La pompe principale de relevage, doit pouvoir \u00ab\u00a0monter\u00a0\u00bb l&rsquo;eau \u00e0 plus de 4m de hauteur et avoir un d\u00e9bit important.<br>De pr\u00e9f\u00e9rence pour le silence de fonctionnement, c&rsquo;est une pompe immerg\u00e9e :<br><a href=\"https:\/\/www.manomano.fr\/p\/180w-dc12v-25m-ascenseur-debit-maximum-6m3-h-pompe-a-eau-submersible-energie-solaire-pompe-de-puits-profond-12v-12-v-34907297\">Pompe de puits profonds 12V 180W D\u00e9b.max 6m3\/h Hmax=45m<\/a><\/li><li>Les pompes auxiliaires pour la circulation de l&rsquo;eau en fond de bac, sont des petites pompes de faible consommation 12V, 0,6A (7,2W) 6L\/mn (360L\/h) :<br><a href=\"https:\/\/www.gotronic.fr\/art-pompe-6-l-pour-eau-pe3806-31551.htm\">Pompe 6 L pour eau PE3806<\/a><br>Il y en a 3 : 1 pour amener l&rsquo;eau et 2 pour la refouler. L&rsquo;id\u00e9e est d&rsquo;assurer que le vidage soit toujours plus rapide que le remplissage<\/li><li>Pour piloter le fonctionnement des pompes, je confie le job \u00e0 un tout petit contr\u00f4leur :<br><a href=\"https:\/\/shop.mchobby.be\/fr\/pybstick\/1830-pybstick-lite-26-micropython-et-arduino-3232100018303-garatronic.html\">PYBStick Lite 26<\/a><br>C&rsquo;est un micro-contr\u00f4leur tr\u00e8s peu on\u00e9reux qui se programme en Python,<br>programme python : v. en fin d&rsquo;article ou <a href=\"https:\/\/cloud.retzien.fr\/index.php\/s\/pEo82odxt3edYKp\">t\u00e9l\u00e9chargeable ici<\/a>.<\/li><li>Autres composants :<br>&#8211; r\u00e9gulateur de tension 5V : <a href=\"https:\/\/www.gotronic.fr\/art-regulateur-5-v-d24v50f5-25330.htm\">https:\/\/www.gotronic.fr\/art-regulateur-5-v-d24v50f5-25330.htm<\/a><br>&#8211; volt\/amp\u00e8re m\u00e8tre          : <a href=\"https:\/\/www.gotronic.fr\/art-module-volt-amperemetre-vam10010-28672.htm \">https:\/\/www.gotronic.fr\/art-module-volt-amperemetre-vam10010-28672.htm <\/a><br>&#8211; onduleur 220V (optionnel) : <a href=\"https:\/\/www.amazon.fr\/onduleur-12v-220v\/s?k=onduleur+12v+220v\">https:\/\/www.amazon.fr\/onduleur-12v-220v\/s?k=onduleur+12v+220v<\/a><br>  concernant l&rsquo;onduleur, comme il ne s&rsquo;agit pas d&rsquo;injecter le courant sur le secteur, un simple convertisseur sinuso\u00efdale pourra suffire \u00e0 faire fonctionner \u00e9pisodiquement un appareil en 230V, comme : une lampe, un outil, un chargeur, etc&#8230;<br>   Attention quand m\u00eame \u00e0 la consommation de l&rsquo;appareil.<br>   Attention aussi \u00e0 la forme (approchante) de la sinuso\u00efde cr\u00e9\u00e9e, qui peut ne pas convenir \u00e0 certains appareils.<br>Pour ce qui me concerne, j&rsquo;ai r\u00e9cup\u00e9rer un vieil onduleur pour PC (batterie HS).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1-1024x538.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"538\" src=\"https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1-1024x538.png\" alt=\"\" class=\"wp-image-345\" srcset=\"https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1-1024x538.png 1024w, https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1-300x158.png 300w, https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1-768x404.png 768w, https:\/\/ma-serre.org\/wp-content\/uploads\/2022\/09\/circuit-1.png 1115w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p><a href=\"https:\/\/ma-serre.org\/index.php\/comment\/\">retour<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Programme \u00ab\u00a0<a href=\"https:\/\/cloud.retzien.fr\/index.php\/s\/fmrzEt5PZMXzSTc\">main.py<\/a>\u00a0\u00bb (8Ko)<\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<pre class=\"wp-block-preformatted has-white-color has-medium-gray-background-color has-text-color has-background\">\"\"\"\nPYBstick 26 lite - Contr\u00f4le des pompes de circulation d'eau de la serre\n\t\tS.P. juin 2021 - v1 : version int\u00e9grant le contr\u00f4le de la pompe de relevage\n\t\tS.P. ao\u00fbt 2021 - v2 : version int\u00e9grant le contr\u00f4le de la pompe du bac \u00e0 mar\u00e9e\n\t\t\nLa pompe est d\u00e9clench\u00e9e p\u00e9riodiquement selon un cycle d\u00e9termin\u00e9 (r\u00e9glable par le programme),\nsous condition que la tension de batterie soit suffisante. (valeur de seuil r\u00e9glable par programme).\n - La sortie S12 est utilis\u00e9e pour fermer un relais 12v, via un 2N2222 en collecteur ouvert.\n - la sortie S18 est utilis\u00e9e pour piloter la pompe du bac \u00e0 mar\u00e9e via un 2N2222 en collecteur ouvert \n - La broche S19 est utilis\u00e9e en entr\u00e9e analogique pour lire une tension limit\u00e9e \u00e0 3v3 (r\u00e9glage par potentiom\u00e8tre)repr\u00e9sentant 16v sur la batterie.\ntableau des \u00e9quivalences :\nbat.\t  mesure\tanal.\n14,5\t: 2,999\t\t3712\n14\t: 2,898\t\t3584\n13,5\t: 2,801\t\t3456\n13\t: 2,701\t\t3328 seuil de la pompe principale\n12,5\t: 2,592\t\t3200\t\n12\t: 2,486\t\t3072 seuil de la pompe du bac \u00e0 mar\u00e9e\n11,5\t: 2,393\t\t2944\n11\t: 2,288\t\t2816\n- Le poussoir \"user switch\" du PYBstick est utilis\u00e9 pour agir manuellement sur la pompe de relevage.\n- Les LEDs\n : verte:  allum\u00e9e pour indiquer le fonctionnement normal du contr\u00f4leur.\n : orange: pour indiquer le fonctionnement de la pompe\n : rouge:  indique que la pompe ne d\u00e9marre pas \u00e0 cause de la tension trop basse de la batterie \n\"\"\"\nimport pyb\n#import os, sys\n#import csv\nfrom pyb import LED, Switch\nfrom pyb import ADC\nfrom pyb import delay\n#from pwm import *\nimport time\nfrom time import sleep\n\nledRouge   = LED(1)\nledVert    = LED(2)\nledOrange  = LED(3)\nledBleu    = LED(4)\nbouton  = Switch()\n\n# D\u00e9claration et initialisation des broches\n# Contr\u00f4le d'un relais branch\u00e9 sur le S12\nRELAY_PIN = pyb.Pin.board.S12\t\t\t\t\t\t\t\t\t\t# broche 12\nrelais    = pyb.Pin( RELAY_PIN, pyb.Pin.OUT_PP )\nrelais.low()\n# Contr\u00f4le de la pompe du bac \u00e0 mar\u00e9e sur le S18\nPMPBM_PIN = pyb.Pin.board.S18\t\t\t\t\t\t\t\t\t\t# broche 18\npmpbm     = pyb.Pin( PMPBM_PIN, pyb.Pin.OUT_PP )\t# d\u00e9claration de la S18\npmpbm.low()\n# 1\u00e8re lecture de la tension de batterie sur S19\ntensionBat = pyb.ADC(pyb.Pin.board.S19)\t\t\t\t\t\t# broche 19\n\t# valeur de la tension de batterie [de 0 \u00e0 3v3max (c.\u00e0 d. : 0 \u00e0 16vmax r\u00e9els)] converti en 2^12(4096)\n\n######## les r\u00e9glages sont ici ########\n# les d\u00e9lais exprim\u00e9s en ms\nPMPREL_TIME \t  =  900000 # (15mn)dur\u00e9e de fonctionnement de la pompe de relevage\nPMPBM_TIME        = 1500000 # (25mn)dur\u00e9e de fonctionnement de la pompe du bac \u00e0 mar\u00e9e \nCYCLE_TIME_PMPBM  = 1800000 # (30mn)dur\u00e9e du cycle de la pompe du bac \u00e0 mar\u00e9e \nCYCLE_TIME_COURT  = 1800000 # si la tension de batterie est &gt; SEUIL, on utilise ce temps d'attente \nCYCLE_TIME_LONG   = 3600000 # (60mn)dur\u00e9e totale du cycle\n# les seuils de tension\n# 128 repr\u00e9sente ~ 1\/2v - la chute de tension est d'~1v quand la pompe fonctionne\nSEUIL_PMP   = 3328 # ~13v0 - valeur en dessous de laquelle la pompe ne d\u00e9marrera pas\nSEUIL_PMPBM = 3123 # ~12v2 - tension en dessous de laquelle la pompe du bac \u00e0 mar\u00e9e ne d\u00e9marre pas\n# je positionne l'hyst\u00e9r\u00e9sis \u00e0 ~1v2, soit : 310\nHYSTERESIS  = 310 # ~1v2 - hyst\u00e9r\u00e9sis pour \u00e9viter le \"pompage\" de la pompe ;)\n# si la pompe d\u00e9marre, 12v4 seront n\u00e9cessaire \u00e0 son fonctionnement pour ce cycle\n\n#------------ proc\u00e9dures -------------\ndef RelayOn(pON):\t# contr\u00f4le de la pompe\n\tconsigne = SEUIL_PMP-HYSTERESIS*(pON) # l'hyst\u00e9r\u00e9sis est retir\u00e9 si la pompe fonctionne\n\tif tensionBat.read() &gt; consigne:      # v\u00e9rifie la tension de batterie\n\t\trelais.high()\n\t\tledOrange.on()\t# pompe en route\n\t\tpmpON = 1\t# indicateur\n\telse:\n\t\tledRouge.on()\t# indique que la pompe n'a pas d\u00e9marr\u00e9e \u00e0 cause de la val. trop basse de la tension de bat.\n\t\t\ndef RelayOff(pON):\n\trelais.low()\t\t# pompe arr\u00eat\u00e9e\n\tpmpON = 0\t\t# indicateur\n\tledOrange.off()\n\tledRouge.off()\n\n#------------ Initialisation -------------\nTcycle_on  = CYCLE_TIME_COURT\t# au d\u00e9marrage on attend un d\u00e9lai court\nPmpRel_on = 0  \t\t\t# Temps d'activation pompe \u00e0 \"0\", pompe arr\u00eat\u00e9e\npmpON = 0\t\t\t# la pompe est r\u00e9put\u00e9e arr\u00eat\u00e9e au d\u00e9marrage du programme\nPmpBM_on  = PMPBM_TIME\t\t# La pompe du bac \u00e0 mar\u00e9e est d\u00e9marr\u00e9e\npmpBM_CYCLE = CYCLE_TIME_PMPBM\t# son propre cycle est lanc\u00e9\nconsigne = SEUIL_PMP\t\t# la consigne initialis\u00e9e \u00e0 la valeur du seuil\n\nledVert.on()\t# voyant ledVert allum\u00e9 : fonctionnement OK\netatBouton = False\t\t# initialisation du bouton\n\n#------------ PROGRAMME PRINCIPAL ------------\n\t\t\t\t\t\t\t\t#--------------------------#\nwhile True:\t# BOUCLE DE FONCTIONNEMENT #\n\t\t\t\t\t\t\t\t#--------------------------#\n# Gestion du bouton\n\tif bouton.value():\t# lecture du bouton\n\t\tif not(etatBouton):\t  # activation ou arr\u00eat de la pompe par appui du bouton\n\t\t\tetatBouton = True # \u00e9vite les boucles sur le bouton\n\t\t\tif PmpRel_on == 0: # si la pompe est arr\u00eat\u00e9e on proc\u00e8de au d\u00e9marrage\n\t\t\t\tPmpRel_on = PMPREL_TIME\t# d\u00e9marrage de la pompe en donnant la dur\u00e9e de fonctionnement\n\t\t\t\tif tensionBat.read() &gt; consigne: # v\u00e9rification de la tension de batterie\n\t\t\t\t\tTcycle_on  = CYCLE_TIME_COURT # tension de batterie suffisante : d\u00e9marrage du cycle en mode court\n\t\t\t\telse:\n\t\t\t\t\tTcycle_on  = CYCLE_TIME_LONG\t# tension de batterie faible : d\u00e9marrage du cycle en mode long\n\t\t\t\tconsigne = SEUIL_PMP-HYSTERESIS*(pmpON)\n\t\t\t\tprint( 'consigne    : ', consigne)\n\t\t\t\tprint( 'tension bat.: ', tensionBat.read() )\n\t\t\telse:\n\t\t\t\tPmpRel_on = 0 # sinon arr\u00eat de la pompe (le cycle continu normalement)\n\t\t\t\tprint( 'consigne    : ', consigne) \n\t\t\t\tprint( 'tension bat.: ', tensionBat.read() )\n\telse:\n\t\tetatBouton = False # r\u00e9-initialisation du bouton\n\t\t\n# Contr\u00f4le de la pompe de relevage\n\tif PmpRel_on &gt; 0: # la pompe fonctionne\n\t\tRelayOn(pmpON)\n\telse:\n\t\tRelayOff(pmpON)\t# la pompe est arr\u00eat\u00e9e\n\t\n# Contr\u00f4le de la pompe du bac \u00e0 mar\u00e9e\n\tif PmpBM_on &gt; 0:\t# la pompe fonctionne\n\t\tpmpbm.high()\t# \n\t\tledBleu.on()\n\telse:\n\t\tpmpbm.low()\t# la pompe est arr\u00eat\u00e9e\n\t\tledBleu.off()   # Contr\u00f4le du d\u00e9lai de cycle\n\tif Tcycle_on &lt;= 0:\t# le cycle pr\u00e9c\u00e9dent est termin\u00e9, on en recommence un autre\n\t\tPmpRel_on = PMPREL_TIME\t# d\u00e9marrage de la pompe de relevage en d\u00e9but de cycle\n\t\tif tensionBat.read() &gt; consigne: # v\u00e9rification de la tension de batterie\n\t\t\tTcycle_on = CYCLE_TIME_COURT # tension de batterie suffisante : d\u00e9marrage du cycle en mode court\n\t\telse:\n\t\t\tTcycle_on = CYCLE_TIME_LONG # tension de batterie faible : d\u00e9marrage du cycle en mode long\n   \n# d\u00e9comptage des temps de cycle \n\tTcycle_on = Tcycle_on - 50 # d\u00e9comptage du temps de cycle\n\tif Tcycle_on &lt;= 0:\n\t\tTcycle_on = 0\n\tPmpRel_on = PmpRel_on - 50 # d\u00e9comptage temps de fonctionnement de la pompe\n\tif PmpRel_on &lt;= 0:\n\t\tPmpRel_on = 0\n\t\t\n\tpmpBM_CYCLE = pmpBM_CYCLE -50 # d\u00e9comptage du temps de cycle du bac \u00e0 mar\u00e9e\n\tif pmpBM_CYCLE &lt;= 0:\n\t\tpmpBM_CYCLE = CYCLE_TIME_PMPBM # r\u00e9-initialisation du compteur\n\t\tif tensionBat.read() &gt; SEUIL_PMPBM: # re-d\u00e9marrage de la pompe si tension suffisante\n\t\t\tPmpBM_on  = PMPBM_TIME\n\tPmpBM_on = PmpBM_on - 50 # d\u00e9comptage temps de fonctionnement de la pompe du bac \u00e0 mar\u00e9e\n\tif PmpBM_on &lt;= 0:\n\t\tPmpBM_on = 0 # d\u00e9lais de la boucle de programme\n\tdelay( 50 )\t# attente de 50ms avant bouclage du pg\n# FIN de PROGRAMME\n\n<\/pre>\n<\/div><\/div>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>retour cahier des charges Pour faire circuler l&rsquo;eau, il va nous falloir de l&rsquo;\u00e9nergie ! &#8211; Je souhaite ne pas faire appel \u00e0 Monsieur EDF. &#8211; Id\u00e9alement, le fonctionnement doit \u00eatre automatis\u00e9. &#8211; la quantit\u00e9 d&rsquo;\u00e9nergie doit \u00eatre suffisante pour &hellip; <a href=\"https:\/\/ma-serre.org\/index.php\/circuit-energie\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-173","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/pages\/173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/comments?post=173"}],"version-history":[{"count":10,"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/pages\/173\/revisions"}],"predecessor-version":[{"id":545,"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/pages\/173\/revisions\/545"}],"wp:attachment":[{"href":"https:\/\/ma-serre.org\/index.php\/wp-json\/wp\/v2\/media?parent=173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}