raspberry pi

146
Mohamed Bouhamed To be human you must to  be Geek Raspberry PI & Arduino, domotique, robotique, et pleins de trucs en “ique” Année 2014-2015                                                                                                                                                Geek

Upload: bouhamed-mohamed

Post on 08-Jul-2015

1.013 views

Category:

Engineering


6 download

DESCRIPTION

a idea about raspberry pi and some project to, manipulate this micro pc, i like the presentation so that's why i make this slide on order to share this tuto, it can helps you and change your life :p

TRANSCRIPT

Page 1: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI & Arduino, domotique,robotique, et pleins de trucs en

“ique”

Année 2014­2015                                                                                                                                                Geek

Page 2: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Sommaire : • Raspberry PI ~ 01 : Présentation 

• Raspberry PI ~ 02 : Exploration technique 

• Raspberry PI ~ 03 : Brancher et installer le Raspberry PI 

• Raspberry PI ~ 04 : Configurer en serveur 

• Raspberry PI ~ 05 : Protéger notre précieux 

• Raspberry PI ~ 06 : Utiliser le GPIO et Interagir avec le monde réel 

• Raspberry PI ~ 07 : Allumer/éteindre une vraie lampe OU comment faire de la 

domotique low cost. 

• Raspberry PI ~ 08 : Jouer avec les ondes radio 

• Raspberry PI ~ 09 : Créer une interface vocale 

• Raspberry PI ~ 10 : Commander le raspberry Pi par radio 

• Raspberry PI ~ 11 : Relier à un écran et afficher du texte 

• Raspberry PI ~ 12 : Allumer des prises à distance 

• Raspberry PI ~ 13 : Détecter l’ouverture des portes et fenêtres 

• Raspberry PI ~ 14 : Surveiller les performances du rpi depuis le web 

• Raspberry PI ~ 15 : Créer sa propre prise radio (et autres périphériques) pour 6€ 

• Raspberry PI ~ 16 : Mieux comprendre les pins avec Raspin’s 

• Raspberry PI ~ 17 : Un mini écran pour    2  2€ 

• Raspberry PI ~ 18 : Construire une sonde de température radio pour    7  € 

• Raspberry PI ~ 19 : Optimisation, trucs & Astuces 

• Raspberry PI ~ 20 : Créer un tableau de bord connecté au net (ou comment 

augmenter le nombre de GPIO) 

• Raspberry PI ~ 21 : Yana, un nouveau cœur domotique

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

• Raspberry PI ~ 23 : Créer une porte domotique (Partie 2)

Année 2014­2015                                                                                                                                                Geek

Page 3: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 01 : Présentation:

   Vous est il déjà arrivé de désirer ardemment quelque chose sans réellement savoir

quelle utilisation vous en feriez ? C’est mon gros problème avec le raspberry pi…

Le raspberry pi c’est quoi?Le raspberry Pi c’est, pour faire court, un pc de la taille d’une carte de crédit, pouvant supporter unedistribution linux, pour le prix de …30 euros (+-10€).

               Le pi dispose de nombreux port/prises/capteurs , usb, ethernet, bluetooth …

 Vous l’aurez compris, les applications de ce genre de matos sont nombreuses (et peu coûteuses)

d’ou l’objet de ma convoitise, et celle de quelques centaine de milliers de geeks.

Imaginez les applications que vous pourriez faire d’un mini serveur dédié portable à 30€ !!

Domotique : installer des serveur raspberry sur chaque machine Electroménager et contrôler chaque serveur depuis sont réseaux.

Itinérance : Avoir dans son porte monnaie à chaque instant un serveur de fichiers accessible par wifi, et pourquoi pas via une solution logicielle échanger ces fichiers automatiquement avec tous lesraspberry environnants.

Piratage : The pirate bay pense même à fixer ce genre de matos sur des ballons stratosphériques pour mettre à l’abri ses torrents de la juridiction (évidemment c’est une joke de l’admin, mais je trouve le concept presque viable si on ne tient pas compte de l’autonomie, des variations climatiques, des volatiles, de la couverture réseau…)

Année 2014­2015                                                                                                                                                Geek

Page 4: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Evidemment, “recette victime de sont succès” comme dirais McDonald, l’achat est indisponible depuis février et ça me rend ma-la-de !!

Mais il y a pire… toute une communauté s’est déjà fondée sur le pi, des tas de programmes, plugins, trip and tricks existent déjà… certains ont même inventé un magnifique boîtier :

J’en veux j’en veux j’en veux !!!!

Année 2014­2015                                                                                                                                                Geek

Page 5: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 02 : Exploration techniquecommander cette merveille à l’adresse suivante : http://downloads.element14.com/raspberryPi1.html?isRedirect=true

Voyons un peu ce que contient la ptite boite, après moultes déballages :

Oaaaaw une carte électronique avec plein de bitoniaux, des prises partout et …

Année 2014­2015                                                                                                                                                Geek

Page 6: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

pas de câble associé arrrgghh… bon, je m’y attendais, les câbles (et la mémoire) sont à acheter à part, donc je fais un petit tour sur amazone et j’achète les éléments suivants :

Je m’en tire pour 52 € afin d’acheter un câble Ethernet pour relier l’engin au net, une carte SD qui fera office de mémoire morte sur la machine, un câble hdmi/VGA(DVI, c’est plus sûr) permettant de connecter mes écrans au raspberry et un switch USB histoire de pouvoir brancher simultanémentsouris, clavier etc… (bien que le raspberry semble disposer de deux ports par défaut au lieu de l’unique port USB que j’attendais).

Je devrais également acheter un câble micro USB (à 3€) pour me servir d’alim (attention, le câble devrat être alimenté en 5V pour fonctionner avec le raspberry), mais il me semble que j’en ai déjà un qui traîne (c’est sensiblement les même que pour nos smartphones).

Bon, 30€ de raspberry + 52€ de fourniture = 82€ dans la vue, ça fait un peu cher mais je me dis que les fournitures peuvent être utilisé pour autre chose dans tous les cas (jme rassure ^^) et que je ne devrait rien acheter de plus (a part peut être boîtier stylé à 8€ si je craque).

Année 2014­2015                                                                                                                                                Geek

Page 7: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

En attendant mes fournitures, faisons un peu le tour de l’engin en lui même :

Une face comportant un simple port HDMI, c’est donc pour la vidéo, et c’est donc la que je brancherais mon câble HDMI/VGA fraichement commandé et je relierais l’autre bout à mon écran (jusqu’ici, ça m’a l’air simple), rien d’autre à signaler de ce côté, tournons un peu la carte…

Sur cette autre face, nous avons de gauche a droite : une sortie audio stéréo Jack 3,5 mm pour l’audio (personnellement je ne compte pas utiliser le raspberry comme centre multimédia donc je m’en tape), un port jaunâtre que je ne connais pas mais qui est visiblement un port vidéo analogique, donc utile uniquement si vous souhaitez relier le raspberry à votre vielle TV cathodique (useless) et une série de broches GPIO…

Gnié? Gépéyo quoi?

Les broches GPIO sont des ports d’entrée/sortie très utilisés dans le monde des microcontrôleurs, ilsvous serviront ici uniquement si vous êtes un peu calé en électronique et que vous souhaitez raccorder le raspberry pi par exemple a une lumière ou a un interrupteur (peut être très intéressant sivous voulez faire de la domotique à pas cher dans votre maison).

Année 2014­2015                                                                                                                                                Geek

Page 8: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Voir une petite vidéo ici : http://www.raspberrypi.org/archives/1417

Si vous n’avez rien compris à cette histoire de broches, ce n’est pas bien grave vous pourrez quand même profiter de votre raspberry en toute impunité, passons donc à la suite.

De gauche à droite : un port Ethernet, c’est donc la que je brancherais le câble Ethernet que j’ai commandé afin de procurer le net au raspberry PI, l’autre bout du câble sera bien entendu branché àma Freebox. Et enfin… deux magnifique port USB, ou je vais m’empresser de brancher mon switchUSB histoire d’avoir 4 ports espacés au lieu de 2 (ben oui clavier+souris+clé wifi+ disque USB éventuel =4 ).

La face restante comporte un port micro Usb qui servira à alimenter le raspberry (via le câble micro USB que je n’ai d’ailleurs pas acheté parce que je dois en avoir une vingtaine).

Enfin dernière petite chose : Sous la carte se trouve un petit compartiment pour placer la fameuse carte SD que nous avons commandé (8 Go minimum recommandés).

Je pense n’avoir rien oublié à part peux être le connecteur CSI (qui semble être utilisé dans le milieu de la vidéo) et le connecteur DSI (qui visiblement permet de brancher un touch screen si besoin est).

Dans un prochain post et d’ici à ce que je reçoive mes fournitures amazones, nous verront comment brancher et installer la distribution linux adéquate (Raspbian “wheezy” , conçue spécifiquement pour raspberry ou la distribution Arch Linux ARM qui fonctionne aussi) sur la carte SD.

Année 2014­2015                                                                                                                                                Geek

Page 9: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 03 : Brancher et installer le Raspberry PI

3 Os possibles à installer

Nous allons commencer par installer sur la carte SD (16 go pour moi, 8 go minimum conseillés) le système d’exploitation qui n’est autre qu’une distribution linux.

En gros trois distributions possibles : Debian squeeze, ARM Arch linux ou Raspian

Visiblement Debian squeeze est le plus simple a prendre en main, malheureusement c’est égalementle moins optimisé pour le raspberry, donc beaucoup de pertes de perfs, on peux rayer celui la .

Ca nous laisse deux Os auxquels je ne connais rien, donc a choisir, autant prendre celui qui a été “spécialement” conçu pour le raspberry j’ai nommé raspian.

Je télécharge donc raspian “wheezy” ici : http://www.raspberrypi.org/downloads

Pour l’installer sur la carte SD, j’utilise le programme utilitaire Win32DiskImager disponible ici : http://www.softpedia.com/get/CD-DVD-Tools/Data-CD-DVD-Burning/Win32-Disk-Imager.shtml

J’exécute Win32DiskImager qui me demande le chemin vers l’image de raspian (.img) ainsi que le lecteur sur lequel je veut l’installer (donc ma carte sd précédemment entrée dans le port SD de mon portable)

Un clic sur “write” puis sur “yes” (car un message bien flippant me disant que je pourrais perdre ou corrompre mes données de carte SD est apparus (je m’inquiète pas trop parce que quand même, il faut bien avouer que ladite carte est vierge)).

Au bout de quelques secondes (qui vont vous sembler une éternité si vous êtes aussi fébriles que moi) l’os est déployé sur la carte.

1 carte SSD à plugger

J’enlève donc la carte SD de mon pc pour la brancher directement sur la prise prévue a cet effet située sous le raspberry.

Année 2014­2015                                                                                                                                                Geek

Page 10: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Je peux maintenant passer au branchement de mes câbles pour alimenter la bête :p !!

5 câbles à brancher

Dans le sens des aiguilles d’une montre (et en partant du câble le plus haut) nous devons brancher :

• Le câbles HDMI (dont l’autre bout sera relié a votre écran par du DVI ou de l’HDMI en

fonction du câble et de l’écran que vous avez sous la main) • Le câble micro USB, qui vous servira a alimenter votre raspberry PI (l’autre bout sera donc

relié a un port usb de pc ou encore a une prise USB comme celle dont vous disposez pour vos smartphones)

• Le câble USB simple, qui sera relié a votre switch USB (vous permettant de multiplier vos

ports USB, avec mon switch, je passe de deux a 7 ports, ça fait plaisir :p) • Le câble Ethernet, qui sera relié a votre box ADSL et vous permettra par conséquent d’avoir

le net.

Année 2014­2015                                                                                                                                                Geek

Page 11: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Une fois le bousin branché et alimenté, une inquiétante lumière rouge s’allume sur le raspberry puisune jaune, puis deux vertes, et la magie opère…

…ou pas :p !!

En effet chez moi aucun signal vidéo n’est émis.

Après quelques recherches, cela viendrait de l’os qui se serait mal installé sur la carte, j’ai donc réinstallé raspian et ça fonctionne.

…Et j’ai eu la chance d’obtenir une console de ce type sur mon écran :

Année 2014­2015                                                                                                                                                Geek

Page 12: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

1 identifiant en qwerty à taper

Login : piMot de passe : rqspberry (car votre clavier est en anglais a ce moment précis)

ça y est, vous êtes logué sur votre magnifique serveur et pouvez m’envoyer quelques petites commentaires narquois pour me rendre jaloux ^^

Nb: Sur les dernières versions, raspian nous mâche le travail en nous auto-loggant et en nous proposant plein de petites options avec un joli écran de configuration bleu de la mort.

Je vous conseille d’aller directement mettre le clavier en azerty (clavier francais) via l’option du tableau configure_keyboard Set keyboard layout.

Sélectionnez alors Generic 105-key (intl) PC puis Other puis French puis French puis The default for the keyboard layout puis No compose key puis No

(oui je sais c’est vachement long pour un si ptit truc). Votre clavier est donc maintenant normalement en français, n’hésitez pas a rebooter si la modif n’a pas été prise en compte tout de suite.

Notez que sur ce panneau bleu de configuration (accessible a tous moment depuis la ligne de commande “sudo raspi­config”)vous avez de nombreuses configurations importantes à faire comme le réglage de la langue du systeme (option change_locale Set locale) le fuseau horaire (option change_timezone Set timezone) etc…

Une config qui est importante également c’est le redimensionnement de la partition système, en effet le système prend par défaut la quasi totalité de votre carte SD (ne me demandez pas pourquoi) qu’il n’utilise pas, en redimensionnant cette partition vous regagnez la place injustement pillée par le système.

Année 2014­2015                                                                                                                                                Geek

Page 13: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Le panneau de config à aussi pensé à ça et vous propose une option expand_rootfs Expand root partition to fill SD card, (mettez finish ok etc… ) votre système vas alors redémarrer avec bien plusde place à votre disposition.

Pas très à l’aise avec la ligne de commande? Quittez l’ecran de config pour arriver sur la console, ettapez startx (ou stqrtx si vous n’avez pas encore changé la config clavier) pour lancer l’interface graphique.

C’est quand même vachement plus sympa non ? Dans le prochain tuto, nous verrons comment installer les packages nécessaires pour transformer le raspberry en serveur web.

Année 2014­2015                                                                                                                                                Geek

Page 14: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 04 : Configurer en serveurMaintenant que nous avons installé le système d’exploitation Raspian sur notre Raspberry PI (Raspian n’étant autre qu’une distribution linux spécialement conçue pour le Raspberry PI) et que nous nous sommes logué (sisi, rappelez vous des identifiants par défauts –> login : pi , mot de passerqspberry) nous allons pouvoir commencer les choses sérieuses !!

En premier pensez à changer votre mot de passe administrateur :

sudo passwd su

1 sudo passwd suPuis faire un ptit update de vos paquets :

sudo apt-get update

12

sudo apt-get updatesudo apt-get upgrade

Une fois ceci terminé, nous allons installer d’une traite apache (un serveur HTTP permettant de publier du contenu Html sur le web), PHP (langage serveur permettant le traitement dynamique d’informations) et MySQL (une base de donnée).

Certains seraient tenté d’installer directement le paquet lamp-server qui englobe tous ces paquets, grossière erreur, le Raspberry ne l’entendrait pas de cette oreille, il vous faut donc installer les paquets séparément (mais en une seule ligne)

sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

1 sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Après quelques petites questions d’usage, votre serveur web est en place, pour le tester rien de plus

Année 2014­2015                                                                                                                                                Geek

Page 15: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

simple, tapez la commande :

ifconfig

1 ifconfig

et repérez l’adresse IP réseau de votre Raspberry pi (très certainement une adresse commençant par 192.168.*.*)

Tapez cette adresse depuis un autre ordinateur banché sur le même réseaux local et TADDAA!! It works !

nb : si vous n’avez pas d’autres pc sur le réseau, passez en mode graphique sur votre Raspberry PI.

startx

1 startxPuis ouvrez le navigateur installé par défaut et tapez l’adresse suivante :

http://127.0.0.1

1 http://127.0.0.1

Notez qu’a partir de maintenant, toutes les pages situées dans le dossier /var/www de votre Raspberry PI seront accessibles via l’adresse réseau tapée (uniquement depuis votre réseau) ou via l’adresse WAN (votre adresse extérieure) une fois que vous aurez débloqué le port 80 sur votre box/routeur pour l’adresse réseau du Raspberry.

Pour plus d’information sur apache, MySQL et PHP je vous invite a lire la doc d’ubuntu : http://doc.ubuntu-fr.org/lamp nous ne traiterons pas plus en détail de cette partie étant donné qu’il ne s’agit pas de quelque chose de spécifique au Raspberry PI (libre a vous de m’envoyer vos questions par mail ou par commentaires pour ceux qui ne connaissent pas).

Je vous conseille également l’installation du célèbre paquet phpMyAdmin, script php permettant de gérer facilement votre base de données MySQL depuis l’adresse http://votre.ip/phpmyadmin :

Année 2014­2015                                                                                                                                                Geek

Page 16: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

sudo apt-get install phpmyadmin

1 sudo apt-get install phpmyadmin

(Le login par défaut est root et le mot de passe est celui que vous avec renseigné lorsque vous avez installé MySQL)

Note: L’installation de phpmyadmin ne crée pas le lien symbolique permettant d’accéder à phpmyadmin, il faut alors le créer manuellement :sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

Dans le prochain mini tuto sur le Raspberry PI, nous parlerons boitier pour les riches, et boitiers pour les pauvres (amen) puis dans le suivant nous explorerons (si dieu le veux) la dimension domotique de cet engin a travers la découverte des ports GPIO (enfin si d’ici la je gère un peu plus en électronique, n’oubliez pas que je découvre avec vous )

Année 2014­2015                                                                                                                                                Geek

Page 17: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 05 : Protéger notre précieux

Maintenant que nous disposons d’un raspberry PI en mode serveur fonctionnel, il serait d bon gout de penser à sa pérennité sur le long terme !

En effet un vilain coup de pied, un chat incontinent ou une chérie un peu gaffeuse (spéciale dédicace) est si vite arrivé et notre nouveau gadget (notre précieux) est encore fragile dans son état actuel.

C’est pourquoi je dédie cette petite étape de tuto à la présentation des boitiers que vous pouvez acheter ou fabriquer pour l’engin.

La communauté raspberry PI étant ce qu’elle est, des boitier spécialement conçu pour le rasp ont vus le jour, et je dois reconnaitre qu’ils font propre :

Le plus coloré : Pibow

Pibow est un ensemble de couches colorées a assembler sois même, vendu entre 15£ et 20£ selon l’endroit ou vous habitez (frais de ports variables), pour les ptit frenchies, ce sera 17.95£

Le gros avantage selon moi, c’est le couvercle transparent qui laisse une bonne visibilité sur le circuit imprimé à tout moment, le jeux de couleurs peut être disgracieux ou carrément avantageux selon vos penchants sexuels (blague, pas taper !! ).

nb : Le boitier prévoit également des extensions pour les modules de caméra etc… et semble vouloir s’adapter aux futures évolution du rasp, bon point !

Le site de commande : http://www.pibow.com/

Le plus “pro” : Standard case for raspberry PI

Année 2014­2015                                                                                                                                                Geek

Page 18: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ce boitier vous offrira pour la modique somme de 25.51€ quelque chose de tout à fait propre et légèrement plus sobre que le précédent .

Il est également disponible en semi opaque mais pas de quoi casser trois pattes à un canard.

L’avantage de ce boitier étant qu’il est assez simple a monter (deux parties a emboiter l’une dans l’autres) les manches du bricolages s’orienterons donc plus sur cette solution.

Le site de commande :http://www.shapeways.com/model/565087/raspberry-pi-standard-case.html

Le plus “design” : Raspberry design case

Ce boitier semble être du même constructeur et offre un côté un peu plus “design” et réfléchis que son prédécesseur pour 32.75€.

Les avantages que j’y vois au premier coup d’œil, c’est qu’ils ont prévus pas mal d’aérations ainsi qu’un relais optique pour chacune des LED du raspberry PI.

La version existe aussi en noir et en semi opaque.

Je pense qu’il s’agit du boitier le plus adapté au raspberry, c’est en conséquence le plus cher.

Le plus ”populaire” : ModMyPI

Année 2014­2015                                                                                                                                                Geek

Page 19: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

ModMyPI est une entrée de gamme qui a pour avantage de vous fournir un boitier “solide” (vous comprendrez avec le prochain boitier) pour une somme relativement réduite de 7.99£

A noter que si il est un peu moins design que les autres, il existe également en blanc, rouge, vert, bleu, gris, bicolor etc etc…

Toutes les déclinaisons ici : https://www.modmypi.com/shop/raspberry-pi-cases

Le plus ‘”low cost” : Punnet

Punnet à ceci d’avantageux qu’il s’agit en fait d’un origami a plier sois même selon le patron suivant : http://squareitround.co.uk/Resources/Punnet_net_Mk1.pdf .

Il ne vous coutera rien a l’exception d’une feuille cartonnée (perso je vais tenter de prendre un truc plastifié également).

L’avantage est tout trouvé, c’est du gratuit et pour un prototype de test de rasp, ça me conviendras très bien , d’autant que nous aurons peut être a investir encore 30 € dans une carte d’extensions pourceux qui me suivront dans la partie domotique donc autant faire des économies de bout de ficelles.

C’est tout pour aujourd’hui, évidemment nous n’avons fait qu’un tour d’horizon, il existe évidemment d’autres boîtiers, mais je vous laisse un peu chercher histoire de vous faire vos propres avis sur la question (et puis j’ai la flemme de tous les répertorier ici).

Nb : Avec le raspberry PI, tout est permis, faites fonctionner votre imagination, certains n’ont pas attendus pour construire leurs propre boitiers de Rasp et je dois reconnaitre que ça dégomme tout !

Dans le prochain tuto, nous nous initierons à la maitrise des PIN GPIO (les petites broches sur un

Année 2014­2015                                                                                                                                                Geek

Page 20: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

coin de la cartes) afin d’aborder la partie domotique, il faudra être indulgent, je découvre en même temps que vous, et l’électronique n’est pas du tout mon fort (d’ailleurs si certains de vous s’y connaissent un peu, qu’ils n’hésitent pas à me contacter).

