Raspberry PI ~ 22 : Créer une porte domotique (Partie 1)

Ce post est le vingt deuxième d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! :D

Salut les poilus !! Vous faites quoi ce week end ?

* public en délire hurlant une réponse assourdissant et a peine audible *

De la domotiiiquueeuhh !

Et ça tombe bien que vous soyez aussi enthousiastes parce que j’ai fait mes fonds de placard
le week end dernier afin d’y déterrer ma porte domotique ! :).

Dans ce tuto nous allons voir comment créer de A à Z une porte domotique sans connaissances poussées de code, d’électronique etc.. et pour environ 35€ (alimentation comprise)  :) (bon ok il vous faudra quand même une porte classique et c’est ce qui risque de vous coûter le plus cher. Sérieusement vous avez vu le prix de l’aggloméré chez Leroy merlin? On croirait acheter du teck ou du marbre !! Mais je digresse.)

Concrètement que va faire cette porte ?

  • Elle va se déverrouiller / verrouiller depuis l’interface web YANA
  • Elle va se déverrouiller / verrouiller depuis un bouton poussoir (situé du coté intérieur évidemment)
  • Elle va se déverrouiller / verrouiller en Bluetooth dès qu’elle détecte votre téléphone portable (sécurisé par code évidemment)
  • Elle va tenir un historique précis des personnes qui ont déverrouillées la porte, cet historique sera consultable sur l’interface yana

Le système de code Bluetooth vous permettra non seulement d’ouvrir votre porte en gardant les mains libres et sans chercher vos clés mais aussi de créer des codes temporaires limités dans le temps ou dans le nombre d’utilisations pour votre entourage :

  • La femme de ménage ne pourra rentrer que le mardi entre 14h et 14h30
  • Votre voisin ne pourra entrer qu’une fois par semaine pour nourrir le chat
  • Votre chérie ne pourra rentrer que si elle a sortis les poubelles
  • etc. etc…

Assez tergiversé, c’est l’heure du quart d’heure de honte :)

Si vous n’arrivez pas a voir la vidéo, c’est que votre navigateur ne supporte pas la balise vidéo html5, vous pouvez donc sois télécharger
un navigateur récent et gratuit (chrome, firefox etc..) sois télécharger la vidéo et la lire en locale.

Si cette vidéo consternante ne vous a pas fait faire un AVC, c’est que je n’ai pas encore tout à fait touché le fond et je m’en excuse (si seulement j’arrivais à coincer un monteur vidéo compatissant sur bordeaux on n’en serait pas là :p)

Ya pas à dire le montage vidéo, c’est un métier… mais revenons à nos boutons, il est temps
de mettre les papattes au cambouis.

Comment que ça fonctionne ?

  1. La carte Bluetooth, une fois alimentée, vas émettre toute seule en Bluetooth, son nom aux quatre vents et hurler à tue tête
  2. qu’elle est « open » (la ptite coquine ! :D)
  3. Le téléphone vas, grâce à l’application android, rechercher le nom de la carte Bluetooth
  4. du montage dans le périmètre et s’y connecter (en électronique, pas de préliminaires)
  5. Le téléphone vas envoyer un code de 4 caractères (mot de passe alphanumérique préalablement configuré dans l’appli Android et dans l’arduino)
  6. La carte Bluetooth reçois le code, le transmet à l’atmega qui contient le code
  7. L’atmega compare le code reçu au code valide (stocké en dur dans l’atmega), si le code est bon, l’atmega envoie « 1 » sur son pin relié à la carte relais pendant 5 secondes
  8. La carte relais, une fois activée par l’atmega, vas ouvrir le circuit (donc couper) d’alimentation 12V de la gâche électrique
  9. La gâche électrique, une fois qu’elle n’est plus alimentée vas se déverrouiller, la porte pourra donc s’ouvrir
  10. Une fois les 5sc passée, l’atmega envois de nouveau 0 à  la carte relais, qui ferme le circuit de la gâche, celle ci, de nouveau alimentée, verrouille la porte.
  11. Un appuis sur le bouton du montage aura le même effet qu’un code Bluetooth valide.

Quelques détail sur les composants

Nous noterons l’arrivée de trois nouveaux composants dans notre circuit habituel : la carte bluetooth, le régulateur de tension 220V/5V et la gâche électrique.

Ces trois composants méritent donc une (courte) explication quant à leurs utilités et leurs fonctionnement.

