PROJET AUTOBLOG


Idleman

source: Idleman

⇐ retour index

Raspberry PI ~ 24 : Créer une multi sonde wifi pour 11€

mercredi 1 novembre 2017 à 14:01

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

Afin de pouvoir prendre des décisions en domotique, notamment grâce au gestionnaire de scénario de yana ou de toute autre centrale domotique, il nous faut des données, en quelque sorte « monitorer » nos pièces, exemple : baisser les stores si il fait trop chaud ou les ouvrir quand il ne fait pas assez clair dans la pièce, détecter les présence pour enclencher certaines actions etc….

A cet effet je me suis mis sur un projet de sonde humidité,température,lumière,mouvement à bas coût et en WIFI histoire de pouvoir simplement récupérer les données de nos pièces.
Une maison standard étant généralement composé de 5 pièces intéressantes à monitorer (je ne compte pas les toilettes ou le placard à balais :D) le coût de fabrication est d’environ 50/60€ pour toute la maison.

J’ai nommé ce petit cube sensoriel PROPISE : PROtotype de PIeuvre SEnsitif

 

Aperçu sur YANA

 

Dans le cadre de ce tuto nous utiliseront le capteur avec YANA, mais je l’ai conçu pour qu’il soit simplement adaptable à n’importe quel système domotique.

Nous allons voir ensemble comment produire ces petites bêtes mais avant, le traditionnel quart d’heure de honte en vidéo !

.
..
….

Ah  ! on m’annonce à l’oreillette q’un gros coup de flemme problème technique vous épargnera ce massacre :D (en plus je suis en peignoir, ça fais pas sérieux) ! Passons donc à la réalisation.

Les Composants

Habituellement nous utilisons comme « cerveau » du montage une carte arduino ou directement la puce atmega qui se trouve dessus (et qui peux fonctionner dans le reste de la carte avec quelques composants).

La grosse nouveauté par rapport aux tutos précédent consiste à remplacer l’habituel arduino par  un composant nommé ESP8266.

L’esp8266 étant une puce qui propose les mêmes fonctionnalités de l’Atméga/Arduino en mieux:

…et surtout le wifi est intégrée à la puce, tout ceci pour un prix/taille équivalent à savoir environ 3€ avec les frais de port.

Pompom de la pompomette : c’est compatible avec l’éditeur/syntaxe arduino !

Voila la tronche de cette magnifique petite puce avec une plateforme supplémentaire ajouté (pour le même prix de 3€) l’ensemble se nomme esp8266 witty gizwits.

La plateforme witty gizwits ajoute un bouton poussoir, une led RGB (rouge vert bleu), un capteur de luminosité et surtout une partie plateforme de programmation détachable histoire de pas se faire chier.

Pour notre projet il ne restera qu’à y ajouter un capteur d’humidité qui fait également office de capteur de température (j’ai nommé le DHT22) et un capteur additionnel de mouvement infrarouge pour le fun.

Il nous faudra bien sur une source d’alimentation, ici nous choisissons un simple câble micro USB et son chargeur, vous pouvez piquer celui de votre portable si ebay met trop longtemps à vous livrer :p

Dernier petit composant : une résistance  de 4700 Ohm qui vas de paire avec le DHT22 pour ne pas abimer ce dernier.

Voir en taille réelle

Le Schéma

Rien de bien compliqué sur le câblage, les deux composants à ajouter à l’esp nécessitent les mêmes branchements à savoir : un fil sur l’alimentation 5v, un fil sur la masse et un fil sur un pin de donnée de l’esp afin de communiquer avec lui.

La résistance  de 4700 Ohm doit être connectée à la broche 2 du  le DHT22 et reliée ensuite à l’alimentation.

nb: sur le schéma mon dht22 est bleu et non blanc, c’est parce que j’utilise en fait le dht11 (moins précis mais moins cher)

Le Code arduino

Voilà l’endroit ou ça se complique ! Afin de rendre le plus simple possible l’utilisation et l’installation de la sonde, j’ai du pisser pas mal de code. Je fais en sorte que lors du premier lancement de la sonde, celle ci se mette en hotspot, c’est à dire qu’elle vas émettre son propre réseau WIFI auquel vous pourrez vous connecter la première fois afin de la configurer.

Une fois la sonde configurée avec les identifiants WIFI de votre réseau domestique, elle désactive son hotspot et se connecte en mode client a votre wifi, ce qui complique un peu la partie code mais qui vous évite d’avoir à toucher à la moindre ligne dans celui çi, tout est gérable via une interface web

Voir en taille réelle

Le Code PHP

Je ne veux pas être sectaire et imposer ma plateforme domotique pour tous les prototype que je créé (mais quand même si à cette étape de mes tutos vous n’utilisez toujours pas yana, vous avez raté votre vie !), aussi je vais vous donner deux exemples de récupération des valeurs de la sonde avec et sans l’utilisation de YANA parce que quand même suis un chic type ! :D

Avec Yana

Activez le plugin propise dans la partie réglage et rendez vous coté setting du plugin, vous pouvez ajouter une ou plusieurs sondes (Nommée ici Poolp parce que j’ai changé 20 fois de nom depuis sa conception).

Entrez les infos de base de la sonde, cliquez sur enregistrer et suivez le guide d’installation sur la ligne qui apparait.

Une fois la sonde configurée en fonction des instructions du guide vous pouvez vous rendre sur la dashboard et y ajouter le widget propise.

Je n’ai pas encore relié le gestionnaire de scénario à ce module il s’agit pour le moment d’un simple affichage, j’y travaille sur la version suivante de yana.

Sans Yana

Voilà un ptit script fait par dessus la jambe pour récupérer les données envoyées par PROPISE et les stocker à la suite dans un fichier texte, vous pouvez le modifier à votre guise.
Voir en taille réelle

L’Utilisation

Appuyez sur le bouton de reset avant de brancher la sonde, celle ci devrait alors se mettre en hotspot, la lumière RGB s’allumera en bleu foncé si tout vas bien.
Vous pourrez alors vous connecter à sa wifi (nommée PROPISE-XX) avec le mot de passe « bananeflambee » (oui, je sais…) puis accéder à son interface en tapant dans votre navigateur web l’adresse http://192.168.4.1

Il vous reste ensuite à remplir les identifiant WIFI de votre réseau
Dans le dernier champs, mettre le lien vers le script PHP (ou autre) à qui vous souhaitez que la sonde envois les données, notez que les valeurs entre « {{}} » seront remplacé par les données en questions

{{LIGHT}} : sera remplacé par la lumière de la pièce (en pourcentage)
{{HUMIDITY}} : sera remplacé par l’humidité de la pièce (en pourcentage)
{{TEMPERATURE}} : sera remplacé par la température de la pièce (en degré celcius)
{{MOUVMENT}} : sera remplacé par le mouvement de la pièce dans les dernières secondes ( 1 = mouvement, 0= personne)

ex d’url: http://mon.server/monscript.php?light={{LIGHT}}&humidity={{HUMIDITY}}&temperature={{TEMPERATURE}}&mouvment={{MOUVMENT}}

Une fois que tout est enregistré, vous pouvez redémarrer la sonde (débranchez puis rebranchez), elle devrait alors s’allumer en vert (indiquant qu’elle a bien enregistré les identifiants) puis en blanc clignotant si elle a réussi à se connecter à votre wifi et qu’elle envois les données.

A chaque clignotement les données sont envoyées

Le boitier

J’ai fait imprimer mon boitier, si vous n’avez pas d’imprimante 3d près de chez vous je vous conseille de la construire en LEGO (si vous êtes riche) ou d’acheter une boite de dérivation électrique et de la percer aux bon endroits (si comme moi vous êtes un prolo), ou encore d’utiliser des boites de denrées alimentaires, tant que vous restez sur des matières non inflammables :D.

Pour ceux qui peuvent faire imprimer, je vous met ci dessous le fichier 3d en .STL pour l’impression et le fichier sketchup .SKP si vous voulez l’améliorer.

Voir en taille réelle