Utilisation d'un détecteur de mouvement HC SR501 avec ARDUINO & RASPBERRY PI3

Le capteur HC SR501

Introduction


Dans ce tutoriel, nous allons apprendre à utiliser le détecteur de mouvement HC-SR501.
Le but final, sera d'afficher sur le moniteur série de l'IDE ARDUINO© et du SHELL sous RASPBIAN©, la détection.
 
POUR ALLER PLUS LOIN : Détection d'un intrus et envoie d'un mail sur un compte GMAIL à partir du RASPBERRY© 

1/ Description et fonctionnement du détecteur

Le détecteur HC-SR501 fonctionne grâce au rayonnement infrarouge. Il possède deux états, haut et bas. Lorsque quelque chose se trouve en mouvement dans son champ de vision, il passe à l'état haut. Lorsque celui-ci ne détecte aucun mouvements, il passe à l'état bas.
 
Le détecteur possède deux potentiomètres qui correspondent au temps de détection, et à la distance de détection. Lorsque l'on tourne le potentiomètre du temps de détection dans le sens des aiguilles d'une montre, la durée est plus longue (de 3 secondes à 5 minutes). Lorsque l'on tourne le potentiomètre de la distance de détection dans le sens des aiguilles d'une montre, celle-ci est plus grande (3 mètres à 7 mètres).
 
Le détecteur possède aussi un cavalier qui permet de déterminer le mode de détection : un mode de détection unique, et un mode de détection multiple.

1/ Le matériel

- Une carte UNO

- 1 LED

- 1 résistances de 220 Ω

- 1 bread board

- Des fils de connexions












2/ Le schéma

- Connecter la broche de gauche du détecteur à la masse de la carte.
- Connecter la broche de droite du détecteur au 5V de la carte.
- Connecter la broche du milieu à la PIN 2 de la carte.
- Connecter la cathode de la LED à la masse de la carte.
- Relier la résistance à l'anode de la LED et l'autre extrémité à la PIN 7 de la carte.

En image

3/ Le programme

/*Tutoriel sur le détecteurde mouvement HC-SR501. Le capteur est disponible sur notre site internet www.ihm3d.com */


#define detecteur 2
#define ledverte 7


void setup() {

pinMode(detecteur,INPUT);
pinMode (ledverte, OUTPUT);

attachInterrupt(digitalPinToInterrupt(detecteur), etat, CHANGE); //changement d'état

Serial.begin(115200);//vitesse 115200 bauds

Serial.println ("Bienvenue sur les tutoriels d'IHM 3D");
}
void loop() {
//rien dans la loop
}
void etat(){

if(digitalRead(detecteur)==HIGH)
{ //si le détecteur est à l'état haut
Serial.println("DETECTION");//on écrit détection
digitalWrite (ledverte, HIGH);//on allume la led
}
if (digitalRead(detecteur)==LOW)
{ //si le détecteur est à l'état bas
Serial.println("PAS DE DETECTION");
digitalWrite (ledverte, LOW);// la led est eteinte.
}
}
/*************************FIN DU PROGRAMMES**************************/

4/ Le résultat final

5/ Pour aller plus loin


IHM-3D vous proposes d'utiliser un RASPBERRY© PI 3 et le détecteur de mouvement pour effectuer un détecteur d'intrusion: Lorsqu'un intrus est détecter, la carte RASPBERRY© envoie un mail sur votre adresse GMAIL.

5.1/ Le matériel

- 1 RASPBERRY©PI 3

- Une carte micro SD avec linux installé dessus (RASPBIAN)

- Le détecteur de mouvement PIR HC-SR501

- Des fils de connexions Femelle / Femelle




5.2/ Le schéma

Attention, la structure Hardware du RASPBERRY PI 3© est strictement différente d'une carte ARDUINO©. Il faut bien se référer au schéma des broches ci-dessous:

- Connecter la broche gauche du détecteur à la masse de la carte.
- Connecter la broche de droite au 5V de la carte.
- Connecter la broche du milieu à l'entrée GPIO4 de la carte.













5.3/ Le programme de détection

Dans un premier temps, nous allons afficher les données "INTRUSION" dans le shell de RASPBIAN, lorsqu'un mouvement est détecté.

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
capteur = 4

GPIO.setup(capteur, GPIO.IN)

print ("Bienvenue sur les tutoriels d'IHM 3D")
time.sleep(2)
print ("Détecteur en attente de détection")

while True:
if GPIO.input(capteur):
print ("INTRUS DETECTE")
time.sleep(2)

5.4/ Le résultat final

5.5/ Le programme de détection et l'envoie de mail à une adresse mail GMAIL

Voici le moment tant attendu pour un envoie de mail à une adresse. Avant de commencer, il vous faut bien entendu avoir créé un compte GMAIL. Si tel n'est pas le cas, vous pouvez vous rendre à cette adresse: "compte GMAIL " et configurer un nouveau compte GMAIL comme vous le souhaitez.

Ensuite il faudra se rendre à cette page : sécurité compte pour laisser les applications moins sécurisées accéder à votre compte (aucun risque).

Ensuite il faudra se rendre à cette page : sécurité compte pour laisser les applications moins sécurisées accéder à votre compte (aucun risque).

Enfin, cliquez sur "Less secure apps" pour accéder à la page suivante :

Cliquez sur le curseur à droite pour autoriser les applications moins sécurisées.

Le programme

import RPi.GPIO as GPIO
import time
sensor = 4

GPIO.setmode(GPIO.BCM)
GPIO.setup(sensor, GPIO.IN, GPIO.PUD_DOWN)

previous_state = False
current_state = False

print ("Bienvenue sur les tutoriels d'IHM 3D")
print ("DETECTEUR OPERATIONNEL EN ATTENTE DE DETECTION")

while True:
time.sleep(0.1)
previous_state = current_state
current_state = GPIO.input(sensor)
if current_state != previous_state:
new_state = "HIGH"
if current_state else "LOW"
print("GPIO pin %s est %s" % (sensor, new_state))
print ("INTRUS DETECTE, UN MAIL VA ETRE ENVOYE")
import smtplib

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login("votre adresse mail", "votre mot de passe")


msg = ("Intrus detecte a votre domicile")
server.sendmail("votre adresse mail@gmail.com", "votre adresse mail@gmail.com", msg)
server.quit()

5.6/ Le résultat final

Il ne vous reste plus qu' à vous rendre dans votre espace GMAIL et de consulter vos mails.

Conclusion

Ce document tutoriel est maintenant terminé. N'hésitez pas à parcourir le site d'IHM-3D et de découvrir ses activités, et de poser vos questions à l'adresse située en pied de page.

Détecteur de mouvement PIR infrarouge HC-SR501

3,79 €
Le détecteur HC-SR50 détecte un mouvement sur une plage de distance de 3 à 7m sur 120°. Il posséde deux potentiomètres pour règler son champ de détection, et son temps d'action de 3sec à 5min. Idéal pour un système d'alarme ou un éclairage.

Plus...