La gâche : Est ce que vous pouvez trouver de plus proche d’une serrure électrique, c’est un simple composant qui fonctionne ici en 12V avec deux simples bornes + et -, si vous l’alimentez, la gâche vas se “bloquer” et la petite partie métallique dans laquelle est coincée le loquet de la serrure ne peux plus s’échapper. Si vous cessez de l’alimenter, la gâche se déverrouille et la porte est libérée.

Notez que je vous ai décrit là le fonctionnement d’une gâche en mode “safe”, il existe un second mode (le mode “secure”) qui vas faire exactement l’inverse, à savoir qu’elle se verrouillera lorsqu’elle cessera d’être alimenté et se libérera lorsque vous l’alimenterez. (cf : la vidéo sur le pour et le contre des deux modes), dans ce tuto nous utilisons le “safe”.

La carte Bluetooth : Carte qui vas permettre de mettre et de recevoir des infos en Bluetooth, elle est alimenté généralement en 5v et propose la plupart du temps 4 bornes :

  1. Une borne + (5v)
  2. Une borne – (la masse)
  3. Une borne tx (permet de transmettre des information d’un porte série vers le Bluetooth)
  4. Une borne rx (permet de recevoir une information Bluetooth et de la retourner en série).

Vous l’aurez compris, dès qu’on voudra envoyer des infos on utilisera la borne tx, lorsqu’on en recevra ce sera la borne rx qui sera mise à contribution Sourire.

Le régulateur de tension : L’idée est simple, ce composant vas prendre une tension en entrée, et l’abaisser ou la relever en sortie.

L’avantage étant que le composant accepte une “plage’’” de tension en entrée, pour le notre, qu’on lui envoie du 7V ou du 35V  il sortira toujours du 5V (la plage de tension max/min est spécifiée sur la fiche technique ici vous l’aurez compris une valeur de 7v à 35v donc avec notre 12v on est dans les clous).

On vas s’en servir ici pour transformer le 12V de l’alim en 5V de manière à alimenter tous les composants qui ne supportent que du 5V (c’est à dire tous sauf la gâche, les lopettes !).

Les régulateurs ressemblent généralement à des transistors (boite noire à trois pattes) trois pattes donc :

regulateur

  • Une patte pour le + 12V (patte 1, vous pouvez y envoyer n’importe quelle valeur entre 7V et 35V)
  • Une patte pour la masse (patte 2)
  • Une patte (patte3) qui ressortira du 5V.

il faudra donc relier le + et le – de  l’alim 12 v à deux des pattes, on se servira ensuite de la patte  – et de la patte qui reste pour avoir notre + 5v.

Alors qu’est ce qu’il nous faut comme matos pour bidouiller tout ça ?

Le matériel

Comme ebay change constamment ses [placez une insulte ici] de liens des fiches de composants dans l’unique but de me rendre fou (oui je suis un peu ego-centré mais je vous empapaoute:p) , je vous donne des résultats de recherches, prenez au plus proche des mots clés évoqués, vous n’êtes pas obligé de prendre exactement le même matos que moi faites juste attention aux caractéristiques (tensions de sortie, tension d’entrée, type du composant…).

N’oubliez pas de recherches avec les filtres « dans le monde entier » et « par prix + livraison les moins cher » histoire d’avoir les rabais des chinois.

Si vous n’avez pas de plateforme arduino pour programmer l’atmega référez vous au tuto 15, sinon suivez
bêtement le guide.

Les branchements

Voila un schéma relativement correct du branchement complet incluant
le régulateur et l’atmega seul (ce qui n’est pas le cas dans la vidéo de démo
ou j’étais encore en développement du prototype, ne vous inquiétez donc pas si vous voyiez quelques différences).

montage

 

Quelques remarques en vrac :

  • Le code étant encore un peu « jeune » coté arduino, le bouton est hyper sensible, la moindre variation d’une micro seconde peu faire s’activer le bouton sans raison, si vous avez ce soucis n’hésitez pas a dégager le bouton dans un premier temps pour vos tests bluetooth.
  • Sur le dessin on vois une prises jack pour l’alimentation 12V, mais vous pouvez simplement brancher votre adaptateur 220/12v à la place sans passer par un jack (c’est juste pour faire plus propre)
  • Faites bien attention au sens de l’atmega (petite encoche vers le haut) et du régulateur
  • Le code couleur de la résistance à été pris au hasard ne vous y fiez pas, il vous faut une valeur de résistance suffisante pour que votre led ne grille pas, si vous ne savez pas la calculer vous pouvez acheter une led qui se branche directement sur du 5v ou de pas mettre de led du tout.
  • Mon logiciel de dessin ne propose pas tous les composants existants, il est donc possible que votre composant n’ai pas exactement la même tronche, aussi fiez vous aux inscription du schéma (gnd, vcc, tx, rx etc…).
  • Vous noterez que l’atmega à deux vcc et deux gnd (qui sont en fait relié en interne) on alimente donc uniquement un des deux coté et on peut se servir des deux cotés pour des raisons pratiques.

Le code (coté arduino)

Vous pouvez trouver le fichier .ino ICI.
– Ouvrez le avec l’arduino IDE (il vous demandera certainement de créer un dossier du même nom, dites oui)
– Branchez l’atmega de la future porte sur votre plateforme arduino
– Branchez votre plateforme arduino en usb à votre PC
– Cliquez sur téléverser (dieu que ce terme est moche en français…)
– Décrochez l’atmega de la plateforme et replacez le dans le circuit de la porte

Notez que le mot de passe correcte est pour le moment « en dur » dans le code, si vous voulez
le changer (et c’est vivement conseillé) modifiez « idle » avec le mot de passe qui vous plait, MAIS CONSERVEZ UN MOT DE PASSE A 4 CARACTÈRES, le programme étant pour le moment fait pour ne prendre que 4 caractères en compte (je vais améliorer ça).

Le code (coté téléphone)

Vous pouvez télécharger l’application android ICI.
Comme je n’ai pas de compte développeur android pour la proposer sur le market (il faut payer pour proposer des applications gratuites, c’est le monde à l’envers :p) il vous faudra décocher la case  « Ne faire confiance qu’aux appli provenant du market ».

Je placerais les sources de l’appli android sous mon github dès que j’ai une minute, n’hésitez pas à faire vos pull request si vous avez des améliorations sous la patte (et il y a de quoi améliorer…).

Utilisation

  1. Branchez votre circuit au 220v (faites attentions a vos fesses quand vous branchez pour la première fois, on est jamais assez prudent avec le 220v)
  2. Sur votre téléphone, allez dans paramètre de config sans fil –> Bluetooth –> scannez les périphériques et appairez celui qui porte le nom « BOLUTEK ». Si vous prenez une carte Bluetooth autre que la mienne, le nom sera différent, généralement c’est la marque de la carte.
  3. Le code d’appairage est « 1234 » (idem sur la pluparts des cartes d’autres marques, sinon c’est 0000).
  4. Lancez l’application android et cliquez sur le bouton de config.
  5. Renseignez le nom de l’appareil « BOLUTEK » et le code secret de 4 chiffres stocké dans le code de l’arduino (par défaut: « idle »)
  6. Relancez l’application, normalement ça devrait fonctionner, si ça plante, n’hésitez pas à redémarrer votre téléphone).

Les points à améliorer

Ce circuit est évidemment sujet à améliorations, voici les points  d’optimisation que j’ai pu relever:

  • Utilisation d’une batterie de secours et d’une gâche en « normally secure » au lieu du normally safe
  • Utilisation du capteur à effet de hall pour savoir si la porte est ouverte ou fermée
  • Utilisation d’un piston électro mécanique pour ouvrir/fermer le battant automatiquement
  • Gestion des codes dynamiques depuis l’interface yana (codes limités dans le temps, le nombre d’utilisation ou autres) avec historique des entrées/sorties (partie 2 du tuto)
  • Optimisation du code en général
  • Application android : recherche automatique de la porte toutes les minutes (avec  gestion intelligente
  • du Bluetooth pour économiser l’énergie).
  • Utiliser un attiny85 au lieu d’un atmega (plus petit, un peu moins cher et moins « surdimensionné » en règle générale)
  • Utiliser l’horloge interne (8mhz) de l’atmega au lieu du résonateur (16 mhz)

C’est tout pour cette fois (ça vous fait déjà un petit peu à digérer) dans la seconde
partie du tuto, on essaiera de relier notre porte à notre rpi (et ça croyez moi c’est pas
du gâteau :p) de manière à intégrer d’avantage notre porte à notre domotique

 


Follow us on Facebook

www.webpoint.fr
webpoint.e-monsite.com  www.prestatic.fr  www.epart.fr/demo 4  www.support-prestashop.fr  www.maxibazare.com  www.conseils-web.fr  referencement-annuaire-web.fr  facebook.com/Webpointfr-622797134842872  facebook.com/prestatic.fr  webpointfr.simplesite.com  webpoint.e-monsite.com  contact29364.wixsite.com/www-webpoint-fr  webpoint.space  webpoint.byethost7.com  akimania.webnode.fr  Dropshipping shopify Retour