Création installation automatisé(Problème suppression condensateur) voir P.2

Bonjour,

J'ai pour projet, d'automatisé une installation, commande d'électrovanne, mesure de température, hygrométrie,etc...

Ce projet consistera à changer l'eau de plusieurs bacs automatiquement, ouverture d'électrovannes pour vider puis d'une pompe pour remplir.

Ils seront commandé par des capteur de niveau.

Mais tout d'abord, je souhaite automatisé la production d'eau (osmose inverse) via des capteurs de niveau.
Fonction: Mémorisation des périodes de commutations, et si possible, envoi d'un sms à ce moment (je ne refuse pas d'info à ce niveau)

Mais avant d'aller plus loin, j'ai déjà(...) un problème:

Mon horloge ne fonctionne pas après l'extinction de l'alimentation.
(Elle se remet à zéro)

Sinon, elle fonctionne correctement(affichage sur lcd) tant que je ne l'ai pas débrancher de l'usb.
Petit détail qui à son importance, la pile devient assez chaude quand je débranche l'alim, comme si la pile alimentait également le lcd :cold_sweat: , résultat, les piles se vites en quelque minute.

Voici les codes, le premier pour configurer l'heure une première et unique fois

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

void setup () {
  Serial.begin(57600);
#ifdef AVR
  Wire.begin();
#else
  Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
  rtc.begin();

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
    DateTime now = rtc.now();
    
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
    
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);
    
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
    
    Serial.println();
    delay(3000);
}

Le second qui affiche le tout sur un lcd:

/************************************************************
 Horloge Arduino
 
 Horloge simple avec un Arduino, un module breakout 
 RTC DS1307 et un afficheur LCD.
 
 Branchements du breakout RTC DS1307:
 Gnd --> GND
 Vcc --> 5 V
 Sda --> analog pin A4
 Scl --> analog pin A5
  
 Branchements de l'afficheur LCD:
 LCD RS pin --> digital pin 12
 LCD Enable pin  --> digital pin 11
 LCD D4 pin  --> digital pin 5
 LCD D5 pin  --> digital pin 4
 LCD D6 pin  --> digital pin 3
 LCD D7 pin  --> digital pin 2
 LCD R/W pin  --> ground
 
http://electroniqueamateur.blogspot.ca/2013/06/une-horloge-pour-votre-arduino-real.html
 
 ***************************************************/
 
#include <LiquidCrystal.h>
#include <Wire.h>
#include <RTClib.h>
 
 
RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup() {
  Wire.begin();
  RTC.begin();
  lcd.begin(16, 2);
  // following line sets the RTC to the date & time this sketch was compiled
  
  //RTC.adjust(DateTime(__DATE__, __TIME__));
}
 
void loop() {
  DateTime now = RTC.now();
  
  // l'heure sur la premiêre ligne du LCD
  lcd.setCursor(4, 0);
  lcd.print(now.hour());
  lcd.print(":");
  if (now.minute() < 10) {
    lcd.print("0");
  }
  lcd.print(now.minute());
  lcd.print(":");
  if (now.second() < 10) {
    lcd.print("0");
  }
  lcd.print(now.second());
  
  
  // la date sur la deuxième ligne du LCD
  lcd.setCursor(2, 1); 
  lcd.print(now.day()); 
  lcd.print(" "); 
 
  switch (now.month()) {
  case 1:
    lcd.print("janvier");
    break;
  case 2:
    lcd.print("fevrier");
    break;
  case 3:
    lcd.print("mars");
    break;
  case 4:
    lcd.print("avril");
    break;
  case 5:
    lcd.print("mai");
    break;
  case 6:
    lcd.print("juin");
    break;
  case 7:
    lcd.print("juillet");
    break;
  case 8:
    lcd.print("aout");
    break;
  case 9:
    lcd.print("septembre");
    break;
  case 10:
    lcd.print("octobre");
    break;
  case 11:
    lcd.print("novembre");
    break;
  case 12:
    lcd.print("decembre");
    break;
  }
  lcd.print(" "); 
  lcd.print(now.year()); 
  delay(1000);
  lcd.clear();
}

Je précise que je débute totalement dans cette univers, même si, du fait de mes études, je touche un "petit peu" à l'informatique.

Merci

Asthix:
Bonjour,
Mais avant d'aller plus loin, j'ai déjà(...) un problème:

Mon horloge ne fonctionne pas après l'extinction de l'alimentation.
(Elle se remet à zéro)

Sinon, elle fonctionne correctement(affichage sur lcd) tant que je ne l'ai pas débrancher de l'usb.
Petit détail qui à son importance, la pile devient assez chaude quand je débranche l'alim, comme si la pile alimentait également le lcd :cold_sweat: , résultat, les piles se vites en quelque minute.

On pourrait penser à un problème de connexion d'après les symptômes. Un schéma (ou un dessin) de ta configuration serait une aide au diagnostic.

Idem fdufnews, vu les symptômes ça ressemble plus à un problème matériel que logiciel.

Alors, pour les branchements:

Gnd --> GND
Vcc --> 5 V
Sda --> SDA
Scl --> SCL

Branchements de l'afficheur LCD:
LVD VDD--> +5v
LCD VSS --> Masse
LCD V0 pin --> Sortie du potentiomètre
LCD RS pin --> digital pin 12
LCD Enable pin --> digital pin 11
LCD D4 pin --> digital pin 5
LCD D5 pin --> digital pin 4
LCD D6 pin --> digital pin 3
LCD D7 pin --> digital pin 2
LCD R/W pin --> ground

Quel module RTC utilises-tu?
Il me semble me souvenir que quelqu'un avait parlé à un moment de modules avec un problème sur la batterie. Le module pouvait fonctionner soit avec une batterie (et donc utiliser un circuit de charge), soit avec une pile. Et il fallait configurer (matériellement) la carte correctement.

Alors c'est un modèle pas très cher acheter sur ebay (pas de lien d'après les règles...)

Mais en voici la description:

Brand new and high quality.
This is the DS1307 Real Time Clock developed by one of our designer waiman.
The module comes fully assembled
The DS1307 is accessed via the I2C protocol.
Two wire I2C interface.
Hour:Minutes : Seconds AM/PM.
Day Month, Date - Year.
DS1307 based RTC without LIR2032 battery
1Hz output pin.
56 Bytes of Non-volatile memory available to user.
Size:2.9cm x 2.6cm - 1.14inch x 1.02inch.

J'ai mis une pile CR2032, alors que le module à l'air d'être utiliser avec une LIR2032?
L'accu essaye peut-être alors à ce "charger"?

Oui, il est très probable que le module essaie de charger ta pile, qui n'est pas faite pour...

Asthix:
J'ai mis une pile CR2032, alors que le module à l'air d'être utiliser avec une LIR2032?
L'accu essaye peut-être alors à ce "charger"?

LIR2032 c'est une batterie au lithium au format d'une pile CR2032.
Donc si tu mets une pile, elle reçoit un courant de charge et ça elle doit pas aimer.
Si tu laisses la pile il va falloir désactiver le circuit de charge. Ou alors il faut monter un accu LIR2032

J'ai commandé des LIR2032 et ouaah c'est pas le même prix que les CR2032 :fearful:

Comment désactiver le circuit de charge?

Bonsoir,

Asthix:
Comment désactiver le circuit de charge?

As-tu le schéma de ta carte ?

icare:
As-tu le schéma de ta carte ?

Je n'ai que cela à disposition: Arduino I2C RTC DS1307 AT24C32 Real Time Clock Module For AVR ARM PIC SMD | eBay

Mais je pense que cette manipulation serait irréversible?

Re,

Asthix:
Je n'ai que cela à disposition: Arduino I2C RTC DS1307 AT24C32 Real Time Clock Module For AVR ARM PIC SMD | eBay
Mais je pense que cette manipulation serait irréversible?

Ce n'est pas une opération irréversible - tout est une question de soins.
Tu ne disposes pas grand chose d'un point de vue schéma. Il va falloir regarder de près le CI et de reconstituer le schéma.
En général sur ce type de montage, le circuit de charge est constitué d'une résistance en série avec une diode .
Dans ton cas, il suffirait de déssouder la diode D1 pour supprimer le circuit de charge (à vérifier sur ce CI)
@+

Yep, je vais essayer ça alors, je vous fait confiance :grin:

C'est bien D1 qu'il faut supprimer. J'ai une carte identique qui traîne dans un coin sur mon bureau.
La diode est placée entre Vcc et la batterie avec une résistance de limitation.
La diode (ou une équivalente) pourra toujours être replacée un jour si tu veux utiliser une batterie.

Bonsoir,

je donne des nouvelle:

En supprimant juste la diode D1, la pile arrête bien de chauffer...mais ça ne fonctionne toujours pas...

Le problème doit venir du programme, j'utilise le premier pour "set" l'heure(même si je peux me contenter du second) et le second pour l'affichage.

J'ai essayer d'utiliser uniquement le second en supprimant les "//" pour décommenter la ligne, l'envoyer dans l'arduino, et la decommenter puis la réenvoyer, mais ça ne marche pas après le débranchement du cable.

Asthix:
En supprimant juste la diode D1, la pile arrête bien de chauffer...mais ça ne fonctionne toujours pas...

Ouais mais bon, on ne peut pas dire que le pile est été ménagée dans tes premiers essais.
Est-elle toujours vivante???
Quelle tension à ses bornes lorsque la carte n'est pas connectée à l'USB?

Salut,

Si c'est l'horloge que je pense, il faut faire un peu plus que supprimer la diode.

Bonsoir,

alors, j'ai reçu ma LIR2032, j'ai ressoudé(dans le bon sens, la diode D1), j'ai testé encore une fois...mais ça ne marche toujours pas...

Je commence à désespéré, c'est censé être une chose simple, alors que ça ne marche même pas =(

Mesure entre vbat et gnd si tu as une tension

Je viens de trouver!!!

Merci à vous, j'ai remarqué, que lors de mes mesures, pour tenir le modules, j'appuyai la pile, et elle devenait alors très chaude,et...j'ai enlevé la pile, et qu'est ce que je vois, une petite languette, relié au plus, SOUS(borne-) de la batterie... et donc, en appuyant dessus, ça fait un court-circuit(Aiie).

J'ai donc appuyé très fort sur cette languette pour la plié, et maintenant, ça marche!!!

Je peux donc commencer à me lancer dans le programme qui fera:

Commande ouverture d'electrovanne(Vidange de 5 minute avant pour nettoyer les filtre, puis l'ont peu commencer la filtration)
Enregistrement de la date et heure sur une carte SD(rajout plus tard, envoi SMS ou envoi sur le NAS )
Fermeture des electrovanne grace au flotteur de niveau
Enregistrement des données encore une fois
Et enfin, vidange une dernière fois.

Le cycle recommencera un capteur de niveau atteint

Vous auriez des conseils niveau programmation, fonction qui pourrait m'être utile?

Je débute encore, donc je ferai très certainement des erreurs :grin:

Encore merci pour tout!