Utilisation d'un détecteur de mouvement HC SR501 avec ARDUINO & RASPBERRY PI3
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 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 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
- 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 [email protected]", "votre adresse [email protected]", msg)
server.quit()
5.6/ Le résultat final
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.