Quel technologie et/ou composants utiliser pour transmission d'un code ?

Merci a vous deux pour vos réponses.

Coté environnement non pas que je ne veuille pas être plus précis mais il n'est pas évident pour un néophite de savoir ce qui est utile ou non. Comme je le disais le capteur sera au dessus des ouvertures, mais il est vrai je ne l'ai pas précisé ce sera à l'extérieur de la maison, le but n'est pas de déclencher une alarme une fois que les voleurs sont entrés mais de les faire fuir avant même qu'il aient eu le temps de forcer la fenêtre ou la porte.

Bref capteur à 2m50 de hauteur sur le mur à l'extérieur de la maison. Capteur IR orienté vers le bas pour être "naturellement" dirigé vers l'emetteur (que j'aurai dans la main).
Donc pas particulièrement exposé au soleil, ni lampadaire, pas d'obstacle (ni vitre ni rien).

Le code je l'avais ajouté au premier post mais le revoilà :

#include <IRremote.h>

const int LED_ROUGE = 0;
const int LED_VERTE = 1;
const int CODE_SECRET0 = 0xABCABC; //Touche 1
const int CODE_SECRET1 = 0xDEFDEF; //Touche 2
const int CODE_SECRET2 = 0x123123; //Touche 5

int pinLed[2] = {2, 3}; //déclaration et initialisation du tableau avec les valeurs des pins
int pinIR = 10; //set D10 as input signal pin
int codeSecret[3] = {0,0,0};

IRrecv irrecv(pinIR);
decode_results signals;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // enable input from IR receiver

  //Boucle d'initialisation des modes et mise à 5V
  for (int i = 0; i < 2; i++) // i va nous servir pour parcourir le tableau
  {
    pinMode(pinLed[i], OUTPUT); //On intialise les pins en sorties
    digitalWrite(pinLed[i], HIGH); //On eteint les LEDs
  }

  //On allume la LED Rouge pour simuler l'alarme active et le code non reconnu
  digitalWrite(pinLed[LED_ROUGE], LOW);
  //On s'assure que la led verte est éteinte
  digitalWrite(pinLed[LED_VERTE], HIGH);
  
}
void loop()
{
  //On vérifie qu'un signla a été reçu
  if (irrecv.decode(&signals))
  {
    //On filtre les signaux inutiles des télécommandes basiques
    if (signals.value== 0xFFFFFFFF)
    {
      irrecv.resume(); //si c'est un signal inutile on passe au suivant
    }
    //Sinon on stock le code dans un tabeau
    else
    {
      Serial.println(signals.value, HEX);
      nouvelleTouche(signals.value);
      irrecv.resume(); // Receive the next value
    }
  }
  delay(200);

  //On vérifie le code secret
  if (codeSecret[0] == CODE_SECRET0 && codeSecret[1] == CODE_SECRET1 && codeSecret[2] == CODE_SECRET2 )
  {
    //On allume la LED Rouge pour simuler l'alarme active et le code non reconnu
    digitalWrite(pinLed[LED_ROUGE], HIGH);
    //On s'assure que la led verte est éteinte
    digitalWrite(pinLed[LED_VERTE], LOW);

    //On attend pour simuler que l'alarme a été désactivé
    delay(5000);

    //On allume la LED Rouge pour simuler que l'alarme se réactive
    digitalWrite(pinLed[LED_ROUGE], LOW);
    //On éteint la led verte
    digitalWrite(pinLed[LED_VERTE], HIGH);
    //On réinitialise le code secret
    codeSecret[0] = 0;
    codeSecret[1] = 0;
    codeSecret[2] = 0;
  }
}

void nouvelleTouche(int code)
{
  codeSecret[0] = codeSecret[1];
  codeSecret[1] = codeSecret[2];
  codeSecret[2] = code;
}

Le schéma je ne l'ai pas mais euh c'était très simple :

  • la broche "data" du récepteur sur le pin 10
  • la led rouge sur le pin 2 avec une resistance 220ohms
  • la led verte sur le pin 3 avec une resistance 220ohms

Tout ça sur une breadboard bas de gamme (le coup des mauvais contacts je n'ai pas testé).
Les deux télécommandes avec lesquelles je fais les tests (la samsung de ma TV) et l'autre me donne le même problème, au de quelques dizaines de centimètres les codes reçus sont aléatoires.

Les piles sont chargées à fond elle sont neuves ET rechargées.

Oui il a un coté fun dans ce que je veux faire, ça m'amuse de construire cela, mais surtout je pense que cela répondra a mon besoin.

L'alarme de voiture tu penses à quoi ?