HC SR-501 : Un capteur de présence pour ESP8266

Mes derniers articles parlaient du capteur de luminosité, puis de celui d’humidité et de température. Je vais cette fois parler du détecteur de présence. J’ai acheté un lot de 5 HC SR-501 pour 8,99€ sur Amazon pour mes différentes sondes et c’est de loin le capteur le moins couteux. En général en premium c’est plus cher que la version lente mais cette fois ça n’a pas été le cas.

Le HC SR-501

Ce PIR (Photoelectric Infra Red) permet de détecter les mouvements de façon plus fiable que via les détecteurs de mouvements des caméras qui se limitent à une variation de pixels. Ce mode de détection a pour résultats de nombreux faux positifs. LE capteur est équipé de deux trous de part et d’autre du dôme pour permettre de le fixer à un boitier.

Capteur PIR HC SR-501

Capteur PIR HC SR-501

Sa connectique

Ce capteur possède trois broches permettant d’être alimenté (VCC et GND) et une sortie. Pour vérifier le sens il est possible de lever la demi sphère (elle n’est pas collée) et lire l’ordre qui est écrit sur la carte. Il faut normalement l’alimenter en 5V (pouvant aller jusqu’à 20V) car il possède un régulateur qui utilise en interne 3,3V. Cependant il est tout à fait possible de le brancher sur du 3,3V d’un ESP.

 

Extrait de la datasheet du HC SR-501

Extrait de la datasheet du HC SR-501

En mettant le capteur avec les broches vers le haut il faut brancher de gauche à droite le câble GND puis le GPIO lié et enfin le câble d’alimentation. dans le coin inférieur gauche se trouve une configuration sur la capacité du capteur à répéter les alarmes (mode L ou H). En regardant bien la carte on peut voir les deux lettres écrites sur la carte. Le cavalier jaune livré permet de changer de mode. Les derniers éléments sont les réglages possibles sur le bas du capteur avec la sensibilité (plus elle est faible et moins la portée est grande) et l’ajustement de la détection. Dans mon cas j’ai baissé la sensibilité au minimum pour réduire le bruit, le minimum étant de 3 mètres. Le délai quant à lui est également réglé au minimum. Le sens de réglage se fait dans le sens des aiguilles d’une montre.

Branchements

Je rappelle d’abord le schéma des GPIO de l’ESP8266.

Schéma ESP8266-12E

Schéma ESP8266-12E

Le montage que j’ai réalisé et toujours très simple, il s’agit du suivant.

 

Code

Voici le code utilisé pour le configurer. Selon la datasheet il faut laisser entre 10 et 60 secondes à l’initialisation pour configurer le PIR. Dans mon cas j’ai laissé 30 secondes.

#define PIN             2

int calibrationTime     = 30;
int pirState            = LOW;
int val                 = 0;

void setup() {
  pinMode(PIN, INPUT);
  Serial.begin(115200);

  Serial.print("Calibration du détecteur (30 secondes) ");
  for(int i = 0; i < calibrationTime; i++){
    Serial.print(".");
    delay(1000);
  }
}

void loop(){
  val = digitalRead(PIN);
  Serial.println(val);

  if (val == HIGH) {
    delay(150);

    if (pirState == LOW) {
      Serial.println("Présence détéctée");
      pirState = HIGH;
    }
  } else {
    delay(300);
    if (pirState == HIGH){
      Serial.println("Aucune présence détéctée");
      pirState = LOW;
    }
  }
}

 

Affichage dans le moniteur série

Sortie du PIR lorsque je passe la main devant le capteur

Sortie du PIR lorsque je passe la main devant le capteur

Posted in Domotique, ESP8266 and tagged , , , , .

Fondateur du site Single Blog Computer. Je suis captivé par toutes les nouveautés high tech permettant de faciliter la vie du quotidien. Les SBC me semblent la solution idéale dans ce cas de figure.

Laisser un commentaire

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