04 aout 2019 • 2 • 4.8
S'il y a bien une chose que l'on a toujours sur nous, c'est notre smartphone. Ce dernier permet de réaliser
de plus en plus d'actions diverses. Grâce à cet article, vous allez bientôt pouvoir commander votre portail
directement depuis votre smartphone, de n'importe où, et ce à l'aide d'un Raspberry Pi !
Principe de fonctionnement : La plupart des cartes électroniques de portails motorisés
disposent de la fonction d'ouverture par clé. Un interrupteur à clé est un composant qui établit le contact
entre deux bornes lorsque la clé est tournée. Nous allons profiter de ce principe pour commander l'ouverture
du portail grâce à un Raspberry. Il suffit pour se faire de simuler cet interupteur à clé, et celà tombe bien, car
c'est le role du "relais électromagnétique". Ce composant est présent dans beaucoup d'appareils électriques du
quotidien (plaques de cuisson, four, etc).
Son principe de fonctionnement est le suivant : Lorsque l'on envoie du courant à ses bornes d'entrée, le relais se ferme,
et fait contact entre ses deux bornes de sortie. Il agit alors comme un interrupteur fermé. À l'inverse, si l'on n'envoie pas
de courant à ses bornes d'entrée, il agit comme un interrupteur ouvert, ses deux bornes de sorties ne sont pas connectées.
Commençons par établir la liste des éléments nécessaires à la réalisation de ce projet :
Une fois tout le matériel réunis, on peut passer aux choses concrètes !
Raspberry Lab ne peut être tenu responsable de tout dommage ou problème qui pourrait survenir suite à l’utilisation des instructions de branchement fournies dans ce tutoriel. Ces informations sont fournies à des fins éducatives et nous vous recommandons fortement de prendre toutes les précautions nécessaires lors de la manipulation de l’équipement électronique.
Comme expliqué dans l'introduction, nous allons nous servir de la fonction d'interrupteur à clé de la carte électronique du portail pour commander ce dernier. La première étape du projet est donc naturellement de trouver sur la carte l'emplacement des bornes utilisées pour l'interrupteur à clé. Voici un exemple de schéma de carte électronique d'un portail où est entourée la partie utilisée pour les interrupteurs à clé.
Une fois que les ports ont été trouvés, il suffit de relier les deux fils du câble bifilaire à chaque port (indiqués par les flèches rouges sur l'exemple de notice).
Maintenant que le câble est relié aux ports du contacteur à clé, vous pouvez ouvrir votre portail simplement en
faisant le contact entre les deux extrémités du câble, cela devrait ouvrir votre portail si tout fonctionne bien
(En faisant le contact entre les deux extrémités, on a simulé une ouverture par clé).
Maintenant, deux possibilités s'offrent à vous :
Maintenant que vous avez un boitier prêt à accueillir le Raspberry Pi, il va falloir commencer à réfléchir à son alimentation. Encore une fois, deux méthodes pour alimenter le Raspberry Pi.
Le Raspberry étant maintenant alimenté, nous pouvons passer aux choses sérieuses ! La première chose à faire est de brancher correctement le relais au Raspberry Pi. Il suffit pour cela de suivre le schéma ci-dessous.
Il reste maintenant à relier la sortie du relais à l'extrémité du câble que l'on a branché à l'étape #1. Les relais disposent de trois sorties, il faut utiliser les sorties COM et NO comme le montre le schéma récapitulatif suivant.
Maintenant que toute la partie matérielle est prête, on peut passer au développement. Elle va se dérouler en 5 grandes étapes :
Pour commander notre relais alimenté en 5V, rien de très compliqué. Le relais dispose d'une entrée. Lorsque l'on
connecte cette entrée à 5V, le contact est fait entre les deux sorties (et on entend un clak).
Le code suivant enclenche en boucle le relais et permet de vérifier si le branchage est correct.
Nous avons vu comment commander le relais grâce à un script Python. Le but est maintenant de pouvoir le commander
depuis une page web, sans passer par le terminal du Raspberry. Pour se faire, nous allons utiliser le Raspberry
comme un serveur Web. Bonne nouvelle, la librairie Flask permet de facilement créer un serveur web en Python et
de réagir à des requêtes HTTP. Commençons par installer cette librairie et de comprendre un peu comment ça marche.
Entrez simplement la commande suivante dans le terminal :
sudo apt-get install python3-flask
Maintenant que la librairie est installée, voyons les notions de base de Flask. Voici le code le plus simple que l'on peut exécuter :
On devrait voir au lancement du script s'écrire ceci :
* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: xxx-xxx-xxx
Cela signifie que le serveur est démaré, et qu’on peut y accéder en entrant l'IP du Raspberry, suivi de :5000,
qui est le numéro du port. Si on accède à cette page, on verra s'afficher Hello World.
Pour tester, entrer ceci dans le champ URL d'un navigateur :
xxx.xxx.x.xxx:5000, où xxx.xxx.x.xxx est l'adresse IP du Raspberry Pi.
Si vous ne connaissez pas l'adresse IP de votre Raspberry Pi, entrez dans une console ceci :
hostname -I
En plus d'afficher des éléments sur le navigateur, Flask permet d'exécuter les actions que l'on souhaite à chaque
fois que la page est visitée. On peut alors "mélanger" le code Flask avec le code de commande de relais pour obtenir
un sytème qui enclenche le relais chaque fois que l'on visite l'URL xxx.xxx.x.xxx:5000.
Le code n'est pas très compliqué à écrire, essayez par vous-même avant de regarder la solution !
Avec ce code, nous avons déjà un début de système fonctionnel et il suffit de relier le relais à la carte électronique
comme expliqué dans le I pour ouvrir son portail à partir d'une URL.
Cependant, nous souhaitons un système qui se lance tout seul au démarrage, sans avoir besoin d'entrer sudo python
app.py sans arrêts. Nous allons voir dans la prochaine étape comment lancer le serveur automatiquement à chaque
démarrage.
L'outil crontab permet l'automatisation de lancements de scripts et de taches sur Linux et donc sur le
Raspberry. Nous allons ici l'utiliser pour le lancement automatique du script que nous venons d'écrire.
Commencer par ouvrir crontab en entrant dans le terminal ceci :
sudo crontab -e
Si l'on vous demande de choisir un logiciel d'édition, prendre /bin/nano qui est le plus simple des trois.
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/crontab.L71rF1/crontab installed on Tue May 29 20:57:03 2018) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) # Edit this file to introduce tasks to be run by cron. # # Each task to run has to be defined through a single line # indicating with different fields when the task will be run # and what command to run for the task # # To define the time you can provide concrete values for # minute (m), hour (h), day of month (dom), month (mon), # and day of week (dow) or use '*' in these fields (for 'any').# # Notice that tasks will be started based on the cron's system # daemon's notion of time and timezones. # # Output of the crontab jobs (including errors) is sent through # email to the user the crontab file belongs to (unless redirected). # # For example, you can run a backup of all your user accounts # at 5 a.m every week with: # 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ # # For more information see the manual pages of crontab(5) and cron(8) # # m h dom mon dow command
Ajouter simplement la ligne suivante à la fin du fichier (utiliser la flèche du bas pour descendre le curseur) :
@reboot cd /home/pi; sudo python app.py
Une fois la ligne ajoutée, enregistrer et fermer l'éditeur (Ctrl+X -> O (ou Y en anglais) -> Enter).
Redémarrez votre Raspberry Pi pour que les changements soient appliqués.
Contrôler son portail depuis un navigateur internet, c'est bien... mais depuis une application mobile, c'est encore mieux. Cette application est disponible sur Google Play en suivant le lien ci-dessous. Lier l'application et le Raspberry est très simple : il suffit d'entrer l'IP et le port du Raspberry !
Choisir et utiliser une caméra sur un Raspberry Pi
Obtenir la température avec une sonde DS18B20
⚡NEW⚡Raspberry Pi 5, version 8Go
87.55 €
Caméra Raspberry Pi 5MP 1080p
12.95 €
4.8/5 | 13 votes