Après avoir
fait un agrandissement de notre maison, prévu pour faire entrer la chaleur du
soleil, et éviter les pertes en installant du triple vitrage (plus un toit
débordant pour ne pas chauffer lété), il était temps de relier le plancher
solaire de cette partie (18 m2) à quelque chose
Cette pièce est ouverte sur le
salon assez grand, il nétait donc pas question den faire le chauffage
principal, mais un apport pour plus de confort. La dalle du plancher est
épaisse (15cm minimum) pour profiter dun déphasage et dune inertie thermique
importante.
Après beaucoup
de calculs, de conseils sur le forum, le point faible était de ne pas pouvoir
disposer une très grande surface de panneaux.
Lidée était
donc de bénéficier
·
En hiver dun apport de chauffage et dun préchauffage deau
chaude sanitaire
·
En été de 100% du chauffage de lECS
·
Dune belle expérience dinstallation
Beaucoup de possibilité et de plans ont été imaginés, avec des
vannes 3 voies, avec des échangeurs
. Et finalement jaimais bien celui la car
il était simple, et donc sans doute plus facile à piloter.
Le matériel commandé chez solaire distribution
a coûté environ 4000 en tout.
A noter que je nai pas commandé de régulation
car je voulais tester la possibilité de réguler avec un arduino (voir plus
loin)
Pour la régulation, jai voulu tester larduino. Ma principale
motivation était le nombre de possibilités pour un coût si modique, et en
particulier la possibilité denregistrer les mesures pour analyser le
fonctionnement.et donc jai fait des tests avant de commander le matériel
solaire pour voir si ça avait lair de fonctionner.
·
Réalisation de programmes simples, puis essai de mesure de
température dune sonde, puis de plusieurs sondes
ça marche.
·
Essais denregistrer des mesures sur une carte SD
Et donc je me suis lancé. La seule incertitude était de savoir
si je pourrais controler les circulateurs avec larduino
la réponse est oui,
ça marche du premier coup sur la sortie analogique, on peut régler la vitesse
du circulateur pour maintenir une différence de 10 degrès entre les capteurs et
le ballon en ajustant sa vitesse.
Je vous partage le programme de larduino :
// pins utilisés:
// ethernet shield: digital 10 11 12 13 et le 4
// lecture des températures One wire: 9
// Circulateur capteur: 5
// Circulateur Plancher: 6
// Sonde luminosité: A0
// Bibliothèques pour lecture des températures one wire
#include <Wire.h>
#include <OneWire.h>
// Bibliothèque pour la carte SD de l'ethernet shield
#include <SD.h>
// Bibliothèque pour l'horloge
#include "RTClib.h"
/* Create an rtc object pour lecture date et heure*/
RTC_DS1307 RTC; //Classe RTC_DS1307
// DS18S20 Temperature chip i/o
OneWire ds(9); // on pin 10
// adresse MAC des capteurs de température
byte addr3[8] = {0x28, 0xFF, 0x24, 0xCF, 0x00, 0x16, 0x03, 0xA8}; // Sonde
plancher
//byte addr1[8] = {0x28, 0xFF, 0x25, 0xD0, 0x00, 0x16, 0x03, 0xC7};
byte addr1[8] = {0x28, 0xFF, 0x20, 0x6D, 0x02, 0x16, 0x03, 0x56}; // Sonde
capteur
byte addr2[8] = {0x28, 0xFF, 0x90, 0x49, 0x01, 0x16, 0x03, 0x83}; // Sonde ballon
bas
byte addr4[8] = {0x28, 0xFF, 0xF0, 0x7F, 0x02, 0x16, 0x03, 0x37}; // Sonde
ballon haut
int SignBit = 0;
File fichierSD;
// Variables globales
float Delta_Capteur = 0;
float Temp_Capteur = 0;
float Temp_Ballon_Bas = 0;
float Delta_Plancher = 0;
float Temp_Ballon_Haut = 0;
float Temp_Plancher = 0;
int Vitesse_Cir_Capteur = 0;
int Vitesse_Cir_Plancher = 120;
int Lumiere = 0;
boolean Pompe_Capteur = 0;
boolean Pompe_Plancher = 0;
boolean Mode_Hors_Gel = 0;
boolean Mode_Hiver = 0;
void setup()
{
Serial.begin(9600);
// demarre le shield SD
if (!SD.begin(4)) {
Serial.println("Carte SD: Erreur
de demarrage!");
return;
}
Serial.println("Carte SD
prete.");
//Démarrage de la librairie RTClib.h
RTC.begin();
//Si RTC ne fonctionne pas
RTC.adjust(DateTime(__DATE__,
__TIME__));
if (! RTC.isrunning()) {
Serial.println("RTC ne
fonctionne pas !");
//Met à l'heure à date à laquelle le
sketch est compilé
RTC.adjust(DateTime(__DATE__,
__TIME__));
//RTC.adjust(DateTime(2016, 11, 12,
22, 43, 0));
}
}
void loop()
{ Temp_Capteur = tc_100(addr1);
Temp_Ballon_Bas = tc_100(addr2);
Delta_Capteur = Temp_Capteur - Temp_Ballon_Bas;
Temp_Plancher = tc_100(addr3);
Temp_Ballon_Haut = tc_100(addr4);
Delta_Plancher = Temp_Ballon_Haut - Temp_Plancher;
Lumiere = analogRead(A0);
Vitesse_Cir_Capteur =
map(Delta_Capteur, 0, 25, 0, 255); //
vitesse proportionelle à delta capteur
// le capteur fonctionne à partir dun delta
de 7°C, et sarrête quand le delta est inférieur à 4°C
if (Delta_Capteur >= 7) {
analogWrite(5,Vitesse_Cir_Capteur);
Pompe_Capteur = 1;
}
if (Delta_Capteur <= 4) {
digitalWrite(5,LOW);
Pompe_Capteur = 0;
}
// la circulation se met en marche si la
température est en dessous de -3 °C (sécurité)
if (Temp_Capteur <= -3) {
Vitesse_Cir_Capteur = 120;
analogWrite(5,Vitesse_Cir_Capteur);
Pompe_Capteur = 1;
Mode_Hors_Gel = 1;
}
if (Mode_Hors_Gel and (Temp_Capteur
>= 1)) {
digitalWrite(5,LOW);
Pompe_Capteur = 0;
Mode_Hors_Gel = 0;
}
if (Delta_Plancher >= 5) {
analogWrite(6,Vitesse_Cir_Plancher);
Pompe_Plancher = 1;
}
if (Delta_Plancher <= 3) {
digitalWrite(6,LOW);
Pompe_Plancher = 0;
}
//Ouverture du fichier
fichierSD =
SD.open("arduino.txt", FILE_WRITE);
//écriture dans le fichier
if(fichierSD) {
//Ecriture sur carte SD
//Affichage de l'heure
DateTime now = RTC.now();
fichierSD.print(now.day(), DEC);
fichierSD.print('/');
fichierSD.print(now.month(), DEC);
fichierSD.print('/');
fichierSD.print(now.year(),
DEC);
fichierSD.print(";");
fichierSD.print(now.hour(), DEC);
fichierSD.print(':');
fichierSD.print(now.minute(), DEC);
fichierSD.print(':');
fichierSD.print(now.second(), DEC);
fichierSD.print(";");
fichierSD.print(Lumiere);
fichierSD.print(";");
fichierSD.print(Temp_Capteur);
fichierSD.print(";");
fichierSD.print(Temp_Ballon_Bas);
fichierSD.print(";");
fichierSD.print(Delta_Capteur);
fichierSD.print(";");
fichierSD.print(Pompe_Capteur);
fichierSD.print(";");
fichierSD.print(Vitesse_Cir_Capteur);
fichierSD.print(";");
fichierSD.print(Temp_Plancher);
fichierSD.print(";");
fichierSD.print(Temp_Ballon_Haut);
fichierSD.print(";");
fichierSD.print(Delta_Plancher);
fichierSD.print(";");
fichierSD.println(Pompe_Plancher);
fichierSD.close();
} else {
// if the file didn't open, print an
error:
Serial.println("erreur ouverture
fichier arduino.txt");
}
Serial.print("Lum ");
Serial.print(Lumiere);
Serial.print("Cap ");
Serial.print(Temp_Capteur);
Serial.print(";");
Serial.print(Temp_Ballon_Bas);
Serial.print(";");
Serial.print(Delta_Capteur);
Serial.print(";");
Serial.print(Pompe_Capteur);
Serial.print(";");
Serial.print(Vitesse_Cir_Capteur);
Serial.print("; Plancher
");
Serial.print(Temp_Plancher);
Serial.print(";");
Serial.print(Temp_Ballon_Haut);
Serial.print(";");
Serial.print(Delta_Plancher);
Serial.print(";");
Serial.println(Pompe_Plancher);
delay(16000); // attend 16s ce qui
fait 20s par cycle plus tard, jai passé à 30 s le cycle
}
// Fonction de recherche de la température (dont on connait l'adresse)
float tc_100(byte* addr){
int HighByte, LowByte, TReading;
float TReadingf=0.0;
byte data[12];
byte i;
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion,
with parasite power on at the end
delay(1000); // maybe 750ms is enough,
maybe not
// we might do a ds.depower() here, but
the reset will take care of it.
ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for ( i = 0; i < 9; i++) { // we
need 9 bytes
data[i] = ds.read();
}
data[1]=data[1] & B10000111; // met
à 0 les bits de signes inutiles
LowByte = data[0];
HighByte = data[1];
TReading = (HighByte << 8) +
LowByte;
TReadingf=float(TReading)*6.25/100;
return (TReadingf) ; // multiply by (100
* 0.0625) or 6.25
}
Les sondes de température utilisées sont des DS18S20 dun coût de
quelques euros le lot de 5. Autre avantage : on peut en brancher plusieurs
sur une même entrée de larduino (et donc ne tirer quun fil), étant donné que chacune
a une adresse différente.
Un test que jai réalisé : la connexion avec lethernet
shield en mode serveur pour consulter les températures sur internet quand on
est pas à la maison. Pas très stable, pas facile à faire, jai donc abandonné
loption, lobjectif étant de ne pas compliquer les choses.
Après linstallation et le fonctionnement, quelques remarques
sur les choix et linstallation :
Les circuits se mettent rapidement en thermo siphon, même sil y
a peu de différence de hauteur : cest en remarquant que le sol du
plancher solaire était chaud au mois de juin que je men suis rendu compte. Il
faut prévoir de couper le circuit pour éviter cela (ouf, javais mis une vanne
ça tombe bien).
De même, lhiver quand il fait froid la nuit, la circulation se
fait légèrement avec les panneaux (pas besoin de sécurité antigel). La mesure
des températures ma prouvé que cétait assez faible, mais un anti retour à
clapet aurait pu être ajouté.
Si cétait à
refaire, incontestablement, 2 à 4 m2 de panneaux supplémentaires seraient
bienvenus.
Une autre petite source dinconfort est due à la longueur de
tuyau supplémentaire en été quand le cumulus électrique nest plus en
fonctionnement : leau chaude met plus de temps pour arriver au robinet.
Après un an de
fonctionnement, voici lexemple dune journée dhiver, alors que nous étions
absents (le plancher est à 12°C). Ne prenez pas en compte les heures, lhorloge
sest décalée dans le temps, le soleil ne sest pas levé à 5h !
On voit que le circulateur des panneaux a fonctionné pendant 5h
environ, avec une température maximale de 35°C
Le plancher (3m3 de béton) est passé de 12.25 à 16°C, et les 800litres
du ballon de 18 à 21°C, ce qui est normal, lhiver, le programme privilégie le
chauffage du plancher, pour que leau dans le ballon ne monte pas en
température et que les panneaux aient un meilleur rendement.
Le bilan est correct pour 8m2 de panneaux, mais cette journée
nest pas représentative, un grand soleil toute la journée au mois de décembre
est plutôt rare dans la région.
Voici cette fois une journée de fin du mois de juin. Journée pas
100% ensoleillée mais largement suffisante pour maintenir la température de
leau chaude sanitaire. On voit bien lamplitude de mesure de luminosité
caractéristique du mois de juin.
Le circulateur des panneaux nest pas continu, car des passages
nuageux en cours de journée empêchent la chauffe complète.
Les diminutions de la courbe bleue correspondent à une douche.
Ca montre la bonne stratification du ballon, car seule la température du bas du
ballon diminue, le haut restant chaud. De même, quand les panneaux chauffent,
le bas du ballon chauffe en premier, puis le haut.
Malgré une journée globalement belle mais pas parfaite, leau
dans le ballon chauffe denviron 10°C Rappelons que les deux grand panneaux
étant verticaux (90 degrés), ils chauffent peu à cette saison, leau dans les
panneaux ne dépasse pas les 75°C, ce qui est bien pour ne pas endommager
lantigel. Malgré tout, si cétait à refaire, un petit angle permettrait de
chauffer à peine plus le ballon (vers 70°C), ce qui serait préférable.
Linstallation a été dimensionnée pour ces journées :
pouvoir bénéficier dun complément de chauffage à mi saison.
Les panneaux chauffent efficacement pendant plus de 7 heures, cest
une belle journée ensoleillée.
·
Le plancher passe de 20 à 27 °C ce qui est très bien. Dans tous
les cas, une consigne limite la chauffe dans le plancher à 28°C. Ensuite, cest
leau du ballon qui monte en température.
·
Leau chaude sanitaire dépasse les 30 degrés, et donc le cumulus
électrique recoit de leau préchauffée à 30°C au lieu de 13°C environ..
Le résultat est que le soir à cette saison, le plancher est
souvent légèrement tiède (jamais chaud), ce qui est très confortable.
Après déjà
trois ans de fonctionnement, il ny a pas eu de panne ou de grosse intervention
à déplorer.
Lété la pompe
du plancher solaire ne fonctionne pas (logique). Au redémarrage à lautomne
suivant, elle sétait grippée un peu mais est finalement repartie. Il faut
prévoir un petit démarrage de temps en temps pour éviter ce désagrément.
Je savais que
la quantité de panneau serait un peu juste mais je navais pas dautre
possibilité. Je voulais éviter la surchauffe en été, jai alors fait les
calculs daprès le livre de lAPPER, et la réalité a alors confirmé les calculs
avec une grande précision. Il ny a pas de surchauffe en été, étant donné que
les deux grands panneaux sont verticaux. Il pourrait même y avoir un peu plus
de chaleur, le ballon nayant pas dépassé les 75°C.
A mi saison,
cest le fonctionnement optimal, cest ce que je recherchais et cest vraiment
le mieux. Une journée ensoleillée de mars - avril est très efficace. Le soir
(avec un déphasage de plusieurs heures), le sol est tiède (sachant que la
température au cur de la dalle est limité à 28°C). Le confort est intéressant.
En hiver au
mois de janvier
sans commentaire
il fait rarement très beau beau en ile de
France à cette saison, au mieux linstallation sert à préchauffer leau chaude
sanitaire de 10 à 25 °C, ce qui est mieux que rien mais pas très productif.
Linstallation
fait que lété, le cumulus électrique est court-circuité, et donc éteint. Cest
là ou jai pu mesurer exactement sur ma consommation le cout de maintien du
cumulus élecrtique à 60°C : 4 kW par jour en été, qui sont donc économisés
entre mai et octobre (sauf sil y a 4 jours sans soleil, dans ce cas je dois
repasser en électrique, mais cela arrive très rarement).
Concernant
larduino, je ne regrette pas le choix : la mesure des température sur une
carte SD ma permis de vérifier le fonctionnement, en particulier ce qui se
passait la nuit en hiver, et quand le plancher chauffait ou pas. Ca ma permis
de faire les courbes que vous avez vu plus haut. Toujours intéressant. Par
ailleurs, cest une vraie horloge : pas une panne, pas un souci, si
lélectricité se coupe il repart la seconde suivante.
Enfin, je
termine par un remerciement pour vos conseils sur le forum, et pour les
conseils de solaire distribution lors de lenvoi du devis, concernant le
matériel quil convenait de ne pas oublier.