Dans ma quête infinie de domotiser toujours plus mon petit chez-moi, j’étais à la recherche d’une solution pour déclencher automatiquement le scénario « je viens de me coucher ».
Ce scénario que j’active à chaque fois que je vais me coucher, s’occupe de réaliser les actions suivantes ;

  • changer la couleur des lumières de la chambre
  • couper la musique du Sonos et me dire « Bonne nuit »
  • éteindre les lumières des autres pièces
  • (si besoin, passer le chauffage en mode nuit, éteindre la télé…)

 

Toute la difficulté est de trouver un moyen d’identifier quand je vais me coucher en évitant les faux positifs.

Pour cela, j’avais imaginé plusieurs solutions :

  • Mettre un capteur d’ouverture sur la porte de la chambre et déclencher le scénario lorsque celle-ci est fermée
    • Sans doute la solution la plus simple, mais j’aime bien garder la porte ouverte…
  • Détecter si mon téléphone est branché au secteur
    • Avec les Smartphones il est habituel (obligatoire) de les recharger toutes les nuits. L’idée aurait donc été de déclencher le scénario si je mets mon téléphone à charger (en le posant sur le dock de la table de nuit) dans un intervalle de temps correspondant à mes habitudes pour aller me coucher.  Seulement, cette fonctionnalité n’existe pas sur iOS, uniquement sur les téléphones Android avec Tasker par exemple (qui va exécuter une requête HTTP…)
  • Détecter si mon téléphone est branché au secteur en mesurant la consommation du chargeur
    • Même principe que précédemment, simplement en rajoutant un module domotique (type prise) derrière l’adaptateur secteur capable de mesurer la consommation en Watt. Si celle-ci est supérieure à 5W, alors le téléphone est en charge et donc, je suis dans mon lit. C’est une idée acceptable mais un peu trop chère à mon gout (dans les 50€)…
  • Enfin la dernière idée : Réaliser un « pèse-personne géant » capable de peser le lit et déclencher le scénario si le poids dépasse un seuil :)

C’est cette dernière solution que j’ai retenue et nous allons voir comment fabriquer cette balance qui au final, va faire bien plus que ce dont j’avais imaginé…

 

Fabrication de la balance

Pour mesurer un poids et obtenir un signal électrique en conséquence, on va utiliser des capteurs de force (ou Load Cell). On peut trouver différents types de capteurs adaptés à plusieurs cas d’utilisation (pèse-personne, balance de cuisine/pharmacie…).

Pour ce montage j’ai choisi les mêmes capteurs que l’on retrouve dans les pèses-personne. Ils fonctionnent par quatre, ne sont pas chers (moins de 1€ pièce sur eBay) et plutôt fins. Le branchement doit être en « Pont de Wheatstone« . J’ai choisi des capteurs capables de peser jusqu’à 50kg, soit 200kg en tout.

À cela, il faut ajouter un amplificateur pour avoir un signal entre 0 et 5v et le mesurer facilement par un Arduino. J’ai utilisé un x711 de ce type https://www.sparkfun.com/products/13230

BOM

  • 4x Load Cell 50kg (4€)
    Weight-Sensor-Load-cell-50kg
  • Amplificateur x711 (1€ sur eBay)
    s-l300
  • Un Arduino, Spark Core ou autre…

Montage

Le câblage des capteurs de poids doit forcément se faire de cette manière (Pont de Wheatstone) :

load cell
Pour simplifier le câblage, je n’ai pas mis un capteur sous chaque pied du lit mais les 4 capteurs sous un seul pied. Cette décision a un impact important sur le résultat mais nous allons voir que c’est finalement bien mieux.


Résultat du montage

Premiers tests :

IMG_3943

Les « embouts de tournevis » servent à surélever les bords pour qu’une tension s’applique lors de l’appui au milieu des capteurs de poids.

Pour la solution finale, j’ai utilisé une plaque de bois de 2mm et j’y ai fait des trous de la taille des capteurs pour que le bord repose sur le bois et l’intérieur soit dans le vide :

IMG_3944

Vu de dessous :

IMG_3961

Montage complet :

IMG_3947

J’ai rajouté une plaque en métal suffisamment grande pour recouvrir les quatre capteurs et suffisamment solide pour ne pas plier sous le poids. Le pied du lit sera positionné sur la plaque de métal, au milieu des quatre capteurs.


Code

J’ai utilisé la librairie HX711ADC (https://github.com/juano2310/HX711ADC).

Je ne fournis pas mon code car je pense qu’il est plus simple de partir des exemples fournis dans la librairie. Pour ma part, j’y ai ajouté du MQTT et des événements lorsque le poids dépasse un seuil (poids du lit vide).


Résultats

Ce montage me permet d’obtenir plusieurs données intéressantes et de les traduire en scénario domotique.

Détection de présence dans le lit, type ON/OFF

Lorsque le poids dépasse un seuil et durant une certaine plage horaire, le système en déduit que je viens de m’allonger sur le lit et déclenche donc le scénario « je vais me coucher ».

Si le poids mesuré diminue sous ce même seuil et s’il est entre 6h et 10h, alors le système reconnait que je me lève. On peut donc déclencher n’importe quelles actions. Pour ma part, un simple message audio qui me dit bonjour suivit de la météo.

Enfin, si je me lève en plein milieu de la nuit, les lumières s’allument en mode veilleuse pour me permettre de circuler et se reteignent immédiatement lorsque je recouche.

Analyse du sommeil…

Étant donné que je mesure le poids sous un seul pied du lit et non tous, en plus poids appliqué sur un coin du lit, je suis capable de détecter les mouvements durant le sommeil :
Le fait de se tourner va repartir le poids sur les autres pieds du lit, on va donc voir des variations fines du poids qui correspondront au mouvement la nuit.

Une fois ces données graffées, voici un exemple d’une nuit de sommeil « normale » :

lit-clement

On reconnait facilement l’heure de couché, levé et les différentes phases de sommeil…

Voilà un autre graphique où je me suis levé quelques minutes vers 5h du matin :

2016-04-28 19.23.22

On pourrait aller plus loin et en déduire automatiquement la qualité et la durée du sommeil…

 

Enfin, j’ai été étonné par la précision des capteurs puisque voici un graphique du poids relevé sur plusieurs jours lorsque je suis absent :

2016-05-11 21.04.00

Je m’attendais à une courbe plutôt plate alors que l’on voit bien une tendance qui se répète toutes les 24h de plus ou moins 10 grammes.

Ma théorie est qu’il s’agit de la variation de la pesanteur (marée, lune…). Un expert peut-il nous le confirmer ? :)