summaryrefslogtreecommitdiff
path: root/La_dtection_de_mouvement_dans_lhabitat.txt
blob: 132028b25e7fea815905f80bdc48e04a227ac716 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
Titre: La détection de mouvement dans l’habitat
Auteur: Bruno
Date: Sat 11 Feb 2012 23:35:34 +0100
Lien: https://blog.spyou.org/wordpress-mu/2012/02/12/la-detection-de-mouvement-dans-lhabitat/

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 :

[image 1: ancien détecteur]

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 € :

[image 3:  PIR][3]

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.

[image 5: led folle][5]

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.

[image 7: ds2406][7]

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 :[image 9: câblage final][9]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[10] :)

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.

Liens:
[1]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-ancien-détecteur.jpg (image)
[2]: http://www.ebay.com/itm/PIR-Analog-Single-Optic-IR-Motion-Sensor-Detector-/320844846271?pt=LH_DefaultDomain_0&hash=item4ab3d7d4bf (lien)
[3]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-PIR.jpg (image)
[4]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-led-folle.jpg (lien)
[5]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-led-folle-224x300.jpg (image)
[6]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-ds2406.jpg (lien)
[7]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-ds2406-224x300.jpg (image)
[8]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-câblage-final.jpg (lien)
[9]: http://blog.spyou.org/wordpress-mu/files/2012/02/20120211-câblage-final-300x224.jpg (image)
[10]: http://datasheets.maxim-ic.com/en/ds/DS2406.pdf (lien)