Alarme périmétrique

Portrait de denis38150

Bonjour à tous,

J'ai 66 ans et je suis en préparation d'un très long voyage en camping car.

Pays Scandinaves , Russie, Iran , les pays en stan (Kasastan etc), Mongolie, Corée du Sud puis franchissement du pacifique et le tour des deux Amériques.

Ayant l'habitude de voyager seul et de m'arrêter la nuit dans n'importe quel coin depuis de nombreuses années récemment j'ai été réveillé par deux gamins à 02h00 du matin qui essayaient de forcer la soute.

 Ceci m'a donné une idée : installer une alarme périmétrique !

Des détecteurs de présence en 12 V ça existe, mais étanche pas beaucoup et discret pas du tout ! et de plus ils dépassent de la carrosserie et les branches adorent se qui dépassent ..

Donc je ne suis rabattu sur les radars de recul : simple discret étanche !

Donc pour réaliser une alarme périmétrique c'est super simple et pas cher (chez nos amis chinois) on évitera les systèmes avec écrans et caméras. 

J'ai donc choisi un système radar de recul à 4 capteurs avec buzzer pour chaque côté du CC

Pourquoi deux ? Tout simplement que j'essaie toujours de me garer la nuit (côté porte de la cellule)  le long d'un mur ou d'une haie! j'activerai un seul des deux systèmes ou bien les deux avec une télécommande multi-canaux (alarme de journée pour visiter un site)

Un buzzer c'est bien !! juste pour réveiller  !! mais en remplacement du buzzer je peux très bien brancher, grâce à un relais, des phares à leds de 300 W (sur le toit) ainsi qu'une sirène 120 DB.

Là commence le problème !

Le système de radar lorsqu'il détecte une présence envoie des impulsions au buzzer plus ou moins rapprochés suivant la distance de la personne !!

Comment réaliser un petit montage qui permettrait que les phares à leds de 300 W (sur le toit) restent allumés en permanence tant qu'il y a détection de présence !

Comment réaliser un petit montage qui permettrait que la sirène 120 DB NE se mette en fonction QUe lors d'une distance trop proche du CC (impulsions très rapprochées) ? et bien entendu se coupe lorsque les impulsions sont espacées de nouveau.

radar_de_recul.jpg

A la lecture de ce forum j'ai vu qu'il y avait quelques petits génies !!

Merci d'avance pour toutes vos idées loufoques ou pas !!

Cordialement

 

Portrait de Anonyme

Bonjour

il y a une méthode assez simple et efficace à 100% avec un module Arduino.

Le principe est le suivant :

Une entrée reçoit une impulsion, cette dernière active une sortie qui actionne un relais et cela pendant une temporisation réglable selon le temps entre deux impulsions de ton alarme. Cette même tempo est remise à zéro tant que les impulsions sont reçues par ton système sur l'entrée de l'Arduino.

Coût de l'opération inférieur à 10.00 €.

Portrait de denis38150

Merci pour cette idée de génie

Un petit lien pour ce produit ?

Il faut de la programmation ?

Concernant mes connaissance c'étaitl y a fort longtemps de l'électronique (transistors diode etc) ainsi que la programmationsur Z80 et intel c'était juste avant l'arrivée des dinosaures !!!

Car plus c'est simple plus c'est sain !! Exemple je vais acheter trois systèmes de radar de recul (11 € pièces) pour deux actifs ...

Merci pour tes suggestions

Portrait de denis38150

Ton idée me séduit

donc une carte pour les phares allumage immédiat durée par ex 1 minute

et une carte pour la sirène allumage différé de 15 secondes et durée 2 secondes

C'est possible ça ?

Portrait de Anonyme

Tu as la réponse un peu plus bas !

Portrait de Anonyme

regarde en bas à droite de cette page on peut tchater !

Portrait de Anonyme

Pour le code c'est super simple je peux t'expliquer

Pour les composants pas de problème non plus

Portrait de Anonyme

Il te faut

Pour la programmation il te faut charger le code Arduino IDE et avoir un PC

Portrait de denis38150

Un petit lien pour les diodes zener ?

Merci d'avance

Portrait de Anonyme

C'est fait

Portrait de graindesel

Alex ? ton forum prend une tournure vraiment bizarre.

Portrait de Anonyme

denis38150

