REG_ARDUINO compteur
REGULATION POUR SYSTEME CHAUFFE EAU SOLAIRE

Page en évolution        m à j le 03/05/14

email

1) Cahier des Charges.
2) Matériel.
3) Logiciel.
4) Evolutions.




1. Cahier des Charges :
    Maintien à 65°C d'un ballon de 200L classique incorporant une résistance électrique.
    Enregistrement des données pour exploitation ultérieure.
    Gestion gel et surchauffe avec alarme.
    Possibilité de modification des consignes T-mini démarrage, T-max, Hystéresis, heure.

2. Matériel :
    Plateforme de prototypage ARDUINO
 
Arduino uno
Shield Deuligne + joystick
Shield memoire (Horloge DS1307 + sd-card)

uno
deuligne
memoire

    Capteurs de température DS18B20 sur bus onewire.
    Entrée flussostat sur contact ILS.
    Sorties commande électro-vannes et circulateurs sur optotriacs MOC3041 et triacs.
    Buzzer alarme surchauffe.
    Possibilité de commande manuelle en cas de défaillance de la regulation électronique.



        
//               ----------------- Gestion JOYSTICK -----------
/*  key = lcd.get_key();                // read the value from the sensor & convert into key press

  if (key != oldkey)                    // if keypress is detected
  {
    delay(50);        // wait for debounce time
    key = lcd.get_key();       // read the value from the sensor & convert into key press
    if (key != oldkey)               
    {           
      oldkey = key;
      if (key >=0){
        // set the cursor to column 0, line 1
        // (note: line 1 is the second row, since counting begins with 0):
        lcd.setCursor(0, 1);
        // print the key pressed:
        lcd.print(msgs[key]);
      }
    }
  }


Le joystick est utilisé pour les accès
au menu et validations.
  


Module heure :

             
//          -------------------  Fonction heure  ------------------ 
void Affich_heure(void)
{
      DateTime now = RTC.now();
     lcd.setCursor(10,1);     // Place cursor colone 10 ligne 2
     lcd.print(now.hour(), DEC);
     lcd.begin(12,1);          //positionne le curseur pour les : clignot
     flag = !flag;                // inverse flag
            //     delay(500);
      lcd.begin(13,1);         // curseur col 13 ligne 2
     if (flag == 1) {
     lcd.print(":");             // Affichage alternatif ":" à chaque cycle boucle
     }
     else {
     lcd.print(" ");             // Efface ":"
     }
     if (now.minute() < 10)
     {
       lcd.print("0");
     }  
     lcd.print(now.minute(), DEC);
     lcd.setCursor(0,1);
    // lcd.print(now.day(), DEC);   // Affiche jour Lign 2 col 0

}     //        *******************************



A titre d'exemple, routine simple d'affichage
sur LCD "Deuligne Snootlab".

Un petit sketch de mise à jour du DS1307
plus bas.



------------------------------


Les trois modules assemblés connectés à un capteur Dallas 18B20 permettent
d'afficher facilement  la température T1 =  21,19°C.
Sur la deuxième ligne on voit que le relevé a été fait le 17 courant à 18h02


appli











 tri

2014

simu2

Mise au point du logiciel grace aux simulateurs de températures.
Une version simple à 4 transistors chauffant les 4 sondes à a demande.
Une version plus sophistiquée gérée par Pic en bas, réalisée par un ami.
simu
La dernière version utilise pour la commande du menu
un encodeur rotatif avec contact central pour validation.
Il s'agit du bouton à droite du LCD
Ici à l'écran P0 = page 0, puis la date JJ/MM et l'heure.
Ligne inférieure : CS = Capt Sol, et BL = Ballon



    Module temperatures :


            
                                                    *** Liste des elements presents sur le bus 1-wire ***                       

Numero 1: 1 capteur 1-wire present avec code adresse 64 bits : 28 B9 44 9B 01 00 00 A7
Type : Capteur temperature DS18B20.
Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !
------------
Numero 2: 1 capteur 1-wire present avec code adresse 64 bits : 28 CB 00 A7 01 00 00 FD
Type : Capteur temperature DS18B20.
Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !
------------
2 capteur(s) detecte(s) sur ce bus 1-wire
**** Recherche terminee - fin de liste ****



Affichage
sur le serial moniteur de
l'IDE Arduino 0023



/*Ecrit et lit registres (RTC) DS1307 et affiche valeurs dans le moniteur
 *
 *Created by D. Sjunnesson 1scale1.com d.sjunnesson (at) 1scale1.com
 */

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>                 // written by  mattt on the Arduino forum and modified by D. Sjunnesson

void setup()
{
  Serial.begin(9600);

  RTC.stop();
  RTC.set(DS1307_SEC,1);        //set the seconds
  RTC.set(DS1307_MIN,34);      //set the minutes
  RTC.set(DS1307_HR,8);          //set the hours
  RTC.set(DS1307_DOW,1);      //set the day of the week
  RTC.set(DS1307_DATE,20);   //set the date
  RTC.set(DS1307_MTH,5);       //set the month
  RTC.set(DS1307_YR,13);         //set the year
  RTC.start();

}

void loop()
{

  Serial.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
  Serial.print(":");
  Serial.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
  Serial.print(":");
  Serial.print(RTC.get(DS1307_SEC,false));//read seconds
  Serial.print("      ");                 // some space for a more happy life
  Serial.print(RTC.get(DS1307_DATE,false));//read date
  Serial.print("/");
  Serial.print(RTC.get(DS1307_MTH,false));//read month
  Serial.print("/");
  Serial.print(RTC.get(DS1307_YR,false)); //read year
  Serial.println();

  delay(1000);

}







Mise à jour horloge DS1307 sur shield
memoire.
IDE Arduino 0023   20/5/13

A suivre !!!