Détecteur de mouvement envoyant des alertes par mail

Dans cette leçon, vous apprendrez à utiliser un détecteur de mouvement PIR. De plus, vous allez utiliser une carte  Arduino et à avoir le communiquer avec un programme Python exécuté sur votre ordinateur. Pour objectif  d’envoyer un mail chaque fois nous détectons un mouvement par le capteur.

Pour construire le projet décrit dans cette leçon, vous aurez besoin des pièces suivantes.

Vous aurez également besoin d’un ordinateur avec une connexion Internet (pour pouvoir envoyer des e-mails via celui-ci) !

Les composants d’un détecteur de mouvement

Arduino utilisé dans le projet :Détecteur de mouvement envoyant des alertes par mail
Arduino UNO
Platine d’éssais utilisé dans le projet :Détecteur de mouvement envoyant des alertes par mail
Platine d’éssais
Capteur PIR utilisé dans le projet :Détecteur de mouvement envoyant des alertes par mail
Capteur PIR
Les files électriques
Les files électriques

La seule chose que vous connectez à l’Arduino est le capteur PIR, donc vous pourriez si vous préférez simplement pousser les fils attachés au capteur PIR directement dans la carte Arduino. Cependant, les fils du capteur sont un peu lâches dans les prises Arduino, il est donc probablement préférable d’utiliser la disposition de la maquette ci-dessous.

Schéma d’un détecteur de mouvement avec Arduino

Schéma d’un détecteur de mouvement avec Arduino

L’Arduino enverra un message via la connexion série USB chaque fois qu’un mouvement est détecté. Cependant, cela pourrait avoir le potentiel de générer beaucoup d’e-mails. Pour cette raison, l’Arduino envoie un message différent s’il est trop tôt pour envoyer un autre mail.

Le code Arduino d’un détecteur de mouvement

Le code Arduino d’un détecteur de mouvement

On peut modifier la variable « minSecsBetweenEmails » en tout ce que vous jugez être une valeur raisonnable. Ici, nous le régle sur 60 secondes, donc les mails ne seront pas envoyés à un rythme supérieur à une minute.

Pour garder une trace du moment où la dernière demande d’envoi d’un e-mail a été envoyée, une variable « lastSend » est utilisée. Celui-ci est initialisé à un nombre négatif, égal au négatif du nombre de millisecondes spécifié dans la variable «minSecsBetweenEmails ». Cela va garantir que le PIR va déclencher immédiatement après le démarrage de l’esquisse Arduino.

Dans la boucle, le role de la fonction « millis () » est d’obtenir le nombre de millisecondes depuis le démarrage de l’Arduino et le comparer avec la dernière fois que l’alarme a été déclenchée et seulement si elle est supérieure au nombre de secondes spécifié depuis la dernière fois. Il envoie le message « MOUVEMENT ». Sinon, même si il détecte un mouvement , il envoie simplement le message « Trop tôt ».

Avant de lier des éléments à votre programme Python, vous pouvez tester la configuration Arduino en ouvrant simplement le moniteur série sur l’IDE Arduino.

Compilation du  code Arduino d’un détecteur de mouvement

Installation de Python et PySerial

Dans un ordinateur Mac ou Linux, Python existe déjà . Si vous utilisez Windows, vous devrez l’installer. Dans les deux cas, vous devrez également installer la bibliothèque PySerial pour permettre la communication avec l’Arduino.

Installer Python sur Windows

Pour installer Python sur Windows, téléchargez le programme d’installation à partir de

http://www.python.org/getit/ (http://adafru.it/aZg).

Nous avons utilisé Python 2.7.3 pous la construction de Ce projet. Certains problèmes ont été signalés avec PySerial sous Windows, en utilisant Python 3, alors tenez-vous-en à Python 2.

Réglage des paramètres pour projet du détrecteur PIR

Une fois Python installé, vous trouverez un nouveau groupe de programmes dans votre menu Démarrer. Cependant, nous allons apporter une modification à Windows pour vous permettre d’utiliser Python à partir de l’invite de commande. Vous en aurez besoin pour pouvoir installer PySerial.

Nous allons ajouter quelque chose à la variable d’environnement PATH.

Réglage des paramètres pour projet du détrecteur PIR

Pour ce faire, vous devez accéder au panneau de configuration de Windows et rechercher le contrôle Propriétés système. Cliquez ensuite sur le bouton intitulé « Variables d’environnement » et dans la fenêtre qui s’ouvre, sélectionnez « Chemin » dans la section inférieure (Variables système). Cliquez sur « Modifier », puis à la fin de la « Valeur de la variable » sans supprimer le texte déjà présent, ajoutez le texte : ;C:\Python27.

