Régulation de CO2 / pH automatique

Régulation de CO2 / pH automatique

Tryphon
Créé il y a 27 jours

Régulation de CO2 / pH automatique

Lorsque l'on a un aquarium planté, il est souvent (pour ne pas dire tout le temps) nécessaire d'apporter le CO2 nécessaire au bon développement des plantes. Un précédent article vous indique comment faire votre propre CO2 artisanal. Le problème (pour moi) est qu'il met difficile de régler le taux de CO2 injecté dans mon aquarium de 60L. D'autant plus que les plantes consomment plus de CO2 le jour que la nuit. Du coup, cela créé par mal de variations qui peuvent être dangereuses pour les poissons si elles sont mal maitrisées.

 

Par ailleurs, étant daltonien, il m'est très difficile de lire les tests de mesure du pH chimique ... de fait, je me suis orienté vers des solutions électroniques. 

En regardant sur internet, certaines solutions existent mais ce sont souvent des solutions pro et donc chère. Même si les solutions que j'ai trouvées le sont un peu aussi, elles restent plus abordables.

Ayant déjà une Domotique, je me suis orienté vers elle dans un premier temps.

Version 1 : Via Domotique

Dans cette version simplifiée et "minimaliste", je me suis servi de mon installation Domotique pour réguler le pH de l'Aquarium et donc du CO2.

Domotique