Année 2014­2015                                                                                                                                                Geek

Page 21: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 06 : Utiliser le GPIO et Interagir avec le monde réel

Chez lecteurs (lectrices) nous arrivons à la partie la plus intéressante, selon moi, de l’utilisation du raspberry PI.

Il s’agit de l’utilisation des ports GPIO (les 26 broches situées en haut a droite de votre raspberry). Cela ne vous évoque rien ? Et bien dites vous qu’il s’agit simplement d’une porte permettant a vos programme d’interagir avec le monde réel…

Je ne l’ai jamais caché, mon objectif concernant le raspberry est de pouvoir l’utiliser comme un outil de domotique à bas prix.

Je souhaite donc utiliser ce dernier pour gérer dans un premier temps, mon système d’éclairage, et dans un second temps, d’autres appareils et systèmes électriques de mon appart.

Comme je suis une pipe en électronique, j’ai commencé petit en construisant une “maquette” (le terme est pompeux vu la gueule de la maquette) de mon appart (aucune ressemblance avec le réel d’ailleurs) en me fixant pour défis de le piloter depuis une interface web.

J’ai réussi, et pour vous filer l’eau a la bouche (ou vous faire carrément bailler selon vos intérêts)

Année 2014­2015                                                                                                                                                Geek

Page 22: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour ceux qui ne veulent pas de la vidéo, petit récap en images :

J’ai développé une interface web PHP appelée depuis mon raspberry PI qui a cette tronche :

Et une “maquette” papier de mon appart avec trois diodes électroluminescentes (LED) :

Année 2014­2015                                                                                                                                                Geek

Page 23: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Je peux activer/désactiver une LED de la maquette en appuyant sur la zone d’état de chaque lignes :

Année 2014­2015                                                                                                                                                Geek

Page 24: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Je peux également appuyer sur le bouton “Joyeux noël” qui m’allumera chaque diodes pendant une seconde à tour de rôle.

Notez bien que pour suivre ce tutoriel, vous devez auparavant avoir fait le tutoriel : Raspberry PI ~ 04 : Configurer en serveur ou avoir installé le serveur web apache par vos propres moyens sur le rapsberry pi

Comment j’ai fait : 1. Partie électronique…

Je me suis intéressé aux ports GPIO du raspberry PI, ce sont de petites broches (au nombre de 26) qui peuvent se comporter en entrée comme en sortie (recevoir une information ou en envoyer une) ces broches que nous appellerons PIN, ont deux états possibles : 0 (off) ou 1 (on).

Année 2014­2015                                                                                                                                                Geek

Page 25: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Dans la suite de ce tutoriel, nous nommerons chaque PIN par leur numéro d’ordre de haut en bas et de gauche à droite (en prenant pour repère que la carte SD représente le haut du raspberry PI)

Ce serait une erreur de penser que chaque port GPIO est utilisable, car nombre d’entre eux sont réservés à d’autres tâches que de servir d’entrée sorties pour nous pauvres mortels.

EN réalité, seuls 8 ports sur les 26 sont vraiment disponibles, ce qui nous laisse la possibilité de contrôler 8 matériels de notre appart diffèrent maximums, a moins d’acheter une carte d’extension des ports.

Voila le schéma explicatif de chacun des PIN (source, le wiki de raspberry):

Année 2014­2015                                                                                                                                                Geek

Page 26: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ça parait peut être compliqué comme ça pour les néophytes de l’électronique comme moi, mais ça ne l’est pas, voila les choses essentielles a retenir :

• Les numéros sur le schéma ne correspondent pas du tout aux positions “physiques” des pins

(c’est vrai, pourquoi se simplifier la vie après tout?) donc considérez que je vous donnerais toujours les numéro physique et ne tenez pas compte des numéro inscrit sur le schéma

• Les pin 1 (en jaune) et 2 (en rouge) sont réservés a fournir du courant, le pin 1 fournis du 3,3

volts, le pin 2 du 5 volts • Le pin 6 (en noir) est la masse (donc 0 volts), on s’en servira pour fermer notre circuit

• Les pins 7,11,12,13,15,16,18 et 22 (en vert) sont les ports que nous pouvons utiliser pour nos

magouilles • Les autres pins sont réservés pour des trucs qui nous dépassent, si il y a un électronicien

dans la salle, je l’invite a nous fournir une petite explication

Année 2014­2015                                                                                                                                                Geek

Page 27: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Donc globalement pour allumer une diode nous utiliseront ? …

Le pin de masse (pin 6 en noir) et un des pin entrée sorties (au choix 7,11,12,13,15,16,18,22 en verts).

Nous allons monter notre circuit électronique de manière simplissime comme ça :

On vas utiliser la broche 11 (position physique) et la mettre a 0 ou 1 (via notre programme php), lorsqu’elle sera sur 1, le courant passera dans une petite résistance de 270 Ohms (pour protéger la Led et éviter qu’elle claque) puis directement dans notre led qui s’éclairera.

Enfin le circuit sera fermé a l’aide de la broche 6 qui sert de masse.

ça c’est l’idéal, 2 différences sur mon circuit réel:

1. Je n’ai pas de résistance, j’ai donc fait sans, ce qui rend la LED vulnérable si elle est alluméetrop longtemps (j’entends déjà les électroniciens de l’assistance grogner au fond de la salle XD)

2. Je n’ai pas branché une, mais 3 led (pour rendre ma maquette un peu plus vivante), pour se faire, rien de plus simple, j’utilise deux ports de plus et je relie tout a la masse :

Année 2014­2015                                                                                                                                                Geek

Page 28: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour monter votre circuit, de simples fils suffisent, cependant je vous conseille très vivement d’acheter ou de dégoter quelque part des connecteurs adaptés aux broches afin d’éviter les faux contacts avec le pin, un câble d’imprimante démonté comme le mien ferait l’affaire aussi :

Année 2014­2015                                                                                                                                                Geek

Page 29: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

pour relier l’autre bout de mes fils aux diodes, j’ai utilisé une table de connexion que j’avais acheté pour faire un peut d’électronique amateur, évidemment vous n’avez pas a investir vous aussi la dedans, c’est juste plus pratique que d’entortiller voir souder les fils autour des pattes de chaque led.

Comment j’ai fait : 2. Partie programmation

Une fois le montage électronique effectué, vous allez devoir signaler au raspberry PI d’ouvrir ou fermer les PIN (7 11 et 12 dans mon exemple) pour allumer/éteindre les LED que vous souhaitez.

Pour nous faciliter la vie, nous allons installer une petite librairie toute bête qui nous permettra de faire ce genre de commandes dans la console du raspberry PI :

gpio write 11 1

1 gpio write 11 1

qui signifiera : met l’état de la pin 11 à 1

Une fois cette librairie installée, nous utiliserons mon petit script gratuitement mis a votre disposition afin de donner une interface web plus conviviale a ces lignes de commandes.

La librairie se nomme wiring PI, pour l’installer depuis la ligne de commande de votre raspberry, suivez les instructions du lien.

Si tout se passe bien et que votre circuit électronique est correctement monté, lorsque vous taperez :

gpio mode 0 out

1 gpio mode 0 out

Cette ligne définira le PIN 11 comme une sortie

gpio write 0 1

1 gpio write 0 1

La diode connectée a la PIN 11 devrait s’allumer, tapez alors

Année 2014­2015                                                                                                                                                Geek

Page 30: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

gpio write 0 0

1 gpio write 0 0

Pour l’éteindre

Et la si vous suivez vous êtes en train de vous dire : “Attends un peu, il a mis “0” et pas “11” comme numéro de pin ?!!”

C’est juste, seulement rappelez vous que les électroniciens “adorent” les numéro de PIN “logiques” qui ne correspondent pas aux numéro “physiques”, notre pin qui se situe physiquement a la 11 eme position est représenté dans l’ordinateur comme le numéro 0

“Han mais comment savoir qui correspond à quoi maintenant?”

A l’aide d’une super table de correspondance fournie par notre amis créateur de wiringPi :

Les numéros centraux sont les positions physiques des PIN, les numéro de la colonne “wiringPI Pin” sont les correspondances que vous devrez appeler dans vos lignes de commandes, le reste ne vous en souciez pas ça risque de bien vous embrouiller.

ainsi pour parler du pin 15 j’utiliserais le chiffre 3, pour le pin 12 le chiffre 1, pour le 11 le 0 etc…

Année 2014­2015                                                                                                                                                Geek

Page 31: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

“Ca vas être vraiment chiant à gérer tout ça”

C’est la que ma petite interface PHP vous facilite la vie, j’y ai intégré la table des correspondances, vous n’aurez donc à vous soucier que des positions physiques des PIN.

Mon script est disponible a l’adresse :http://idleman.fr/ressources/PHP/pihome.zip

Téléchargez le et décompressez le dans le dossier /var/www de votre raspberry PI

Puis accédez a l’adresse internet de votre raspberry PI (en tapant 127.0.0.1 dans un navigateur si vous êtes depuis le raspberry PI ou en tapant l’adresse IP réseaux du raspberry PI si vous êtes sur unautre PC du réseau).

Si vous voulez ajouter/supprimer/modifier le nombre de LED, les ports utilisés etc… vous avez juste a modifier le fichier configuration.php aux lignes suivantes

Ajoutez le libellé de la led et son numéro physique de PIN associé.

C’est tout pour aujourd’hui, cette partie du rasp n’est pas facile à appréhender pour les gens qui ne viennent pas du monde informatique ou du monde électronique, n’hésitez donc pas a poser vos questions ici si vous avez le moindre soucis .

Dans un prochain tuto, nous tenterons d’agrandir l’expérience et de contrôler non pas des LED maisde véritables lampes d’appartement en utilisant le même principe (mais un tout petit peu plus d’électronique)

Edit : Si vous avez installé lightppd au lieud ‘apache, ça ne fonctionnera que si vous faites la manip

suivante (partagée par Zescientist ):

Hello,Suite à l’installation de Lighttpd (en suivant le tuto 19), je me retrouve avec ce tuto ici qui ne fonctionne plus. Après plusieurs heures de recherches, le problème vient du fait que Lighttpd exécute la commande system() uniquement pour les applications placées dans /usr/bin, or, en suivant ce tuto, la commande gpio est lancée à partir de /usr/local/bin…La solution a été de déplacer « l’application » gpio dans le bon dossier, ce qui n’est pas propre du tout mais je n’ai pas trouvé comment changer le dossier dans la config du serveur.

Année 2014­2015                                                                                                                                                Geek

Page 32: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 07 : Allumer/éteindre une vraie lampe OU comment faire de la domotique low cost.

Mais peu importe, l’application est exactement la même, on se passera de lampe pour cet exercice (c’est la faute a ma chérie qui n’a pas voulu me laisser sa lampe de chevet “lapin crétin” comme sujet d’expérience, l’hérétique !!)

Comme promis nous allons voir aujourd’hui comment utiliser le raspberry PI et plus précisément les ports GPIO (broches) de la carte pour contrôler un élément électrique de votre habitation, cet élément peut être n’importe quoi : une lampe/lumière, un réveil, un frigo, une tv, bref tout ce qui vous passe par la tête .

EDIT : Désolé la vidéo est perdu ^^, vous pouvez mater les vidéos des tutos suivants pour avoir un exemple de ce qu’on vas faire, de mon coté je referais la vidéo quand j’aurais une tite minute à moi

Prêt a tenter le coup? C’est vraiment pas compliqué, il suffit de s’accrocher un tout petit peu

Voici les éléments requis pour cette expérience :

- Un ordinateur, branché sur votre réseau

- Un raspberry PI (~30€), à commander ici : http://fr.farnell.com/raspberry-pi

Année 2014­2015                                                                                                                                                Geek

Page 33: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

- Une carte 8 relais 5V 10A (20,49€), à commander ici : http://hackspark.fr/fr/8-channel-5v-relay-module-5v-250vac-10a.html.

nb: Si la carte n’est plus disponible en stock, n’importe quelle carte relais de 5v avec une charge maximale assez haute (disons 10A) fera l’affaire. Une carte deux relais (au lieu de est disponible pour moins cher sur le même site si vous voulez faire des tests sur 2 lampes uniquement, vous pouvez aussi acheter une relais 1 seul canal pour 1.27€ ici, histoire de tester sans vous ruiner :), le montage est le même. Bref n’hésitez pas ç regarder régulièrement sur ebay dans les achats immédiats catégorie monde entier, il y a souvent d’excellent prix et livraison gratuite.

- Un réveil (ou une lampe, ou ce que vous voulez) auquel vous ne tenez pas (ou vas couper du fil)

Dans cet exercice nous ne contrôlerons qu’un seul appareil, mais notez bien qu’avec ces cartes vouspouvez en contrôler 8 simultanément, si vous avez suivis les précédents tutos sur les broches GPIO et que vous lisez attentivement celui ci, ça ne vous posera aucun problème de relier correctement les

Année 2014­2015                                                                                                                                                Geek

Page 34: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

fils.

Dans notre précédent tuto Raspberry PI ~ 06 : Utiliser le GPIO et Interagir avec le monde réel nous avons allumé et éteint des diodes à l’aide d’une interface web, nous allons maintenant passer à la vitesse supérieure en remplaçant les LED par un réveil.

Concrètement, le réveil est alimenté en 220V (branché a une prise de courant normale) et le raspberry peux fournir du … 5V maximum, il parait évident qu’il nous faut un “médiateur” entre lesdeux afin que le raspberry puisse contrôler le réveil.

Ce médiateur s’appelle une “carte relais”, c’est tout simplement une carte qui vas servir d’interrupteur électronique pour le réveil, interrupteur commandé par le raspberry.

Un petit schéma s’impose :

Tout part du PC, on se connecte depuis le PC au site web qu’on a créé sur le raspberry PI (cf les tutos précédents) et on clique sur le bouton d’activation (crois rouge) du PIN 7 physique (qui correspond en fait au port GPIO 4 logique) de l’interface web.

Année 2014­2015                                                                                                                                                Geek

Page 35: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ceci envoie un signal au raspberry qui met le port GPIO 4 à 1 (jusqu’a présent, il était a zéro).

La carte relais est branchée de manière a ouvrir le circuit du réveil quand l’état du GPIO 4 est a zéro(donc le réveil est éteint) et a le fermer quand l’état est a 1 (donc le réveille s’allume).

Année 2014­2015                                                                                                                                                Geek

Page 36: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

La carte relais est donc un interrupteur commandé par le port GPIO4, mais comme cet interrupteur est électronique, il a besoin d’être alimenté, c’est pourquoi en plus du port GPIO4, deux fils (5v et masse) sont reliés a la carte pour alimenter celle ci en 5V.

Pour être plus précis au niveau du raccordement, voila un autre schéma de ma composition :

Année 2014­2015                                                                                                                                                Geek

Page 37: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Notez bien que la carte relais supporte une puissance de 10A,soyez donc précautionneux en fonction de ce que vous y branchez, vous avez des risques de griller votre carte relais.

Enfin très important : Si vous alimentez la carte relais avec votre rapsberry pi, en fonction de votre carte relais vous risquez a terme de griller les ports du rpi qui ne sont pas fait pour ça, aussi pour les tests ça passera mais pour une utilisation prolongée, utilisez une alimentation externe (même montage sauf que vous reliez le + et l – de la carte a l’alim externe et le – de la carte relais au rpi (pour fermer le circuit de commande)

N’hésitez pas à poser vos questions dans les commentaires et a faire vos remarques, surtout ceux qui tâtent en électronique car j’imagine que j’ai dis et fait dans ces tuto pas mal d’hérésie et que même si ça marche ça peut grandement être amélioré.

Dans les prochaines tutoriaux nous trouverons un moyen de packager tout ce beau monde dans une multiprise électrique (une multiprise connectée en quelque sorte) et nous verrons comment commander “vocalement” le système afin de remplacer l’interface web qui n’est pas très utile dans uen application domotique.

Année 2014­2015                                                                                                                                                Geek

Page 38: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 08 : Jouer avec les ondes radio

Je vous avertis tout de suite, ce tuto est encore trop jeune pour aboutir sur une application concrète, il sera donc édité en deux parties.

Le but de ce tuto en deux partie est simple : faire de la domotique pas cher avec le raspberry PI et par ondes radio.

Les ondes radio ont de nombreux avantages et quelques inconvénients, nous verrons lesquels (mais je suis sûr que vous devinez bandes de ptit coquins).

Cette première partie expliquera comment émettre et recevoir des ondes hertziennes avec le raspberry PI (en passant par une brève piqure de rappel de notions du collège que je pensais pourtant avoir soigneusement refoulées).

Deux minutes de théorie ultra vulgarisée :

Une onde radio c’est une onde électromagnétique qui, comme son nom l’indique, ondule….(si vousêtes déjà perdu, souriez et hochez la tête on y verra que du feu).

Plus l’onde ondule vite, plus sa fréquence est dite “haute” et réciproquement. (j’entends au loin monprof de physique s’étrangler de honte devant ma vulgarisation hérétique du phénomène).

En gros une onde ressemble à ça :

Année 2014­2015                                                                                                                                                Geek

Page 39: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Si on augmente sa fréquence ça donne un truc comme ça :

Si on la baisse :

Année 2014­2015                                                                                                                                                Geek

Page 40: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

(Merci a FramboisePI qui m’a fournis les graphique plus jolis que mes vieux gribouillis !)

…bref zavez compris le principe, ça ne vous servira a rien dans cette première partie, en revanche ça sera utile plus tard

Pour la petite précision, une fréquence à pour unité le hertz et se mesure grâce à la formule f = 1/T

car c’est le temps que que met l’onde à faire une tite ondulation (nommée période si je ne m’abuse, sur la troisième photo l’onde n’a fait qu’une période en 1s on peux donc pensez que c’est une onde d’un hertz mais la je vous dis peut être une grosse connerie donc amis élétr(oni)ciens n’hésitez pas ame clasher dans les commentaires )

Plus la fréquence est haute, plus on peu passer d’information rapidement, mais plus l’onde est courte (ne me demandez pas pourquoi)

Trêve de théorie chiante ! Passons à l’action !

Nous, nous allons utiliser une fréquence de 433,92 Mhz, ça n’est pas complètement innocent :

1. 433,92 Mhz c’est une sorte de standard utilisé par de nombreux portails, stores, ouvertures centralisées, prises télécommandées etc… (vous commencez a voir l’intérêt du truc?)

2. 433,92 Mhz c’est suffisamment haut comme fréquence pour envoyer quelques infos rapidement, et suffisamment bas pour que ça atteigne une trentaine de mètres de portée (voirplus avec antennes).

3. 433,92 Mhz est compatible avec les récepteurs domotique low cost Chacon dont nous parlerons plus tard

4. 433,92 Mhz C’est la radio qu’écoute tout les jours chuck norris dans son bain avec son

Année 2014­2015                                                                                                                                                Geek

Page 41: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

canard qui fait pouic pouic (ok, il lui faut une bonne ouïe mais on parle de chuck !!)

Le matos !!

Hé oui, il nous faudra encore investir dans cette étape, mais rassurez vous ça reste abordable ! Nous allons simplement acheter un kit émetteur/récepteur 433,92 Mhz

J’ai acheté le mien sur conrad pour 15,95€ mais déjà a l’époque c’était de l’arnaque, et aujourd’hui ils l’ont encore augmenté, donc je vous conseille plutot ce modèle sur ebay à …1,5€ qui est exactement le même (à une patte près, dont nous ne nous servirons pas)

Les schémas ci dessous sont pour le conrad, c’est quasiment similaire avec celui d’ebay mais la position des pattes n’est pas la même, donc fiez vous aux inscriptions “gnd”, “data” et “vcc” pour faire les branchements corrects (ou alors acceptez de vous faire enfler de 13.5€ ^^)

Il faut faudra bien sûr vous munir de vôtre fidèle raspberry PI en complément et ça sera tout pour cette première partie de tuto.

Les branchements

C’est tellement enfantin que j’irais presque vous laisser lire la doc, mais comme je déteste lire les docs, je vais vous épargner ça…

Nous allons brancher le récepteur sur une PIN GPIO du raspberry et l’émetteur sur une autre pin.

Comme je suis un goret j’utilise encore une fois le jus du raspberry (wha le super jeux de mots qui tue !) pour alimenter l’émetteur et le récepteur mais je vous conseille vivement d’utiliser une alim 5v externe si vous voulez utiliser ce montage sur la durée…

Pourquoi? Et bien surtout pour une histoire de portée qui dépends du jus envoyé dans les cartes radio, plus vous alimenterez les cartes (en respectant le voltage max sur la fiche technique quand même, hein bande de gaufres :p) pour vous aurez de portée.

Du coup comme le rpi alimente comme un naze (c’est l’une des grosse faiblesse de ce magnifique engin) il est possible que vous ayiez une portée minime (parfois quelques centimètres la ou vous devriez avoir 100 m, ça rigole pas) du coup pensez alim externe, mangez alim externe, vivez alim externe.

Commençons par notre émetteur, petit bout de métal trop mimi qui tient sur le pouce :

Année 2014­2015                                                                                                                                                Geek

Page 42: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Comme vous le voyez : trois fils a souder : le fil 5V (fil qui fait bzz bzz) en rouge à relier a la borne 5V du raspberry (borne 2), la masse en noir à relier a la borne de masse du raspberry (borne 6) et enfin la borne d’état logique (0 ou 1) à relier a un PIN GPIO valide (nous choisirons le 7, c’est une valeur sûre :p)

ça donne ce montage la :

Toujours en forme ? Bien ! Passons au récepteur !!!

Année 2014­2015                                                                                                                                                Geek

Page 43: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

De gauche a droite : le fil jaune = borne logique (0 ou 1) a relier au pin 13 du raspberry, le fil rouge = la phase, à relier a la borne 5V du raspberry, et le fil noir = la masse à relier à la masse du raspberry (c’est presque monotone tellement ya pas de challenge T_T)

Vous avez compris, on vas le brancher exactement pareil que l’émetteur ( fil 5V et masse) mais sur une pin GPIO différente pour la borne logique :

Notez bien que j’ai pris le(la) pin 13 parce que je suis un grand superstitieux mais libre à vous de choisir une autre des 8 bornes dispo si vous le souhaitez.

Votre montage est maintenant terminé, plusieurs façon de le tester :

1. Relier une diode entre la masse et la borne logique du récepteur, cette diode clignotera à chaque fois que vous recevrez un signal

Année 2014­2015                                                                                                                                                Geek

Page 44: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

2. Relier une diode entre la masse et la borne logique de l’émetteur, cette diode clignotera à chaque fois que vous enverrez un signal

3. Créer un programme (php par exemple) avec une boucle qui pendant 10 secondes vas flooder le “gpio read 2” (2 correspondant a la borne physique 13) afin d’obtenir le(s) signal(aux) capté(s)

Notez bien que si vous n’habitez pas la tchétchénie, il est possible que votre récepteur reçoive plein de signaux en continu alors que vous n’émettez pas, en effet de très nombreux appareil utilisant cette fréquence il est possible que vous receviez des émissions en 433,92 mhz de votre voisin ou même de votre téléphone fixe sans fil (ou que sais je encore ^^).

Notez bien ² : La méthode de test la plus probante est encore de placer des led aux endroits que je vous ai indiqué, vous pourrez alors vous amuser a tester si vos clés de garages, vos interrupteurs de stores et autres diverses télécommandes font s’affoler la diode du récepteur quand vous les actionnez :

si c’est le cas : vos machines sont en 433 mhz et nous pourrons bientôt les piloter depuis le Raspberry (enfin, si j’arrive a me dépatouiller avec la suite du tuto évidemment ;p) personnellement, la porte du garage de ma résidence ainsi que la voiture de ma copine sont sur du 433,92 (hurk hurk hurk j’en connais un qui vas enfin prendre le contrôle de ce taudis). Notez (encore) que certain réseaux radio sont sécurisé avec des signaux changeants, surtout sur les voitures récentes, cas dans lequel nous ne pourront pas piloter l’engin.

Encore une dernière recommandation : ne soyez pas aussi con que moi, n’essayez pas d’isoler votre récepteur des signaux extérieurs en l’entourant de papier alu XD, je sais pas pourquoi dans matête le papier alu c’était pas conducteur de chaleur donc ça conduisait pas le courant non plus, résultat : j’ai niqué un port USB et mon RPI à fait la gueule un certain temps.

Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

• Prendre une alim externe pour les cartes radio et les l’alimenter au maximum de ce qu’elles

sont capables de faire (cf la clause “voltage max” de fiche technique, souvent c’est entre 5 et12V)

• Souder un fil conducteur de 16.45 cm a l’émetteur et au récepteur pour servir d’antennes.

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.

Merci a Yann PONSAR pour ses précieux tuyaux sur le sujet

Dans le prochain tuto nous verrons pourquoi et comment générer un signal 32 bit capable d’allumer et d’éteindre tous les récepteur de la gamme chacon (sorte de relais récepteurs radio a bas prix qui s’adaptent a votre appart/maison sans avoir a couper ou casser quoique ce soit)

Année 2014­2015                                                                                                                                                Geek

Page 45: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 09 : Créer une interface vocaleEn effet si vous avez bien suivis mon article “Raspberry PI ~ 07 : Allumer/éteindre une vraie lampe OU comment faire de la domotique low cost.” vous devez pouvez allumer et éteindre une lampe grâce à votre interface web.

Oui mais !! On à pas toujours une interface web sous la main pour commander le raspberry PI… alors que diriez vous de tout diriger par la voix ?

Ce qu’on cherche à faire :

Moi : “Yuri, allume la lampe du salon”Raspberry PI (oui je l’ai appelé Yuri ;p) : “jawohl mein kapitän !!”

(oui je lui donne un accent allemand alors qu’il a un nom russe :p)

*Lampe du salon s’allume*

Moi : “Yuri quelle heure est il ?”

Yuri : “Il est 18h41”

Ma chérie : “Idle, arrête de jouer avec ce machin con de geek inutile, ton WAF baisse a vue d’œil”

Moi : “Yuri Insulte la“

Yuri : “L’insulte aléatoire est : espèce de cheveux sans racine”

Bon okay on pourrait se passer d’aller aussi loin mais on vas le faire quand même, le but étant d’apprendre à simuler et a personnaliser une personnalité qui comprends vos ordres, effectue une action (contrôler une lampe, envoyer une requête, faire une recherche sur le web, dire un truc inutileetc…) et qui vous réponds en prime.

Tenez une petite vidéo horriblement mal filmée à base de canard albinos et de drogue dure pour vous prouver que je n’affabule pas :

https://vimeo.com/52886695

Bref nous allons simuler une IA type Jarvis dans le film “Iron Man” ou Sarah dans la génialissime série “Eureka”, je dis bien simuler puisqu’au final, il n’y aura aucune intelligence derrière, juste une“bête machine à réagir” (mais c’est déjà pas mal pour cette fois :p).

Année 2014­2015                                                                                                                                                Geek

Page 46: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ce qu’il vous faut :

1. Un pc avec windows 7 ou vista minimum 2. Un micro (celui de votre portable conviendra très bien) 3. Votre raspberry PI configuré selon le tutoriel “Raspberry PI ~ 07 : Allumer/éteindre une

vraie lampe OU comment faire de la domotique low cost.”

Le principe :

Votre PC vas utiliser(via notre petit programme) la librairie Speech To Text de Microsoft qui permetde faire de la reconnaissance vocale (le pc vous écoute), si la commande vocale est reconnue, il vas envoyer une requête web (http) à votre raspberry PI

Votre raspberry PI vas recevoir la requête et effectuer l’action : ouvrir/fermer un port gpio (donc allumer/éteindre une lampe ou tout autre objet électrique raccordé), ou encore récupérer l’heure serveur et vous la retourner, aller chercher les films qui passent au ciné en ce moment etc… et retourner un texte de réponse a la librairie Text To speech de Windows qui fait de la synthèse vocale(le pc vous parle).

Bref rien de sorcier en somme, certains déplorerons l’utilisation d’une librairie microsoft: c’est vrai que c’est bof, mais cette librairie a plusieurs avantages :

• elle fonctionne bien

• elle est installé par défaut sur tous les windows vista/seven et + (donc accessible à beaucoup

de gens) • elle ne nécessite pas internet

• elle fait la synthèse ET la reconnaissance vocale

• elle est configurable avec de simples fichiers XML

• il est possible d’avoir plusieurs voix et plusieurs langues gratuitement

Et croyez moi pour trouver l’équivalent sous linux il faut se lever tôt (des lib comme sphinx et autres je ne veux plus en entendre parler, quand je dis lampe elle comprend canard albinos, c’est drôle les 10 premières minutes…)

Okay mais il vas falloir développer un truc ne C# pour adapter tout ça non?

C’est la que le génie de l’un de nos prédécesseur geeks entre en jeu : quelqu’un y a déjà pensé et a développé un petit programme au poil, S.A.R.A.H : pas d’installation, fonctionne avec micro simpleou avec kinect (meilleur reconnaissance), mots clés configurable avec de simple fichier xml etc…

Le soucis c’est que le mec utilise un serveur nodejs, et qu’il ne manœuvre aucun rpi avec, donc j’ai modifié et surtout beaucoup allégé S.A.R.A.H pour créer Y.U.R.I qui fonctionne avec apache, et quiest un peu plus léger.

nb : Je tiens a préciser que le code source est intégralement de sarah, seuls quelques binaires (nodejs standalone, phantom etc..) ont été enlevés et quelques xml modifiés

Année 2014­2015                                                                                                                                                Geek

Page 47: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Assez discutaillé : au boulot !!

Installation de Y.U.R.I sur le PC

• Téléchargez Y.U.R.I : idleman.fr/ressources/PHP/interface%20vocale/YURI.rar

• Décompressez le .zip

• Ouvrez le dossier ./macroscontenant les XML de configuration et éditez le fichier rpi.xml

• Modifiez l’adresse http://mon.rpi.fr/yuri.php par votre adresse de serveur rpi+/yuri.php ( ex :

http://192.168.0.47/yuri.php )

Nb : Vérifiez que votre pc Windows et votre raspberry PI sont bien sur le même réseau et que vous pouvez bien accéder aux pages web de votre raspberry PI depuis le navigateur web de votre pc Windows

Installation de Y.U.R.I sur le raspberry PI

• Téléchargez le script yuri.php : idleman.fr/ressources/PHP/interface%20vocale/yuri-web.rar

• Décompresser et placez le script dans le répertoire web de votre raspberry PI (/var/www par

défaut) • Vérifiez que le port GPIO 7 est bien branché a votre carte relais comme définis dans le

tutoriel 7 de ce blog.

Test du programme

• Sur votre PC, Cliquez sur l’exécutable micro.exe à la racine du dossier pour lancer Y.U.R.I

• Prononcez “Yuri, allume la lampe du salon”, YURI vas bien envoyer une requête vers votre

page de Rapsberry PI qui vas allumer votre lampe

Et voila !! Enjoy !!

Pour ajouter des action vous même, il vous suffira de créer un nouveau fichier xml avec la requête et les ordres associés, et de créer l’action qui correspond dans yuri.php, vous pourrez ainsi pousser les choses très loin, le concepteur de S.A.R.A.H a créé plusieurs requêtes d’exemples pour récupérer la météo, gérer un google agenda, trouver les films sur allociné etc…

Année 2014­2015                                                                                                                                                Geek

Page 48: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 10 : Commander le raspberry Pi par radio

Nous avions brièvement abordé l’émission/transmission radio via le raspberry pi lors de notre tutoriel n°8.

Je vous avais promis une application concrète et plus poussée, nous allons donc aujourd’hui donner des ordres au raspberry PI via une télécommande radio achetée dans le commerce.

Commander le raspberry Pi par radio from idleman on Vimeo.

Tenté par l’idée de reproduire ça chez vous ? Bien ! Mettons nous au travail !!

<!> NB : Vous devez avoir suivis les tutoriaux 04, 06,07 et 08 minimum avant d’aller plus loin.

Le Matériel :

Si vous avez bien suivi le tuto 8, la pluparts de ces éléments sont déjà en votre possession

1. Un raspberry PI en état de marche 2. un kit émetteur/récepteur 433,92 Mhz j’ai acheté le mien à 15,95€ sur conrad mais je me

suis fait avoir je vous conseille ce modèle a 1.5€ sur ebay qui fonctionne pareille et qui à 200m de portéeNB :Vous pouvez n’acheter que le récepteur pour ce tuto, mais nous auront besoin de l’émetteur dans le tutos suivant donc autant grouper.

3. Un kit télécommande + 3 prises D – IO by chacon modèle 54795 vendu 29,95€, encore une fois, nous n’utiliseront dans le tuto que la télécommande, mais dans le prochaine nous nous occuperons des prises donc autant grouper.

<!> Prenez bien le même modèle que moi, car il semblerais que le protocole radio varie légèrement d’un modèle a un autre

1. Vous voila équipé bande de veinards !!

Installation :

Branchez le récepteur au raspberry PI en suivant les instructions du tuto N°8, ceci permettra au raspberry de capter les ondes radios sur la fréquence 433 mhz

Si vous avez suivis le tuto N°7, vous pouvez également brancher votre carte relais sur l’une des bornes du raspberry PI afin d’allumer/éteindre une lampe/un réveil comme dans la vidéo, sinon, vous vous contenterez de la partie envois de mail et affichage des codes de la télécommande.

C’est tout pour les branchements , maintenant voyons le code !

Assurez vous que la librairie wiringPi (qui permet de gérer facilement l’état 0 ou 1 des ports GPIO

Année 2014­2015                                                                                                                                                Geek

Page 49: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

du raspberry PI) est bien installé sur votre raspberry PI.

Téléchargez mon petit programme de réception en C + PHP nommé originalement radioReception

idleman.fr/ressources/PHP/chaconPI/radioReception.zip

Décompressez le tout dans le répertoire /var/www de votre raspberry PI

• LICENCE et README :Les infos sur la licence et autres du code.

• radioReception :l’exécutable C qui vas parser les infos sur port gpio de réception et les

envoyer au fichier PHP • radioReception.css :la source du programme C, vous pouvez le supprimer si vous ne

comptez pas modifier le code. • radioReception.php : Le fichier PHP qui vas être exécuté par le programme C, recevoir les

infos du signal, et effectuer une action en conséquence.

Utilisation :

positionnez vous dans le répertoire du programme,

cd /var/www/radioReception

définissez que le programme peut être exécuté avec un chmod (je sais, on peux faire moins permissif)

sudo chmod 777 radioReception

puis lancez le programme C avec la commande suivante :

./radioReception /var/www/radioReception/radioReception.php 7

/var/www/radioReception/radioReception.php : Chemin vers le fichier PHP qui traitera les informations reçues (identifiant de la télécommande, numéro du bouton, état on/off etc..)

7 : Numéro WiringPi du PIN Gpio auquel est branché le récepteur 433 mhz

Vous pouvez maintenant appuyer sur les boutons de la télécommandes et constater les actions effectuées par le PHP.

Année 2014­2015                                                                                                                                                Geek

Page 50: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

chaque action exécute le fichier PHP initialement entré en paramètre et lui fournis les informations suivantes :

• $sender: l’identifiant de la télécommande

• $group: Si c’est une commande de groupe (1) ou non (0), avec cette télécommande, cette

valeur sera toujours à 0. • $state: si le bouton est on (1) ou off (0)

• $interruptor : l’identifiant de la rangée de bouton de la télécommande

A vous de modifier le PHP et de développer les actions qui vous semblent intéressantes, je n’ai laissé que l’exemple d’ouverture/fermeture du port gpio 3 (15 em port physique) dans les sources.

Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

• Prendre une alim externe pour les cartes radio et les l’alimenter au maximum de ce qu’elles

sont capables de faire (cf la clause “voltage max” de fiche technique, souvent c’est entre 5 et12V)

• Souder un fil conducteur de 17.3 cm a l’émetteur et au récepteur pour servir d’antennes.

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.

Année 2014­2015                                                                                                                                                Geek

Page 51: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

C’est tout pour ce tuto !! Si vous ne voulez pas comprendre ce que vous faites, vous pouvez vous arrêter ici ^^, sinon je vous invite a entrer avec moi dans les subtilités du protocole radio utilisé en lisant les paragraphes ci dessous.

Dans le prochain tuto nous tenterons le processus inverse, à savoir émettre avec le raspberry PI pourallumer/éteindre les prises chacon (et on pourra jeter cette vilaine télécommande XD)

Comprendre plus en profondeur :

C’est une chose d’appliquer bêtement un tuto, c’en est une autre de comprendre entièrement ses tenants et ses aboutissants, pour les curieux qui voudraient comprendre plus en détail comment nousrécupérons et nous traitons le signal radio, voila quelques explications…

Zallez voir, c’est pas ultra compliqué quand on a toutes les infos bout à bout (ce que j’ai passé 2 mois a réunir) mais il faut s’accrocher un minimum

Concrètement qu’envoie la télécommande chacon ?

Cette télécommande envoie un signal radio sur la fréquence 433.92 mhz, ce signal respecte (plus oumoins) le protocole radio domotique home easy (très mal documenté au passage).

Le protocole home easy transmet les informations sous la forme d’un signal de 32 bits, un bit étant un 1 ou un 0 (ça tombe bien, les ports GPIO peuvent lire les 1 et le 0 )

il y a donc un signal de 32 : 0 ou 1 par exemple : 00011000101001010010100100010110

Vous noterez l’utilisation de zoulies ptites couleurs , ce n’est pas pour rien :

Les 26 premiers bits (en bleu) correspondent à l’identifiant de la télécommandeLe 27em bit (en violet) correspond au numéro de groupe (information que nous n’utiliseront pas)Le 28em bit (en rouge), correspond à l’état (ON ou OFF) envoyé, 0=off, 1=onLes bits 29 à 32 (en vert) correspondent au numéro du bouton de la télécommande appuyé

La télécommande vas donc envoyer le signal en fonction du bouton appuyé, de la télécommande et de l’état ON ou OFF de ce bouton.

1. Okay mais on a un seul pin branché au récepteur non ? comment on vas capter tout ces0 et ces 1 d’un coup ?

C’est une bonne question !! En fait toutes les infos vont être envoyé par le récepteur sur le même pin (dans notre exemple, le pin 7) mais avec des délais entre chaque 0 ou 1 afin de bien les distinguer les uns des autres !

Mais alors le signal vas être long à capter non ?

Pas du tout ! En effet les délais dont je vous parlais sont de l’ordre de la micro seconde ! Donc un signal dans son intégralité a peu de chance de dépasser la milli-seconde ce qui est totalement ridicule pour la perception humaine :).

Année 2014­2015                                                                                                                                                Geek

Page 52: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Bon, et t’as mis 2 mois pour comprendre ça ?

En réalité, nous ne sommes pas au bout de nos peines, c’est un peu plus compliqué que ca , admettons que la télécommande nous envoie le code :

00011000101001010010100100010110

Nous recevrions en réalité quelque chose comme ça :

01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101

que nous traduirions en ça :

0101011010010101100110010110011001011001100101100101011001101001

et enfin en ça :

00011000101001010010100100010110

(on fait moins le malin la pas vrai ? )

Hum, j’y comprends plus rien la… tu nous a bien enflé avec ton histoire de 32 bits !

C’est juste , mais il fallait simplifier pour ne pas vous perdre dès le début ^^, en réalité le signal est bien de 32 bits, mais il est “traduit” deux fois avant émission et réception pour les raisons que nous allons voir ci dessous.

La première traduction, est liée a ce qu’on appelle le “codage de manchester” derrière ce nom étrange se cache un principe tout simple : on vas convertir les 0 en 01 et les 1 en 10.

Donc le code de la télécommande

00011000101001010010100100010110

vas se transformer (avant d’être émis) en ce signal de 64 (car 32*2) bits :

0101011010010101100110010110011001011001100101100101011001101001

Mais pourquoi se compliquent t’ils la vie avec leurs codage de machin chose?

Dans notre contexte, le code de manchester est utilisé pour diverses raisons mais essentiellement pour éviter les parasites, et croyez moi, des parasite radio, nous en sommes blindés ! Bref je ne vaispas m’étaler sur le principe, les infos sont sur wikipedia mais en gros si une paire de bit est égale a 11 ou 00 le programme comprendras qu’il s’agit d’un parasite (car en prenant les bits par paire depuis el début du signal, on ne peux avoir que des 10 ou des 01 si le signal n’est pas un parasite).

Ok donc on à juste une petite conversion à faire, c’est pas méchant, mais c’est quoi la deuxième traduction alors ?

Et bien la seconde traduction, c’est tout simplement la transformation en “onde”, c’est ce dont nous parlions tout à l’heure avec les délais, par exemple pour que la télécommande émette “1” il lui faut

Année 2014­2015                                                                                                                                                Geek

Page 53: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

envoyer une impulsion (impulsion qui n’est autre qu’un passage de 0 à 1 ) avec un certain délais entre le 0 et le 1 (pour signifie qu’on envoie un 1 et pas un zero.

Donc envoyer un 1 reviendrais a envoyer ce genre de signal :

C’est le délais en micro seconde ou le signal est bas qui définit si un 1 ou un 0 a été envoyé.

Attention nous disons ici qu’un 1 a été envoyé, mais comme nous respectons le codage de Manchester nous devons envoyer “10” :

Comme vous pouvez le voir sur le schéma pas du tout précis, le premier “front bas” (qui représente le 1) est plus court que le second (qui représente le 0), leurs somme fait “10” qui, en codage Manchester signifie “1”

Je suppose que vous êtes sur les rotules, mais soyez fiers de vous, il n’y a plus rien à comprendre par la suite (vous pouvez imaginer maintenant pourquoi j’ai mis un peu de temps à décrypter le protocole de cette fichue télécommande sans la moindre doc et sans connaitre les lois de la radio transmission).

Voila un petit graphique pour résumer le chemin d’un signal :

Et voila un petit script tout droit sortis de mes petites papattes pour vous aider a visualiser un signal : http://domotique.idleman.fr/radiograph.htm

Notez une dernière chose importante !

Le protocol home easy, contient encore une petite subtilité : les verrous.

Les verrous sont des bits émis par la télécommande avant et après le signal afin d’annoncer au

Année 2014­2015                                                                                                                                                Geek

Page 54: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

récepteur que le signal commence et se termine (ce qui permet également de distinguer un signal d’un parasite).

Ces verrous sont au nombre de 3 : deux avant le signal, un a la fin. Les pulsations de ces verrous sont très long (pour les distinguer des pulsations de bits d’informations) de l’ordre d’une centaine de micro secondes.

Bon, j’ai bien tout compris, mais tu as oublié de nous donner quelque chose d’important : les délais de chaque pulsation (0, 1 et verrous) !!?

C’est bien !! Vous suivez !! Et vous avez raison je ne vous les ai pas donnés pour la raison suivante : je ne les connais pas ! Ha ha ha ha !!

En fait c’est la que le manque de doc se fait ressentir sur le protocole home easy :

1. Aucune doc n’est complète 2. Les docs se contredisent entre elles pour les délais 3. La marque Dio by chacon semble altérer légèrement les délais d’un modèle à un autre (pour

brouiller les pistes?)

Bref on ne peux qu’estimer les valeurs de chaque délais, c’est la raison pour laquelle vous noterez que mon programme ne capte pas à tout les coups, les délais étant encore mal calibrés, libre a vous de tester les délais et de me faire vos retours si vous parvenez a être plus précis, voila mes délais actuels :

Verrou 1 : Entre 2700 et 2800 micro secondesVerrou 2 : ?0 : Entre 180 et 420 micro secondes1 : Entre 1280 et 1480 micro secondesVerrou 3 : ?

Vous noterez aussi que dans mon code, je n’ai pas tenu compte des verrous 2 et 3, qui ne sont pas indispensables dans ce cas précis (même si ce serait mieux de les demander), en revanche quand nous émettrons depuis le raspberry PI, il nous faudra être plus rigoureux.

Année 2014­2015                                                                                                                                                Geek

Page 55: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 11 : Relier à un écran et afficherdu texte

Aujourd’hui nous allons apprendre à faire ça :

Mais non pas la boite bande de péquenauds incultes (wink wink nudge nudge), mais ce magnifique écran LCD, à l’origine utilisé sur les vieux téléphones nokia (ben oui on est pas des nouilles molles).

Le but de ce tuto sera donc de brancher un petit écran LCD rétro éclairé (a 2,50€ sur ebay cela dit) et d’y afficher un texte choisis.

Je suis partis du principe que je voulais, lorsque je branche mon raspberry au labo ou autre part, récupérer l’adresse ip qui lui est automatiquement attribué par le réseau sur lequel je me connecte, et l’afficher sur l’écran afin que je puisse me connecter au rpi en ssh sans avoir a demander a l’admin du réseau cette fameuse ip.

Année 2014­2015                                                                                                                                                Geek

Page 56: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

(oui je sais la ça n’est pas une IP réseau mais j’ai perdu l’autre photo alors on vas s’en contenter )

Ce sera donc notre fil rouge , je vous rassure tout de suite, l’intro est longue, mais le tuto lui est très court, je m’en voudrait de vous tuer une seconde fois après le tuto sur la réception radio .

Le matériel

1. Un raspberry Pi (holala quelle surprise ! ) 2. Un écran LCD nokia 5110 à 10€ sur sparkfun, 4,89 € sur ebay, voir même à 2,50€ si vous

cherchez encore sur ebay et peut être moins cher ailleurs 3. Quelques fils qui trainent, un peu d’étain, et un fer à souder

Les branchements

Notez que l’écran possède deux rangée de 8 Trous à l’opposée l’une de l’autre, vous pouvez utiliser l’une ou l’autre des rangées ça ne fais aucune différence, nous utiliserons celle avec les inscriptions de chaque pin afin d’être sûr de ne pas faire d’erreurs.

Année 2014­2015                                                                                                                                                Geek

Page 57: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Les 4 trous sur les coins sont uniquement la a titre de fixation, ils ne sont reliés à rien

Voila le branchement en image, fiez vous aux couleurs pour le fils qui sont un peu cachés :

ATTENTION : sur mon écran l’alimentation principale est en 5V, cependant il semble que plusieurs sous modèle de la même référence n”acceptent que du 3v en entrée, aussi ne reliez commeci dessous qu’après avoir regardé la fiche technique de votre écran.

Si votre écran n’accepte que du 3V, reliez le fil rouge coté rpi au pin 1 et non au pin 2.

Le programme

Année 2014­2015                                                                                                                                                Geek

Page 58: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour installer le programme , ouvrez la console SSH de votre rpi, et tapez les commandes suivantes :

Téléchargement du programme

nb: la source est dans le zip pour ceux qui voudraient comprendre plus en détail le fonctionnement du script :).

sudo wget http://idleman.fr/ressources/PHP/piScreen/lcd.zip

1 sudo wget http://idleman.fr/ressources/PHP/piScreen/lcd.zip

Décompression

sudo unzip lcd.zip

1 sudo unzip lcd.zip

Déplacement

sudo mv lcd /etc/lcd

1 sudo mv lcd /etc/lcd

Le programme est installé

Utilisation

En ligne de commande

/etc/lcd/screen -p "Hello world"

1 /etc/lcd/screen -p "Hello world"

Options

• -hcommande d’aide

• -iaffiche l’ip LAN de la machine courante à l’écran

• -naffiche le nom de la machine courante (hostname) à l’écran

Année 2014­2015                                                                                                                                                Geek

Page 59: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• -p[text] affiche le texte spécifié à l’écran

• -p [text] [0-10] affiche le texte spécifié à l’écran et définis le contraste de l’écran

Obtenir son IP sur l’écran lorsqu’on se connecte a un réseau

Comme vous avez u le voir dans les options, la commande

/etc/lcd/screen -i

1 /etc/lcd/screen -i

Il nous suffit donc de lancer un CRON (une tâche planifiée) qui vas lancer cette commande toutes les x minutes (moi j’ai mis toutes les 1 minutes, mais bon c’est mieux d’augmenter un peu histoire de ne pas flooder non plus).

Ouvrez votre crontab

crontab -e

1 crontab -e

Ajoutez la ligne

* * * * * /etc/lcd/screen -i

1 * * * * * /etc/lcd/screen -i

Enregistrez, fermez et hop ! Tuto terminé

A voir aussiLa même chose, avec un écran couleur et tactile de 36€ pour ceux qui ont les moyens

Encore la même chose, avec un écran moins cher (mais du coup de moindre capacité) a base de librairie python, très bien expliqué par notre amis Zem

Année 2014­2015                                                                                                                                                Geek

Page 60: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 12 : Allumer des prises à distance

Avant que la fin du monde (un peu tardive), ou une trop grosse cuite du nouvel an ne nous sépare, jetenais à vous offrir ce petit tuto sur le “télécommandage” (ça se dit ça?) de prises électriques depuis le raspberry PI.

Nous allons donc reproduire notre tuto 7 “éteindre/allumer une lampe avec le raspberry PI” mais cette fois ci, sans utiliser de fils.

DémonstrationQuelques screenshots de l’application web évoquée dans la vidéo :

Accueil des périphériques, par pièces

Espace de configuration sans utilisation de base de données

Année 2014­2015                                                                                                                                                Geek

Page 61: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Interface adaptables tablettes/smartphone

Points forts / Points faibles

(de l’utilisation des ondes radio)Ce montage est similaire au montage filaire que nous avons déjà vu, mais il a pour différences les points suivants.

Année 2014­2015                                                                                                                                                Geek

Page 62: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

FORCES :

• Intégrable à votre appartement/maison sans avoir à démonter les murs ou à abîmer quoique

ce soit • Ne prend qu’un seul PIN GPIO sur le rpi au lieu d’un par relais, il est donc possible de gérer

une quantité infinie de périphérique (enfin 2^30 soit 1073741824 périphériques en fait :p) enn’utilisant qu’un seul pin

• Le circuit de commande est dynamique, vous pouvez ajouter, déplacer, supprimer vos

périphérique sans aucune modification à faire en terme d’électrique/électronique • Il est plus simple de permuter la commande classique (interrupteur simple) et la commande

via le Raspberry PI afin d’utiliser simultanément les deux, ainsi si vôtre rpi grille, vous pourrez encore vous servir de votre système électrique de manière classique

• Niveau esthétique, c’est plus discret qu’une 30 aine de fils qui se baladent

• Le système est “portable” d’une habitation à une autre :), vous pouvez donc déménager

facilement sans démonter les murs • Le système peut traverser la plupart des murs/obstacles/matières il vous est donc possible de

gérer des périphériques dans des endroits peu accessibles

FAIBLESSES :

• La portée de l’émetteur que l’on a acheté est d’environ 30M (edit: si vous prenez celle

d’ebay et une bonne alimentaiotn externe et que vous fixez un fil d’antenne, vous pouvez atteindre 200m de portée), peut être plus avec une bonne antenne, il vous faudra donc peut être plusieurs émetteur ou une bonne antenne ou encore un émetteur de meilleure qualité si vous avez une grande maison

• Le système radio est au système filaire ce que le wifi est aux câbles Ethernet, donc moins

sécurisé, bien que le signal soit sur 32 bits (auquel j’enlève les 2 bits d’état et de groupe) ce qui fait 1 073 741 824 combinaisons possibles par périphérique, dans le doute, faites mois plaisir : ne raccordez quand même pas des trucs qui craignent genre votre robinet à gaz

• Avec ce montage, vous êtes sujet aux parasites radio, si il y en a beaucoup dans votre

environnement, le signal peut être parfois mal capté (même si il est envoyé 5 fois et qu’on utilise le codage de Manchester ce qui réduit fortement le risque)

Le matériel requisSi vous avez suivis le précédent tuto sur la radio, vous devriez déjà tout avoir :

• Un raspberry PI modèle A ou B ~30€

• Un set de 3 prises chacon + télécommande (~30€, vous pouvez acheter une prise seule mais

ça coûte super cher (~20€ la prise), autant grouper) • Un émetteur RF 433Mhz (j’ai acheté le mien 15€ mais je me suis fait arnaquer, vous pouvez

en trouver à beaucoup moins cher, par exemple à 3€ ici ou sur ebay à 1.3€)

Année 2014­2015                                                                                                                                                Geek

Page 63: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ce qui nous fait un coût domotique entre 30€ et 65€ par la, en fonction du nombre de machines que vous voulez commander et des prix que vous trouvez sur le net.

Notez que par la suite si vous souhaitez équiper d’autres pièces vous n’aurez pas à racheter de Raspberry PI ni d’émetteur (à moins d’habiter un palace auquel cas le prix ne vous posera pas problème) du coup vous paierez entre 15€ et 30€ pour équiper une pièce supplémentaire (en fonction du nombre de prises, des réductions, des frais de ports etc…).

Le montageLe montage rpi + émetteur 433 mhz a déjà été expliqué dans notre premier tuto sur RPI+radio, maiscomme je suis un chic type et que j’adore faire des gribouillis, je répète le schéma ici :

nb : Une antenne de 17.3 cm serait la taille optimale (merci à Ju pour la précision)

Le codeLe code de l’interface web+programme C qui émet les signaux radio est téléchargeable ici :

http://idleman.fr/ressources/PHP/hcc/hcc.zip

Année 2014­2015                                                                                                                                                Geek

Page 64: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

1. Dé-zippez le code dans un répertoire var/www/hcc 2. Faites un sudo chown -R www-data:www-data /var/www/hcc

sur tous le dossier hcc (changez /var/www/hcc si votre chemin est différent, important sinon rien ne fonctionnera)

3. Faitessudo chown root:www-data /var/www/hcc/radioEmission

puis unsudo chmod 4777 radioEmission

sur l’exécutable nommé radioEmission (important sinon l’interface web ne fonctionnera pas)4. Le script est installé !!

L’utilisationVous pouvez envoyer un signal de deux façon différentes :

En ligne de commande linux :

/var/www/hcc/radioEmission 0 12325261 1 on

0 = le numéro WiringPi du PIN du Raspberry relié a la carte émetteur 433mhz (ici zéro, qui

correspond au pin physique 11 du rpi)

12325261 = Un code de télécommande que nous attribuons arbitrairement au raspberry PI, ca

permet aux prises de n’obéir qu’a ce code et donc qu’a votre raspberry.

1 = code du récepteur (choisis arbitrairement, c’est ce qui permettra au récepteur de savoir si c’est à lui qu’on donne l’ordre ou a un autre)

on = état de la prise souhaité on ou off

nb : Le ./ est obligatoire devant quand vous exécutez le programme depuis le répertoire courant, si vous ne le faite pas vous risquez de tomber sur un “commande not found”

Depuis l’interface web :qui en réalité se contente d’exécuter la commande précédente (pourquoi faire compliqué) lorsque vous cliquez sur un item.

Pour vous connecter, les logins et mot de passe par défaut sont :

login : adminmdp : admin

Ces identifiants peuvent être changé en éditant le fichier constant.php situé dans le répertoire hcc

Notez bien que vous ne pourrez rien piloter tant que les prises n’auront pas fait l’apprentissage du signal que vous envoyez (expliqué un peu plus ci dessous).

Année 2014­2015                                                                                                                                                Geek

Page 65: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

La liaison émetteur/récepteurLes prises électriques Chacon ont un module d’apprentissage de signaux intégré, ce qui veux dire que lorsque vous les brancherez, elles “écouteront” pendant 5 secondes les signaux envoyés et reconnaîtrons ces signaux pas la suite.

Il vous faut donc pour chaque prise, la brancher et émettre le signal avec le Raspberry PI (via l’interface web disponible sur http://wotre.raspberry.pi/hcc ou par ligne de commande) avant 5 secondes pour qu’elle soit par la suite liée au signal.

Vous reconnaîtrez des clic clac successifs vous avertissant que la télécommande a bien reçu votre signal et l’a mémorisé.

En résuméIl y a donc trois façons de piloter l’installation :

pilotage classique : je passe par les interrupteurs Chacon (télécommande ou télécommande sous forme d’interrupteur) pour allumer/éteindre mes lampes

pilotage par interface web : j’allume/éteint mes lampes via une interface web sur navigateur internet de tablettes/pc/smartphone

pilotage par reconnaissance vocale :Lorsque je prononce une phrase définie, mon pc envoie directement une requête au Raspberry PI qui allume ou éteint les lampes

Pour ce dernier, je me suis contenté de mélanger mon tuto sur la reconnaissance vocale (raspberry pi 09). Je vous invite à faire la même chose, le résultat est plutôt propre.

Pour configurer yuri selon votre interface :

1. Créez vos périphériques sur l’interface 2. Allez dans configuration, puis onglet divers 3. Cliquez sur télécharger le xml 4. Le XML est à placer dans le répertoire \macros\ de votre YURI

le mot clé de reconnaissance vocale, sera le nom que vous avez donné au périphérique

Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

• Prendre une alim externe pour les cartes radio et les l’alimenter au maximum de ce qu’elles

sont capables de faire (cf la clause “voltage max” de fiche technique, souvent c’est entre 5 et12V)

• Souder un fil conducteur de 17.3 cm a l’émetteur et au récepteur pour servir d’antennes.

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.

Année 2014­2015                                                                                                                                                Geek

Page 66: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 13 : Détecter l’ouverture des portes et fenêtres

En attendant que je parvienne à trouver la motivation pour monter la vidéo sur la sonde températureradio (j’ai la vidéo, mais mon monteur est en plein partiels et je n’ai aucune notion d’adobe première ^^), je vous lance ce ptit tuto à vous mettre sous la dent.

Aujourd’hui nous allons voir comment détecter l’ouverture d’une porte, d’une fenêtre, ou de quoi que ce soit qui s’ouvre ou qui se ferme, avec le raspberry PI et un petit composant à environ 3€.

L’état de la porte (ouverte/fermée) sera visible depuis une interface web, ou depuis notre interface de reconnaissance/synthèse vocale YURI (implantée dans les précédents tutoriaux sur le raspberry PI)

Le principe :

Un mini aimant est fixé sur le bord de la partie mobile votre porte (que nous appellerons le battant), et un petit capteur sera fixé sur la partie fixe de la porte (que nous appellerons tenant), ce capteur estnommé “capteur à effet de hall”.

C’est quoi ce composant cheulou au nom barbare ?

Un capteur à effet de hall est simplement un composant qui vas renvoyer 1 ou 0 si il est, ou non, à proximité d’un champs magnétique (par exemple émis par un aimant)

D’une certaine manière, c’est un bête interrupteur, à ceci près qu’il ne réagit pas à une pression maisà une “magnétisation” proche.

Mais alors, pas besoin d’un composant, pourquoi ne pas utiliser juste deux fils qui se touchent?

Et bien surtout à cause du frottement, l’avantage du capteur a effet de hall est qu’il n’y a aucun contact “physique” puisque celui ci est magnétique donc :

1. Pas de risque que le montage bloque la porte 2. Pas de risque que l’usure du frottement abime le circuit 3. Moins casse gueule et moche qu’un bête système de fils 4. Sur la partie mobile, pas besoin de fils, d’alimentation, ou du moindre circuit : un aimant est

en moyenne actif 400 ans, ne nécessite aucune alimentation,ne coute rien, et peut être minuscule.

Vous l’aurez compris, ce capteur à effet de hall sera branché au raspberry PI et lui enverra du 0 (l’aimant est lointain donc la porte est ouverte) ou sur 1 (l’aimant est proche donc la porte est fermée), le rapsberry Pi mettra à jour sa base de données (ici un simple fichier texte) qui sera alors consulté par l’interface web et par YURI.

Année 2014­2015                                                                                                                                                Geek

Page 67: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ce que je ne vous dis pas

Oai je sais, c’est con puisqu’au final je vous le dis, mais respectez mon style littéraire bande de gaufres !

J’ai dis plus haut que le capteur renvoyait une valeur digitale (0 ou un 1) et fonctionnait un peu comme un interrupteur, je vous ai mentis

En réalité le capteur seul est plus une “résistance” qui vas varier en fonction de la proximité du champs magnétique et renvoyer une valeur analogique (0.2,1.4 etc…), et c’est un problème pour nous qui avons besoin d’un 0 ou d’un 1.

C’est la raison pour laquelle nous avons commandé un capteur avec un petit circuit associé, ce circuit comportes quelques autres composants qui vont traiter la valeur analogique et, a partir d’un certain seuil, définir qu’elle envoie un 0 ou un 1 (ex : si la résistance est entre 0 et 2,5 on envoie 0, sinon on envoie 1) .

Et la ou cette petite carte est top, c’est que vous avez la possibilité de régler ce seuil !! En effet un ptit potentiomètre qui se présente sous la forme d’une vis (donc réglable avec un tournevis plat) permet de faire varier ce seuil, ainsi nous pourrons agir sur la sensibilité de notre détection de porte en fonction de la porte et de la puissance de l’aimant choisis.

Je vous conseille bien évidemment de commander les aimants conseillés ci dessous qui sont minuscules et surpuissants, mais sur la théorie n’importe quel aimant avec un peu de portée fait l’affaire :).

Le matériel :

• Votre fidèle raspberry PI

• 1 Capteur à effet de hall~3€ (mais il y a moyens de trouver moins cher je pense) edit: le lien

semble mort, vous pouvez prendre celui la, qui est sensiblement identique ou encore ce modèle non ajustable à 1,7€ (fdpin) : http://dx.com/p/hall-magnetic-sensor-module-for-arduino-dc-5v-135033

• 1 Aimant Rare earth surpuissant ~1€ les 5

Le montage :

Une grand mère unijambiste pourrait faire ce montage dans le noir mais je vais quand même vous lespécifier histoire que les lecteurs les moins sobres puissent nous suivre :

Année 2014­2015                                                                                                                                                Geek

Page 68: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

nb : J’ai choisis de relier les données sur le pin physique 11 du raspberry, qui correspond au numéro“0” avec la librairie wiring PI.

Le code :

On vas avoir :

Un programme en C qui vas vérifier toutes les x secondes l’état du pin “0” (qui sera donc à 0 ou 1 en fonction de si la porte est ouverte ou fermée) et envoyer l’état a une page php.

Une page php qui vas enregistrer la valeur dans une base de données (ici un fichier texte)

Enfin une page html basique qui vas faire un appel ajax au fichier texte de la base de donnée toutes les x secondes et afficher “porte fermée” ou “porte ouverte” en fonction du contenu du fichier texte.

Notez que dans le fichier PHP nous avons aussi prévu quelques lignes pour yuri (yuri requête sur la page php, qui vas vérifier l’état du fichier et retourner à yuri la phrase a dire en conséquence “porte fermée” ou “porte ouverte”).

1. idleman.fr/ressources/PHP/capteurOuverture.zip

Année 2014­2015                                                                                                                                                Geek

Page 69: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

2. Décompressez son contenu dans /var/www/capteurOuverture 3. Réglez les permissions des fichiers (sudo chmod -R 777 /var/www/capteurOuvertureou

moins bourrin avec un 775 ou un chown www-data) 4. Si vous voulez utiliser YURI, copiez le xml ouverture.xml du zip dans votre répertoire

macros de yuri, et éditez le en remplaçant “votre.raspberry.pi” par l’adresse réseau de votre raspberry PI

L’utilisation

Lancez le programme en C avec les paramètres :

1. Adresse de la page php 2. Numéro wiring Pi du pin auquel vous avez relié le capteur

ex : ./capteurOuverture /var/www/capteurOuverture/capteurOuverture.php 0

Lancez l’adresse http://votre.raspberry.pi/capteurOuverture (en remplaçant évidemment “votre.raspberry.pi” par l’adresse réseau de votre raspberry PI)

Ouvrez/fermez votre porte et visualisez le résultat sur l’interface web

Interrogez yuri en ouvrant/fermant votre porte

C’est tout pour aujourd’hui bisous mes poulets, moi je part fêter mon quart de siècle !

Année 2014­2015                                                                                                                                                Geek

Page 70: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 14 : Surveiller les performances du rpi depuis le web

C’est bien beau de traficoter tout un tas de truc avec notre raspberry PI ! Mais celui ci étant une frêle petite bébête, il peut être intéressant de le contrôler un peu question performances.

Et ça tombe bien, il existe une interface web mimi comme tout justement faite pour ça !!

RaspControl vous permettra de monitorer de nombreuses infos sur l’état de santé de votre raspberrypi,n’importe quand et n’importe ou.

Ce petit logiciel en PHP est “standalone” c’est à dire qu’il peux tourner sans que vous ayez au préalable installé un serveur web.

Avec raspcontrol, vous pourrez consulter des informations mais aussi effectuer quelques actions comme redémarrer le système, redémarrer /stopper/démarrer apache, consulter vos fichiers de logs, mettre à jour les paquets, mettre à jour le firmware, relancer ssh etc..etc…

Année 2014­2015                                                                                                                                                Geek

Page 71: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Installation

Tenté par raspcontrol ? Alors installons tout ça !!

EDIT : Comme l’équipe de dev de ce programme s’amuse à changer son archi tout les 4 matins, il est possible que ce qui suit ne corresponde plus à la réalité, je vous conseille donc de vous reporter au tuto d’instal officiel pour plus de sûreté :)

N’oublions par avant tout de faire une mise à jour générale des paquets

sudo apt-get update sudo apt-get upgrade

12

sudo apt-get updatesudo apt-get upgrade

On installe ensuite le paquet php5-cli qui permet simplement de faire du php en ligne de commande

sudo apt-get install php5-cli

1 sudo apt-get install php5-cli

On se place dans un répertoire quelconque, on télécharge l’archive de raspcontrol et on la décompresse

cd /home/pi/ wget https://github.com/Bioshox/Raspcontrol/zipball/master unzip master

123

cd /home/pi/wget https://github.com/Bioshox/Raspcontrol/zipball/masterunzip master

Année 2014­2015                                                                                                                                                Geek

Page 72: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Le dossier décompressé à un nom barbare, donc on le renomme “monitoring” (ou autre, comme vous voulez)

mv Bioshox-Raspcontrol-694435b/ monitoring

1 mv Bioshox-Raspcontrol-694435b/ monitoring

Théoriquement, on peux lancer le programme à ce stade, le problème c’es qu’il vas se lancer sur le port 80, qui est déjà utilisé par notre serveur web (apache, lighthttpd ou nginx…) donc on chance le port en éditant le fichier d’exécution du programme :

cd monitoring nano start.sh

12

cd monitoringnano start.sh

Remplacez

HOST=0.0.0.0 PORT=80

12

HOST=0.0.0.0PORT=80

Par

HOST=0.0.0.0 PORT=8080

12

HOST=0.0.0.0PORT=8080

(ou un autre port en fonction de ce qui est déjà pris chez vous) et enregistrez (ctrl+x, Y puis entrée)

Vous pouvez ensuite lancer le programme avec la commande :

sh ./start.sh

1 sh ./start.sh

Année 2014­2015                                                                                                                                                Geek

Page 73: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

(vous devez être situé dans le répertoire “monitoring”, si ce n’est pas le cas, il faut taper le chemin complet vers start.sh)

Vous pouvez alors accéder via un navigateur a votre panel de contrôle à l’adresse : http://votre.adresse.raspberry.pi :8080

(remplacez “votre adresse raspberry pi” par l’adresse réseau de votre rpi)

A la première connexion, raspcontrol vous demande de créer un compte, entrez donc un identifiant et un mot de passe

Cliquez sur “create account”, vous retombez alors sur un écran similaire qui vous demande de vous identifier, remettez les même identifiants puis “login”, ça y est, vous êtes sur le monitoring !!

Année 2014­2015                                                                                                                                                Geek

Page 74: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’installation/utilisation est terminée, cependant si vous ne voulez pas être embêté très prochaine, il vous faudra faire une petite manip !!

En effet vous remarquerez que si vous fermez votre terminal, le star.sh s’arrête et vous ne pouvez plus accéder à votre monitoring (zut !).

Pour résoudre ce problème, il existe plusieurs manières de faire (non vous n’allez pas laisser votre console ouverte 24/24h 7/7j bande de gougnafiers ^^) la plus simple reste encore d’utiliser Screen.

Screen est un petit utilitaire qui permet d’ouvrir une console en “tâche de fond”, ainsi vous pouvez y lancer des programmes sans avoir a garder votre terminal ouvert.

Installons d’abord Screen

sudo apt-get install screen

1 sudo apt-get install screen

Année 2014­2015                                                                                                                                                Geek

Page 75: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Puis lançons notre monitoring à travers Screen

screen -dmS Raspcontrol sh ./start.sh

1 screen -dmS Raspcontrol sh ./start.sh

Vous verrez alors que vous pouvez fermer votre console sans interrompre le programme ! Sympa non ?

Mais un dernier problème se pose !! ( hé hé hé ) Que se passera t’il quand votre raspberry PI vas redémarrer ? Plus de screen en tâche de fond, donc plus de monitoring, obligé de relancer la commande ci dessus (fuck !!)

On vas donc créer une petite tâche planifiée qui vas se lancer automatiquement au reboot du rapsberry et qui vas exécuter notre commande screen.

On ouvre notre gestionnaire de tâche planifiée

crontab -e

1 crontab -e

On y ajoute la ligne suivante à la fin du fichier

@reboot cd /home/pi/monitoring &amp;&amp; screen -dmS monitoring sh ./start.sh

1 @reboot cd /home/pi/monitoring &amp;&amp; screen -dmS monitoring sh ./start.sh

On sauvegarde (ctrl+X, Y, puis entrée) et c’est bon !!

Notez bien que le combo screen + cron au démarrage est très puissant et vous permet de lancer tout un tas de programmes automatiquement et en tâche de fond au démarrage de votre raspberry pi (par exemple la commande startx pour afficher un bureau visuel ou autres…)

Si vous voulez accéder a votre interface de monitoring depuis autre part que votre réseau, pensez a débloquer le port 8080 de votre box .

Année 2014­2015                                                                                                                                                Geek

Page 76: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Notez bien que cette application est codée avec les pieds, mais qu’elle à le mérite d’exister, de fonctionner relativement bien et qu’elle pose les bases de la récupération d’infos importantes pour monitorer le rasp .

Année 2014­2015                                                                                                                                                Geek

Page 77: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 15 : Créer sa propre prise radio (et autres périphériques) pour 6€

Mercredi, 13 février 2013

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

Suite à nos précédents tutos sur le Raspberry PI et la domotique contrôlée par radio (et notamment le tuto 12), certains d’entre vous m’ont demandé si il n’était pas possible de se passer de prises Chacon, d’autres m’ont demandé si des multiprises existaient sur le même principe, quant à moi je souhaitais de débarrasser de Chacon pour diverses raisons :

• Je voudrais, sur le long terme, personnaliser le protocole radio (inclure une notion d’état de

la prise, en retour de consommation d’énergie etc..) • J’aimerais construire de A à Z mon système domotique dans une optique pédagogique

(100% DIY) • J’aimerais ajouter quelques gadgets dans ma prise (pourquoi pas un capteur de température

ou de consommation de courant ? :D)

C’est pourquoi nous allons aujourd’hui construire notre propre prototype de prise radio (pouvant facilement être transformée en multiprise) commandée par le Raspberry PI

Année 2014­2015                                                                                                                                                Geek

Page 78: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Je parle de “prototype” pour une bonne raison, bien que le montage fonctionne parfaitement, il peuxêtre amélioré au niveau du “packaging” (boitier).

Notez bien que vous devez au moins avoir lu le tuto 12 pour comprendre celui ci

Vous êtes chaud patate pour commencer ? Voyons voir un peu le matos à se procurer

Le matérielPour aller plus loin, il vous faudra les curieuses bêbêtes suivantes :

• Votre télécommande chacon OU votre rpi configuré comme dans le tuto 12

• 1 carte arduino duemilanove(c’est la moins chère 15€)

• 1 Micro contrôleur ATmega 328-pu avec bootloader inclus(2.55€) (nb:le bootloader inclus

est important, si vous achetez une puce vierge par mégarde, il faudra la flasher vous même) • 1 Résonateur ZTT 16.00mx(1.11€ les 5)

• 1 Résistance 1.27Ω (brun rouge violet gris rouge) (enfin c’est ce que j’ai pris mais il

semblerais qu’une 10k convienne mieux. • 1 Récepteur RF 433,92 mhz(1.28€ avec l’émetteur dont on ne se servira pas ici)

• 1 Carte relais 5V 1 canal(1.26€)

• 1 LED quelconque et sa résistance associée (j’ai pris une led au hasard + résistance 8.21MΩ

(gris rouge brun doré) ces composants sont optionnels et servent juste de repères visuel lors du fonctionnement

Notez bien que vous n’aurez à Acheter la carte arduino qu’une fois, elle nous servira de programmateur pour construire toute nos futures prises, de même, les résonateurs sont par lots de 5 et nous n’en avons besoin que d’un par prises.

Vous en aurez donc environ pour 6€ par prises radio par la suite, notez que je ne compte pas l’alim (un vieux chargeur de portable récupéré fera l’affaire) ni le boitier (bah oui la vas falloir se dépatouiller avec un Tupperware qui traine XD), nous ne faisons pas vraiment ça pour le prix mais il faut souligner qu’on y gagne quand même par rapport au commerce (d’autant qu’il est possible defaire des multiprises avec ce montage et donc de réduire encore le cout par prises, on peux aussi remplacer/supprimer certains composants en bricolant (suppression du résonateur,remplacement de l’atmega par une Attiny etc..) mais je vais pas tout vous faire non plus :p).

Attends attends…C’est quoi ton Arduino la ?

Dans ce tuto nous introduirons les carte de programmation “Arduino” et leurs micro contrôleur Atmega qui nous permettrons de créer tous nos périphériques à bas cout sans avoir à acheter un raspberry à chaque fois ^^.

Petite explication rapide sur l’arduino donc

Année 2014­2015                                                                                                                                                Geek

Page 79: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’arduino (souvent nommé ardui) est une carte électronique très similaire au raspberry PI, à savoir qu’elle peut gérer des entrées sorties GPIO et contenir un code (en C++) pour réagir en fonction de ces gpio, cela dit, il y a quelques différences importantes :

• L’arduino coute 16€ pour son modèle le moins cher (duemilanove), le raspberry pi coute 30€

• L’arduino comprends 23 gpio digitaux(donc plus que le rpi), de plus, l’arduino à des 7 gpio

analogiques (peux prendre d’autres valeurs que 0 ou 1), le rpi n’en possède pas • L’arduino ne peux contenir qu’un code C++, le raspberry Pi peux contenir un système

d’exploitation(ex : raspian…) • L’arduino est en temps réel, pas le raspberry PI

• L’arduino (en fonction des modèles) ne contient pas de port Ethernet

• Le cerveau d’un arduino est la puce Atmega328, qui avec un peu d’astuce, peut être

utilisée toute seule dans nos montage, cette puce ne coute que 3€ et est de plus petite taille que l’ardui.

Vous l’aurez compris, l’arduino est une carte de bas niveau, très rapide, moins chère, réductible à une puce et avec plus de gpio que le rpi ce qui en fait un élément parfait pour créer tous nos périphériques radio (prise radio, sonde de température radio, capteur d’ouverture radio etc…).

Les arduino (ou plutôt a terme : les atmega 328) seront les muscles de notre domotiquemaison

En revanche l’ardui n’a pas les capacité de traitement du rpi, de plus le rpi est plus haut niveau et gère en natif l’Ethernet, la gestion d’un os etc…

le rpi sera donc le cerveau de notre domotiquequi commandera et sondera les muscles arduino.

Le fonctionnement de la priseNous allons refaire le tutoriel #12 : allumer/éteindre une prise à distance avec le raspberry PI,sauf que cette fois ci, la prise sera “maison”.

Concrètement vous allez appuyer sur un certain bouton de votre télécommande chacon (ou envoyer

Année 2014­2015                                                                                                                                                Geek

Page 80: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

le signal depuis votre rpi)

Ce signal vas être capté par le récepteur RF relié à l’arduino, l’arduino vas vérifier que le signal parle bien de lui (à son code récepteur) qu’il provient bien de la télécommande (a le bon code émetteur) et a un état on ou off (afin de savoir ce qu’il doit faire).

L’arduino vas alors envoyer 0 ou 1 a la carte relais, celle ci vas donc “ouvrir” ou “fermer” le circuit classique de la prise et laisser passer ou non le courant.

OUI MAIS !!!

Comme les cartes arduino c’est un peu gros et que c’est un peu cher d’en mettre une dans chaque prises, on ne vas utiliser que leurs micro contrôleur : l’Atmega328, qui lui coute 3€ et fait la même chose que l’arduino.

Évidemment comme c’est une puce nue, ça vas être un peu moins rigolo a programmer qu’une carteardunio (qu’il suffit de brancher sur le port usb du pc), on vas donc se servir de la carte arduino pourprogrammer les puces Atmega que l’on inclura dans chaque prises

Ça parait un peu fou comme ça pour les novices électroniques que nous sommes mais vous allez voir, c’est en fait très simple

La programmation de la puce : branchementsAvant tout, téléchargez et installez l’IDE (environnement de développement Arduino) sur le site d’arduino. :http://arduino.cc/en/pmwiki.php?n=Main/DebuterInstallation

Voila le schéma permettant de programmer une puce atmega à partir d’une carte arduino

Notez que sur le schéma j’utilise ce qu’on appelle une “BreadBoard”, c’est une plaque en plastique qui permet de tester des circuits sans avoir à souder juste en plantant des fils dans des trous, les trous sont reliés de manière horizontale entre eux, sauf pour les lignes bleu et rouges (utilisée pour l’alimentation) qui eux sont verticaux.

Je vous conseille vivement l’achat d’une breadboard, ça ne coûte rien et c’est quasi indispensable pour tester les circuits dans de bonnes conditions (je m’en veux un peu de ne pas vous en avoir parlé avant)

• Les fil rx et tx sont ceux qui envoie le programme à l’Atmega

• La puce Atmega originellement implantée sur l’Ardunio doit être dé-clipsée sinon c’est elle

qui sera programmée • L’ensemble du circuit doit être alimenté en 5V, ici on utilise l’alimentation de l’arduino

(conseillé)

Année 2014­2015                                                                                                                                                Geek

Page 81: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• L’atmega doit être alimentée (5V + GND) des deux cotés aux bornes indiquées

• Le pin Reset de l’Atmega doit être relié au reset de l’arduino comme indiqué sur le schéma

• Le pin Reset de l’Atmega être relié au 5V via une résistance 1.27Ω (brun rouge violet gris

rouge) comme indiqué sur le schéma

Une fois le circuit branché et alimenté vous pourrez lancer l’IDE arduino et programmer la puce comme si elle se trouvait sur la carte arduino.

Le codeCommencez par choper les sources du programme ici :

http://idleman.fr/ressources/PHP/priseMaison/priseRadio.zip Premièrement, allez dans votre repertoire arduino puis dans \libraries\ et créez un dossier nommé : EEPROMAnythingDedans vousplacerez le fichier EEPROMAnything.h Nous venons d’inclure une nouvelle librairie à l’arduino IDE, celle vi vas nous permettre de gérer l’EEPROM (petite mémoire interne de l’atmega dans laquel nous allons stocker nos données)

Ensuite, lancez l’IDE (arduino.exe) : il ne vous reste qu’a copier le programme priseRadio.txt ci dessous dans l’ide, et cliquer sur télé-verser

nb: En fonction de l’atmega programmée, vous aurez peut être a changer le modèle de la carte dans l’ide, ex : j’ai une carte arduino duemilanove, mais mon atmega acheté est un uno, du coups lors du télé versement j’ai une erreur du genre “invalid sync blablabla”, donc je sélectionne uno dans le menu :

Année 2014­2015                                                                                                                                                Geek

Page 82: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et je retente le coup

Une fois la puce programmée on vas pouvoir passer a notre vrai branchement de prise radio final (fiou !! ^^, vous verrez avec le temps ça parait enfantin)

Le montage finale : branchementsLa je ne peux pas faire explication plus détaillée (et plus débordante) que ce schéma…

En gros l’Atmega est toujours relié au résonateur (son horloge) et est alimenté des deux coté en 5v comme sur le montage précédent.

On à en plus branché trois composant sur l’Atmega : une led qui vas clignoter quand la prise recevra un signal, afin de ne pas griller la led, on rajoute une résistance (la résistance est a définir enfonction de la led) notez bien que led+ résistance sont optionnels et ne servent que pour avoir un visuel des signaux reçus.

On ajoute à ça une carte de réception radio 433 mhz qui vas capter les signaux radio et les envoyer àl’Atmega par le pin 9, cette carte radio est évidemment alimentée en 5v

On ajoute enfin une carte relais qui vas recevoir un ordre de l’Atmega part le pin 10 quand le signal reçu sera le bon, la carte relais vas alors fermer le circuit de droite (lampe + prise) ce qui vas allumer la lampe. Evidemment, cette carte aussi est alimenté en 5v.

Attention :Faites attention au sens de l’Atmega, vous pourrez vous repérer au petit creux rond en haut de la puce

nb: Les pattes extérieures du résonateur ne sont pas polarisées donc vous pouvez les intervertir par

Année 2014­2015                                                                                                                                                Geek

Page 83: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

rapport au schéma, en revanche les pattes de la led le sont, donc si votre led ne s’allume pas, c’est peut être que vous vous êtes loupé de sens

L’utilisationLe programme se comporte de la façon suivante :

Le tout premier signal au protocole home easy envoyé à la prise sera enregistré dans celle ci et deviendra le signal de référence pour ouvrir ou fermer le relais de la prise, il est donc nécessaire d’envoyer ce signal le plus rapidement possible après la mise en route du montage final, car un signal voisin pourrait vous piquer la place.

Actuellement, un seul signal peut être enregistré et vous n’avez droit qu’a un seul essai (bien que le matériel puisse en mémoriser beaucoup plus, le code doit être amélioré).

Lorsque la prise reçoit un signal correspondant a son signal de référence, la led clignote 10 fois très rapidement, et le relais change d’état

Lorsque la prise reçoit un signal non correspondant a son signal de référence mais au protocole home easy, la led clignote 1 fois lentement.

Les améliorations possibles• La puce :En bidouillant un peu, on peux remplacer l’AtMega328 par un Attiny85, qui est un

peu moins cher et bien plus petit, donc gain de place dans la prise et rapinage de quelques centimes à l’achat.

• Toujours la puce :L’Atmega328 possède une horloge interne, il est donc possible de se

passer du résonateur, cependant il faut pour cela bidouiller un peu (je vous laisse chercher l’astuce :p) et vous passerez de 16mhz à 8mhz de fréquence d’horloge, donc ça sera moins réactif.

• La diode : Une diode RVB (pouvant s’allumer en rouge, vert ou bleu) serai plus appropriée

car nous pourrions associer une couleur à chaque état (attente d’un signal, enregistrement d’un signal, refus d’un signal etc…)

• Le packaging :pas encore d’idées précise de ce côté la, si quelqu’un a des bons prix de

boiter personnalisables, qu’il se manifeste ^^, si vous devez bricoler ou faire de la récup, évitez le bois (qui brûle trop bien en cas de court circuit) et le métal (qui conduit, donc risque de court circuit/électrocution) préférez le plastique (ou éventuellement le verre si vousvoulez faire quelque chose d’artistique), un Tupperware un peu rigide et une rallonge coupéeen deux me parait sensé, vous avez aussi l’option de l’imprimante 3d mais il faut en avoir une sous la main.Notez que vous pouvez aussi inclure votre montage dans un boitier de ce genre ça fait plus pro (merci à Placto pour l’idée)

• Le code :Vous aurez peut être noté que contrairement aux prises chacon, notre prise n’a

Année 2014­2015                                                                                                                                                Geek

Page 84: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

qu’un mode “apprentissage” et il est très restreint, petite flemme de ma part, c’est pourtant très simple à ajouter, il faudra que je m’y mette quand j’aurais une petite seconde

• L’objet :En modifiant légèrement le code et en prenant une carte relais avec plus de canaux,

vous pouvez faire une multiprise radio, ce qui sera plus rentable car pour disons 8 prises, vous n’aurez besoin que d’un atmega, un récepteur, un résonateur, une alim etc…

• Le protocole :maintenant qu’on a notre protocole identique à celui de chacon, pourquoi ne

pas ajouter quelques fonctions comme une notion de retour sur l’état de la prise, ou même la consommation de la prise, sa température, la possibilité de faire varier la lumière, etc… ?

• L’alimentation : il faudrait trouver une alim pas chère pour le système, mais ne faites pas

comme moi, pour ces choses la : ne commandez pas chinois

Si vous avez des problèmes de portées, de gros parasites, ou de mauvaise communication, pensez a faire ces deux choses :

• Prendre une alim externe pour les cartes radio et les l’alimenter au maximum de ce qu’elles

sont capables de faire (cf la clause “voltage max” de fiche technique, souvent c’est entre 5 et12V)

• Souder un fil conducteur de 17.3 cm a l’émetteur et au récepteur pour servir d’antennes.

Avec ces deux points, vous pouvez passer de quelques centimètres à plusieurs centaines de mètres de portée, la différence est vraiment flagrante.

Année 2014­2015                                                                                                                                                Geek

Page 85: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 16 : Mieux comprendre les pins avec Raspin’s

J’ai vu l’autre jour sur le site du raspberry PI, la raspberry Leaf, une petite idée ingénieuse qui consiste à créer un modèle de feuille à imprimer et découper, superposable au rasberry PI pour indiquer ses numéros de pin:

J’ai trouvé l’idée vraiment sympa, du coup je me suis dit que je pouvais peut être l’améliorer, j’ai donc créé mon propre modèle : Raspin’s

Année 2014­2015                                                                                                                                                Geek

Page 86: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspin’s inclus :

1. Les numéros/noms de pin (attention pas les BMC)La correspondance Wiring pi de chaque pinUne coloration par fonctionUne mini documentation sur les différents PINs

Pour l’imprimer,je vous conseille fortement un papier un peu cartoné style papier photo :

Année 2014­2015                                                                                                                                                Geek

Page 87: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Voila l’image imprimable (cliquez pour agrandir, attation c’est de la maxi image vouée au print ^^):

Pour ceux qui souhaiteraient le PSD de création de l’image afin de la modifier/améliorer, c’est ici : http://blog.idleman.fr/wp-content/uploads/2013/02/raspins.psd

Vous l’avez peut être remarqué, j’ai laissé les emplacements des trous pour ceux qui voudraient percer trou par trou, perso j’ai pas eu la patience j’ai découpé le carré de pin au cutteur

Année 2014­2015                                                                                                                                                Geek

Page 88: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 17 : Un mini écran pour 22€

En attendant la création de la sonde de température (qui ne saurait tarder, j’ai juste la flemme de rédiger mon pavé ), voila un ptit tuyau à vous mettre sous la dent pour ce début de week end !!

Il peux être utile d’avoir un mini écran LCD couleur branché au rpi histoire d’avoir constamment unvisuel de la console, d’afficher un plan domotique ou si vous souhaitez tout simplement faire du rpi un mini ordinateur .

Seulement voila, les mini écran pas cher, qui consomme peu et adaptable au raspberry PI, ça ne court pas les rues ! Une liseuse ? Trop cher ! Un écran classique ? Un peu encombrant et reste un peu cher ! Un cadre photo numérique ? Idéal mais peut être chiant à plugguer ! Lire dans les entrailles d’un poulet ? Sympa pour épater les amis mais il vous faut un poulet frais à chaque reboot…

L’astuce ? Prendre un écran de caméra de recul pour les voitures (oui oui, l’écran que vous n’aurez jamais dans votre R5 de prolo mais je vous assure qu’il y a des voitures qui ont ce genre de gadgets !! ).

Année 2014­2015                                                                                                                                                Geek

Page 89: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’avantage de l’écran ? On peux en trouver à partir de 20€, ca consomme que quick, ça prends pas de place et comble du bonheur : il dispose d’une entrée vidéo RCA (ça tombe bien, on à une sortie vidéo RCA sur le raspberry PI !! Le ptit cube jaune sur la photo ci dessus)

Année 2014­2015                                                                                                                                                Geek

Page 90: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Évidemment il faudra de bons yeux, et un peu de jugeote pour couper et dénuder quelques fils mais vraiment des broutilles pour adapter ce genre d’écran au raspberry PI.

Moi j’ai commandé un écran comme celui ci

mais il semble être en rupture de stock à l’heure ou je vous parle, je vous conseille donc de faire votre choix dans les multiples autres marques/formats qui existent, en terme de branchement et de prix il se valent à peu près tous

Donc pour ce qui est de l’adaptation du bininous ça ne m’a pas pris 2 minutes de comprendre le

Année 2014­2015                                                                                                                                                Geek

Page 91: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

fonctionnement tellement c’est simple et bien fait !!

3 sorties sur l’écran :

Une blanche : C’est une des entrées vidéo RCA de l’écranUne jaune : C’est une des entrées vidéo RCA de l’écran au même titre que l’entrée blancheUne rouge : C’est l’a qu’on alimente l’écran, normalement c’est branché directement à la camera de recul qui s’occupe d’alimenter le tout

On notera les points suivants :

Si l’écran possède deux entrées vidéos, l’une semble être à l’endroit et l’autre refléter l’image à l’envers, regardez bien la datasheet de votre écran pour savoir lequel prendre entre le blanc et le jaune

Aucun des ports n’est réellement adapté au rpi, il nous faudra couper le port rouge pour le relier à du 12V, et placer un adaptateur RCA entre l’entrée jaune(ou blanche) de l’écran et la sortie RCA du rpi, moi j’ai récupéré un vieux câble RCA, et j’ai tout coupé pour faire mon adaptateur maison

Bien que la datasheet vous conseillera du 12V continue pour alimenter l’écran (les batteries de voitures étant en 12v), l’écran n’a pas besoin d’autant, vous pourrez l’alimenter dans la plupart des cas avec beaucoup moins (dans mon cas une pile 9V à suffit)

Les branchements :

Coupez la partie rouge et dénudez le fil restant pour voir apparaitre deux fils à l’intérieur : un noir (masse) et un rouge (alimentation positive) Il vous faudra donc relier le rouge et le noir à une alim/batterie 12V (ou 9V voir moins en fonction de votre écran).

l’entrée blanche (ou jaune de l’écran en fonction de comment vous voulez votre image ) doit être reliée à un adaptateur permettant de le brancher direct au rpi !

Et c’est tout !! Notez bien que pour que votre écran s’allume il faut bien qu’il soit alimenté avec la batterie ET relié au port RCA d’un rapsberry allumé, sans quoi vous n’aurez aucune réaction de l’objet, ce qui peut être déstabilisant.

Un petit décalage isn’t it?

Vous noterez certainement que l’écran bouffe un peu la console par endroit, ceci est du à la très petite résolution de l’écran, cependant vous pouvez régler le problème en allant modifier le fichier /boot/config.txt de votre rpi (nb : il faut être logué en tant qu’administrateur ou faire un sudo pour modifier ce fichier).

Remplacez alors la partie avec les “overscans” commentés, par un overscan générale à 40 :

Année 2014­2015                                                                                                                                                Geek

Page 92: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Puis redémarrez ! Ca devrait être mieux, cela dit 40 fonctionne bien avec mon écran mais si vous avez encore des soucis avec le votre, il vous faudra changer les valeurs jusqu’a ce que ça se cale correctement .

Notez bien que selon les pro du linux, c’est vraiment une technique de goret albinos et ce n’est pas du tout conseillé de modifier ce fichier, mais je n’ai pas trouvé de meilleure solution, si quelqu’un à mieux sous la main qu’il se manifeste

Et merde, pas d’adaptateur !

Si vous n’avez pas d’adaptateur sous la main mais un câble rca compatible(branchable) avec votre rpi qui traine et que vous ne voulez pas lâcher 1 euros sur ebay, vous pouvez faire comme moi et couper la grosse partie avant les ports de manière a n’avoir plus que des fils

Année 2014­2015                                                                                                                                                Geek

Page 93: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Vous chopez ensuite votre vieux câble

Année 2014­2015                                                                                                                                                Geek

Page 94: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Vous reliez le fil de couleur rouge (ou jaune)du vieux câble, au fil de couleur jaune (ou blanche en fonction de l’image que vous souhaitez) de l’écran et la masse de l’écran (fil noir) à la masse de votre vieux câble (fil noir ou complètement dénudé en fonction de votre câble)

Puis vous reliez la masse de l’écran (fil noir) et la borne positive de l’écran (fil rouge) à votre batterie/alimentation 12V/9V.

Si il vous reste un fil(jaune ou blanc en fonction de celui que vous avez choisis) qui pendouille de l’écran dans le vide, c’est normal, vous pouvez le couper.

Pour gagner de la place :

Notez que si vous voulez en faire un appareil nomade ou revoir le design de l’ensemble, il peut être utile de réduire un peu la matière, vous pouvez facilement démonter l’écran (généralement quelquesvices) histoire de le rendre le plus plat possible pour l’incorporer à une structure ou autre

Année 2014­2015                                                                                                                                                Geek

Page 95: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et si vous êtes un goret sans foi ni loi comme moi vous pouvez aussi dessouder la sortie RCA du rpipour y souder directement les fils de votre écran (j’entends déjà les fans de la framboise me hurler au vente “héréttttiiiquuueeeuuuh””).

Voila les branchements à faire si comme moi vous avez dessoudé l’entrée RCA sans aucun remord (notez que c’est très chiant à dessouder, et encore plus à ressouder)

Année 2014­2015                                                                                                                                                Geek

Page 96: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’essentiel étant que la masse soit bien sur le gros trou du milieu, l’autre peut être indistinctement d’un coté ou de l’autre.

Et sinon ?

Notez que vous pouvez facilement à partir de la en faire un mini pc portable par exemple en achetant un mini clavier + touchpad usb ou pourquoi pas même une tablette en y ajoutant

Année 2014­2015                                                                                                                                                Geek

Page 97: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 18 : Construire une sonde de température radio pour 7€

Faire du on/off c’est bien ! Mais contrôler sa maison en disposant d’indicateurs c’est mieux !

Aussi allons-nous voir, pour changer, comment construire un petit capteur qui va transmettre une information de température par radio au Raspberry PI.

Si comme moi, vous vous interrogez sur l’intérêt de connaître la température d’une pièce en temps réel, je trouve personnellement qu’il n’y en a aucun, en revanche cela peut être très utile pour le Raspberry PI, qui pourra par exemple en dessous d’une certaine température, enclencher les radiateurs, on appelle ça des scénarios (on en reparlera dans un prochaine tuto) pour le moment, contentons-nous de récupérer l’information via une interface web et via notre interface vocale Yuri.

(Le charisme d’une truite avec un double menton, un acteur né je vous dis !!)

Le principeLa puce Atmega328 (petit carré noir avec tout plein de pattes) va aller interroger toutes les 3 secondes le capteur DS18B20 (plus petit carré noir à trois pattes, en forme de transistor) afin de récupérer la température de la pièce, puis va envoyer, à travers l’émetteur RF 433 mHz (petit circuità 3 pattes), l’information au Raspberry PI.

Le Raspberry PI, qui écoute en permanence les ondes radio à travers son récepteur RF 433 mhz, va

Année 2014­2015                                                                                                                                                Geek

Page 98: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

détecter le signal, récupérer la température et la donner à une page PHP qui va la stocker dans un petit fichier texte (au format json), accessible depuis l’interface web et depuis Yuri.

Sur le serveur web du Rapsberry PI, l’interface va aller récupérer en ajax toutes les 3 secondes la valeur du fichier texte pour chaque sonde radio et l’afficher sur la page.

Le matériel• Votre fidèle Raspberry PI

• 1 kit émetteur – récepteur radio 433 mHz- 0.76€

• Si vous n’en avez pas déjà une : 1 carte Arduino (la moins chère est la duemilanove) – 15 €

(ou en kit pour 8€) • Une puce Atmega328 pu avec bootloader intégré- 2.55€

• 1 résonateur ZTT 16.00mx(1.11€ les 5)

• 1 résistance 10k ohms • 1 capteur de température numérique DS18B20- 1,11€

• 1 résistance 4.7 kohms 1€ les 20 sur ebay, moins cher au magasin du coin

Notez que si un lien est mort (ce qui arrive souvent car ebay bouge beaucoup), reprenez les mots clés de ces liens dans le moteur de recherche ebay, cherchez avec les filtres “achat immédiat”, “Dans le monde entier” et tri par “prix+livraison les moins cher”.

Pour comprendre plus en détails ce qu’est l’Arduino, l’Atmega etc.. se référer au tuto 15, je pars du principe que vous avez lu et compris le tuto 15, histoire de ne pas me répéter 1000 fois

Programmer la puce AtmegaOn va faire exactement le même montage que dans le tuto 15, je re-détaille la manip pour les flemmards du fond (oui oui ! vous au fond à côté du radiateur là !!) :

téléchargez et installez l’IDE (environnement de développement Arduino) sur le site d’Arduino.

Voilà le schéma permettant de programmer une puce Atmega à partir d’une carte Arduino (nb : la résistance est visiblement plus adéquate si elle est de 10 kohms et non de 1.27 ohms comme indiquésur le schéma)

Notez que sur le schéma, j’utilise ce qu’on appelle une “breadboard”, c’est une plaque en plastique qui permet de tester des circuits sans avoir à souder, juste en plantant des fils dans des trous, les trous sont reliés de manière horizontale entre eux, sauf pour les lignes bleues et rouges (utilisées pour l’alimentation) qui eux sont reliés verticalement.

Je vous conseille vivement l’achat d’une breadboard, ça ne coûte rien et c’est quasi indispensable

Année 2014­2015                                                                                                                                                Geek

Page 99: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

pour tester les circuits dans de bonnes conditions.

• Les fils RX et TX sont ceux qui envoient le programme à l’Atmega

• La puce Atmega originellement implantée sur l’Ardunio doit être déclipsée sinon c’est elle

qui sera programmée • L’ensemble du circuit doit être alimenté en 5V, ici on utilise l’alimentation de l’Arduino

(conseillé) • L’Atmega doit être alimentée (5V + GND) des deux cotés aux bornes indiquées

• Le pin reset de l’Atmega doit être relié au reset de l’Arduino comme indiqué sur le schéma

• Le pin reset de l’Atmega être relié au 5V via une résistance 1.27? (brun rouge violet gris

rouge) comme indiqué sur le schéma

Une fois le circuit branché et alimenté, vous pourrez lancer l’IDE Arduino et programmer la puce comme si elle se trouvait sur la carte Arduino.

Enfin sachez que vous pouvez tout aussi bien programmer la puce en la laissant simplement branchée sur la carte arduino et la décrocher juste après, notre montage est à l’heure actuelle inutilement compliqué, mais dans le futur nous en aurons besoin.

Code de l’AtmegaComme la sonde ds18b20 est particulièrement chiante à utiliser, nous installerons 2 librairies pour nous simplifier la vie (dans l’absolu, il serait peut-être plus intéressant d’utiliser une sonde analogique ou une thermistance, bien plus facile à questionner (retour de 0.1 V par degré).

Donc on va installer la librairie DallasTemperature, qui nous epargne le boulot des 12 000 commandes à envoyer à la sonde pour avoir la température, et OneWire, qui va permettre à l’Atmega de communiquer avec la sonde sur une seule patte.

Pour installer les librairies, rien de plus simple : décompressez ces dossiers dans le dossier librairiesde l’IDE Arduino.

On va enfin pouvoir s’occuper de notre code ^^.

Téléchargez le code à “téléverser” dans l’Atmega ici (clic droit + enregistrer sous).

Ouvrez le code téléchargé dans l’IDE Arduino.Cliquez sur téléverser.

En fonction de la puce Atmega que vous avez, vous serez peut-être obligé de changer le type de carte dans les configurations de l’IDE (cf tuto 15)

Code coté Raspberry PI

Téléchargez l’interface web ici.

Décompressez-la dans le dossier /var/www de votre Raspberry PI.

Année 2014­2015                                                                                                                                                Geek

Page 100: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pensez a régler les permissions en lecture/écriture dans fichiers comme dans les autres tutos (si vousne voulez pas vous faire chier, faites le temps des tests:

1. sudo chown –R www-data:www-data /var/www/hcc2 2. sudo chmod –R 777 /var/www/hcc2

C’est bourrin question sécurité mais comme beaucoup d’entre vous ont des soucis de ce coté là car les permissions sont mal réglées, au moins on peut éliminer ça , je vous laisse regarder la doc Linuxsi vous voulez régler les droits de manière plus sécurisée).

Les branchements finauxNotez que pour le Rapsberry PI comme pour la sonde Arduino, vous devez obligatoirement :

• utiliser des alimentations externes stables de 5V

• souder des antiennes (fil conducteur quelquonque) de 17,3cm

• Eloigner le dispositif de toute source possible de parasites

Sans quoi la portée de votre sonde sera ridicule et les données mal transmises/mal captées (surtout mal captées, car le Raspberry PI alimente très mal les composants externes).

Coté Raspberry PI

Rien de nouveau, on fait comme dans le tuto 10 sauf qu’on alimente le récepteur radio avec une alim externe de préférence (c’est mieux pour la portée et la qualité de la réception) :

• notez que dans le tuto, nous utilisons la borne wiring pi 7 (cette borne est définie quand nous

lançons le programme en tant qu’argument, cf plus bas)

Coté capteur ArduinoUne image vaut mieux qu’un long discours ,

Notez que j’ai oublié sur le schéma, de préciser qu’il faut aussi mettre la résistance 4.7 k ohmsentre le pin central du capteur ds18b20 et le + de l’alimentation.

Notez également que je n’utilise pas les mêmes pin sur la photo de début d’article et sur le schéma, ne vous faites pas avaoir et fiez vous uniquement au schéma.

Année 2014­2015                                                                                                                                                Geek

Page 101: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’explication du codeConcrètement, on va créer notre propre protocole radio en calquant un peu sur le protocole home easy de Chacon.

On va donc envoyer un signal de 12 bits pour commencer :

• 7 bits représenteront la valeur de la température

• 1 bit représentera le signe de la température (température positive ou négative)

Année 2014­2015                                                                                                                                                Geek

Page 102: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• 4 bits représenteront l’identifiant de la sonde.

On a 7 bits de valeurs, on pourra donc envoyer 2^7 = 128 valeurs possibles pour la température, avec le bit de signe ça nous permet d’envoyer de -128 à 128 degrés, ça devrait le faire, en tout cas, si vous atteignez un jour ces limites, vous vous concentrerez certainement plus sur votre survie que sur la domotique (et les morts n’ont pas accès aux commentaires donc je suis tranquille côté plaintes) :).

On ajoutera deux impulsions avant et une après les données afin d’annoncer l’ouverture et la fermeture du signal d’information.

Coté Raspberry PI• Un petit code en C++ qui va écouter les signaux radio et envoyer l’information de

température à une page PHP • Une page PHP qui va écrire l’info dans un fichier texte (la database de l’interface web,

nommée db.json) • Un ptit module html/ajax sur l’interface va vérifier régulièrement dans la base pour chaque

sonde et afficher la température sur l’interface.

Coté capteur ArduinoUn code en C++ (avec la librairie Arduino) qui va questionner le capteur de température et envoyer le résultat (5 fois toutes les 3 secondes pour une meilleure garantie de réception) au Raspberry PI à travers l’émetteur.

L’utilisation

Brancher la sonde sur une alimentation (5V minimum, éviter le Rapsberry PI comme alimentation)

Sur la console du Rpi, aller dans le dossier hcc2

cd /var/www/hcc2

puis exécuter le programme d’écoute des signaux

./radioReception /var/www/hcc2/action.php 7

Le premier argument “/var/www/hcc2/action.php” est la page php de l’interface à laquelle sera envoyée la température reçue.

Le second argument ”7” est le numéro wiring PI du pin du Raspberry PI sur lequel est branché le récepteur radio.

Sur la console s’affiche alors les réceptions et éventuels ratés (notés FAIL) de réception de la sonde.

Si vous souhaitez modifier le programme C de réception des signaux, les sources sont disponibles

Année 2014­2015                                                                                                                                                Geek

Page 103: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

dans le fichier “radioReception.cpp”, après modification vous devrez le recompiler en tapant la commande

g++ radioReception.cpp -o radioReception –lwiringPi

Année 2014­2015                                                                                                                                                Geek

Page 104: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 19 : Optimisation, trucs & Astuce informatique, et pas de haut niveau en plus , cela dit ça peut intéresser plus d’un idlenaute donc je vous conseille de gratter un peu cet article quitte à vous taper une lecture en diagonale de ce véritable “pavé du dimanche”.

Je me suis rendu compte que j’ai oublié de préciser plein de trucs et astuces “génériques” applicables au raspberry parce que ça me paraissait évident, mais au fil des commentaires et des mails qui m’ont été adressés je me suis dit que ça valait peut-être la peine de faire un ptit billet pour éclaircir quelques points

(et puis ça me laisse un peu de temps pour bidouiller d’autres prototypes).

Les points abordés :

1. Accéder à la console du RPI sans écran/clavier branché à celui-ci 2. Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran) 3. Optimiser le serveur http en remplaçant Apache2 par lighttpd 4. Transformer le raspberry PI en seedbox (serveur multimédia avec client torrent intégré, le

tout accessible sur le réseau et stocké sur un disque dur externe s’il vous plaît) (edit: ce pointest abordé avec plus de détails/possibilités dans le tuto http://blog.idleman.fr/billet-invite-creer-un-nas-avec-le-raspberry-pi/ )

5. Quelques manips pour personnaliser un peu la tronche du raspberry PI (nom, message d’arrivée etc…)

Accéder à la console du raspberry PI sans écranDepuis le début des tutos, vous aurez peut-être constaté que j’utilise uniquement le mode console et non le bureau graphique, en effet je n’ai pas d’écran pour le Raspberry et j’y accède depuis mon ordinateur portable ce qui me permet de trimballer le RPI et d’y accéder depuis n’importe quel PC sans trainer un écran 19 pouces, un clavier, et une souris derrière moi .

Ceci est possible grâce à la communication SSH, pour faire court et grossier : votre Raspberry pi comprend un serveur nommé : SSH, auquel vous pouvez vous connecter depuis un client SSH depuis n’importe quel PC, une fois connecté, vous aurez accès au terminal comme si vous étiez sur le rapsberry PI

Année 2014­2015                                                                                                                                                Geek

Page 105: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour vous connecter à cette console, il vous suffit de télécharger et d’installer le programme gratuit Putty, puis de rentrer l’Ip locale de votre Raspberry PI et cliquer sur “Open”

Année 2014­2015                                                                                                                                                Geek

Page 106: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour obtenir l’Ip réseau du raspberry PI, vous pouvez regarder sur le panel de votre box (les pc qui y sont connectés), ou brancher temporairement un écran au raspberry pi et taper la commande ifconfig, l’ip suis le libellé “inet addr”

Notez que cette IP peut changer (bien que votre box essaye généralement de conserver des Ip “favorites” par machine), vous pouvez donc la fixer une bonne fois pour toute avec la manip

Année 2014­2015                                                                                                                                                Geek

Page 107: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

suivante qui permet de passer d’une Ip dite “dynamique” à une Ip “statique” :

Tapez dans la console :

sudo nano /etc/network/interfaces

1 sudo nano /etc/network/interfaces

Et remplacez

iface eth0 inet dhcp

1 iface eth0 inet dhcp

Par

iface eth0 inet static address 192.168.1.x netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

123456

iface eth0 inet static address 192.168.1.x netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1

Il vous faudra remplacer le libellé de “address” par votre Ip réseaux actuelle ainsi que

netmask : Vous pouvez le trouver dans la valeur “Mask” du ifconfig

broadcast : Vous pouvez le trouver dans la valeur “Bcast” du ifconfig

gateway : C’est l’Ip de votre routeur/box, vous pouvez la trouver dans le panel admin de votre box sous le libellé (serveur DHCP le plus souvent)

Enregistrez et redémarrez, votre Ip sera fixe et toujours accessible depuis Putty.

Attention !! Notez bien que lorsque vous fixez cette ip, elle ne peut plus s’adapter dynamiquement à

Année 2014­2015                                                                                                                                                Geek

Page 108: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

un autre réseau, aussi si vous trimballez votre rpi autre part, pensez à remettre l’ip en dynamique.

Déporter le bureau virtuel du raspberry PI sur votre ordinateur (toujours sans écran)Si vous n’aimez pas trop la ligne de commande ou que vous souhaitez faire une manip sur le bureauvirtuel du raspberry pi sans avoir d’écran, vous pouvez installer un serveur dit “VNC” qui permet de déporter l’affichage du raspberry Pi, sur un autre pc, vous avez donc un écran dans un autre ^^ :

Il existe de nombreux serveurs VNC disponibles, mais le moins contraignant à installer est tightvncserver.

Pour l’installer, tapez la ligne de commande

sudo apt-get install tightvncserver

1 sudo apt-get install tightvncserverIl vous faudra alors lancer le serveur avec la commande

tightvncserver

1 tightvncserver

Année 2014­2015                                                                                                                                                Geek

Page 109: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et ce à chaque fois que vous voudrez l’utiliser, vous pouvez bien entendu vous débrouiller pour lancer cette commande au démarrage via un service ou un cron ou autre…

Au premier lancement il va vous demander un mot de passe pour se connecter au bureau distant, si vous n’êtes pas trop dingue, vous mettrez le même que celui de votre compte raspberry PI

Lorsqu’il demande si vous voulez de la lecture seule, répondez n (non)

Would you like to enter a view-only password (y/n)?

1 Would you like to enter a view-only password (y/n)?

Le serveur est lancé et configuré :

Notez que le serveur est lancé par défaut sur le port “2” qu’il faudra retenir, ainsi que l’adresse ip devotre raspberry (cf partie connexion à la ligne de commande)

Il vous faut maintenant un client de connexion VNC sur la machine où vous souhaitez déporter l’affichage du raspberry PI, realVNC est gratuit, simple, performant et dispo pour Linux, Mac , et Windows: http://www.realvnc.com/download/viewer/

Installez et lancez realVnc puis entrez l’adresse Ip réseau de votre Raspberry PI, suivie de votre port(par défaut 2) les deux séparés par “:”

Année 2014­2015                                                                                                                                                Geek

Page 110: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et cliquez sur “Connect”

NB : de mémoire, un warning va vous avertir que la connexion n’est pas sécurisée, cliquez sur le bouton continue (à moins que ça vous froisse que ca ne soit pas sécurisé évidemment , chez vous ça ne change pas grand chose, mais évitez de vous connecter depuis un lieu public ou du boulot)

Le client vous demande alors le mot de passe que vous avez donné au serveur VNC lors de son installation :

Vous arrivez ensuite sur votre bureau distant et pouvez interagir avec comme vous le souhaitez

Optimiser le serveur http en remplaçant Apache par LighttpdOn a vu dans le tuto ~ 04 : Configurer en serveur comment mettre en place un serveur dit “http” pouvant héberger des sites web sur le Raspberry PI.

Nous avions choisi le serveur Apache qui est le plus populaire, mais aussi le plus vieux et le plus lourd de ce qui se fait en ce moment.

Apache fait beaucoup d’entrées fichiers ce qui peut à long terme abimer la carte SD de votre raspberry PI, il est donc plus intéressant de se tourner vers des serveurs plus légers comme Nginx ou lighttpd

Les deux sont très rapides, légers et peu gourmands en ressources, et n’en déplaisent aux fanatiques de l’un ou de l’autre : ils sont relativement équivalents.

Parce qu’il faut faire un choix, et parce qu’il s’est avéré moins chiant à installer, j’ai choisis lighttpd* les pro-nginx vous pouvez huer *.

lighttpd a surtout un gros avantage pour moi : il est beaucoup plus simple de le relier à PHP que nginx (c’est du vécu, j’ai fait 4/5 tutos sur nginx, aucun n’était d’accord avec l’autre, et certains parlaient même d’installer lighttpd en premier puis de le désinstaller afin d’avoir les prérequis pour nginx… bref)

Donc si vous avez Apache, commencez par le désinstaller correctement sinon il fera interférence

Année 2014­2015                                                                                                                                                Geek

Page 111: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

avec lighttpd par la suite. Attention cependant apache peut être très chiant a désinstaller, le mieux reste encore de repartir d’un Raspian vierge si vous le pouvez, sinon je vous laisse vous amuser comme je l’ai fait à tester tout plein de manip pour vous débarrasser de l’outrecuidant correctement.

La commande suivante semble fonctionner pour la désinstallation d’apache2 (à vos risques et perils):

sudo apt-get remove --purge $(dpkg -l apache* | grep ii | awk '{print $2}')

Installez ensuite Lighttpd

sudo apt-get install lighttpd

1 sudo apt-get install lighttpd

Puis les pré-requis pour avoir php5 et le relier à Lighhtpd

sudo apt-get install php5-common php5-cgi php5 sudo lighty-enable-mod fastcgi-php

12

sudo apt-get install php5-common php5-cgi php5sudo lighty-enable-mod fastcgi-php

Redémarrez le serveur http

sudo service lighttpd force-reload

1 sudo service lighttpd force-reload

A ce moment là si vous avez des erreurs types “port 80 busy” un truc du style, c’est que vous avez mal désinstallé Apache et qu’il tourne encore, ou qu’un autre serveur Http est déjà en place.

Année 2014­2015                                                                                                                                                Geek

Page 112: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et enfin réattribuez les bons droits sur les bons dossiers pour que Lighttpd puisse faire son boulot

sudo chown www-data:www-data /var/www sudo usermod -a -G www-data pi

12

sudo chown www-data:www-data /var/wwwsudo usermod -a -G www-data pi

Si tout s’est bien passé vous devriez pouvoir vous connecter via un navigateur à l’Ip de votre Raspberry PI et voir la page d’accueil par défaut de lighttpd

Pour ce qui est de la base de données, je vous conseille également de désinstaller MySQL (si vous n’avez installé aucune appli qui tourne avec évidemment) et de le remplacer par SQLite qui est un peu moins gourmand et épargnera votre raspberry PI également :

sudo apt-get install sqlite3 sudo apt-get install libsqlite3-0 libsqlite3-dev sudo apt-get install php5-sqlite

123

sudo apt-get install sqlite3sudo apt-get install libsqlite3-0 libsqlite3-devsudo apt-get install php5-sqlite

Utiliser le raspberry PI comme une seedboxUne seedbox est un serveur dédié au téléchargement illégal de fichiers vidéos/audio/multimédia etc…

Il est très simple de transformer le Raspberry pi en seedbox afin de pouvoir faire les choses suivantes :

• Avoir un client torrent disponible via une interface web sécurisée

Année 2014­2015                                                                                                                                                Geek

Page 113: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• Pouvoir lancer des torrents à télécharger de n’importe où et en partager non stop tant que le

Raspberry est allumé (donc tout le temps vu le peu que ça consomme) • Enregistrer automatiquement les films (légaux bien entendu) téléchargés sur un disque dur

externe (bah oui votre carte SD risque de faire la gueule sinon) • Accéder aux films de la seedbox depuis n’importe quel PC de votre réseau. On va

commencer par monter un disque dur (le plus gros possible) de manière permanente sur le Raspberry PI, puis installer un serveur de partage de fichiers afin de pouvoir rendre accessibles nos fichiers depuis tous les pc de notre réseau, puis on installera un client de torrent permettant le téléchargement et l’envoi de fichiers multimédias, enfin on configurera tout ça pour lier les éléments ensemble.

• Monter le disque dur: des bidouilles de commandes, aucun programme

• Installer le serveur de partage de fichiers : on choisira Samba, qui permet le partage avec

des pc Linux, Windows et Mac (mais pas sans douleur) • Installer un client torrent : on choisira Transmission, le célèbre client torrent natif

d’Ubuntu, à mon sens le meilleur qui existe, simple, ultra fonctionnel, beau, peut être utilisé en ligne de commande, en fenêtre depuis le bureau ou carrément via une interface web (ce qui nous intéresse le plus).

Prêt à manger du beurre par les trous de nez? Envoyons le pâté !

Premièrement on update parce que ça ne fait jamais de mal avant une installation :

sudo apt-get update

puis on installe un paquet qui nous sera indispensable par la suite :

sudo apt-get install ntfs-3g

Puis, on trouve un disque dur assez balèze (genre 2To) et on le branche au port USB du raspberry PI. La rapidité de transmission est un plus, mais ce qu’il vous faut c’est surtout :

• Un disque dur grosse capacité

• Un disque dur avec une alim externe (le rpi étant très mauvais avec les périphériques

alimentés par USB). • Un disque dur formaté en NTFS (vous pouvez le mettre en FAT mais il vous faudra modifier

quelques paramètres de ce tuto) • Placez au moins un fichier test.txt sur le disque dur pour faire des tests d’ouverture de disque

plus loin dans le tuto

on va créer une sorte de “lecteur permanent” dans le dossier “media” sur lequel on pointera notre client de torrents.

sudo mkdir -p /media/disque2To

Année 2014­2015                                                                                                                                                Geek

Page 114: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

On configure les droits pour que le client torrent puisse écrire dans ce lecteur

sudo chmod -R 777 /media/disque2To

Attendez quelques secondes le temps que le rpi détecte le disque dur puis tapez

sudo blkid

Une liste de périphériques s’affichent, retenez le champ UUID pour le périphérique ayant le LABEL qui correspond à votre disque dur (mon disque dur 2To s’appelle IdleBox)

Maintenant qu’on connaît l’identifiant unique de notre disque dur, on va spécifier au rpi de lier à chaque démarrage cette id au dossier qu’on a créé spécialement pour lui (/media/disque2To).

On édite pour ça le fichier /etc/fstab

sudo nano /etc/fstab

et on y ajoute la ligne

UUID=F21843B31843759F /media/disque2To ntfs-3g defaults 0 2

Évidemment l’UUID doit être modifié en fonction de votre UUID à vous.

Puis on sauvegarde et on reboot

sudo reboot

A ce stade la normalement le contenu de votre disque dur est monté et est disponible via le dossier /media/disque2To, vous pouvez vérifier qu’il contient bien votre fichier test.txt avec la commande.

cd /media/disque2To && ls

(oui moi j’ai un peu plus de bordel qu’un simple fichier test.txt mais le principe reste la )

Cette phase est très délicate, le système ou le disque dur font souvent la sourde oreille, vérifiez doncbien que vous avez vos fichiers dans /media/disque2To sans quoi la suite du tuto ne fonctionnera

Année 2014­2015                                                                                                                                                Geek

Page 115: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

pas.

En cas d’erreur vérifiez bien :

• Que votre disque dur est bien connecté au port usb du raspberry PI, démarré et alimenté lors

du démarrage du raspberry PI • Que votre disque dur est bien formaté au format NTFS

• Que votre disque dur est bien alimenté par une source autre que le raspberry PI

• Que l’UUID entré dans le /etc/fstab correspond bien à l’UUID de votre disque dur

Si l’erreur persiste, essayez de trouver l’erreur au démarrage du Raspberry PI, généralement il vous indique d’où vient la couille avec un gros “FAILED” rouge.

Bien !! Le plus dur est fait !!

Maintenant on vas faire en sorte que le disque dur (accessible depuis le dossier /media/disque2To si vous avez bien suivi) soit également disponible en partage, c’est-à-dire que les autres PC de votre réseau local puissent y accéder !

Pour celà, il vous faudra installer un serveur de partage sur votre Raspberry PI, le plus connu (et le seul que je connais d’ailleurs) est samba !

On installe donc samba (et avec le sourire siouplé !)

sudo apt-get install samba

Il est possible qu’il soit déjà installé, chez moi il l’était mais c’est peut-être parce que j’avais fait la manip précédemment, dans tous les cas la commande ne vous fera pas de mal .

Maintenant que samba est installé il va falloir partager le dossier /media/disque2To sur le réseau.

Pour ça, on commence par éditer le fichier de configuration de samba :

sudo nano /etc/samba/smb.conf

Cherchez la ligne

# security = user

et placez en dessous :

security = share

Année 2014­2015                                                                                                                                                Geek

Page 116: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

De cette manière vous ouvrez un peu votre serveur de partage aux utilisateurs autres que les utilisateurs interne du rpi

Puis cherchez le bloc [print$] …

Et placez en dessous le bloc :

[disque2To]comment = Disque multimediapath = /media/disque2Tobrowseable = yesguest ok = yeswriteable = yespublic = yescreate mask = 0777directory mask = 0777

Enfin redémarrez samba

sudo service samba restart

Et remettez un ptit coup de permission sur votre dossier partagé pour être sûr.

chmod 777 –R /media/disque2To

Vous devriez maintenant voir le partage depuis vos autres PC, par exemple depuis mon Windows Seven :

Année 2014­2015                                                                                                                                                Geek

Page 117: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Vérifiez bien que vous avez la permission d’entrer et d’écrire dans le disque.

nb : Il est possible que ce sale bataw de Windows vous demande un login/mot de passe alors que nous avons tout fait pour justement ne rien avoir à mettre.

Il vous faudra alors taper:

login : WORKGROUP\votre login Windows

mdp : votre mot de passe Windows

Cochez la case ‘se souvenir’ histoire de ne plus être emmerdé par la suite.

Bien !! Maintenant que nous avons un disque dur monté et partagé sur le réseau. Il va falloir le remplir avec vos films de vacances légalement téléchargés via un logiciel de torrent !

Le must pour moi en matière de logiciel de torrent c’est transmission : léger, simple, ergonomique, dispose d’une jolie interface web et facilement configurable

sudo apt-get install transmission-daemon

Transmission va utiliser deux dossiers sur votre disque dur, un dossier pour stocker les fichiers temporaires de téléchargements, et un dossier pour stocker les fichiers finaux, on va donc créer ces deux dossiers

sudo mkdir /media/disque2To/downloaded /media/disque2To/pending

downloaded : dossier qui contiendra vos films de vacances terminéspending : dossier qui contiendra vos films de vacances en cours de téléchargement

On place ensuite l’utilisateur “pi” dans le groupe de transmission

sudo usermod -a -G debian-transmission pi

Année 2014­2015                                                                                                                                                Geek

Page 118: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Et on place les deux dossiers précédemment créé dans ce groupe aussi (c’est la fête du slip pour gérer les permissions)

chgrp debian-transmission /media/disque2To/downloaded /media/disque2To/pending

Enfin (et c’est la dernière manip concernant les permissions) on donne un droit 770 sur les deux dossiers

chmod -R 770 /media/disque2To/downloaded /media/disque2To/pending

On édite le fichier de configuration de transmission pour lui filer nos deux dossiers et régler quelques autres configs rigolotes :

sudo nano /etc/transmission-daemon/settings.json

Trouvez les lignes qui correspondent à ça :

“download-dir”:” /un/chemin/pourri” ,“incomplete-dir”:” /un/autre/chemin/pourri” ,“incomplete-dir-enabled”: false,“rpc-password”: “un mot de passe crypté super long type {EBIBEIUBSIBSIBSIUB…”,“rpc-username”:”transmission”,“rpc-whitelist “: “127.0.0.1″,

et remplissez-les avec les bonnes valeurs

“download-dir”:” /media/disque2To/downloaded” ,“incomplete-dir”:” /media/disque2To/pending” ,“incomplete-dir-enabled”: true,“rpc-password”: “mon mot de passe”,“rpc-username”:”mon pseudo”,“rpc-whitelist “: “127.0.0.1,*.*.*.*”,

Évidemment les lignes ne sont pas toutes collées les unes sous les autres, il vous faudra les chercher(je vous avais pas dit que je vous vendrai du bonheur ?)

nb : Notez que j’ai placé la clause *.*.*.* dans rpc-whitelist, celle-ci indique que toutes les adressesIp ont le droit de se connecter à votre seedbox (si elles connaissent le user/mot de passe bien entendu), ceci vous permet de vous connecter de partout dans le monde à votre seedbox (il faudra penser à débloquer le port 9091 de votre routeur/box si vous souhaitez y accéder de l’extérieur quand même mais bon…) si vous voulez que Transmission n’accepte que les Ip réseau locale, vous pouvez mettre 192.168.*.* à la place.

Enregistrez le bousin et relancez le service

sudo service transmission-daemon reload

Votre seedbox est fin prête !!

Année 2014­2015                                                                                                                                                Geek

Page 119: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Pour télécharger de nouveaux films de vacances via des fichiers torrents vous n’avez plus qu’à vousconnecter via un navigateur à votre seedbox à l’adresse :

http://ip.du.raspberry.pi:9091

ip.du.raspberry.pi : L’Ip réseau de votre Raspberry PI (ou sonIp web si vous y accédez depuis un autre endroit que votre réseau local)9091: port par défaut de Transmission (vous pouvez le modifier dans le setting.json, moi j’ai mis 666 pour le fun )

A la connexion Transmission vous demandera les login et mot de passe entrés dans le setting.json:

Et paf vous atterrissez sur votre client torrent :

Vos fichiers une fois téléchargés apparaîtront dans le dossier downloaded de votre disque dur, lui même disponible en partage depuis tout votre réseau local.

Année 2014­2015                                                                                                                                                Geek

Page 120: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Merci à Tom Canac qui à généreusement partagé ses pistes avec moi afin que nous arrivions à quelque chose de concret sur ce point

[Bonus] Personnaliser un peu le Raspberry Pi

Changer le nom du Raspberry PIPar défaut le rpi s’appelle Raspberry pi ce qui est laid nous en conviendrons on à donc cette ligne qui précède toutes nos commande:

pi@raspberrypi: ~#

Pour changer ce nom il faut éditer les fichiers /etc/hostname et /etc/hosts, dans ces deux fichiers, remplacez le nom raspberrypi par le nom que vous souhaitez, puis sauvegardez, fermez et redémarrez le raspberry PI, j’ai appelé le mien pib0x (…je sais… mais je n’avais pas d’idées et j’avais la gueule de bois, ne me jugez pas T_T)

Année 2014­2015                                                                                                                                                Geek

Page 121: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Mettre un message d’accueilLors de l’ouverture d’une console sur votre rpi, vous avez un message par défaut de toute beauté quis’affiche :

The programs included with the Debian GNU/Linux system are free software;the exact distribution terms for each program are described in theindividual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extentpermitted by applicable law.

Type ‘startx’ to launch a graphical session

On va changer ça par quelque chose d’un peu plus yorkmouth !!

Pour celà il faut éditer le fichier /etc/motd et remplacer le message par ce que vous souhaitez puis sauvegarder et rebooter (encore et toujours)!! Personnellement je vous conseille un message en asciiça claque toujours

Pas besoin de vous prendre la tête des jours à faire l’ascii vous-même, des services existent pour ça, suivez le guide

Année 2014­2015                                                                                                                                                Geek

Page 122: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 20 : Créer un tableau de bord connecté au net (ou comment augmenter le nombre de GPIO)

Yop bande de trous d’nez !! (je m’en lasse pas de celle la !)

Ca fait un moment qu’on a rien bricolé d’inutile concernant le raspberry PI !!

C’est ma faute: je glande sur une thèse aussi useless que chronophage et que personne ne lira (et tant mieux aux vues de son contenu :D) et puis accessoirement je roupille au soleil (voila pour la petite vie d’idle).

Pour passer le temps je vous propose tout de même un petit exercice de style :

On vas allumer et éteindre des diodes avec le rpi !

“Hé Idle tu nous prendrais pas pour des billes ?! On l’a déjà fait en tuto 6 !!”

C’est complètement vrai !! (c’était pour voir si vous suiviez) mais cette fois ci ce sera un peu différent …

Nous allons construire un petit “tableau de bord” lumineux qui vas nous avertir de l’état de nos divers serveur, blog, site web, machines connectées au réseau (imprimantes,téléphone,fax etc..) en temps réel ! Chez moi ça donne ça :

Année 2014­2015                                                                                                                                                Geek

Page 123: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’objectif est donc de relier plusieurs diodes au rpi et de créer un système de “ping” (pour que la génération facebook me comprenne : c’est comme un “poke” mais pour les machines :p) régulier qui vas aller interroger certaines ip et allumer les led:

• En rouge si l’ip ne répond pas

• En vert si elle répond.

“Mais l’exercice est très simple, nous savons déjà le faire! C’est quoi l’intérêt?”

Hé bien premièrement un collègue m’a un peu taquiné sur le sujet, donc mon intérêt direct et de lui

prouver qu’un IdleNaute n’est pas une trompette ! (ok ça vous avance à rien mais j’ai ma fierté merde ^^)

Et deuxièmement ça vas introduire la venue de deux nouveaux éléments électroniques intéressants !

Vous l’aurez peut être remarqué, nous utilisons ici des LED qui ont la particularité de pouvoir afficher deux couleurs : vert et rouge.

Ce petit composant est assez intéressant en plus d’être très simple à utiliser, 3 pattes :

• La patte du milieu doit être relié a la masse comme pour une LED normale

• La patte de droite (patte extérieure la plus courte) si elle est alimentée allumera la diode en

rouge • La patte de gauche(patte extérieure la plus longue) si elle est alimentée allumera la diode en

vert • Si les deux pattes (gauche et droite) sont alimentées, la diode sera à la fois rouge et vert et

donnera une “lueur jaunâtre”

Ce composant est donc très intéressant et enfantin à utiliser, notez qu’il existe aussi des diodes dites RVB qui vous permettrontd’utiliser trois vrais couleurs : vert, rouge et bleu.

Année 2014­2015                                                                                                                                                Geek

Page 124: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Nous nous contentons ici des RV (rouge vert) parce que c’est un peu moins cher, plus simple à utiliser et que ça suffit aux besoins de l’exercice, nous reparlerons des RVB dans un prochain tuto de toute manière :).

Mais je digresse !! revenons à nos diodes RV !!

Celles ci sont donc formidouble (doublement formidables) mais ont tout de même quelques inconvénients:

• Elles sont assez chères (1,03€ les 10, ok c’est pas la ruine mais pour des LED c’est cher)

Elle ont trois pattes chacune, donc beaucoup de choses à relier quand vous avez 8 LED comme ça à brancherSi on compte le nombre de pattes à relier au RPI pour 8 led, ça nous fait 2*8 = 16 GPIO de pris (plus la masse qu’ont relie à toutes les pattes centrales des diodes).

Pour le premier problème, il y a ebay, pour le second : l’huile de coude et pour le troisième : les shift registers !

“Nié ! shift what?”

C’est le second élément nouveau dont je vous parlais (le premier étant la diode RV évidemment).

Pour faire simple, un shift register est un composant électronique tout plein de papattes qui permet de multiplier vos sorties GPIO et ce, quasiment à l’infinis.

Avec le shift register que nous allons utiliser par exemple, nous n’auront besoin que de trois sorties GPIO du rapsberry PI pour simuler les 16 GPIO dont nous allons avoir besoin avec les LED.

Inutile donc de vous spécifier que dans le cadre de notre projet domotique qui pompe pas mal de GPIO, c’est un gros plus !

• Avantage de notre shift register :

C’est pas cherC’est pas grosC’est assez simple d’utilisationÇa peut s’additionner pour multiplier le nombre de sorties indéfiniment ou presque(je vous expliquerais)

Année 2014­2015                                                                                                                                                Geek

Page 125: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ça ne prends que 3 GPIO max • Les inconvénients :

Ça prend tout de même 3 GPIO !!Ça complique légèrement le code (mais c’est pas dramatique)Ça ne fonctionne que pour les GPIO en sortie (donc pour les entrées il faudra prendre un autre type de shift register un peu plus complexe)

Assez déblatéré comme un chauve à lunette de la fac ! Il est temps de mettre les patounes dans l’cambouis !!

Le matériel :• Notre fidèle raspberry PI

2 shift registers 74HC595 (je les ai commandé ici pour 3,48 les 20, vu l’utilité yen aura jamais trop)8 LED RV (1.03€ les 10 ici)Quelques fils, éventuellement une breadboard (planche à trou pour éviter les soudures) pour nous simplifier le travail, et un peu de bon sens

Le schéma de branchementJe tiens à préciser que j’ai honteusement pompé puis mutilé un fabuleux schéma de zem.fr pour l’adapter au rpi et vous l’afficher ci dessous, merci à lui pour ses explications sur le shift register (aupassage si vous aimez l’arduino allez visiter le blog il rox du pathé comme on dis chez moi)

Année 2014­2015                                                                                                                                                Geek

Page 126: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

L’explication sur le shift register se trouvent en fin de tuto (je ne veux pas vous embrouillez tout de suite :p, mais j’vous ai prévu un mega dessin z’allez voir ! )

Code et InstallationVous devez déjà avoir un serveur http (apache ou lighttpd peu importe) et PHP installé (si ce n’est pas le cas suivez le tuto 4 )Vous devez déjà avoir installé la librairie wiring PI (si ce n’est pas le cas suivez le tuto 6 )

• Récupérez le code PHP ici et placez le dans le répertoire de votre serveur http

(/var/www par défaut) ce qui doit vous donner une arborescence comme : /var/www/ping/ping.php

• Ouvrez le fichier ping.php et ajoutez les IP que vous souhaitez surveiller dans le

tableau $servers en début de code, vous pouvez spécifier une IP réseau (ex : 192.168.0.10), une IP web (ex : 55.75.32.203) ou une adresse (ex : http://google.fr)

• Ajoutez un CRON (tâche planifiée) qui vas exécuter cette page PHP toutes les

minutes, pour cela tapez la commande :

Année 2014­2015                                                                                                                                                Geek

Page 127: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

sudo crontab -e

Et ajoutez la ligne :

*/1 * * * * php /var/www/ping/ping.php

Les diodes devraient se mettre à jour toutes les minutes en fonction des IP configurées, n’hésitez pas à lancer le script manuellement depuis votre navigateur (http://adresse.du.rpi/ping/ping.php) dans le cas ou ça ne fonctionne pas avec le cron :).

L’explicationLa tâche planifiée (le cron) qu’on à mis en place vas exécuter toutes les minutes le fichier php contenant notre code.

Le fichier php vas, interroger chaque IP que nous avons renseignées pour savoir si elles “répondent”.

On part alors du principe qu’une LED vas représenter la réponse d’un IP :

Si l’ip répond: PHP vas mettre un port GPIO du shift register à 1 qui correspond à la couleur verte de la led liée.

Si l’ip ne répond pas: PHP vas mettre un port GPIO du shift register à 1 qui correspond à la couleur rouge de la led liée.

“Tout ça c’est bien beau mais on ne comprends toujours pas comment manipuler un shift register !!”

Tu as raison jeune trublion !! J’ai gardé le meilleur pour la fin !!

Comme c’est un concept (pourtant simple) qui ne cadre pas avec mon cerveau étriqué, j’ai fait un petit dessin pour que mes semblables trépanés du bulbe et moi on se comprenne, mémorisez bien la petite histoire suivante :

Année 2014­2015                                                                                                                                                Geek

Page 128: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

J’espère que vous avez adoré l’histoire (je sort une BD en 2014, je crois que j’ai de l’avenir dans cette branche XD) et que vous n’avez pas trop vomi .

Outre la qualité affligeante de cette image (sur laquelle j’ai pourtant bien passé 20 minutes) on notera qu’elle représente le fonctionnement exacte du shift register (du moin tel que je l’ai compris ^^), je m’explique :

Le shift register (la table) a 8 GPIO (8 Verres) qui peuvent être à 0 (vide) ou a 1 (plein).

On a pas le droit de toucher aux verres sur la table, pour modifier l’état d’un verre, on ne peux qu’en rajouter un nouveau (le fameux todd) en lui définissant une valeur (vide ou plein).

Sauf qu’en rajoutant Todd le verre, on pousse les autres et le dernier se fait éjecter de la table (die stupid glass ! die !!).

Il vas nous falloir trois “bouton” pour effectuer cette action : un bouton pour remplir ou laisser vide le verre, un bouton pour ajouter le nouveau verre sur la table (et donc pousser les autres) et un dernier bouton pour “valider” la nouvelle configuration de la table

3 bouton = 3 pattes du shift register branché au raspberry PI, il ne nous en faudra pas plus pour ouvrir/fermer les 8 GPIO du shift register de cette façon .

Maintenant voyons un ptit schéma simplifié du composant :

Année 2014­2015                                                                                                                                                Geek

Page 129: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Si vous êtes comme moi vous allez vous demander en premier quel esprit démoniaque a pu penser que mettre tout les gpio d’un coté SAUF UN était pertinent… faut vraiment être le fil de personne pour imaginer des puces comme ça ! M’enfin !

Donc à ce stade je ne vous ferait pas l’affront de vous expliquer à quoi correspondent les GPIO, la MASSE et L’ALIM (si vous ne savez pas, retour au tuto 1 ).

Les trois boutons dont nous parlions sont :

“VALEUR” (en réalité nommé SER) qui vas remplir ou non le nouveau verre.”SUIVANT” (nommé en réalité SRCLK) qui vas ajouter le nouveau verre sur la table et pousser les autresVALIDATEUR (en réalité RCLK) qui vas prendre en compte la nouvelle configuration

“Et “CONNECTEUR” alors ? Il sert à quoi?”

Il vas nous permettre de brancher d’autres shift register au premier, ce qui donnera l’équivalent d’ungros shift register de 16 GPIO avec deux shift de 8 par exemple .

CONNECTEUR devras être branché au VALEUR du shift register ajouté, il est possible de rajouter autant de shift les un sur les autre que vous le souhaitez, évidemment au bout d’un moment vous risquez d’avoir quelques problèmes de lenteur et d’alimentation si vous ne savez pas vous arrêter ^^ (je vais tapisser mes murs avec des shift register et dominer le mmooonde niark niark niark!!!).

“Et les papattes dont tu ne nous à pas parlé ?”

Dans notre contexte,elles sont un peu useless, disons qu’elles ont une fonction utile, mais que

Année 2014­2015                                                                                                                                                Geek

Page 130: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

prendre un précieux gpio de plus sur le rasp pour ça c’est pas forcement nécessaire,voila le schéma avec les vrai nom des pattes :

(ça calme tout de suite hein ? :D)

SRCLR dont nous n’avons pas parlé, peut être passé en High puis low afin de remettre toute les pindu shift registrer à 0 (ce qui peut aussi être fait manuellement avec les 3 pin dont nous disposons déjà, d’ou le “un peu useless”)

OE quand à lui permet d’activer la sortie lorsqu’il est sur la masse (GND) et la désactive lorsqu’il est en High, on le laisse donc toujours branché à la masse.

C’est tout pour aujourd’hui ! Vous l’aurez compris, le principal intérêt de ce tuto est d’abord la notion de shift register qui vas nous permettre de jouer avec plus de GPIO sans trop d’efforts .

Notez qu’il existe plein de type de shift register, certains ont beaucoup plus de sorties, d’autres peuvent se comporter en entrée et en sortie (relativement pratique) etc etc..

Je vous conseille de vous en trouver un qui soit simultanément en entrée et en sortie et qui puisse se “stacker” à d’autre de ses confrères comme celui que nous avons vu, puis de vous créer une ptite carte à brancher sur le raspberry PI pour multiplier définitivement ses entrées sorties par “x”

Bien à vous,

Année 2014­2015                                                                                                                                                Geek

Page 131: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 21 : Yana, un nouveau cœur domotique

Aujourd’hui pas d’électronique, seulement de la bidouille logicielle pour “proprifier” un peu notre domotique.

Pour faire court, j’ai travaillé sans relâche ces derniers jours (et novares aussi en parallèle sur Android) sur un nouveau système de gestion de notre domotique qui devrait plaire aux développeurs en tout genre ainsi qu’aux utilisateurs.

Pour rappel, jusqu’ici nous utilisions deux “programmes”:

1. l’interface web HCC (développée à l’arrache par votre serviteur himself un soir d’apéro) l’interface vocale YURI dérivée du programme SARAH de JP Encausse.

Seulement voila mon installation était un peu dégueulasse, je suis donc reparti d’une base saine : YANA.

YANA est un groupe de logiciels qui comprend :

Yana Server:

Cœur de l’application domotique qui comprend une interface web (une sorte de hcc 3.0)

Yana for Windows:

Année 2014­2015                                                                                                                                                Geek

Page 132: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Remplaçante de YURI, que j’ai entièrement redéveloppé de manière à m’approprier un peu plus le code et pouvoir en faire ce que je souhaite

Yana for Android: Similaire à YANA for Windows mais pour les androphones, en cours de développement par novares.

Pourquoi avoir remplacé YURI?

YURI, qui n’était autre que le logiciel SARAH de JP Encausse fonctionnait très bien, j’insiste sur lefait que c’est un excellent programme qui fonctionne parfaitement bien, cependant ne l’ayant pas développé je n’étais pas en mesure de répondre aux questions des utilisateurs sur certains bugs ou encore d’ajouter des petites fonctionnalités manquantes pour adapter le programme à notre domotique.

Le fait de l’avoir redéveloppé m’a par ailleurs permis d’y ajouter quelques fonctionnalités :

• Une interface un peu plus graphique type “chat”

• La configuration des commandes est simplifiée : on ne passe plus par des xml, tout est

récupéré directement en json depuis yana-server (le json étant moins verbeux, plus léger et plus simple à parser via php que le xml)Il est possible de jouer des sons

• Certains sont disponibles en natif tel que les rires, pleurs, et autres expressions sonores de

yana • Yana peut parler, jouer un son ou exécuter une commande système (ex : ouvrir un

Année 2014­2015                                                                                                                                                Geek

Page 133: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

programme) • Yana peut effectuer plusieurs actions successivement (système de queue)

• Yana est capable de parler lorsqu’un évènement se produit sans qu’il y ai de commande

vocale au préalable (ex : signaler une intrusion) • Yana peut se lancer automatiquement avec windows

• Yana fonctionne en mode visible ou invisible

• Yana peut utiliser plusieurs ton de paroles (encore en réglage, pas très convaincant pour le

moment)

Qu’est-ce qu’on gagne avec ce nouveau système?

Le gros avantage de cette nouvelle combinaison yana-server + yana Windows, c’est que yana-server est un CMS auquel ont peut ajouter toute sorte de plugins, ceci permet de rajouter des commandes et des actions simplement en installant un plugin, les commandes seront alors répercutées sur le client yana qui les prendra en compte à son redémarrage.

Les développeurs sont bien entendu invités à proposer leurs plugins. Le second point important

c’est l’ajout d’un écouteur d’événements qui permet à yana de parler, jouer un son ou exécuter une

commande toute seule sans qu’il n’y ait besoin de l’interpeller.

Ceci permet l’écoute d’événements autres qu’un ordre vocal comme un événement déclenché par

l’heure ou la date (“C’est l’anniversaire de votre mère“) ou encore un événement déclenché par une

porte ouverte (“Intrusion dans le salon, alerte!”) etc… etc..

Comment télécharger tout ça?

Tout est sur github, je vous conseille de télécharger via git plutôt que via l’archive, ça vous permettra de mettre à jour plus simplement.

Notez que vous devez obligatoirement installer yana server sur votre raspberry PI pour faire fonctionner les clients vocaux.

Dépôts Github :

• Yana Server (Interface web + Coeur domotique) : https://github.com/ldleman/yana-server

• Yana for Windows (Interface vocale pour windows) : https://github.com/ldleman/yana-

windows • Yana for android (Interface vocale pour android) :https://github.com/Etsuni/YANA petite

vidéo de présentation de novares sur l’appli android • Merci à novares qui travaille actuellement pour son interface vocale android et qui à fait la

proposition de skin graphique actuellement implantée

Année 2014­2015                                                                                                                                                Geek

Page 134: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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

De la domotiiiquueeuhh !

Et ça tombe bien que vous soyez aussi enthousiastes parce que j’ai fait mes fonds de placardle 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 oudu 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)

Année 2014­2015                                                                                                                                                Geek

Page 135: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• 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…

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)

Année 2014­2015                                                                                                                                                Geek

Page 136: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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 pouret 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 .

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 !).

Année 2014­2015                                                                                                                                                Geek

Page 137: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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

• 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.

• 1x transformateur 220V/12VAC (mots clé :220V TO DC 12V 5A 60W Power Supply AC

adaptor) j’en ai topé un à ~9€

• 1x régulateur l7805 (ou un autre qui sort du 5V avec du 12V en entrée) 1,7€

• 1x carte Bluetooth (TTL Bluetooth Module + adapter board work for Arduino) ~ 7€

• 1x LED quelconque (facultatif)

• 1x résistance quelconque pour protéger la led du dessus (facultatif)

Année 2014­2015                                                                                                                                                Geek

Page 138: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

• 1x résonateur céramique 16 mhz~3€ les 5 (les 4 restants seront utilisable sur les autres tutos)

• 1x atmega 328 (avec bootloader arduino) ~3€

• 1x bouton poussoir (n’achetez pas au dessus de 1€)

• 1x carte module relais 5V~1.20€

• 1x gâche électrique (electric door strike) ~20€ (j’ai réussi à en trouver une à 12 mais j’en ai

chié) • Quelques fils, une porte et un peu de bon sens

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

Les branchements

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

Année 2014­2015                                                                                                                                                Geek

Page 139: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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

Année 2014­2015                                                                                                                                                Geek

Page 140: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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 voulezle 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’est0000).

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 à

Année 2014­2015                                                                                                                                                Geek

Page 141: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

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)

Année 2014­2015                                                                                                                                                Geek

Page 142: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Raspberry PI ~ 23 : Créer une porte domotique (Partie 2)

Vu le temps j’espère que vous glandez sur les plages de rio (ou au minimum dans un petit bar à tapas de lacanau) mais je vais quand même tenter ma chance d’attraper un ou deux lecteurs désœuvrés pour la lecture de ce 23em tuto.

Aujourd’hui nous allons reprendre notre porte bluetooth du tuto 22 et en faire une vrai porte domotique.

Pour cela il vas nous falloir faire communiquer l’arduino de la porte et le raspberry pi de manière simple, rapide et sécurisée (on parles d’une porte, donc évitons qu’elle ne s’ouvre trop souvent ou pour de mauvaises raisons).

Une fois la porte relié à yana, tout devient possible :

• Génération de clés par utilisateur sur l’interface yana (et non une clé unique en dur dans le

code de l’ardui) • Génération d’un historique des entrées sur l’interface yana

• Création de code limités dans le temps ou le nombre d’utilisation ou utilisable uniquement

certains jours (par exemple pour la femme de ménage ou le voisin qui viens nourrir les poissons)

• Déclenchements de scénarios en fonction de la personne qui entre

• etc..etc… tout deviens possible c’est une simple question de code de plugins.

Commençons par le traditionnel quart d’heure de honte (8 min en fait).Le rpi accepte au maximum du 3.3v sur ses pins, or l’ardui envoi du 5v, pour faire communiquer lesdeux il faudrait donc normalement utiliser un convertisseur i2c (qu’on peux voir sur ma vidéo mais qui n’est pas obligatoire grâce a notre montage) mais une histoire de résistance de pull up manquante d’un côté permet de faire communiquer du rpi vers l’arduino sans qu’il n’y ai de dégâts (j’ai testé pour vous :p)

Je parle également vite fait de “channels” j’ignore si c’est le terme en vogue, en gros c’est une adresse de communication choisie (dans ce tuto 0×12) qui permet de superposer plusieurs communications sur des adresse différentes, le rpi peut ainsi communiquer avec plusieurs portes en communiquant sur le canal de chacune.

Année 2014­2015                                                                                                                                                Geek

Page 143: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Le matérielLe matériel est le même que pour le tuto précédent, il vous faut bien entendu votre porte (avec son atmega328 ou son arduino inclus) un rpi à brancher à votre porte et trois fils électriques standard (de préférence un bleu, un vert et un noir), c’est tout.

Le montageEncore une fois, le branchement est similaire au tuto précédent, il vous faudra simplement relier le port I2C du raspberry PI au port I2C de l’arduino.

Comme je suis une grosse quiche, il se peut que j’ai inversé le sda et le scl sur le rpi, si c’est le cas, n’hésitez pas à intervertir (ça n’explosera pas dans tout les cas, au pire ça ne communiquera pas)

Pour cela suivez le schéma suivant :

Le code du raspberry PIAvant de mettre en place le code pour le rpi, il y a quelques manipulation à faire pour “activer”la gestion i2c sur le rpi (désactivée par défaut, certainement pour un gain de perfs).

Année 2014­2015                                                                                                                                                Geek

Page 144: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

Ouvrez le fichier /etc/modprobe.d/raspi-blacklist.conf en édition

nano /etc/modprobe.d/raspi-blacklist.confcommentez la ligneblacklist i2c-bcm2708en placant un # devant

Enregistrez et fermez ce fichier, puis ouvrez le fichier /etc/modules

nano /etc/modules

ajoutez y la ligne

i2c-dev

Fermez et enregistrez, installez ensuite l’utilitaire i2capt-get install i2c-toolset enfin relancer votre rpi avec la commandereboot

Mettez a jour votre yana, le plugin se trouve en natif dans le script

Puis dans l’interface web yana, allez dans configurations–>pluging–>activez le plugin

Le code de l’arduinoComme d’habitude, branchez l’arduino (ou l’atmega) au pc et transférez via l’IDE arduino le code suivant sur la puce.

L’application androidL’application android est un peu excessivement merdoyante, c’est toujours la même et je n’ai pas eule temps de la débugger,elle est dispo ici :http://idleman.fr/ressources/ANDROID/YanaBluetooth.apk

L’utilisation :Dans votre application androïde, allez dans “configuration”, mettez un code à 4 chiffres/lettres de votre choixVérifiez que le nom du périphérique correspond bien a celui de la carte bluetooth votre porteVérifiez que la carte bluetooth de votre porte (normalement “bolutek” est bien enregistrée dans vos périphériques bluetooth(si la première fois la carte vous demande un code, c’est généralement 1234 ou 0000).

Ouvrez le plugin domodoor dans le menu des configurations, et ajoutez un utilisateur à la porte (si

Année 2014­2015                                                                                                                                                Geek

Page 145: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

vous voulez ajouter un autre utilisateur a la porte, il faudra d’abord l’ajouter aux utilisateurs généraux de yana)et attribuez le même code à 4 chiffre à l’utilisateur que celui que vous avez sur votre téléphone.

Vérifiez que votre montage est bon et qu’il est sous tension

lancez la commande :sudo python /var/www/yana-server/plugins/domodoor/i2c.py

Testez en lançant l’application android.

Par la suite, il peux être bon de lancer automatiquement le programme /var/www/yana-server/plugins/domodoor/i2c.py en tache de fond au démarrage, pour cela vous pouvez utiliser les CRON (taches planifiées) de linux, ou encore créer un petit script dans /etc/init.d(cf la doc d’ubuntu par exemple).

Comme je suis un type fichtrement cool je vous donne même le script pour lancer ça au démarrage

tapez

sudo nano /etc/init.d/domodoor

Dedans, ecrivez votre commande :

#!/bin/shpython /var/www/yana-server/plugins/domodoor/i2c.py

Enregistrez/fermez (ctrl+x puis “y”)

Rendez le script executable

sudo chmod +x /etc/init.d/domodoor

Ajoutez le script au boot

sudo update-rc.d domodoor defaults 80

Le programme se lancera maintenant à chaque démarrage.

Notez bien que seul l’utilisateur “root” a le droit d’utiliser l’i2c, vous devrez donc lancer le programme i2c.py avec l’utilisateur root au démarrage.

Explications sur le fonctionnementLors de son lancement, le programme (en python car il existe une très bonne librairie sous ce langage pour gérer l’i2c et aussi parce que je me suis fait engueuler par les pro-python comme quoi

j’était un sale sectaire de communiste droggué du PHP ) i2c.py lance une boucle qui, toutes les 0.5 secondes vas interroger l’arduino en lui envoyant le texte “ping”, si il reçoit un

Année 2014­2015                                                                                                                                                Geek

Page 146: raspberry pi

Mohamed Bouhamed To be human you must to  be Geek 

numero de badge, il lance un fichier php du plugin yana.

Le fichier php vas verifier dans la base de donnée si le code existe pour un utilisateur, si c’est le casil vas tracer l’entrée dans le log, puis ils retourne la réponse (code coorecte ou pas) au script python.

De son coté l’arduino interroge en temps réel le capteur blutooth, si un téléphone se connecte au capteur et lui envois un code, l’arduino vas stoquer ce code dans une file d’attente de “badge a verifier” et retournera ce code lors du prochain “ping” du script python.

Si le script python lui retourne une commande d’ouverture, l’arduino vas ouvrir un certain temps (2/3 secondes) son pin relié au relais (qui vas donc s’ouvrir aussi) ce qui coupe l’alimentation de la gâche électrique et qui déverrouille la porte.

Les améliorationsL’essentiel des améliorations a faire maintenant se situe du coté de l’appli android, celle ci étant un peu bugguée et pas encore très pertinente.

L’idéal serait qu’elle inclue un “timer” qui se connecte au bluetooth une fois par minute, cherche surle périphérique de la porte est disponible, et ouvre la porte automatiquement si c’est le cas.

On ouvre qu’une fois la porte afin d’éviter qu’elle s’ouvre non stop qu’on on est dans l’appart, maison continue a checker toutes les minutes la présence de la porte.

Si la porte est indisponible pendant plus de 3 min, on part du principe qu’on est sortis de l’appart, laprochaine détection de porte l’ouvrira donc de nouveau.

Le must du must sera aussi d’ajouter une serrure RFID a la porte en cas de perte du portable ou de portable déchargé, je ferais peut être une troisièmepartie la dessus un de ces 4.

Année 2014­2015                                                                                                                                                Geek