Micropython-PIR-alarm

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Introduction

Je ne sais pas pour vous? Mais personnellement, je me suis toujours demandé comment interfacer capteur d'alarme sur un projet microcontrôleur.

En tant que Maker, nous avons tous eu l'occasion de tester l'un ou l'autre capteur PIR... mais qu'en est il une fois que l'on est confronté à un modèle plus "professionnel" ?

Cet article concerne quelque-uns de ces capteurs.

Capteur PIR-476 standard

Voici le capteur le plus commun, destiné à un usage en intérieur.

Micropython-PIR-alarm-01.jpg Micropython-PIR-alarm-02.jpg

Ce capteur PIR (Passive Infra Res) est utilisé en intérieur pour couvrir une surface de 10m x 10m avec un angle de détection de l'ordre de 90° (de 88° à 110°)

Caractéristique Valeur
Application Intérieur
Couverture 10m x 10m
Angle de détection ~90°
Hauteur installation 2.0 à 2.7m
Alimentation 9 à 16V DC (31mA)
Sortie OptoCoupleur (NC=Normally Closed), 20V DC max, 100mA)
Température -10°C à 50°C
Dimensions 52mm x 60mm (Haut: 92mm)
Poids 80 gr
Autre * Compensation de la température

Fonctionnement de la sortie:

  • Detection = LED Allumé = OptoCoupleur "Ouvert"
  • Non detection = LED Eteinte = OptoCoupleur "Fermé"

De la sorte, si quelqu'un coupe le fil vers le détecteur alors le circuit s'ouvre, ce qui revient à une détection d'alarme.

Micropython-PIR-alarm-05.png

Contact Description
+ Alimentation: 9 à 16V DC.
- Alimentation: masse/GND.
com Optocoupleur: Commun (son "émetteur")
NC Optocoupleur: Contact normalement fermé (Normally Closed) lorsque le capteur ne détecte rien.
"Collecteur" de l'optocoupleur.
Tamper Contacts de l'anti-sabotage (si présent).

Capteur PIR-460

Ce capteur est généralement utilisé comme détecteur de passage (ex: au dessus d'une porte).

Micropython-PIR-alarm-15.jpg

Ce capteur PIR (Passive Infra Res) est utilisé en intérieur ou passage couvert par des systèmes de sécurité.

Il permet de détecter le passage (mode sécurité) ou la présence d'un individu à un endroit précis (mode card access).

Bien qui soit habituellement monté en hauteur et diriger vers le bas, rien n'empêche d'exploiter ce capteur dans d'autres configurations.

Caractéristique Valeur
Application Détecteur de passage/Presence
Couverture 2.1x1.5m (mode card access)
6.6x4.5m
Angle de détection 0° (configurable 10°)
Hauteur installation 2.0 à 2.7m
Alimentation 9 à 16V DC (31mA)
Configurable 20 à 27V DC
Sortie Micro-Relais (NC=Normalement Fermé), 28V DC max, 150mA)
Température -10°C à 50°C
Dimensions Triangle base 120mm x hauteur 100mm (épaisseur 40mm).
Poids 80 gr
Autre * Compensation de la température

Fonctionnement de la sortie:

  • Detection = LED Allumé = OptoCoupleur "Ouvert"
  • Non detection = LED Eteinte = OptoCoupleur "Fermé"

De la sorte, si quelqu'un coupe le fil vers le détecteur alors le circuit s'ouvre, ce qui revient à une détection d'alarme.

Micropython-PIR-alarm-16.jpg

Contact Description
+ Alimentation: 9 à 16V DC.
- Alimentation: masse/GND.
com Relais: Commun
NC Relais: Contact normalement fermé
Peut-être reconfiguré en Normalement Ouver..
Tamper Contacts de l'anti-sabotage.
Ouvert si couvercle retiré

Connexion sur MicroContrôleur

Le fonctionnement est identique pour les capteurs PIR-460, PIR-476 (les borniers presque identiques, cfr polarité de l'alimentation)

Raccordement Simple

L'exemple ci-dessous indique comment brancher le capteur sur un microcontrôleur 3.3V (comme Raspberry-Pi Pico).

Le signal d'alarme passe par un opto-coupleur il est possible de dissocier la masse des capteurs de la masse du MicroControleur. C'est l'option employée dans la raccordement ci-dessous.

L'entrée GP2 passe au niveau haut lorsqu'un mouvement est détecté.

Micropython-PIR-alarm-11.jpg

L'entrée GP2 reste au niveau bas si rien n'est détecté.

Micropython-PIR-alarm-10.jpg

Le script pour lire l'état de l'entrée est relativement simple:

import time
from machine import Pin
p = Pin( 2, Pin.IN )
while True:
    print( "ALARM" if p.value() else "---" )
    time.sleep(1)

Raccordement en cascade

Il est possible de brancher plusieurs capteurs sur une seule ligne en les branchant en série.

L'alarme est donc déclenchée lorsqu'un des capteurs détecte un mouvement.

Micropython-PIR-alarm-20.jpg

Raccordement analogique

Le raccordement en cascade ne permet pas d'identifier le capteur impliqué dans la détection.

J'ai d'abord pensé qu'une utilisation intelligente de résistances en pont diviseur de tension pourrait permettre l'identification du capteur.

Malheureusement, même avec 4 capteurs, il existe des cas il faut identifier une différence de 200mV. Ce qui n'est pas une situation fiable sur une installation filaire.

Augmenter la tension

Elever la tension du signal est une bonne façon de limiter l'impact des interférences sur ce même signal.

Cependant, cela implique une interface électronique du côté du microcontrôleur afin de ne pas dépasser la tension maximale autorisée sur les entrées.

Dans l'exemple ci-dessous, la tension d'alimentation des capteurs (9V) est également utilisée comme tension de signal. Un optocoupleur est utilisé côté microcontrôleur pour réduire le signal à 3.3V max.

Micropython-PIR-alarm-30.jpg

Dans le cas présent:

  • Detection = LED Allumé = OptoCoupleur "Ouvert" => Opto-coupleur microcontroleur "Ouvert" => GP2 = LOW
  • Non detection = LED Eteinte = OptoCoupleur "Fermé" => Opto-coupleur microcontroleur "Fermé => GP2 = HIGH

Micropython-PIR-alarm-30a.jpg

Micropython-PIR-alarm-30b.jpg

Liste d'achat