La boîte aux lettres avec barrière lumineuse USB laser

La boîte aux lettres avec barrière lumineuse USB laser

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
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
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
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
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 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
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.

<?php
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...
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.

Commenter 2 commentaires Retour au blog



1 - jbastien20 Lundi 21 avril 2014 9H35

Bonjour,

J'ai fait l'ai fait l'acquisition il y a quelques jours d'un module Yocto-light et d'un module Yocto-color.

J'aurais souhaité faire votre boite aux lettres laser mais voilà quand je met en marche le php que vous donnez avec wamp (windows). Wamp m'affiche un rapport d'erreur "fatale erreur". Il me dit que le temps est dépassé et que le problème est la fonction {main()} à la ligne 29 (la ligne qui correspond à la fonction sleep(1)).

J'ai bien installé mon hub et le Yocto-light et le Yocto-color fonctionne très bien. J'ai aussi placé dans le même dossier que le programme les fichiers php
("yocto_api.php","yocto_lightsensor.php","yocto_colorled.php")

Merci d'avance pour vos réponses.

2 - martinm (Yocto-Team)Lundi 21 avril 2014 9H40

@jbastien20: Je pense que vous essayez de charger le script comme une page web, au lieu de le lancer comme un script en ligne de commande. Contactez le support pour plus de détails.

Yoctopuce, get your stuff connected.