Vous vous souvenez de la boîte aux lettres de Yoctopuce qu'on avait customisée pour détecter le passage du facteur? A l'usage, le système ne fonctionnait pas trop mal mais souffrait de quelques tares: on avait du tirer des rallonges USB sur une distance considérable, les fils de l'interrupteur à bille se sont révélés trop fragiles pour êtres mis sur une pièce articulée, et enfin le système ne pouvait détecter que les lettres, pas les paquets (notre boîte a deux compartiments superposés, un petit pour les lettres et un plus grand pour les colis).
Alors on a décidé d'améliorer le concept à l'aide d'un Yocto-Light et d'un laser.
L'idée de base est archi-simple: on cherche à installer une barrière lumineuse qui traverse les deux compartiments de la boîte aux lettres. Le haut de la boîte étant directement exposé au intempéries, on va tout faire depuis le dessous de la boîte: on va installer un laser sous la boite, qui va traverser les deux compartiments, se refléter dans un miroir collé au plafond de la boite, et redescendre pour aller éclairer le capteur du Yocto-Light. On aura bien sûr percé un petit trou dans le fond de la boite ainsi que l'étagère intermédiaire pour permettre au rayon laser de passer.
L'idée c'est d'installer une barrière lumineuse dans la boîte aux lettres
Comme pour la plupart des senseurs Yoctopuce, la partie capteur du Yocto-Light peut être déportée:Il suffit de tirer 4 fils entre le capteur et la partie principale. On va donc mettre juste la partie capteur dans la boite aux lettres, le reste du module restera bien au chaud et au sec à l'intérieur.
On a choisi un laser bon marché: pour moins d'une trentaine de francs on peut se procurer un module laser qui se présente sous la forme d'un petit cylindre de 8mm de diamètre et de 12 mm de long. Il fonctionne en 3 volt. Malheureusement, la partie capteur du Yocto-Light fonctionnant 2.5V il n'est pas possible de faire fonctionner le laser en utilisant directement l'alimentation du capteur. Par contre, il y a du 3.3 volt dans la partie principale du module. On tire donc un cinquième fil pour alimenter le laser. Voila pour le principe.
Ce truc minuscule est un laser, il contient sa propre électronique de régulation et son optique, et il marche en 3V
Comment alimenter le module laser
Pour une réalisation rapide, on va à nouveau mettre à contribution l'imprimante 3D et imprimer un boîtier que l'on fixera sous la boite . Ce boîtier contiendra le laser, convenablement orienté, et la partie capteur du Yocto-Light. Et elle contiendra un mécanisme qui permettra d'ajuster la position du capteur vers l'endroit précis ou le laser se reflètera. Vous vous dites peut-être qu'une imprimante 3D met ce genre de bricolage hors de votre portée, mais détrompez-vous, on trouve maintenant des imprimantes 3D qui coûtent moins cher que la TV de vos rêves. Si vous n'avez pas envie de revendre votre TV, que rien ne vous de vous empêche de faire un boîtier en bois.
Les différentes parties du boîtier, l'idée est de pouvoir ajuster la position du capteur
Le boîtier une fois monté. Et non, nous ne rêvez pas: le capteur du Yocto-light est déporté de 25m
Le boîtier est fixé sous la boîte aux lettres, il ne reste plus qu'à ajuster la position du capteur en bougeant la croix avant de refermer le couvercle
Pour la partie signalisation, on va employer un Yocto-Color qui passera au rouge lorsqu'il y a du courrier. Pour le soft de contrôle, on va faire simple et utiliser la même approche que pour la station météo: on va simplement écrire un petit script en PHP. Ainsi on pourra facilement le faire tourner sur la même machine qui contrôle notre station météo. Le code est des plus simple: il suffit de lire la valeur du capteur de lumière. Pour simplifier on a donné les noms logique "mailbox" et "mailindicator" respectivement au capteur de lumière Yocto-Lightet à la led de signalisation Yocto-Color.
include("yocto_api.php");
include("yocto_lightsensor.php");
include("yocto_colorled.php");
// connexion au virtual hub local
if (yRegisterHub('http://127.0.0.1:4444',$errmsg)!=YAPI_SUCCESS)
die($errmsg);
yDisableExceptions(); // pas d'exceptions, merci
while(TRUE)
{
// Retrouve le capteur de lumière et la LED de signalisation
$sensor = yFindLightSensor('mailbox');
$led = yFindColorLed('mailindicator');
// Est-ce que les deux modules sont connectés?
if (($sensor->isOnline()) && ($led->isOnline()))
{
// Si le capteur est illuminé ça veut dire
// qu'il n'y a pas de courrier.
if ($sensor->get_currentValue()>100) {
$led->set_rgbColor(0x00FF00);
} else {
$led->set_rgbColor(0xFF0000);
}
}
sleep(1); // Si vous voulez impressioner vos amis mettez 1,
// Si vous voulez économiser le CPU, mettez 60
}
?>
En voila le résultat en vidéo
On est prêt, y'a plus qu'à attendre le facteur...
Vous trouvez peut-être que c'est beaucoup de matériel pour juste allumer une lumière quand il y a du courrier, mais maintenant rien ne nous empêche de faire des choses plus évoluées, comme envoyer un mail quand il y a du courrier :-) ... en PHP c'est l'affaire d'une ligne.