N’oubliez pas le « ; » avant le nouveau bit !

Pour tester que cela fonctionne correctement, lancez une nouvelle invite de commande (invite DOS) et entrez la commande « python ». Vous devriez voir quelque chose comme ceci :

Réglage des paramètres pour projet du détrecteur PIR

Installer PySerial

Quel que soit votre système d’exploitation, téléchargez le package d’installation .tar.gz pour PySerial 2.6 depuis https://pypi.python.org/pypi/pyserial .

Cela vous donnera un fichier appelé : pyserial-2.6.tar.gz

Si vous utilisez Windows, vous devez le décompresser dans un dossier. Malheureusement, ce n’est pas un fichier zip normal, vous devrez donc peut-être télécharger un outil tel que 7-zip (http://www.7-zip.org/.

Si vous utilisez un ordinateur Mac ou Linux, ouvrez une session Terminal, « cd » à l’endroit où vous avez téléchargé pyserial-2.6.tar.gz, puis exécutez la commande suivante pour décompresser le dossier d’installation.

$ tar -xzf pyserial-2.6.tar.gz

La suite de la procédure est la même quel que soit votre système d’exploitation. Utilisez votre session Invite de commandes / Terminal et « cd » dans le dossier pyserial-2.6, puis exécutez la commande :

sudo python setup.py install

Réglage des paramètres pour projet du détrecteur PIR

Code Python d’un détecteur de mouvement envoyant des alertes par mail

Maintenant, vous devez créer le programme Python. Pour ce faire, copiez le code ci-dessous dans un fichier nommé « mouvement.py ». Sur Mac / Linux, vous pouvez utiliser l’éditeur « nano », sur Windows, il est probablement plus simple de créer le fichier à l’aide de l’éditeur Python « IDLE » disponible dans le groupe de programmes Python de votre menu Démarrer.

Code Python d’un détecteur de mouvement envoyant des alertes par mail

Explication du code

Avant d’exécuter le programme Python, vous devez effectuer certaines modifications de configuration. Ceux-ci sont tous vers le haut du fichier.

Nous allons définir les mails à partir d’un compte Gmail. Donc, si vous n’en avez pas, vous aimerez peut-être en faire un, même si ce n’est que pour ce projet.

Remplacez l’adresse e-mail à côté de « À » par l’e-mail auquel vous souhaitez recevoir les notifications.

Cela ne doit pas nécessairement être votre adresse e-mail, mais le sera probablement.

Remplacez l’adresse e-mail à côté de « GMAIL_USER » par l’adresse e-mail de votre adresse gmail et modifiez le mot de passe sur la ligne suivante pour le mot de passe que vous utilisez pour récupérer vos e-mails.

Si vous le souhaitez, vous pouvez également modifier l’objet et le texte du message à envoyer, sur les lignes qui suivent.

Vous devrez également définir le port série de l’Arduino en éditant la ligne ci-dessous :

ser = serial.Serial(‘COM4’, 9600)

Pour Windows, ce sera quelque chose comme « COM4 » pour Mac et Linux, quelque chose comme « /dev/tty.usbmodem621 ». Vous pouvez le trouver en ouvrant l’IDE Arduino et dans le coin inférieur droit, il vous montrera le port connecté à l’Arduino.

Compilation du code Arduino pour le projet du détecteur de mouvement

Lorsque vous avez effectué ces modifications, vous pouvez exécuter le programme à partir de l’invite de commande / du terminal avec la commande :

python movement.py

Lorsqu’un mouvement est déclenché, vous devriez obtenir une trace comme celle-ci et peu de temps après, un mail arrivera dans votre boîte de réception.

Compilation du code Arduino pour le projet du détecteur de mouvement

Notez également les messages « Trop tôt ».

Autres choses à faire

Maintenant que vous avez un moyen d’envoyer des mails depuis votre Arduino, cela ouvre toutes sortes de possibilités. Vous pouvez ajouter différents types de capteurs, et peut-être vous envoyer des rapports de température horaires par mail. Nous utilisons le capteur PIR directement avec l’Arduino pour émettre une tonalité d’avertissement ou allumer les LED.

Lire aussi

Automatisation et instrumentation industrielle -Explication simple

Capteur de niveau : Principe de fonctionement et technologie

Capteur de pression : Principe de fonctionement et technologie

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *