Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Arduino
  3. Projet 5
Extrait - Arduino S'exercer au prototypage électronique (11 projets créatifs) (2e édition)
Extraits du livre
Arduino S'exercer au prototypage électronique (11 projets créatifs) (2e édition)
1 avis
Revenir à la page d'achat du livre

Projet 5 - Détecteur de présence

Présentation

La confection de la veilleuse automatique dans le chapitre précédent a permis d’avancer dans la compréhension des principes de domotisation de l’habitat. Faisons un pas supplémentaire en concevant un détecteur de présence qui permettra, dans le cas présent, d’émettre une alarme sonore au passage d’une personne, mais le principe pourra être décliné de multiples manières pour activer toutes sortes de dispositifs.

1. Principe de fonctionnement

Grâce à un détecteur PIR (Passive Infrared), le montage sera capable d’interpréter toute modification de chaleur liée à une présence humaine ou animale dans son champ de détection. Lorsque le PIR captera un tel changement, un signal sera envoyé à l’Arduino afin d’activer un dispositif, qui dans notre cas, sera une alarme mais cela peut être tout autre chose : une LED, une caméra, etc.

2. Notions abordées

Un nouveau dispositif, relativement populaire dans les projets Arduino, fait son apparition dans ce montage : le PIR HC-SR501. Il sera la pierre angulaire du détecteur et se chargera de toute la partie « captation de mouvement ». Nous verrons également l’usage d’un buzzer afin de pouvoir générer des sons à partir de l’Arduino....

Matériel nécessaire

Le montage est construit autour d’un composant principal, le détecteur de mouvement PIR HC-SR501.

images/07LF01N.png

PIR HC-SR501

Il est relativement bon marché, puisqu’il est possible de le trouver pour moins d’un euro. Il capte les ondes IR au travers de sa lentille de Fresnel, le signal est filtré et amplifié pour ensuite être traité par le circuit logique du capteur PIR qui fournit alors un état HIGH ou LOW sur sa broche de signal. Le PIR dispose de plusieurs potentiomètres afin de régler sa sensibilité, la durée du signal HIGH, et le mode de détection.

Le montage utilise également un buzzer passif afin de pouvoir programmer et générer l’alarme sonore qu’il nous plaira (à la différence d’un buzzer actif qui, de par sa conception, ne peut générer qu’un son unique).

images/07LF02N.png

Buzzer

Pour la partie programmation, nous utilisons une carte Arduino Uno, mais comme d’habitude, toute autre carte Arduino convient également.

Schéma et montage

Avant d’aborder la description du schéma, attardons-nous sur le fonctionnement du capteur PIR dans un premier temps afin d’en décrire toutes les caractéristiques.

Puis dans un second temps, nous verrons l’utilisation des buzzers actif et passif.

1. Le capteur PIR

Le capteur PIR repose sur la détection d’ondes infrarouges dans un rayon d’une dizaine de mètres. Or, comme nous l’avons vu dans la section Les protocoles IR, du chapitre Projet 2 - Télécommande infrarouge, tout corps chaud émet des ondes infrarouges. C’est le cas du corps humain qui, de par sa température de 37°C, émet des IR d’une certaine longueur d’onde. Le capteur PIR est conçu pour capter cette longueur d’onde précisément. Contrairement à une chaise ou une table qui reste inerte pour un capteur PIR, un corps humain (ou animal) est aisément détecté.

images/07LF03N.png

PIR et sa lentille

Afin de pouvoir balayer un angle d’environ 120°, le détecteur PIR est surmonté d’une lentille de Fresnel (une petite coque translucide en forme de demi-ballon de foot). Cette dernière permet de diffuser largement un rayon lumineux, ou inversement de concentrer une large bande lumineuse en un point comme c’est le cas pour notre capteur.

Le capteur PIR HC-SR501 est alimenté en 5 V, mais sa broche de signal fournit...

Programmation de l’Arduino

Le programme ne présente pas de difficultés particulières mais examinons-le tout de même en détail.

1. Les déclarations préliminaires

Comme indiqué sur le schéma, le montage utilise deux pins de l’Arduino qui doivent donc être déclarées en préambule de notre programme :

#define PIN_SIGNAL 2 
#define PIN_BUZZER 11 

Les déclarations préliminaires se limitent à cela puisque le programme n’utilise aucune bibliothèque spécifique.

2. La fonction setup()

Outre la déclaration et la mise en place du moniteur série sur lequel nous ne reviendrons désormais plus puisque cela est devenu un automatisme, les deux pins de l’Arduino doivent être initialisées :

  pinMode(PIN_SIGNAL, INPUT); 
  pinMode(PIN_BUZZER, OUTPUT); 

3. La fonction loop()

Le cœur du programme consiste dans un premier temps à lire la pin recevant le signal du PIR :

bool sig = digitalRead(PIN_SIGNAL); 

Remarquez ici que la variable sig est déclarée et affectée en une seule instruction. C’est un raccourci de nombreux langages largement utilisé, ne vous en privez pas.

Si le détecteur PIR envoie un signal HIGH, l’Arduino doit mettre en route l’alarme :

  if (sig) { 
    for...

Améliorations possibles

Ce montage est une version de travail et peut être amélioré pour plus de confort.

1. Rendre le projet autonome

Ce détecteur fonctionne actuellement grâce à l’alimentation USB provenant du PC, il serait judicieux d’utiliser à la place un transformateur entre 7 et 12 V. Même si l’Arduino peut supporter une alimentation entre 6 et 20 V, il n’est pas recommandé :

  • d’aller en dessous de 7 V car la pin 5 V pourrait être instable ;

  • d’aller au-dessus de 12 V car le régulateur de tension interne pourrait chauffer et endommager la carte.

2. Générer une alarme plus complexe

L’alarme actuelle est relativement simple, pourquoi ne pas tenter de créer une mélodie plus complexe ?

Et nous pouvons aller encore plus loin grâce à la bibliothèque Mozzi capable de produire des mélodies dignes d’un synthétiseur, nous verrons cela dans le chapitre Projet 6 - Synthétiseur musical.

3. N’autoriser la détection que la nuit

Une autre amélioration consiste à modifier le schéma pour y intégrer une photorésistance et pouvoir ainsi faire fonctionner l’alarme qu’à la double condition d’avoir un signal HIGH du PIR et d’être en période nocturne.

Il est même...

Ressources supplémentaires

La lentille de Fresnel :

https://www.techno-science.net/definition/2957.html

Le fonctionnement des buzzers :

https://fr.wikipedia.org/wiki/Bipeur

https://www.sonelec-musique.com/electronique_theorie_buzzers.html

Le signal PWM sur les Arduino :

https://tutoduino.fr/blog-pwm/