Non une seule carte te permet de faire tout ce que tu veux mais il te faut une carte relais deux canaux ou 2 cartes relais 1 canal ( c'est évident :o) ).

Donc si j'ai bien compris dès qu'un radar détecte un intrus, on déclenche les deux relais d'alarme, lumineuse et sonore, pendant leur laps de temps respectif. Mais je te propose en plus de vérifier qu'au moins deux ou plusieurs impulses (au choix) reçues sur le buzzer déclenche l'alarme pour éviter tout démarrage intempestif de l'alarme.

Il est aussi possible de raccorder plusieurs radar sur la même carte Arduino sans besoin d'autres composants si ce n'est les résistances et diode zener dans le cas ou les buzzer fonctionneraient sous une tension supérieures à 5 Volt. Autrement ces composants ne sont pas nécessaires bien que plus sécuritaire pour la carte Arduino.

As tu installé Arduino IDE ?

Si tu veux le code fait moi le savoir ici !

Portrait de Anonyme

Je te donne le code qui je pense correspond à ton attente. Il y a volontairement des petites erreurs dans le code ( uniquement techniques ) mais c'est pour que tu comprennes plus facilement. Je te donnerai la solution plus tard. Pour le moment j'ai considéré qu'il n'y avait qu'un seul radar et je n'ai pas mis de sécurité de déclenchement intempestif, ces deux options peuvent être très facilement ajoutées à ce code, mais j'ai voulu resté plus simple. pour l'instant.

Voilà donc le code assez commenté je pense que tu auras vite compris que le texte derrière les "//" sont des commentaires qui ne sont pas pris en compte par le compilateur de L'IDE Arduino.

/* Alarme Adaptée à un Radar de recul pour Camping Car par exemple.
    Wolfram69 Avril 2020
*/
int InterMarcheArret  = 2; // Broche  Marche/Arrêt N°2 Sur les carte Arduino UNO seule les broches 2 et 3 peuvent servir d'interruption externe
int EntreeBuzzer = 7; // Broche 7 attribuée à l'entrée du buzzer
int CdeRelaisLum    = 8; // même principe
int CdeRelaisSon    = 9; // même principe
int LED = 13;// même principe pour la LED de signalisation M/A
bool Marche = false; // Alarme en marche vrai ou faux
bool Intrus = false; // Détéction intrus vrai ou faux
unsigned long TempoBuzzer       = 500; // Durée en milliseconde ici 0.5 seconde
unsigned long TempoAlarmeLum = 0; // (Sic)
unsigned long TempoAlarmeSon = 0; // (Sic)
unsigned long TempoSonDiffere = 0; // (Sic)
unsigned long DureeAlarmeLum  = 60000; // Durée de l'alarme lumière en millisecondes ici 60 secondes
unsigned long DureeAlarmeSon  = 2000;// Durée de l'alarme sonore en milliseconde ici 2 secondes
unsigned long DureeSonDiffere = 15000; // Temps de décalage entre Alarme Lumière et Alarme Sonore
int INPUT_PULLDOWN = 3; // Code personnel de déclaration d'une entrée forcée à l'état Bas si elle est en l'air

void setup() { // Confifuration de la carte Arduino
  Serial.begin(115200); // Port Série déclaré à 115200 bauds
  pinMode(InterMarcheArret, INPUT_PULLUP); // La pin déclarée en entrée est forcée au niveau Haut quand elle se trouve en l'air
  pinMode(EntreeBuzzer, INPUT_PULLDOWN); // La pin déclarée en entrée est forcée au niveau Bas quand elle se trouve en l'air
  pinMode(CdeRelaisLum, OUTPUT); // La broche CdeRelaisLum et déclarée en sortie
  pinMode(LED, OUTPUT); // Forçage de la sortie LED à l'état bas
  pinMode(CdeRelaisSon, OUTPUT); // La broche CdeRelaisSon et déclarée en sortie
  digitalWrite(CdeRelaisSon, LOW); // Forçage de la sortie relais son à l'état Bas
  pinMode(CdeRelaisLum, OUTPUT); // La broche CdeRelaisSon et déclarée en sortie
  digitalWrite(CdeRelaisLum, LOW); // Forçage de la sortie relais lum à l'état Bas
  attachInterrupt(InterMarcheArret, MarcheArret, CHANGE); // Déclaration d'une interruption qui déclenche la fonction MarcheArret pour tout changement d'état de l'entrée InterMarcheArrêt
}

void loop() { // Création d'une boucle infinie
  while (Marche) { // tant que l'alarme est en marche
    digitalWrite(LED, HIGH); // Allumage de la LED
    if (digitalRead(EntreeBuzzer) == HIGH) { // détection d'un Intrus (ici pas de sécurité déclenchement intempestif pour le moment)
      digitalWrite(CdeRelaisLum, HIGH); // Activation de la lumière
      TempoAlarmeLum = millis() + DureeAlarmeLum; // Configuration de la tempo Lum
      TempoSonDiffere = millis() + DureeSonDiffere; // Configuration de la tempo Son Différé
      Intrus = true; // Variable intrus passe à vrai
    }
    while (Intrus) { // Tant que la variable intrus est vrai
      if (millis() > TempoSonDiffere) { // Quand la temporisation du son différé est écoulée
        digitalWrite(CdeRelaisSon, HIGH); // Activation de l'alarme Son
        //TempoSonDiffere = 0; // pas obligatoire
        TempoAlarmeSon = millis() + DureeAlarmeSon; // Configuration de la tempo Son
      }
      if (millis() > TempoAlarmeSon) { // Si la tempo Son est écoulée
        digitalWrite(CdeRelaisSon, LOW); // Arrêt de l'alarme sonore
        //TempoAlarmeSon = 0;// pas obligatoire
      }
      if (millis() > TempoAlarmeLum) { // Si la tempo Lum est écoulée
        digitalWrite(CdeRelaisLum, LOW); // Arrêt de l'alarme Lumière
        TempoAlarmeLum = 0;// pas obligatoire
      }
      if ((digitalRead(CdeRelaisLum) == LOW ) && (digitalRead(CdeRelaisSon) == LOW)) { // Si les deux alarmes sont à l'arrêt
        Intrus = false; // La variable Intrus passe à faux
      }
    }
  }
  digitalWrite(LED, LOW); // Si Tant que Marche est faux on éteint la LED
}

void MarcheArret() { // Fonction appelée sur une interruption ( InterMarcheAret)
  if (digitalRead(InterMarcheArret) == LOW) { // Je pense que tu n'as plus besoin de commentaire à ce stade!
    digitalWrite(CdeRelaisLum, LOW);
    digitalWrite(CdeRelaisSon, LOW);
    TempoAlarmeLum = 0;
    TempoAlarmeSon = 0;
    TempoSonDiffere = 0;
    Marche = false;
  }
  else if(digitalRead(InterMarcheArret) == HIGH) {
    Marche = true;
  }
}