Un détecteur de fumée connecté

Un détecteur de fumée connecté

La méthode classique pour détecter la fumée consiste à mesurer la réflexion d'un faisceau lumineux sur les particules de fumée en suspension dans l'air. Bien qu'aucun détecteur de fumée ne figure explicitement dans notre catalogue de produits, nous proposons depuis peu un produit qui peut remplir cette fonction: le Yocto-RangeFinder. En effet, ce capteur utilise exactement le même principe pour sa fonction de base (la mesure de distance), et peut donc aisément être utilisés comme détecteur de fumée USB, ou même détecteur de fumée connecté en réseau.

Principe


Le principe est simple: en temps normal, le rayon infra-rouge du Yocto-RangeFinder est réfléchi à une distance connue.

Trajet du rayon infra-rouge en l'absence de fumée
Trajet du rayon infra-rouge en l'absence de fumée



En présence de fumée, une partie du rayon infra-rouge se réfléchit contre les particules en suspension et le détecteur mesure une distance plus courte.

Réflexion du rayon infra-rouge sur la fumée
Réflexion du rayon infra-rouge sur la fumée



Le Yocto-RangeFinder permet une détection sur une distance de 25 cm environ. La zone de mesure devra être disposée à l'endroit où la fumée a le plus de chance de s'accumuler: en général contre le plafond, puisque c'est là que le fumée issue de combustion ira en premier.

Exemple


Voyons maintenant comment intégrer la détection de fumée dans un programme, par exemple pour signaler l'événement dans une base de donnée ou via Internet.

L'approche la plus simpliste consisterait à lire la valeur du capteur périodiquement pour voir si une réflexion est détectée. Mais ce n'est pas la meilleure solution, car en cas de fumée légère, la réflexion est intermittente et cette méthode pourrait manquer un événement significatif dans le cas ou les lectures ne se feraient pas au bon moment. La meilleure méthode consiste à utiliser le mécanisme de callback spontané en cas de changement de valeur. Pour ce faire, voici le code à ajouter au début de votre programme:


YRangeFinder sensor;
string errmsg = "";

if (YAPI.RegisterHub("usb", ref errmsg) != YAPI.SUCCESS)
{
    Console.WriteLine("Erreur de connection à USB: " + errmsg);
    Environment.Exit(0);
}
sensor = YRangeFinder.FirstRangeFinder();
if (sensor == null)
{
    Console.WriteLine("Détecteur de fumée non connecté, vérifiez le câble !");
    Environment.Exit(0);
}
sensor.registerValueCallback(smokeCallback);
 


A partir de là, il suffit d'appeler périodiquement la fonction YAPI.HandleEvents() et votre fonction smokeCallback() sera automatiquement invoquée en cas de détection de fumée, même si la détection a eu lieu entre deux appels à YAPI.HandleEvents(). Voici un exemple de fonction callback:


static void smokeCallback(YRangeFinder sensor, string value)
{
    // La valeur est reçue est la distance de détection, en millimètres
    // On considère normal une réflexion à 250mm
    if (Int32.Parse(value) >= 250) return;

    // insérez ici votre propre code pour signaler l'événement
    Console.WriteLine("Fumée détectée: " + value);
}
 



Démonstration


Et pour le plaisir, voici une petite démonstration utilisant plusieurs capteurs de fumée simultanément:

  


Bien entendu, même si ce dispositif peut vous être utile pour des expériences, n'oubliez qu'il ne s'agit pas d'un véritable système de sécurité, et qu'il n'est pas homologué comme tel !

Commenter aucun commentaire
Retour au blog












Yoctopuce, get your stuff connected.