dimanche 29 avril 2018

Détecteur de mouvement MYSENSORS sur batterie


Détecteur de mouvement MYSENSORS

sur batterie


Le but de cette page est d'expliquer pas à pas la réalisation d'un détecteur de mouvement basse consommation à base d'ARDUINO PRO MINI, relié par radio à un serveur DOMOTICZ, à l'aide d'un module NRF24L01 2.4GHZ.

Il s'adresse à toute personne ayant une bonne expérience en matière de développement ARDUINO et quelques notions d'électroniques.

Un serveur DOMOTICZ (ou autre supporté par MYSENSORS) est nécessaire. Ce serveur domotique peut être installé avantageusement sur une plateforme du type RASPBERRY PI.
On lui connectera une passerelle MYSENSORS. Cette passerelle peut être construite avec une carte ARDUINO UNO ou NANO et un deuxième module NRF24L01.

Les liens suivants vous seront utiles :
https://riton-duino.blogspot.com/2019/05/mysensors-presentation.html 
https://easydomoticz.com/domoticz-arduino-mysensors-org-partie-2-la-passerelle

1. Les fonctionnalités

Le montage proposé permet de remonter au serveur DOMOTICZ une information de passage d'une personne devant un capteur du type HC-SR501.
Il permet de remonter également le niveau de la batterie.

L'autonomie est importante. Avec une consommation de 65µA, une batterie de 2300mAH devrait durer 35000 heures. Seule l'auto-décharge de la batterie peut poser problème. Préférer les modèles à faible auto-décharge.

2. Le matériel

Pour réaliser ce détecteur, il vous faudra réunir :
  • un ARDUINO PRO MINI 8Mhz 3.3V
  • un module radio NRF24L01
  • un détecteur de mouvement HC-SR501 ou HC-SR602
  • une résistance de 47 K
  • une résistance de 1 M
  • une résistance de 330 K
  • un régulateur LM2936-3.3
  • un condensateur 6.2V 10 µF 
  • une LED blanche 3 mm
  • un chargeur TP4056
  • un connecteur 2 broches mâle au pas de 2.54
  • un connecteur 3 broches mâle au pas de 2.54
  • un accumulateur  3.7V LI-ION 16340
  • un support de batterie 16340 pour PCB
  • un cavalier au pas de 2.54
  • un petit câble type DUPONT 3 broches
Voici le support que j'utilise :
https://fr.aliexpress.com/item/Coque-en-plastique-3-V-CR123A-Bouton-Titulaire-Sockets-Cas-Noir/32833014988.html?spm=a2g0s.9042311.0.0.ppOTYI
Le PCB est prévu pour une batterie 16340 sur support mais il est tout à fait possible d'utiliser une LIPO fixée au PCB par de l'adhésif double face ou de la colle. La place disponible pour la batterie est de 24x42mm, ou 31x36mm, ce qui autorise un vaste choix.

Personnellement j'ai utilisé une XTAR 16430 650mAH achetée chez Gotronic.

2.1 Le capteur HC-SR602

Ce capteur consomme moins que le HC-SR501 et n'a besoin d'aucune modification pour qu'il fonctionne en 3.3V.
De plus il est beaucoup plus petit et sera plus facile à intégrer dans un boîtier.
Je le recommande.
Par contre il n'a pas de réglage de portée ni de temps.

2.2 Le capteur HC-SR501

Si l'on a que ce modèle sous la main le détecteur HC-SR501 doit être modifié pour pouvoir fonctionner en 3.3V.

Partons du schéma :

On voir rapidement que l'intégralité de la carte fonctionne en 3.3V.
Il suffirait de :
- court-circuiter la diode D1
- dessouder le régulateur IC1
- court-circuiter les broches Vin et Vout.

 


C'est ce que j'ai fait et cela marche parfaitement bien.

Sur l'image, les deux traits rouges représentent les deux straps à mettre en place.
Je n'ai pas essayé de laisser le régulateur en place. Cela provoquerait certainement une surconsommation.
Attention, sans la diode D1, plus aucune protection contre les inversions de polarité de l'alimentation.

Dernière chose : la consommation de ce PIR modifié est de 60µA au repos.


3. Le schéma


Le schéma est réalisé à l'aide de KICAD.

Pour récupérer le projet voir plus bas :  12. Téléchargements.

Vous pouvez aisément essayer ce montage sur une breadboard.

Remarque  : sur le schéma, le brochage connecteur P1 ne correspond pas au brochage du capteur HC-SR501.

Le capteur doit être raccordé avec 3 fils en respectant son brochage :

Connecteur P1 :
1 : GND
2 : +3.3V
3 : OUT

HC-SR501 :
1 : GND
2 : OUT
3 : +3.3V

HC-SR602 :
1 : GND
2 : +3.3V
3 : OUT
 

4. Réalisation

La réalisation ne pose pas de problème particulier. Tout est sur la carte, sauf le détecteur.
Attention : le câble reliant celui-ci à la carte n'est pas droit.
Sur la carte le connecteur est câblé comme suit :
GND 3.3V SIGNAL
Sur le détecteur le connecteur est câblé comme suit :
GND SIGNAL 3.3V
Voir photo ci-dessous.

Un cavalier est placé sur le connecteur deux broches au dessus à gauche.  Celui-ci a deux fonctions :
  • connecter et déconnecter la batterie à l'aide du cavalier
  • mesurer la consommation du montage à l'aide d'un multimètre
Un petit câble de mesure maison

5. La basse consommation

Reportez-vous à la page traitant de l'ARDUINO MINI.

6. Photos

Voici une image de la carte :


7. IDE ARDUINO

Il vous faudra bien entendu installer les bibliothèques ARDUINO suivantes :
Librairie MYSENSORS : https://www.mysensors.org/download

Dans votre IDE (arduino-cc 1.6.9 par exemple), dans le menu "Outils/Type de Carte" choisir "Arduino Pro or Pro Mini". Dans le menu "Outils/Processeur" choisir "ATmega328 (3.3V, 8MHz)".


8. Le code

Pour récupérer le projet voir plus bas :  12. Téléchargements.
 
La fonction sleep() permet d'endormir l'ARDUINO et le NRF24L01.

La valeur de VREF dans le sketch est à adapter en fonction de la mesure réelle de la tension de la batterie.
La tension mesurée par l'ARDUINO est affichée dans le terminal. A comparer donc avec la valeur affichée par un bon multimètre.

9. Chargement

Reportez-vous à la page traitant de l'ARDUINO MINI.

10. DOMOTICZ

Reportez-vous à ce document :

11. Boîtier

Ce montage a été intégré dans boîtier kradex-Z-123.

https://www.tme.eu/fr/details/z-123_wh/boitiers-universels/kradex/z123b-abs/

12. Téléchargements

Pour télécharger le projet : https://bitbucket.org/henri_bachetti/mysensors-motion-sensor.git
 
Cette page vous donne toutes les informations nécessaires :
https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

13. Liens utiles

DOMOTICZ : https://domoticz.com/

14. Retour sur expérience

La batterie a une capacité théorique de 2300mAH, ce qui est totalement farfelu pour une batterie de cette taille. En réalité elle a une capacité de 225mAH.

Comme il y a pas mal de passage dans la couloir où le capteur est installé, la batterie tient environ 6 mois.

Le 23/04/2020 le l'ai remplacée par une batterie de marque : une XTAR 650mAH.

La Recharge suivante a été faite le 10/12/2021 : l'autonomie est de 20 mois.



Cordialement
Henri

14. Mises à jour

20/09/2018 : bug fix dans la mesure de tension batterie
29/06/2019 : 8. Le code (réglage de VREF)
25/10/2019 : 14. Retour sur expérience

8 commentaires:

  1. Bonsoir, j'ai acheté 1 lot de 5 sensor HC-SR501 sur Amazone pour a peu près 10€, pareil sur AlienExpress encore meilleur marché, tous détectent mal, il faut faire des mouvement trop près, ça ne détecte pas de présence, pourrais tu donné un lien ou un prix de référence ?

    RépondreSupprimer
    Réponses
    1. Les derniers que j'ai acheté :
      https://fr.aliexpress.com/item/1852368380.html?spm=a2g0s.9042311.0.0.27426c37oMkDyw
      Je préfère les HC-SR602, plus discrets.

      Supprimer
    2. Ensuite tout dépend de ce que l'on entend par "trop près". Un HC-SR501 détecte facilement un mouvement à 2m.
      Le réglage permet de limiter la portée (3 à 7m).

      Supprimer
    3. Merci pour le lien, je viens de vérifier, et en fait j'ai exagérer sur Alienexpress, il revienne a 0,60€ pièces :
      https://fr.aliexpress.com/item/33048097170.html?spm=a2g0s.9042311.0.0.27426c37jLb658
      Sur Amazone je n'en tester qu'un, peut être que les autres iront car 2€ pièces.

      Supprimer
    4. Je ne pense pas qu'un prix plus élevé sur Amazon soit une garantie de qualité supérieure. Par contre c'est une garantie de bénéfice pour Jeff Bezos.

      Il faut savoir également qu'après une détection, il faut attendre 3 secondes pour qu'une nouvelle détection soit possible.
      Ensuite il y a l'alimentation. Voir mes commentaires :
      https://riton-duino.blogspot.com/2018/08/le-hc-sr501-en-37v.html

      Supprimer
  2. Bonjour, tout dabord merci pour votre site qui est super. Grace à vous j'ai beaucoup appris.
    J'ai une question sur la modification du HC-SR501. Pourquoi court-circuiter la diode D1? Court-circuiter seulement Vin et Vout ne suffit pas? Comme ça on garde la protection contre les inversions de polarité.
    Merci

    RépondreSupprimer
    Réponses
    1. La diode provoque une chute de tension de 0.6V. Avec 3.3V d'alimentation il reste donc 2.7V.
      La datasheet du BISS0001 donne 3V comme tension d'alimentation minimale.
      On peut essayer de l'alimenter sous 2.7V, mais le fonctionnement n'est pas garanti.

      Supprimer
    2. Dans cet article j'avais testé un HC-SR501 sous 3.3V, sans le modifier, et cela fonctionnait, mais pas avec tous les exemplaires :
      https://riton-duino.blogspot.com/2018/08/le-hc-sr501-en-37v.html
      On peut donc tenter la chose, mais rien ne dit que cela fonctionnera dans toutes les situations, en particulier la température.

      Supprimer