Imaginez une maison isolée, inhabitée la plupart du temps, dont le chauffage tourne au minimum pour éviter que les tuyaux ne gèlent. Pas d'internet, pas de téléphone... juste l'électricité. Comment s'assurer, sans se déplacer, que: a/ la chaudière n'est pas tombée en panne, b/ personne ne s'est installé à votre insu dans la-dite maison ? On a eu quelques idées.....
Le sytème
L'idée est d'utiliser un YoctoHub-GSM-3G-EU pour la connectivité, un Yocto-PT100 pour la température et un Yocto-CO2 pour détecter une éventuelle présence, le tout alimenté par un chargeur USB capable de délivrer 2A.
Le schéma du système
Le PT100 est très clairement un overkill en terme de précision, mais on trouve facilement des sondes PT100 en forme de tige métallique, ce qui permet de mesurer facilement la température à l'extérieur du boîtier. En effet, la mesure de température à l'intérieur du boîtier risque d'être faussée à cause de la chaleur dégagée par l'électronique du système.
Le coeur du système
Mesurer le taux de CO2 est une méthode tout à fait efficace pour détecter la présence d'une présence d'une personne ou d'un gros animal dans une pièce censée être vide. Le Yocto-CO2 est parfaitement capable de détecter le CO2 que l'on dégage en respirant. Ce n'est évidement pas aussi réactif qu'une méthode traditionnelle, quelques minutes sont nécessaires pour observer un changement significatif. Un cambrioleur qui en passe en coup de vent ne sera peut-être pas détecté, mais si quelqu'un s'attarde un peu dans la même pièce que le détecteur, ça va se remarquer.
Le système terminé
Carte SIM prépayée
Pour faire fonctionner le système, on a choisi d'utiliser une carte SIM prépayée. L'intérêt du système prépayé réside dans le fait qu'une carte SIM prépayée va mourir toute seule si on arrête de la recharger. Ainsi, si vous n'ayez plus besoin du système ou pire, si le système disparaît pour une raison ou une autre, vous n'aurez pas à attendre la date anniversaire de votre abonnement pour l'annuler.
Configuration
Emoncms
Le moyen de plus simple est de configurer le YoctoHub-GSM-3G-EU pour qu'il envoie ses données directement sur un service de cloud comme Emoncms. Pas de programmation, simple comme bonjour.
Les hubs Yoctopuce peuvent poster automatiquement les données de leur capteurs sur Emoncms
Cependant, cette méthode souffre d'une limitation. Comme on utilise une carte SIM prépayée, il y a peu de chance que le YoctoHub-GSM-3G-EU bénéficie d'une adresse IP publique. Cela signifie que le hub ne pourra pas être contacté depuis internet. Le seul moyen de changer la configuration du hub sera de passer par son port USB, ce qui nécessite un accès physique au système.
Emoncms via l'API PHP
L'astuce pour contourner le problème de l'adresse IP non publique consiste à configurer le hub pour qu'il poste sur un serveur où tourne un script PHP. Ce script aura pour principal tâche de retransmettre les mesures sur Emoncms, mais il pourra aussi changer la configuration du hub et des senseur grâce à l'API callback. Ainsi si l'on désire modifier un paramètre du système, comme la fréquence des callbacks, il suffit d'éditer le script à distance, et la modification de configuration du hub sera effectuée dès que ce dernier contactera à nouveau le script.
Cette technique offre un autre avantage: Elle permet de d'obtenir la valeur maximum qu'a atteint un capteur entre deux callbacks. Ainsi même si quelqu'un vient respirer directement au-dessus de la boîte ne serait-ce que quelque secondes... ça va se voir. Le code PHP pour gérer la configuration, calculer les maximas de CO2 et forwarder les données sur Emoncms ne prend que quelques lignes:
include('yocto_api.php');
include('yocto_temperature.php');
include('yocto_carbondioxide.php');
if (YtestHub("callback",100,$errmsg)==YAPI_SUCCESS)
{ if (YRegisterHub("callback",$errmsg)!=YAPI_SUCCESS)
{die($errsmg);}
// remotely change the callback period, if necessary
$callbackPeriod = 7200; // one call back every 2 hours
$network = YFisrtNetwork("$serial.network");
if (!is_null($network))
{ if ($network->get_callbackMinDelay()!=$callbackPeriod)
{ $network->set_callbackMinDelay($callbackPeriod);
$network->get_module()->saveToFlash();
}
}
$temp = -999; $co2 = -999;
// read temperature current value
$t = YFirstTemperature();
if (!is_null($t))
{ $temp=$t->get_currentValue();
}
// read CO2 value and max since last callback
$c = YFirstCarbonDioxide();
if (!is_null($t))
{ $co2=$c->get_currentValue();
$co2max=$c->get_highestValue();
if ($co2max==0) $co2max=$co2;
$c->set_highestValue(0);
}
// send the data to emoncms
$url = "https://emoncms.org/input/post.json?json={temp:$temp,co2:$co2,co2max:$co2max}&apikey=PutYourEmoncmsApiKeyHere";
$response = http_get("$url");
} else die('<tt>not supported.</tt>');
?>
On a configuré le système pour qu'il fasse un post toutes les deux heures, on voit bien sur le graphe Emoncms ci-dessous les pics de températures causés par le soleil et les pics de CO2 lorsque quelqu'un respire dans la même pièce que le système, voire souffle carrément dessus.
Il a fait soleil les trois premiers jours... et quelqu'un s'est amusé à souffler sur le capteur de CO2
Et combien ça coute?
Rien... ou presque, si vous choisissez judicieusement votre carte SIM prépayée. On a découvert que les cartes SIM prépayée M-budget, commercialisées en Suisse par la Migros coûtent 20 francs suisses à l'achat et offrent 10MB de données gratuites par mois en Suisse. Donc si votre système est installé en Suisse, et que vous configurez la fréquence des callback pour que le volume de données reste en dessous de 10MB par mois, le fonctionnement de système ne coûte strictement rien. On sait pas exactement combien de temps cette offre va perdurer, mais on a bien l'intention d'en profiter :-)
Surtout, bien choisir sa carte prépayée
Évidement, ces cartes ne sont vraiment intéressantes qu'en Suisse, le roaming M-budget coûte au minimum CHF 4.50 par mois pour 10MB. Cependant, cela montre qu'en termes de cartes prépayés, cela peut valoir la peine de s'attarder sur les produits proposés par des outsiders.
Conclusion
Avec trois modules Yoctopuce, on a construit en deux temps, trois mouvements, un système qui permet résoudre un problème précis: à savoir s'assurer à distance que le chauffage d'une maison isolée fonctionne correctement. Tout ça sans dépendre d'un abonnement à une société tierce. Cerise sur le gâteau, rien ne nous empêche de perfectionner le système pour par exemple envoyer des mails en cas problème ou encore régler le chauffage à distance....