Capteur d’ouverture de fenêtres avec un DS2406

Datasheet DS2406

Datasheet DS2406

Dans mon projet domotique, je souhaite surveiller l’ouverture des fenêtres, et peut-être même les portes intérieures.
Et pour ça, je pars à la découverte du DS2406+, il s’agit d’un boîtier en TO-92 permentant soit de :

  • Lire l’état d’une sortie
  • Commander une sortie

Je ferai également le test avec un DS2401 quand j’en aurai.
Son utilisation est différente, on ne lit pas une sortie du composant mais on teste la présence de celui-ci sur le bus.
Je garde mon dernier DS2406 pour commander une sortie.

Donc je souhaite câbler mon DS2406 pour lire l’état de ma patte 3, nommée PIO.
Là encore, comme j’aime bien pomper, je re-utilise le schéma de queret, mais sans la LED.

Schéma du DS2406 en capteur

Schéma du DS2406 en capteur

R1 = 100 kΩ
5Volts provenant de mon injecteur.

Voilà pour la théorie, en pratique, je m’accorde un premier essai à l’air.
L’interrupteur est un ILS Interrupteur à Lame Souple (0.40 € pièce), je pensais naïvement pouvoir les encastrer dans les moulures de mes futures fenêtres, chose qu’on m’a déconseillé car, étant en verre, ils sont trop fragiles. Je m’en servirai pour mes tests.

Soudure en l'air d'un DS2406

Soudure en l'air d'un DS2406

Voila pour un premier test en l’air.
Une fois branché à mon serveur Debian Wheezy Domy OWFS powered, owhttp me donne ceci :

Vue d'OWHTTP pour le DS2406

Vue d'OWHTTP pour le DS2406

Le champs m’indiquant l’état de l’ILS est sensed.A.
La valeur est en cache pour 10 secondes.

Pour ne pas patienter 10 secondes entre chaque état, il est possible d’utiliser les valeurs « uncached », cf le lien en haut de la page d’owhttp.

Je préfère malgré tout utiliser owfs par simplicité.

# cd /mnt/1wire/uncached/12.D0457D000000/
# cat sensed.A
1

Direction le frigo pour piquer une bière un aimant.

DS2406+ avec un aimant et un ILS

DS2406+ avec un aimant et un ILS

# cat sensed.A
0

C’est finalement très simple ! Et je me rend compte que mon désir de pouvoir intervenir sur l’élément en cas de panne sera possible.

Je m’oriente vers un switch magnétique prévu pour être encastré dans une fenêtre, ceci :

Un switch à encastrer dans une porte

Un switch à encastrer dans une porte

D’après un constructeur de fenêtres, l’incrustation de ce type d’interrupteur ne pose pas de problème de pont thermique, il est même possible de fournir les composants de façon à ce qu’ils adaptent les trous et le passage des câbles.
D’autre part, comme soulevé sur le forum bricozone.be (mon pseudo : Aior) : « Pour les contacts encastrables, il faut savoir que les installateurs sont assez peu motivés pour ce genre d’installation car le prix de revient (surtout main d’oeuvre) est très élévé alors que sur 1 détecteur, la marge est cash. ».
Humm ! A voir avec le menuisier le jour venu.
L’avantage de ce type de switch magnétique et, au vu de la simplicité de câblage du DS2406, en cas de soucis, il me suffirait de déboiter le switch, de tirer délicatement sur celui-ci pour faire venir le DS2406 et sa résistance.
Donc la maintenance est possible !

Bon, revenons à notre DS2406, j’essaye de faire quelque chose de propre en « intégrant » les résistances dans la longueur du câble et enrober l’ensemble de gaine thermo :

Mise en place de la gaine thermo difficile avec les jonctions

Mise en place de la gaine thermo difficile avec les jonctions

Je fais sortir mon ILS  au-dessus du DS2406, ce qui donne un résultat *bien mais pas top*. 8 ans sans souder, 8 ans !

DS2406 planqué avec ILS

DS2406 planqué avec ILS

Le DS2406 a résisté au briquet.

Place aux tests soft.
Toujours depuis owfs uncached.

# watch -n1 'cat sensed.A'

Et là, essai avec l’aimant pour constater qu’il y’a parfois des loupés.
Bon, pour une fenêtre, ça marche bien, détecter une fenêtre ouverte dans le but de couper le chauffage, on est pas à 10 secondes près.
Mais j’aurais bien voulu porter ce fonctionnement à la boîte aux lettres… Vu comme c’est simple, autant ne pas se priver !

Sauf qu’avec ces ratés de détection, ça ne sera pas possible.
Le temps d’ouverture de la trappe de la boîte aux lettres pour le passage d’une lettre, c’est quoi ? 1 seconde, même pas ?
Bah si je présente mon aimant devant ILS juste 1 seconde, sensed.A passe seulement quelques fois à 0.
Ce n’est pas fiable pour détecter le passage du facteur, dommage !
D’autant plus qu’interroger le composant toutes les secondes dans le uncache, n’est pas une solution viable.

Fenêtre fermée sensed.A est à 0.
Fenêtre ouverte sensed.A est à 1.
Ça ne serait pas plus logique l’inverse ?

La solution pour obtenir l’inverse serait de câbler le DS2406 comme ceci :

DS2406 ILS sur PIO. Non testé.

DS2406 ILS sur PIO. Non testé.

R1 toujours à 100kΩ.

Mais je n’ai pas testé ce montage, donc sans garantie.

Conclusion

Détecter des ouvertures de portes/fenêtre est un jeu d’enfant avec le DS2406, son câblage est facile, il est solide, réactif.
Points négatifs : sa rareté, à part en échantillons, je ne sais pas où en acheter.
Je pense qu’il y’a moyen de faire plus simple avec le DS2401 qui fonctionne en mode parasite, et qui coûte moins d’1€ pièce, mais je reste perplexe sur le mode de fonctionnement de celui-ci.

Ce billet est posté dans 1-wire, Debian. Mettre en favoris le permalien.

9 réponses à Capteur d’ouverture de fenêtres avec un DS2406

  1. Jean-Luc BEAUDET says:

    Bonjour et surtout bravo pour ce travail et surtout, le temps pris pour sa publication.
    J’ai travaillé sur le sujet « détecter un changement d’état fugitif » avec le DS2406 et voici le résultat:
    -1- Utiliser la fonction « alarme » sur « latch.A » en positionnant ‘set_alarm’ à 111.
    Avec la représentation XYZ de 111, X=1 veut dire ‘A’, Y=1 veut dire ‘latch’, Z=1 veut dire ‘repos à 1’
    ex : owwrite /12.DD4C7D000000/set_alarm 111
    -2- Faire un reset de TOUS les latch (A et B) en écrivant 0 dans le ‘latch.B’.
    ex : owwrite /12.DD4C7D000000/latch.B 0
    Je sais, le ‘latch.B’ est virtuel sur un DS2406 TO92, mais comme c’est dit dans la doc de OWFS, une écriture sur un des ‘latch’ va remettre latch.A ET latch.B à 0. Ceci est une ‘technical feature’, autrement dit, un bug bien utile pour nous.
    -3- Attendre un action (même fugitive) sur l’ILS en scrutant périodiquement le répertoire /alarm .
    ex : owdir /alarm | grep 12. |grep -v grep (owdir pour lister, 1er grep pour chercher uniquement les DS2406, 2ème grep pour supprimer l’occurence du grep)
    ==> si résultat vide, c’est que rien n’est arrivé et on retourne au point -3-
    ==> si quelque-chose du genre  » /alarm/12.DD4C7D000000  » , c’est une alarme sur notre DS2406 !
    -4- on vérifie. en lisant le ‘latch.A’ .
    ex : owread /alarm/12.DD4C7D000000/latch.A qui donne ‘1’
    On fait ce pourquoi on a mis une alarme, puis,
    -5- on reboucle en faisant une mise à zéro en retournant au point -2-

    Bien entendu, le bon montage est le 1er, celui avec le contact fugitif entre la patte PIO et la Masse.

    Conclusion:
    Il est possible de détecter le passage d’une lettre dans la boîte aux lettres, même si le facteur est pressé!

    • Lionel says:

      Excellent !

      De quoi mettre à jour cet article, ça sera bien plus utile et complet.
      Je teste tout ça prochainement.

      Merci du tuyau !

  2. Thierry says:

    Bonjour
    J’ai Raspberry Pi B+ avec Wheezy 3.12 sur lequel j’ai branché 5 sondes DS18B20 sans aucun problème – et sans OWFS.
    Par contre là ou ça coince c’est avec le DS2406.
    Dans le répertoire /sys/bus/w1/devices/12-0000007d3f82 il y a ces fichiers :
    driver -> ../../../bus/w1/drivers/w1_slave_driver
    id
    name
    power
    rw
    subsystem -> ../../../bus/w1
    uevent
    Aucun fichier PIO en vue. Est-ce normal ? Sur quels systèmes avez vous fait fonctionner le DS2406 ?
    Quand à OWFS, impossible de le faire tourner sauf en mode « fake », le mount ne marche pas.
    J’ai lu des tonnes de posts mais il y a à boire et à manger, et rien ne fonctionne.
    Si quelqu’un pouvait m’aider SVP.
    Merci
    Thierry

    • Thierry says:

      J’ai fini par tomber sur un post avec une bonne piste.
      Il faut lancer owfs commme ceci : owfs -m /mnt/1wire –debug –w1.
      Là les DS2406 et DS2408 marchent.

  3. jimmy says:

    Bonjour,

    Très interressant.
    Mon idée est de remplacer l’iLS par un capteur à effet Hall, beaucoup moins fragile.
    Du coup, je me pose la question, comment remplacer l’ILS par le capteur effet hall?
    La capteur à 3 pattes. GND VCC et DATA.

    Une petite idée?

  4. Jimmy says:

    Bonjour,

    Je m’arrache les cheveux avec ce DS2406 et ce montage
    Je l’ai câblé sur une platine de test et sans rien faire, il change d’état quand bon lui semble.
    J’ai mis une alim de 5 volt autre que celle du raspberry B+, mais rien n’y fait.
    j’ai remplacé l’ILS par un fil et, malgré ça, toutes les 30 s j’ai la surprise de voir mon état changer, ou pas.

    Là il a tenu 1,30 min sans changé d’état. Je n’ai rien fait pourtant.
    Une idée s’il vous plait?

    Je sèche depuis 4 jours sur ce problème

    Merci pour votre aide

  5. anonymePremier says:

    Y-a-t-il bien la résistance de pull-up ?

  6. destroyedlolo says:

    Salut,

    Je pense que le 2nd schéma ‘DS2406 ILS sur PIO. Non testé’ mettant à 1 l’entrée quand le contact est fermé est faux.
    Il faudrait que l’ILS soit entre la la résistance de la masse et le 5v car la, il n’y a aucun signal lorsqu’il est ouvert.

    A+

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *