Ses coordonnées dans une pièce ?!

Aujourd’hui, je vous présente une petite expérimentation que je voulais faire depuis quelque temps : la détection précise de position par ondes radar millimétriques. C’est un capteur qui permet de détecter précisément la position d’une personne dans une pièce. Le but de tout cela est d’automatiser son habitation, avec Home Assistant par exemple. Dans mon cas, je n’en n’ai pas particulièrement l’usage, c’est simplement pour m’amuser !

Il existe plein de projets sur l’Internet pour créer un tel capteur soi-même à intégrer dans Home Assistant. Si j’écris cet article, c’est que parmi tous ces projets aucun n’est à la hauteur de mes attentes (rien que ça !). Je vais donc vous présenter ici ma petite popote, puisque c’est globalement un beau mélange de plusieurs projets, pour obtenir un capteur parfait.

Les projets existants

Everything Presence Lite

Avant de commencer, quelques précisions sont nécessaires. Le capteur permet donc de détecter la position de personnes dans l’espace. Je vais l’utiliser dans Home Assistant pour créer des automatisations. En pratique, on crée des zones de détection pour le capteur et on obtiendra dans HA des entités zones. Si quelqu’un est présent dedans, l’état sera Détecté.

Le but est de faire son propre capteur à bas coût. Cependant, il n’est pas inintéressant de voir ce qui se fait sur le marché. Il y a un produit en particulier, le Everything Presence Lite qui m’a attiré l’œil. Déjà, c’est un appareil à la limite du DIY. Il a été conçu par un utilisateur de Home Assistant, et il est basé sur ESPHome en source ouverte.

Ce qui m’a particulièrement intéressé dans cet appareil est le configurateur qui vient avec. Dans les autres projets, le paramétrage des zones de détection se fait en entrant des nombres, ce qui est très peu pratique. Ici, avec le Everything Presence Zone Configurator, une interface bien plus conviviale nous permet de définir les zones.

Ayant eu connaissance de cet outil de configuration, je ne pouvais plus accepter la solution de paramétrage manuel pour mon appareil. Cependant, je n’ai pas particulièrement envie d’acheter le capteur d’Everything Smart !

Les projets de la communauté

Continuons donc notre route. L’idéal pour nous serait d’avoir le minimum : un ESP (microcontrôleur) et le capteur. Pour le capteur, le choix s’est fait dès le début : un LD2450. Il permet la détection de la position (certains ne détectent que la présence), et c’est largement le plus utilisé. Ensuite, pour l’ESP, il suffit d’en prendre un petit : l’ESP32-C3 Super Mini est parfait pour cette application.

J’ai trouvé sur MakerWorld un design de boîtier compact fait pour ces composants qui fera l’affaire.

Source : MakerWorld

Les projets existants autour de ces composants utilisent simplement le logiciel ESPHome. Une fois le programme téléversé, il se connecte à Home Assistant et fonctionne… mais la configuration des zones se fait à la main. Pas pratique !

On a donc deux solutions : une achetée et une DIY qui ont tous les deux leurs inconvénients. Cependant, je vais vous montrer par la suite qu’on peut avoir le meilleur des deux mondes !

Notre réalisation

Le matériel

Je vais partir sur une fabrication matérielle maison. Il faut donc imprimer le modèle en lien plus haut et commander un capteur LD2450 ainsi qu’un ESP32-C3 Super Mini. J’en ai eu exactement pour 8,45 € avec un capteur à 6,29 € et l’ESP à 2,16 € (ça fait peu cher oui).

Le câblage est très simple : il n’y a que quatre fils. Il suffit de connecter de chaque côté alimentation 3,3V, masse GND et le bus UART avec le RX et le TX. Attention, le microcontrôleur a son bus GPIO dédié, mais nous ne l’utiliserons pas ici. Il faut le connecter ainsi :

  • TX du capteur : GPIO5
  • RX du capteur : GPIO4

Un petit schéma et quelques photos en parleront mieux :

Il faut bien penser à la fermeture en soudant les fils et en les coupant à une bonne longueur, au risque que ça ne ferme pas ! J’ajoute aussi un peu de pâte à fixer pour cacher la DEL d’alimentation.

Pour son positionnement dans la pièce, ce tutoriel donne pas mal de points clés.

Le logiciel

C’est ici que la magie opère : on a notre capteur fait maison, et il faudrait avoir un programme complet permettant (en plus de l’utilisation) la configuration visuelle du capteur. L’idéal serait de pouvoir utiliser l’Everything Presence Zone Configurator… et c’est ce que nous allons faire !

Étant donné que leur appareil n’est autre qu’un ESP avec le même capteur que nous, le tout tournant sur ESPHome avec une config ouverte, il nous suffit de faire quelques modifications pour la réutiliser ! Après, il suffira d’installer le configurateur et il verra notre fabrication comme un appareil Everything Smart.

À propos d’ESPHome

ESPHome est un projet mené par Home Assistant qui a pour but de permettre à tout le monde de créer ses propres équipements de domotiques à base d’ESP en simplifiant leur programmation. Au lieu de développer un code complet qui gère les composants, la connexion à Home Assistant et j’en passe, il suffit de renseigner la configuration que l’on veut dans un fichier YAML. ESPHome génèrera un programme complet qui sera envoyé sur l’ESP.

Commençons. J’ai trouvé sur Internet un dérivé de la configuration de l’Everything Presence Lite pour un ESP32-C3 Super Mini. C’est en grande partie la même chose, il n’y a que quelques spécificités comme les broches de l’UART qui sont modifiés. Il est possible de voir la liste complète des différences sur GitHub. Ainsi, nous n’avons aucune ligne de code à écrire. Il ne reste que la compilation et l’installation. Nous allons devoir le faire sur notre machine en ligne de commande.

  1. Installez d’abord ESPHome sur votre ordinateur en suivant les instructions ;
  2. Téléchargez la configuration pour l’ESP32-C3 Super Mini : git clone https://github.com/edethio/everything-presence-lite-esp32supermini.git. Ce dépôt a deux branches (versions parallèles) et il faut passer sur la bonne avec git checkout ESP32-c3 ;
  3. Il y a plusieurs configurations possibles selon les accessoires installés sur l’Everything Presence Lite, mais nous prendrons une version simple : everything-presence-lite-ha.yaml. Compiler cette config avec esphome compile everything-presence-lite-ha.yaml ;
  4. Avec l’ESP branché sur l’ordinateur utilisé, envoyer le logiciel : esphome upload everything-presence-lite-ha.yaml.

Et voilà ! Notre appareil est maintenant un Everything Presence Lite. L’adoption dans son instance de Home Assistant se fait avec le téléphone. On peut suivre les instructions d’Everything Smart. Je vous recommande de survoler un peu cette documentation qui fournit des informations très intéressantes sur le bon placement et la bonne configuration de l’appareil. Je ne vais pas autant dans les détails ici.

Remarque : le capteur envoie beaucoup d’informations et Home Assistant les enregistre dans sa base de données, ce qui peut la faire grossir inutilement. Il est possible de résoudre ce problème en excluant les enregistrements du capteur.

La configuration

Il est temps, enfin, de découvrir ce que le capteur a dans le ventre ! Pour cela, installez le configurateur. Suivez les étapes pour créer votre pièce et vos zones. Pour ma part, j’obtiens ceci :

Dans mon cas le capteur est dans le salon. J’ai créé trois zones : bureau, table à manger et canapé. Une quatrième indique si je suis dans la pièce en général, mais elle n’est pas très importante. On peut aussi suivre ses déplacements en direct dans la pièce. Vous comprendrez donc que c’est bien plus pratique de définir les zones dans une interface intuitive qu’avec des coordonnées écrites !

Dans Home Assistant, on récupère plein d’infos, mais ce qui nous intéresse principalement sont les capteurs de présence qui indiquent si les zones sont occupées. C’est alors très simple de créer une automatisation autour de notre position. Par exemple, j’ai fait en sorte qu’il y ait une ambiance par zone : bien éclairé à table, un mode cosy pour le canapé et la lampe de bureau à pleine puissance quand je suis au bureau. Pour ne pas allumer la lumière en pleine journée, on peut aussi vérifier la luminosité si on a déjà un capteur dans la pièce, ou le faire par plages horaires.

Conclusion

Avec un peu de bidouille, j’ai pu arriver au résultat que j’espérais sans trop d’effort. Je voulais voir ce capteur assez poussé en vrai et c’est chose faite. J’espère que ce petit article vous aura intéressé, et comme d’habitude n’hésitez pas à me laisser un commentaire !

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *