Home » 3615 my life, Domotique, Electronique, Rénovation

La détection de mouvement dans l’habitat

12 février 2012 4 commentaires
tags : , , ,
Download PDF

Que ce soit pour faire sonner l’alarme lors d’une intrusion, allumer la lumière d’un couloir ou plus simplement compter combien de fois par nuits se lèvent vos enfants pour leur demander des comptes les matins ou vous n’arrivez pas à les sortir du lit, la détection de mouvement est une phase quasi incontournable d’une installation domotique.

J’avais déjà par le passé détourné un détecteur originellement conçu pour allumer un spot, de ceux qu’on trouve en haut des portes de garage ou autre espace extérieur où on aime bien avoir de la lumière sans avoir à chercher le bouton 3h dans le noir, pour le transformer en membre de bus 1wire. L’opération n’était pas ultra compliquée mais d’une part il n’est pas évident de trouver de genre de détecteur avec la partie détection bien séparée de la partie commande du secteur, et d’autre part j’avais fait un design qui nécessitait un composant 1wire DS2438 qui obligeait à venir interroger régulièrement la sonde pour ne pas rater un mouvement. Quand le détecteur repassait à l’état bas, aucun moyen de savoir qu’il avait été déclenché si on n’était pas passé l’interroger. En plus, ces engins ne sont pas donnés-donnés. Son seul avantage était d’être orientable :

Pour cette V2, j’ai donc privilégié une base à la fois plus simple à hacker et avec quelques fonctionnalités un peu sympa. J’ai donc jeté mon dévolu sur du milieu de gamme sur ebay autour de 6 € :

L’avantage c’est qu’on a un peu de place dans le boitier pour mettre de l’électronique, qu’il a un angle de vue assez grand et qu’il n’est pas trop gros quand même. Par contre, on pourrait s’attendre à avoir une LED discrète (le petit triangle en bas), mais que nenni, on dirait un gyrophare de police en pleine nuit sur les grands boulevards, elle fait rougir presque tout l’engin quand elle s’allume. Heureusement, on peut la débrayer en coupant une piste sur le PCB ou simplement la retirer si on n’en veut pas du tout.

Sur le PCB, justement, on trouve un bornier bleu à 6 plots pour, respectivement :

  • La sortie du relais actionné par le détecteur
  • L’alimentation (9 à 16vdc)
  • La sortie du dipswitch servant à savoir que de la boite du détecteur a été ouverte

Contrairement à beaucoup d’autres détecteurs, nous avons donc un vrai contact à deux bornes et pas une patte reliée au vdc ou à la masse et donc une isolation quasi totale entre le circuit d’alimentation et le circuit de détection. Idem pour le switch anti-intrusion.

La partie 1wire maintenant. Je me suis basé sur un simple DS2406 qui permet de savoir s’il y a contact et qui, surtout, garde en mémoire qu’il y a eu un évènement sur sa patte de détection même lorsque l’évènement est terminé (on dit que c’est une gâche, latch en anglais). Concrètement, c’est un composant en boitier TO92 (vous savez, comme les fameux transistors que vous avez peut être manipulé quand vous étiez en cours de techno) qui a donc 3 pattes, une pour le fil 1wire, une pour la masse et une pour la fameuse détection.

Appliquez une tension entre la patte de masse et la patte de détection, et hop, vous déclenchez le composant.

Le câblage est donc assez simple :

  • L’alimentation (+9vdc) sur le bornier n°3 (pour alimenter le montage) et 5 (pour entrer dans le détecteur d’ouverture)
  • La masse sur le bornier n°4 (pour que le montage soit sous tension)
  • Une résistance (j’ai pris 1kohm) entre le bornier n° 6 et le n°1 (pour ramener la tension d’alimentation au bornier de détection de mouvement)
  • Le DS2406 avec la patte du milieu (bus 1wire) en l’air, la n°1 (masse) dans le bornier n°4, la n°3 (détection) dans le bornier n°2
Attention, c’est crado et flou :
Que se passe-t-il donc avec ce câblage ?
  1. En fonctionnement normal avec la boite fermée, le switch anti intrusion laisse passer la tension et nous avons donc 9vdc à l’entrée du relais actionné par la détection. Tant qu’il n’y a pas de mouvement détecté, le relais laisse passer la tension et nous avons donc 9vdc à la borne de détection de notre DS2406 qui est donc dans un état haut.
  2. Un mouvement est détecté, le relais câblé sur la détection de mouvement interrompt le courant à l’entrée du DS2406 qui passe donc à l’état bas. La gâche du composant est également activée, permettant de savoir qu’il s’est passé quelque chose à la prochaine lecture du composant par le bus 1wire.
  3. Si quelqu’un retire le capot du montage pour une raison ou pour une autre, le courant n’arrive même plus à la borne du relais de détection, le résultat sera, vu du composant, comme si quelqu’un bougeait en permanence devant le détecteur. Intérêt limité, puisque la situation n’est pas différentiable.

Pour ce montage, je n’ai donc fait qu’une prise en compte sommaire de la fonction anti-intrusion du boitier. Pour une utilisation en détection de mouvement simple c’est largement suffisant mais clairement pas sécurisé pour une utilisation en mode alarme. Vous êtes prévenu.

Pour bien faire les choses, il faudrait brancher les 6 plots à un câble et déporter totalement les composants 1wire plus loin, dans un endroit caché. Utiliser deux DS2406 pour pouvoir distinguer un mouvement d’une ouverture du capot est une bonne idée également.

Du coté software, la détection se fait en envoyant une commande F555 au composant 1wire qui va donc retourner un octet d’info, dont les bits 4 et 5 représenteront l’état des gâches des deux voies et les 2 et 3 les états instantanés des voies. Il faut ensuite envoyer une commande F5D5 pour remettre les gâches à 0. Tout ça est bien entendu dans la doc :)

Si vous ne connaissez pas les composants 1wire mais que vous avez tout bien lu, vous devriez vous demander pourquoi je parle de deux voies et deux gâches. La raison est toute simple, le DS2406 existe également en version SOIC et est équipée de deux voies. La version TO92 n’en a qu’une externe mais l’autre existe dans le composant.

4 Comments »

  • Lestang said:

    [quote]Si vous ne connaissez pas les composants 1wire mais que vous avez tout bien lu, vous devriez vous demander pourquoi je parle de deux voies et deux gâches[/quote]

    Ha ça y est ça va s’adresser aux noobs!

    [quote]La raison est toute simple, le DS2406 existe également en version SOIC et est équipée de deux voies. La version TO92 n’en a qu’une externe mais l’autre existe dans le composant.[/quote]

    HA? Tiens…non…^^

    RT: Cherche cours d’électronique de base ;)

  • Bruno (author) said:

    Désolé :)

    Le SOIC, c’est ça : http://rocky.digikey.com/weblib/National/Web%20Photo/14-8-SOIC.jpg

    3 ou 4 millimètres de coté … Le truc chiant comme la mort à souder quoi :)

  • Lestang said:

    Ha! Là, d’accord je comprends: c’est le même genre de composant qui a cramé sur le pcb d’un gros disque dur plein de données. Et je confirme, c’est la misère à souder sans équipement adéquat! Haaaa…le pouvoir des images! ;)

  • Yu said:

    « Du coté software, la détection se fait en envoyant une commande F555 au composant 1wire qui va donc retourner un octet d’info, dont les bits 4 et 5 représenteront l’état des gâches des deux voies et les 2 et 3 les états instantanés des voies. Il faut ensuite envoyer une commande F5D5 pour remettre les gâches à 0. »

    race condition xD (comment ça je chipote ? :D)

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.


huit + 1 =