Sésame, ouvre toi !

Portail, portes, volets et stores de terrasse obéiront aux ordres du Raspberry Pi

Modérateur : Francois

kikonk
Messages : 3
Enregistré le : lun. 22 sept. 2014 17:13

Sésame, ouvre toi !

Message par kikonk » jeu. 30 oct. 2014 15:42

Bonjour,

Ce premier post dans la rubrique dédiée à l'ouverture et la fermeture. :D

PRESENTATION
On est deux à bosser sur mon projet et je peux vous dire que deux cerveaux pour tenter d'envisager toutes les situations possibles face à un problème donné ne sont pas deux cerveaux de trop... ;)

Alors, quel est le problème donné :
Rendre possible et automatique l'ouverture et la fermeture de mon portail (déjà motorisé et activé par une télécommande à radio fréquence en 433mhz) puis de mon garage (motorisé avec la même télécommande) grace à mon smartphone (iPhone ou ANDROID).

Quelques questions à se poser avant de se lancer :
- Quelle est la donne ?
> Un portail et un garage motorisés contrôlés par une télécommande RF433mhz à 2 boutons. L'action sur l'un des bouton de cette télécommande provoque l'une des 3 réactions suivantes dans l'ordre :
1-ouverture
2- stop
3- fermeture
Selon le bouton, cette squence d'actions concerne le portail ou le garage.
>Un RasPI qui attend d'être programé.

-Quels avantages ?
Pratique -> Le smartphone est toujours dans ma poche (pas la télécommande)
Sécurité ->Pour y accéder, le smartphone est codé et vérouillé (pas la télécommande)
Magique -> Il faut le voir pour comprendre...

- Quel budget prévoir ?
50 à 100 euros si vous n'avez pas encore de Raspberry PI (sachant que je suis déjà équipé, de la motorisation des portail et garage et des smartphones utiles)
Il faut investir dans un Raspberry PI (22 euros) et quelques accessoires attenants (alimentation (4 euros), relais double (2 euros), 10 brins de fils (1 euro), clé WIFI USB (4 euros), peut-être un module RF 433Mhz (4 euros) et éventuellement un boîtier (5 euros)...)

- Comment opérer ?
Il y a de nombreuses façons d'arriver au résultat escompté et il faut bien en choisir une qui orientera le projet dans un sens plutôt qu'un autre...
Pour faire le bon choix il faut :
a- Mettre à plat les actions
1- j'ai plusieurs solutions dont la possibilité d'imaginer que le RasPi soit équipé d'un module RF 433mhz et qu'il soit relié à internet. Bon...
L'ordre serait alors donné par le smartphone "connecté" à internet, d'ouvrir mon portail puis mon garage à travers un navigateur internet ouvert sur une page WEB qui donnerait au RasPI, connecté à la maison, l'instruction d'envoyer le même signal que ma télécommande. Ce qui permet d'ouvrir les portail et garage...
Deux problèmes se posent ici :
1-> la connexion internet permet donc l'ouverture et la fermeture par mon iPhone depuis n'importe quel coin dans le monde ! (il faut donc sécuriser cette partie un minimum pour ne pas voir s'ouvrir mon garage par un petit malin sans ma volonté exclusive ;) ) et, selon la protection choisie, cela peut géner l'utilisateur (moi) qui aurait finalement préféré utiliser sa télécommande)
2-> le contrôle et la copie du signal encrypté de la télécommande est un peu galère. Il faut récupérer le code puis le mémoriser dans le module RF 433mhz du RasPI.
Schema-Portail-3.jpg
Schéma
Schema-Portail-3.jpg (44.65 Kio) Vu 20596 fois
2- Parmi les nombreuses options (je suis certain de ne pas avoir tout envisagé et je compte sur vous pour enrichir ce projet) j'ai donc choisi, par facilité et sécurité, de sacrifier une télécommande qui sera intégrée au dispositif et activée par le GPIO du RasPI. Il m'a donc fallu souder des fils sur les switchs de cette télécommande et de les relayer au relais qui est connecté sur le GPIO du RasPI. J'ai aussi pensé que le contrôle de mon portail et de mon garage par mon Smartphone devait se faire, dans un premier temps, si celui-ci se trouve présent sur mon réseau local. Par chance, ma zone WIFI devance d'un petit mètre mon portail...

Si vous comprenez bien (c'est que je suis plus clair que je ne le pensais) mon projet mécanique est en place (mon smartphone, mon RasPI, ma télécommande éventrée et mon réseau WIFI) il ne reste plus qu'à programmer tout ça.
C'est le rôle qu'a gentillement pris en main ZTON (le second cerveau fort utile à ce chantier !). Il a dû s'impreigner du projet, se l'approprier et réaliser une programmation encore bien plus complète que souhaitée au départ ! ZTON a automatisé l'action d'ouverture !
En effet, partant du fait que mon smartphone doit être identifié sur mon réseau local pour actionner (en passant par le RasPI) mon portail et mon garage, ZTON a programmé le RasPI pour qu'il se mette, à ma demande depuis internet, en attente de mon smartphone sur mon réseau local pour, dès que j'arrive devant mon portail, celui-ci s'ouvre tout seul ! Vous voyez un peu le TOP du TOP de la chose ????

Dès lors, ZTON et moi nous devions d'enrichir le projet en ajoutant un accessoire bienvenu : une caméra pour regarder le portail et ouvrir (ou pas) si quelqu'un sonne devant chez moi.
C'est fait !
2014-10-24 20.16.37.png
Interface iPhone
2014-10-24 20.16.37.png (231.18 Kio) Vu 20596 fois
3 vielles webcams testées avant d'en trouver une (merci ZTON) qui convienne au RasPI !
Voilà que l'application smartphone se voit agrémentée d'images de conrôle !

Récapitulons :
1- je suis au boulot ou dans le train. Je rentre chez moi.
2- j'ouvre mon smartphone, je me connecte en WIFI ou 4G et je lance l'application programmée par ZTON.
3- je clic sur le bouton "d'activation" qui dit à mon RasPI :"Papa rentre à la maison alors ouvre-lui dès qu'il est là !"
4- je m'approche de mon portail, mon smartphone est reconnu sur mon réseau WIFI et se connecte...
5- "Sésame, ouvre toi !"

Elle est pas belle la vie ?
L'application permet aussi d'ouvrir, stoper et fermer le portail seul et le garage seul (ou même mieux : les deux en un bouton)

Ici j'ai placé le RasPI et la webcam (Microsoft) dans un boîtier de camera factice (4 euros)...
2014-10-28 22.01.27.jpg
WEBCAMet RasPI dans la boîte !
2014-10-28 22.01.27.jpg (66.75 Kio) Vu 20596 fois
Une déclinaison sur PC et voilà un projet qui prend très favorablement forme non ?

Il y a encore pas mal de boulot pour optimiser le tout et ouvrir les perspectives, entre autres, d'une utilisation pour d'éventuels autres fans du Raspi ! ;)
Modifié en dernier par kikonk le jeu. 30 oct. 2014 23:56, modifié 4 fois.

domi
Administrateur
Messages : 3230
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Sésame, ouvre toi !

Message par domi » jeu. 30 oct. 2014 17:07

Bonjour,

Projet vraiment très intéressant,
merci d'avoir pris le temps de le détailler.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Sésame, ouvre toi !

Message par mikebzh44 » ven. 31 oct. 2014 08:40

Merci pour cette présentation détaillée.

En plus, je dois pouvoir utiliser les fils de mon portier pour envoyer les ordres d'ouverture du portail ou du portillon (pas de garage motorisé) sans bidouiller la télécommande ;)
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

kikonk
Messages : 3
Enregistré le : lun. 22 sept. 2014 17:13

Re: Sésame, ouvre toi !

Message par kikonk » ven. 31 oct. 2014 11:57

Effectivement,

J'avais bien cette solution d'aller trouver les fils d'activation de mon portail et de mon garage pour éviter de souder les fils sur ma télécommande mais j'ai trouvé plus simple de passer par la télécommande justement pour pouvoir positionner l'équipement (le RasPI, la webcam et la télécommande) où je veux dans la maison (il n'y a que le fil d'alimentation électrique à brancher).
Fichiers joints
2014-10-11 00.28.28.jpg
2014-10-11 00.28.28.jpg (65.7 Kio) Vu 20578 fois
Modifié en dernier par kikonk le ven. 31 oct. 2014 17:01, modifié 1 fois.

3VG4
Messages : 32
Enregistré le : ven. 3 oct. 2014 08:58

Re: Sésame, ouvre toi !

Message par 3VG4 » ven. 31 oct. 2014 15:16

Hello,

Effectivement, le résultat est top !
Ça change pas mal la vie mine de rien d'avoir automatisé tout ça :D

zton
Messages : 18
Enregistré le : jeu. 23 oct. 2014 21:46

Re: Sésame, ouvre toi !

Message par zton » sam. 1 nov. 2014 00:16

Bonjour à tous,

Je suis heureux de constater que ce petit projet (même si encore loin d'être totalement parfait) plait & intéresse.
Mon pote "kikonk" ayant posté en détail sa partie concernant les branchements réseaux / telco / Pi, je pense (et j'espère) que le projet à ce niveau sera déjà plus clair pour vous.
Concernant l'aspect programmation qui vient derrière, je vais "tenter" de vous expliquer "brièvement" à mon tour l'approche que nous avons eu, ensemble, pour aboutir au résultat actuel.

Après ses branchements, kikonk n'avait qu'un seul script python capable de fermer/ouvrir son garage+portail que nous lancions (en ssh sur le Pi) depuis son PC relié en local. A noter que le Pi n'est nullement accessible/visible à ce moment depuis l'extérieur mais uniquement en local sur l'adresse suivante : 192.168.1.23. Le pi peut cependant avoir un accès à total à internet... car relié à sa freebox... Cela sera utile plus tard... Pour le "ping mode".
Nous avons donc installé sur le Pi un serveur web Apache + Php, fait quelques script (php/sh) et réglé des soucis de droits sur le Pi afin de pouvoir lancer ce script python qui ouvre/ferme de manière plus simple, du style :
http://192.168.1.23/garage.php
A ce stade déjà, kikonk lançait simplement cette url depuis un navigateur (ie, firefox, chrome, safari...) depuis tant son PC que son iphone/ipad/android et le garage s'ouvrait/fermait.
La même chose a donc été implémentée pour le portail de l'entrée... copié-collé... :
http://192.168.1.23/portail.php
Vous en conviendrez, rien de bien sorcier jusque là...

A mon niveau, étant un grand fan du langage Delphi (une sorte d'émul de langage Pascal appris à l'école dans les années 80!) et l'utilisant donc pour mes projets perso de développement via l’outil "Embarcadero Rad Studio XE7" pour pondre du code multiplateformes (PC, Android et... MAC/iOs) il m'était facile de lui faire une application qui simplement d'un click de bouton lancerait un simple "http://192.168.1.23/garage.php" ou "http://192.168.1.23/portail.php" pour tant ouvrir/fermer son garage ou son portail sur un téléphone/tablette/PC... Cela représente d'ailleurs seulement 20 lignes de code... tout au plus...
Là où nous avons d'ailleurs le plus galéré fut de trouver un Mac et les "licences de développement" pour pouvoir compiler l'application pour iphone/ipad. (Et quand je dis galéré, je reste poli ;))
Même là encore, il faut que l'iphone/ipad soit jailbreak. En effet, Apple n'est vraiment pas cool là dessus tellement tout est bridé et verrouillé... A moins de payer... Mais c'est un autre sujet... Bref...
En revanche, côté Android, aucun soucis et n'importe quel tél/tablette sera compatible avec une telle application... Idem pour un PC (un Mac j'ai pas encore osé tester...)
Moralité, nous voilà donc avec une application (PC, Android, iphone/ipad) qui ouvre/ferme portail & garage en local, Parfait. Mais peut mieux faire ;)

Kikonk est exigeant. C'est en soit une qualité que j'apprécie mais lorsqu'il demande à ce que lorsqu'il rentre du boulot le soir sur son vélo s'ouvre automatiquement son portail & son garage dès qu'il se présente devant, là... j'avoue, je sèche... Un peu ;) Mais peu importe... Super ! Un nouveau challenge ! Yea ! ;)
Du coup nous revoilà parti pour trouver une astuce, pour arriver au résultat suivant :
1- il est 18h30, Kikonk est loin de chez lui & quitte son boulot (à noter que ça pourrait être autre chose...) et donne donc l'ordre à son Pi, via l'application iphone, d'ouvrir portail+garage dès qu'il sera devant et pas avant...
2- Le pi enregistre cette demande et attend... tant que... tant que... tant que... kikonk arrive... tant que... tant que... tant que...
3- 19h30, Kikonk arrive enfin devant chez lui, Le Pi le voit, le portail & garage s'ouvrent automatiquement et sans aucune autre interaction de sa part.
Solution retenue :
Pour le point numéro 1 :
L'appli iphone va envoyer sur un ftp (pi ou autre... dans notre cas nous avons un ftp perso free...) un fichier 'message.txt' comprenant un ordre "ouvre portail/garage".
Pour le point numéro 2 :
Le pi est en constante (crontab) recherche sur ce ftp d'un 'message.txt' avec un ordre et s'il y en a un il l'enregistre et commence une "action". S'il n'y a pas de message, il continue à en rechercher un...
Dans le cas où une "action" a été déclenchée, le Pi Ping l'adresse ip locale (192.168.1.34) de l'iphone de kikonk, en boucle... tant que... tant que... tant que...
Pour le point numéro 3 :
A 19h30, kikonk arrive devant chez lui. Son iphone se connecte dès lors automatiquement sur son réseau local ( freebox / wifi / 192.168.1.34). Le Pi qui ping 192.168.1.34 depuis un bon moment sans rien faire le voit enfin et lance donc l'ouverture du portail & garage... Sésame ouvre toi ;)
On a appelé ça le "Ping mode" dans l'application.

Concernant la caméra (fausse visio et en béta-test en attendant de trouver mieux) :
Le pi capture actuellement une image (jpg) toutes les 3sec et la sauvegarde en interne.
L’application iphone/android/pc... va juste chercher cette image toutes les 3sec et l'affiche...
Simple donc...

Voilà, j'oublie forcément des trucs mais l'essentiel est là. Si vous avez des questions... n'hésitez pas ! On est là !
Enfin, j'adore aider... donc si vous voulez votre application n'hésitez pas à demander...
Si j'ai du temps et en fonction de la demande je me ferais un plaisir de vous la pondre, voir certainement de l'améliorer... ;)

Amitiés.
Laurent/zton.

CrazyRaspberry
Messages : 1
Enregistré le : lun. 22 déc. 2014 18:02

Re: Sésame, ouvre toi !

Message par CrazyRaspberry » lun. 22 déc. 2014 18:18

Bonjour zton,

Je suis avec curiosité le site franboise314 et c'est ainsi que je suis tombé sur votre article.

Dans le cadre d'un projet personnel de domotique.
Présentation du projet de domotique : Système de vidéo surveillance avec envoie de photo sur smartphone et stockage des photos sur dropbox (qui est fonctionnel).

Afin d'activer le système de vidéo surveillance, je souhaiterais le lancer via une appli android créer sous App Inventor 2 (cela simplifie le codage d'une appli android cependant, je reste ouvert à toute suggestion). Du côté du raspberry pi, mon programme a appelé est codé en python (point commun à votre projet).

Cependant, je ne sais pas comment faire le lien entre ces deux composants (android & raspberry pi) en passant par le wifi de ma box (réseau local dans un premier temps).

Sous android, il faut que je donne les infos suivantes :
L'adresse Ip de mon raspberry
Le port
Le nom de client de mon raspberry
Le mot de pass
Puis que je lance mon programme python
Mais je ne sais pas comment réaliser cette séquence de façon compréhensible pour le raspberry pi sous android.

Sous raspberry pi, je n'ai pas la moindre idée du code à placer dans ce dernier.
Avez des pistes de réponses à me donner svp?

C'est marrant car mon deuxième projet consiste à réaliser l'ouverture et la fermeture de mon garage motoriser via une appli android. Exactement ce que vous avez réalisé. Je serais donc très heureux d'échanger avec vous!!!

Merci d'avance pour votre aide,

Bonne journée,
CrazyRaspberry

zton
Messages : 18
Enregistré le : jeu. 23 oct. 2014 21:46

Re: Sésame, ouvre toi !

Message par zton » ven. 2 janv. 2015 21:46

Bonjour,
Désolé de répondre un peu tard... Vacances et fêtes de fin d'année obligent ;)
Tel que vous décrivez la chose, ce que vous souhaitez faire faire à votre application android est, je pense, ce que vous feriez par vous même à la main, càd :
- se loguer sur votre Pi (adresse ip / port 22) en ssh via un client ssh (putty sous windows par exemple...)
- une fois logué et au sein du shell (bash) du Pi d'exécuter le script python souhaité et ce comme si vous étiez en mode console et en tapant la commande sur votre pi.
Pour se faire, il faudrait que app inventor 2 ait un "composant" de type client ssh pour pouvoir réaliser la chose...
Je n'ai pas regardé en profondeur mais je doute de la faisabilité et de l'existence de la chose... Car l'implémentation du protocole ssh n'est pas une chose aisée et rarement disponible en natif dans les outils de dev'...
Ceci-dit je peux me tromper... A vérifier...

A mon niveau, sous RAD Studio XE7, n'ayant pas non plus de composant "client ssh" (il en existe par contre, payants et souvent chers...) pour réaliser la chose, je me suis donc retrouvé dans le même cas que vous et j'ai donc dû ruser et passer par une interface web. En gros, j'ai fais ceci :
- installer/configurer sur le Pi un serveur web (apache ou nginx) + php
- Écrire un simple script php sur le Pi comportant la commande bash/python à exécuter, en oubliant pas de bien configurer les droits pour que le script, lorsque appelé, s'exécute bien...
A ce stade donc une simple requête (http get) lancée sur un autre PC/téléphone/tablette de votre réseau interne via un navigateur quelconque, de type :
http://adresse_ip_du_pi/script.php
exécute le script python sur le Pi, en passant outre le fait la complexité de se loguer en ssh... etc...

Côté application android (sous RAD Studio XE7) sont implémentées en natif des composants permettant de lancer des requêtes http très simplement, dont un simple : http get...
C'est également visiblement le cas pour app inventor 2, voir ici :
http://appinventor.mit.edu/explore/cont ... r.html#Web
https://www.youtube.com/watch?v=Wv1QfwNvOpE
http://appinventorblog.com/2011/06/02/a ... t-the-web/
etc... (voir google)
Ma méthode est donc je pense également possible via votre plateforme de développement puisque si vous pouvez lancer un "http://adresse_ip_du_pi/script.php" depuis votre application, votre Pi (si bien configuré...) exécutera donc le script python souhaité...
Voilà pour le début de piste...
A+
Laurent/zton.

imarty
Messages : 1
Enregistré le : mar. 1 déc. 2015 18:27

Re: Sésame, ouvre toi !

Message par imarty » mar. 1 déc. 2015 18:40

Bonjour et vraiment excellent. C'est exactement ce que je cherche à faire (la caméra en moins peut être) et j'ai trouvé ce forum en recherchant sur Google.
C'est un super forum et je crois que je vais me lancer dans l'aventure Raspberry... Bien que je sois un dummies dans le sujet. Auriez-vous des photos de votre brachement sur la telecommnade? Auriez-vous un tuto pas à pas pour les pas dégourdis comme moi :-(. Merci encore pour faire savoir que cela fonctionne et que cela me pousse à tenter l'aventure "geeke".

zton
Messages : 18
Enregistré le : jeu. 23 oct. 2014 21:46

Re: Sésame, ouvre toi !

Message par zton » sam. 5 mars 2016 03:31

Bonsoir,
Longtemps que je n'étais pas passé par ici... Wow ! Ca bouge ! C'est génial ! Le projet de Domi est extra !
Pour le récent post, avez vous trouvé depuis ce que vous cherchiez & qui rejoint grandement le post précédent concernant app-inventor ?
Pour être honnête, je ne pense pas que ce "langage" de programmation soit idéal pour ce type de projet... (Mais je peux me tromper)--(Mais j'en doute !)
Depuis ce post initial (qui est obsolète désormais vu les récentes avancées que nous avons faites...) je reste toujours ébahis de vous lire :)
Ayant désormais plusieurs pi 2,2,3... A mon niveau, je "tape" désormais nativement tout Rpi en ssh directement... Donc plus besoin de web-services... (Android/Ios/PC/Mac)
Je maitrise également désormais toute commande vocale sur android (exclusivement) du genre "ouvre portail"/garage et ça ouvre... & "ferme portail/garage" et ça ferme...
Testé avec Kikonk sur une tablette android... tjs avec mon outils de dev' "Rad Studio".
Si vous avez des questions/requêtes/doléances, just ask... Ce sera avec plaisir...
Amicalement.
Laurent/zton.

Répondre

Retourner vers « Gestion centralisée ouverture/fermeture »