Par facilité, j'ai refait un petit montage avec afficheur LCD, module RTC, capteur T/H et antenne DCF77.
Chaque module/fonction a été testé et fonctionne.
L’ensemble fonctionne et affiche toutes les infos sur le LCD.
La réception chez moi a l'interieur est très mauvaise ( 45 minutes pour avoir une trame valide )
voici mon code.
#include <dht11.h>
#define DHT11PIN 2 // broche DATA -> broche 2
dht11 DHT11;
#include <Wire.h> //librairie déjà sur arduino
#include <LiquidCrystal_I2C.h> //pour télécharger la librairie: croquis - include library - manage libraries - LiquidCrystal_I2C.h de Frank de Brabander
#include <RTClib.h> //librairie à télécharger en ZIP sur https://github.com/jcw/rtclib
const uint8_t PIN_DCF77 = 3;
#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args) write(args);
#else
#define printByte(args) print(args,BYTE);
#endif
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0};
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27,16,2); // Adresse du LCD 0x27 avec 16 colonnes et 2 lignes
void setup()
{
lcd.init(); // initialisation du LCD
lcd.backlight();
lcd.print("Initialising..."); //afficher un message sur l'afficheur LCD
//lcd.createChar(2, clock);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(2010,1,1,12,0,0)); //Ajuster la clock avec l'heure et la date de l'ordinateur
}
void loop()
{ DHT11.read(DHT11PIN);
lcd.clear(); //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
DateTime now = RTC.now();
lcd.printByte(2);
lcd.print(" ");
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.setCursor(11, 0);
lcd.print('H');
lcd.print(':');
lcd.setCursor(14, 0);
lcd.print(DHT11.humidity, DEC);
lcd.setCursor(0, 1);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.setCursor(11, 1);
lcd.print('T');
lcd.print(':');
lcd.setCursor(14, 1);
lcd.print(DHT11.temperature, DEC);
delay(1000);
bool trame_decodee = decodeurDCF77.traiterSignal(digitalRead(PIN_DCF77), millis());
int annee = decodeurDCF77.annee();
int mois = decodeurDCF77.mois();
int jour = decodeurDCF77.jour();
int heure = decodeurDCF77.heure();
int minutes = decodeurDCF77.minutes();
if (trame_decodee) {
RTC.adjust(DateTime(annee,mois,jour,heure,minutes,0));
}
}
La partie DCF77 est a la fin :
bool trame_decodee = decodeurDCF77.traiterSignal(digitalRead(PIN_DCF77), millis());
int annee = decodeurDCF77.annee();
int mois = decodeurDCF77.mois();
int jour = decodeurDCF77.jour();
int heure = decodeurDCF77.heure();
int minutes = decodeurDCF77.minutes();
if (trame_decodee) {
RTC.adjust(DateTime(annee,mois,jour,heure,minutes,0));
}
J'ai voulu modifier la librairie avec notepad mais si je laisse le fichier modifié la compilation plante.
Que faut il utiliser pour modifier une librairie.
Merci