Bonjour à tous,
Mon nouveau projet est le suivant:
J'ai un poêle à granulé qui est télécommandé.
La télécommande logiquement gère la mise en route et l'extinction en automatique.
MAIS car il y a toujours un MAIS, parfois l'extinction ne se fait pas quand la température de commande est atteinte et me consomme tout le stock de granulé même s'il fait 30°C.
La cause je pense : le signal de la télécommande est perturbé et je pense qu'elle ne l'envoie qu'une seule fois.
J'ai donc envie grâce à ce module :
http://www.ebay.fr/itm/315-433Mhz-WL-RF-Module-dEmetteur-Recepteur-Telecommande-Pr-Arduino-ARM-MCU-ASK-/331340939090?var=540534596068 et un arduino de "récupérer" l'information signal "extinction" quand elle est émise et ensuite de la renvoyer plusieurs fois si besoin pour que le poêle s'éteigne bien quand il le doit.
Ensuite avec un simple module BMP180, je voudrais remplacer cette télécommande mal foutu pour en plus pouvoir gérer à distance le poêle quand on est pas à la maison.
Première étape :
lire le signal pour pouvoir le reproduire.
avez-vous des pistes ? SVP
La fréquence 433 MHz est plus ou moins brouillée selon les lieux et horaires (car en usage libre).
Le BMP180 est un capteur de pression barométrique (ou alors il y a un autre BMP180 que je ne connais pas) je ne vois pas trop son utilité ici.
Vu le problème, j'opterais plutôt pour un thermostat qui coupe la chaudière avant 30°C et pas pour une télécommande.
Merci Christian R, mais le BMP te donne aussi la T° j'en ai un avec ma station météo arduino 
Ensuite le passage par cette première étape est pour "préparer" la seconde : un gestion à distance via internet pour connaître la T° la puissance du poêle en cours et pouvoir allumer ou éteindre 
Donc voilà pourquoi je souhaite passer via la télécommande pour ensuite la simuler via Arduino.
Didou76:
Première étape :
lire le signal pour pouvoir le reproduire.
avez-vous des pistes ? SVP
bonjour
tu peux déjà essayer :
- les exemples receive de la lib rc-switch avec un peu de bol le signbal sera reconnu et la suite sera simple
- un pseudo sniffer (code plus bas)
- utiliser un recepteur radio panoramique et faire un enregistrement (mais là c'est hors arduino)
enum PinAssignments {
encoderPinA = 2,
};
unsigned long Tparc=0; // temps de parcours du secteur
unsigned long Tact=0; // Test pour micros() en entrée
unsigned long ParcMax=3000000; // delai max en µs pour parcourir un secteur, si > arret theorique
unsigned long Tparct[256] ; // tableau de long stockant les valeurs micros() à chaque interruption
byte Eparc; // etat du 1er creneau
byte Iparc=0; // indice pour parcourir Tparct
boolean Sint=false; // passé par l'interruption oui/non
void setup() {
pinMode(encoderPinA, INPUT);
attachInterrupt(0, doEncoderA, CHANGE); // // encoder pin on interrupt 0 (pin 2)
Serial.begin(115200);
}
void loop(){
Eparc=digitalRead(encoderPinA); // recup de l'etat pin à l'init
if (Sint==true)
{
Serial.print(">"); // pour test d'entre/sortie de secteur ,indique passage par int0
Sint=false;
}
if (micros()-Tact > ParcMax) { // tempo en µsecondes pour test si pas eu d'interruption
Tact=micros();
Serial.println();
Serial.print("-- passe tempo --> ETATS=");
Serial.print(Iparc-1);
Serial.print(" ");
Serial.print(millis());
Serial.print("=millis ");
Serial.print("Etat init=");
Serial.print(Eparc);
Serial.print(" ");
for (byte i=1; i < Iparc; i++){
Tparc=Tparct[i]-Tparct[i-1];
Serial.print(Tparc);
Serial.print(";"); // delimiteur pour log tableur
}
Serial.println();
Iparc=0;
}
}
// Interrupt on A changing state
void doEncoderA(){
Tparct[Iparc]=micros(); // plus rapide
Iparc ++;
Sint=true;
}