Ma Domotique est gérée par un Raspberry 3B+ (désormais sous Buster ; Buster est la version actuelle du système d'exploitation installé (Linux basé sur Debian / Raspbian) sur cette Raspberry), avec l'application Domoticz installée. (je ne détaille pas leur installation ; bien d'autres sites le fond déjà très bien).

Pour pouvoir communiquer avec les appareils domotique, j'utilise une Clé USB Aeotec Z-Wave, qui pilote l'ensemble des appareils.

A cela j'ai acheté une Fibaro Smart Implant qui va se charger de presque tout. Cette Smart Implant possède (c'est en partie configurable) :

Branchement sonde CO2 ph
Smart Implant
  • 2 Entrées Analogiques 0-10V
  • 2 Sorties de type contact secs, pouvant piloter des charges en 30Vdc/150mA max chacun.

Mais pour pouvoir fonctionner, il lui faut une alimentation continue entre 9Vdc et 30Vdc. De fait, j'ai acheté cette alimentation : Alimentation Secteur 12V 2A (ca laisse de la marge en terme de puissance pour alimenter la Smart Implant et tout ce qui sera nécessaire)

Ensuite pour la mesure du pH, j'ai acheté cette carte de conditionnement avec sa sonde pH :

Cette carte est bien pour débuter, et pas trop cher (tout est relatif), mais elle est très fragile et à la moindre erreur, elle grille, et il faut la remplacer :/ Par ailleurs, elle doit être alimentée en +5V, ce qui nécessite une carte adaptatrice : voici celle que j'avais achetée.

Par ailleurs, ATTENTION, quelque soit la sonde pH que vous achetiez, il ne faut jamais l'immerger complètement, ni même la laisser sous le capot de l'aquarium, car de la condensation va se faire, couler le long du fil et rentrer dans la sonde, et là ... elle est foutue ! (Enfin moi perso je n’ai jamais pu les récupérer ...)

D'autre part, le fabricant indique que la sonde livrée avec la carte de conditionnement n'est pas faite pour une immersion/utilisation continue. Et que si l'on souhaite le faire, il faut passer à la version Pro que voici : Version Pro (Wiki).

Seulement voilà, ce n’est pas le même encombrement ...

Maintenant, je vous recommande plus cette sonde, qui est plus spécialisée pour une utilisation plus intensive (mais plus chère, j'en conviens):

Pour la mesure de Température, j'ai pris une sonde DS18B20 étanche (on peut en connecter jusqu'à 6 sur la même Smart Implant, même si je n’en ai toujours utilisé qu’une):

Enfin, j'ai choisis une électrovanne 12Vdc afin d'éviter à commuter du 220Vac, et comme j'avais déjà du 12V, c'était niquel: 

Et voici comment connecter tout ça :

Branchement sonde CO2 ph
Branchement sonde pH, électrovanne, etc...

Il vous suffit ensuite de configurer la Smart Implant sous Domoticz et de faire un petit script en Blocky (plus simple) pour faire la régulation. A noter que sous Domoticz, il existe plusieurs types de « script ».

  • Blocky est une façon de créer des scripts de manière graphique. C’est donc plus simple, mais moins puissant.
  • Lua, est un langage textuel, souvent préféré car plus puissant, même s’il est plus difficile à appréhender au départ.

Voici un exemple de script Lua :

/home/pi/domoticz/scripts/lua/script_device_aquarium.lua
        
-- Script calculant le pH et le taux de CO2 de l'aquarium a partir d'un KH
-- ver 1.0
-- « Aquarium - Voltage » : Dispositif de la Smart Implant représentant la tension analogique numérisée 
-- « Sonde pH » : Dispositif virtuel représentant la valeur du pH
-- « Taux CO2 » : Dispositif virtuel représentant le taux de CO2 calculé 
-- 20/04/2020

commandArray = {}

-- Contrôle et Mesure du pH et CO2 
if(devicechanged['Aquarium - Voltage']) then        
  -- Parametre d'entree 
  dKH = 4
       
  -- Calcul de la valeur du pH 
  pH = tonumber(otherdevices_svalues['Aquarium - Voltage']) * 1.4 
  -- Test de vraisemblance 
  if(pH < 10 and pH > 5) then
    table.insert (commandArray, { ['UpdateDevice'] = string.format("%d|0|%.2f",otherdevices_idx['Sonde pH'],pH) } )
    
    -- Calcul de la valeur du CO2 
    CO2 = 3.0 * dKH * 10^(7.00 - pH) 
    table.insert (commandArray, { ['UpdateDevice'] = string.format("%d|Ø|%.2f",otherdevices_idx['Taux CO2'],CO2) } )
  end
end

return commandArray
        
      
/home/pi/domoticz/scripts/lua/script_device_regul.lua
        
commandArray = {}

-- Contrôle et Mesure du pH et CO2 
if(devicechanged['Aquarium - Voltage']) then        
  -- Parametre d'entree 
  dKH = 4
  -- Calcul de la valeur du pH 
  pH = tonumber(otherdevices_svalues['Aquarium - Voltage']) * 1.4 
  -- Régulation 
  if(pH < 6.7) then
    -- Arret de l'injection de CO2
    commandArray['Aquarium - STOR1']='Off'
  elseif(pH > 7) then
    -- Injection de CO2
    commandArray['Aquarium - STOR1']='On'       
  end
end

return commandArray
        
      

Version 2 : Autonome (+ Surveillance Domotique)

Pour cette deuxième version, j'ai voulu créer ma propre carte de conditionnement, mieux protégée contre les mauvaises manipulations, et que je puisse réparer.

D'autre part, je souhaitais que les connexions soient plus faciles et que la régulation soit plus autonome et indépendante de la Domotique tout en restant instrumentée par celle-ci.

Après une version "protytpe", j'ai réussi à corriger ses défauts (Mauvais choix initial de l'AOP d'en-tête qui n'avait pas une impédance d'entrée assez forte, et des alimentations non régulées).

Le schéma aurait pu être plus simple en supprimant les alimentations +/-5V, en supprimant l'AOP d'en-tête et en remplaçant l'ampli d'instrumentation par un autre ayant une impédance d'entrée suffisante, mais ce dernier n'étant plus approvisionnable en package PDIL, j'y ait renoncé.

En revanche, cette amélioration sera prise en compte dans la version 3 grâce à l'utilisation de composants CMS (composants montés en surface), qui permet aussi d’avoir une carte plus petite.

Les schémas et PCB ont été réalisés sous KiCAD, qui est un logiciel de conception électronique gratuit et vraiment bien conçu.

Schémas

Sonde pH à Régulation CO2 via Electrovanne
Sonde pH à Régulation CO2 via Electrovanne

PCB

PCB
PCB

Câblage

PCB
Câblage

Script d'affichage

/home/pi/domoticz/scripts/lua/display.lua
    
-- Script calculant le pH et le taux de CO2 de l'aquarium a partir d'un KH
-- ver 1.0
-- « Aquarium - Voltage » : Dispositif de la Smart Implant représentant la tension analogique numérisée 
-- « Sonde pH » : Dispositif virtuel représentant la valeur du pH
-- « Taux CO2 » : Dispositif virtuel représentant le taux de CO2 calculé 
-- 20/04/2020

commandArray = {}

-- Contrôle et Mesure du pH et CO2 
if(devicechanged['Aquarium - Voltage']) then        
  -- Parametre d'entree 
  dKH = 4
       
  -- Calcul de la valeur du pH 
  pH = tonumber(otherdevices_svalues['Aquarium - Voltage']) * 1.4 
  -- Test de vraisemblance 
  if(pH < 10 and pH > 5) then
    table.insert (commandArray, { ['UpdateDevice'] = string.format("%d|0|%.2f",otherdevices_idx['Sonde pH'],pH) } )
    
    -- Calcul de la valeur du CO2 
    CO2 = 3.0 * dKH * 10^(7.00 - pH) 
    table.insert (commandArray, { ['UpdateDevice'] = string.format("%d|Ø|%.2f",otherdevices_idx['Taux CO2'],CO2) } )
  end
end

return commandArray
    
  
N'hésitez pas à partager et à réagir !

Tryphon
Tryphon Créé il y a 27 jours
Comment réguler automatiquement le pH de son aquarium ?

L'utilisation d'une sonde et d'une éléctrovanne permet de réguler la diffusion de CO2 et de contrôler son pH automatiquement afin d'éviter, notamment, les acidoses.

Ceci peut vous intéresser

Voir les articles "tutoriels, diy & astuces"
Cet article peut constituer un point de vue propre à son auteur. Veillez à vérifier par vous même l'exactitude, la véracité ou la complétude des informations qui y apparaissent.

Aucun commentaire

Anonyme
Anonyme
Anonyme
Anonyme