Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Contrôlez le moteur du garage à partir d'un smartphone ou de tout appareil capable de parcourir une page Web (avec AJAX !). Le projet a commencé car je n'avais qu'une seule télécommande pour mon garage. Était-ce amusant d'en acheter un deuxième ? Pas assez. Mon objectif était de pouvoir contrôler et surveiller ma porte de garage depuis mon smartphone avec une seule page. Je n'ai mis aucune sécurité sophistiquée car le RPi n'est pas exposé en dehors de mon réseau local. Ainsi, je compte sur VPN pour accéder à la page Web. À l'aide d'un smartphone Android, il est très facile à la fois de configurer un VPN et d'ajouter une page Web à mon écran d'accueil. Tout ce dont j'avais besoin était le logiciel pour cela.
Si vous souhaitez me soutenir dans l'écriture d'autres instructables, veuillez acheter du matériel à partir des liens sponsorisés d'Amazon.
En outre, cette instructable est désormais également disponible sur ma page personnelle:
Étape 1: un peu de contexte
Ce que j'ai trouvé en ligne
En tant que programmeur, j'aime réutiliser des tutoriels ou du code déjà "niveau production". Dans ce cas, je n'étais pas satisfait de ce que j'ai trouvé:
- Ouvre-porte de garage Raspberry Pi par quartarian. Là où j'ai commencé, un simple bouton pour commander le relais. Pas de boutons d'ouverture/fermeture, pas de retour. Il était de toute façon très utile de comprendre le concept autour d'un RPi dédié pour contrôler un moteur à partir d'un relais. Le câblage que j'utilise maintenant est toujours le même pour la partie commande.
- Ouvre-porte de garage Raspberry Pi avec GaragePi par Chase Chou. Même type de configuration mais en utilisant une télécommande sans fil supplémentaire. Je n'étais pas prêt à tuer ma seule télécommande. Il s'est avéré de toute façon utiliser le même type de configuration électrique pour la partie commande. En cours de route, j'ai découvert WebIOPi pour vérifier mon GPIO sur une page Web. C'est là que j'ai également appris à mettre un raccourci vers mon écran d'accueil Android. Cela a également commencé à éclairer l'idée de s'appuyer sur des services, après tout, je veux que ce soit fiable.
- Faire votre e-mail, Tweet ou SMS de porte de garage: Partie 1 Par Richard L. Lynch. Celui-ci a ajouté l'idée d'utiliser un capteur magnétique pour contrôler l'état de la porte. Cependant, je n'en ai pas utilisé beaucoup car je ne construisais pas un système d'alarme mais un système de commande/moniteur.
- Ouvre-porte de garage / caméra de sécurité entièrement sans fil par DeckerEgo. Cela m'a fait mieux connaître le streaming webcam pour surveiller la porte. Je dois encore faire des efforts là-dessus. Peut-être que je devrais recycler un concentrateur USB ou récupérer une autre webcam.
- Contrôle Raspberry Pi depuis un appareil mobile ou un navigateur Web de bureau par Frédérick Blais. C'est maintenant ma base pour la pile logicielle. Il utilise Flask pour exécuter une page Web très simple avec AJAX. C'est premium pour moi car il fournit des options de surveillance et de commande en temps réel. Lire ci-dessous.
À propos de mon RPi
Comme j'apprends encore le RPi et les trucs électroniques en général, j'ai acheté un certain nombre de trucs pour mon Raspberry Pi fraîchement acquis: quelques câbles, un cordon en T, des leds, un module à un relais, un à huit relais module, un écran LCD et ainsi de suite. Je ne suis en aucun cas un électronicien et cela s'est avéré très instructif. Pour acheter du matériel supplémentaire, Amazon et Ebay sont vos meilleurs amis.
L'état actuel du projet comprend le matériel suivant:
- Un Raspberry Pi (FR/DE) exécutant Raspbian Wheezy 09-09-2014 avec les dernières mises à jour
- Une carte micro SD de 8 Go (FR/DE) ou 16 Go (FR/DE) ou 32 Go (FR/DE) classe 10 pour contenir le système d'exploitation, les fichiers, etc.
- Deux commutateurs à lames de garage en alliage de zinc (FR/DE) pour détecter l'état ouvert/fermé
- Un module relais 3v (FR/DE) pour envoyer des commandes au moteur de la porte (le mien a une LED intégrée pour surveiller l'état du relais, très pratique !)
- Une maquette sans soudure (FR/DE) et 2 interrupteurs momentanés (FR/DE) pour simuler la porte sur mon bureau (ou obtenir un kit de démarrage (FR/DE))
- Un dongle wifi (FR/DE) pour retirer le câblage supplémentaire lorsqu'il sera suspendu au plafond du garage
Une limitation que j'ai toujours est que je ne sais pas quand la porte est à mi-chemin, arrêtée ou toujours en mouvement. C'est aussi pourquoi j'aimerais ajouter plus tard une ancienne webcam pour diffuser depuis l'intérieur du garage. Je vais probablement ajouter un capteur pour surveiller le moteur lui-même.
Étape 2: pile logicielle
Trucs généraux
Le logiciel repose sur le module Python Python, Flask et WiringPi GPIO. Comme expliqué en arrière-plan, je suis parti du tutoriel Contrôle du Raspberry Pi depuis un appareil mobile ou un navigateur web de bureau publié par Frédérick Blais. Le logiciel actuel est composé de:
- Un fichier modèle HTML contenant du code et des contrôles jQuery Mobile
- Un module Python Pins pour accéder au GPIO du Raspberry Pi
- Un module Python go pour exécuter Flask et prendre en charge les requêtes AJAX
Ce qui est présent dans le référentiel est le logiciel brut. Ce n'est en aucun cas une fantaisie ou une surcharge de fonctionnalités. C'est juste ce que j'ai pu réaliser à partir de ce que j'ai appris.
Interface actuelle
Actuellement, l'état des portes est lu toutes les 0,5 s. Deux commutateurs sont utilisés pour l'état ouvert/fermé. Un relais est utilisé pour commander le moteur. Le code actuel génère toujours du débogage. La capture d'écran ci-dessous provient d'un Nexus 5.
Étape 3: Matériel - Alpha
Banc d'essai
Mon banc d'essai est assez simple, un RPi, un relais et deux interrupteurs. Pour bien tenir les choses, quelques attaches zippées (FR/DE) suffisent. Voici une photo de celui-ci. Le câble LAN RJ45 (FR/DE) est destiné au débogage de bureau et au dongle WIFI pour une utilisation en garage.
Système en direct
Le RPi n'est connecté au moteur de porte que pour l'instant, les interrupteurs suivront. Je dois attendre un peu pour récupérer ma gaine thermorétractable (FR/DE). Je devrais aussi être plus stable. Désolé pour le flou.
Les câbles bleu, jaune et vert sur la gauche sont pour les interrupteurs magnétiques.
- Le bleu est le GND
- Le jaune et le vert sont les broches 18 (état ouvert) et 27 (état fermé).
Étape 4: Matériel - Bêta
Banc d'essai
C'est maintenant un carton direct avec des attaches zippées. L'écran LCD et le relais sont également fournis. L'écran LCD est de 20x4 (20 caractères pour les lignes, 4 lignes) (FR/DE) sur I²C.
Les 2 premières lignes affichent l'accueil et la date/heure. Les 2 dernières lignes alternent entre les états des broches et l'état du réseau (IPs eth0/wan0). La ligne d'état de la porte est un joli GFX pour dire:
- | | est ouvert
- |-| fonctionne
- |.| est fermé
Schémas Fritzing
Schéma de Fritzing avec écran LCD I2C 20x4, interrupteurs d'ouverture/fermeture et relais. Le seul ajout est l'écran LCD I2C. J'ai préféré ça au 18x2 que j'avais.
Système en direct
La version bêta HW est maintenant "au niveau de la production" car elle s'intègre parfaitement dans une vieille boîte à vis. J'ai gardé un séparateur pour héberger les câbles de relais et divers tandis que RPi se trouve au niveau inférieur. Vous remarquerez peut-être le Synology NAS (FR/DE) sur le côté droit, il est utilisé pour alimenter directement le RPi. De nuit avec modem, switch et NAS.
Vue rapprochée de la boîte à vis, l'écran LCD affiche l'état de la porte et le brochage d'ouverture/fermeture/relais.
De nuit, vue intérieure d'en haut.
Étape 5: Code source et ressources
Vous pouvez trouver toutes les ressources sur ce dépôt GitHub:
github.com/amayii0/GarageOpenerR1