Modifications

Sauter à la navigation Sauter à la recherche
1 038 octets supprimés ,  10 février 2015 à 21:03
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{Spark-Core-Hacking-NAV}}
 
{{Spark-Core-Hacking-NAV}}
   −
== Switch Magnétique ==
+
== Senseur PIR ==
   −
Aussi appelé contact magnétique, {{pl|60|disponible ici}}, ce contact utilise un [http://fr.wikipedia.org/wiki/Interrupteur_reed interrupteur reed] <small>(''Wikipédia'')</small> et un aimant pour activer un contact.  
+
Savoir lire l'état d'une entrée du port GPIO du Raspberry PI est une action fondamentale en hacking électronique.<br />
 +
Nous l'avions déjà abordé avec la lecture de l'état un bouton.<br />
 +
Dans cet article, nous allons détecter l'activation d'un senseur de proximité PIR à l'aide d'un Raspberry PI.
   −
Un contact magnétique est constitué de deux parties.
+
[[Fichier:SenseurPir.jpg]]
# Un aimant
  −
# Le contact magnétique (aussi appelé Reed switch).
     −
[[Fichier:ReedSwitch.jpg]]
+
Voici un exemple qui vous propose de lire l'état du senseur PIR placé sur la broche le D4.<br />
 
+
Une Led rouge est placée sur le D1, elle est allumée dans lorsque le senseur PIR détecte un mouvement.
Ces contacts,faciles à mettre en oeuvre, servent généralement à détecter l'ouverture d'une porte ou d'une fenêtre.
  −
Si vous disposez d'un système d'alarme à la maison vous avez probablement noté ces petits boitiers blancs à proximité des fenêtres.
  −
 
  −
Les contacts magnétiques sont généralement ouvert au repos (c'est a dire "non sollicité par un aimant").<br />
  −
Lorsque l'on place l'aimant à proximité, le contact se ferme. En étant attentif, il est parfois même possible d'entendre le contact se fermer.
  −
 
  −
Le principe physique d'un contact reed est identique à celui d'un bouton poussoir... c'est un contact!.
  −
 
  −
Par conséquent, nous vous recommandons fortement [[Spark-Core-Bouton|la lecture de notre tutoriel sur le bouton poussoir]] et la section décrivant la protection d'une entrée digitale et le déparasitage logiciel.
  −
 
  −
== Logique inversée ==
  −
Le principe de lecture d'un bouton poussoir et d'un contact magnétique est identique.
  −
 
  −
Il y a cependant une différence de logique:
  −
* Lorsque la porte est fermée, l'aimant active l'interrupteur reed et le contact est fermé.
  −
* Lorsque la porte est ouverte, l'aimant s'éloigne de l'interrupteur reed et le contact s'ouvre.
  −
 
  −
Dans le cas ci-présent, il ne faut pas détecter la fermeture d'un contact (comme le bouton poussoir) '''mais l'ouverture d'un contact'''.
      +
== Matériel ==
 +
* Un {{pl|53|breadboard}} et {{pl|34|des fils extra souples}}
 +
* Un {{pl|61|senseur PIR}}
 +
* 1 x {{pl|128|résistance de 1K Ohms}} (Brun, Noir, Rouge)
 +
* 1 x Led Rouge
 +
* 1 x {{pl|518|Spark Core}}
 
== Montage ==
 
== Montage ==
Comme pour le bouton poussoir, le montage est élémentaire et utilise une résistance pull-down de 10 KOhms (brun, noir, orange) et une résistance de protection de 100 Ohms (brun, noir, brun).
+
La sortie du senseur PIR est une '''sortie active''' qui place le potentiel à GND/Masse ou 3.3V en fonction de l'état du senseur PIR.
   −
[[fichier:SPARK-MAGNETIC-SWITCH_bb.jpg|640px]]
+
[[fichier:SPARK-PIR_bb.jpg|640px]]
   −
Lorsque le contact est fermé (la porte fermée), 3.3V est appliqué sur la broche D4... lorsque la porte est ouverte, le contact reed s'ouvre et la broche D4 est ramenée à la masse par la résistance pull-down.
+
Lorsque le senseur PIR détecte une activité, il active sa sortie, ce qui applique 3.3V sur la broche D4. Cette sortie PIR reste active pendant plusieurs secondes... à la suite de quoi le potentiel est ramené la masse (broche D4 est donc à 0 volt).
 
   
 
   
 
== Code ==
 
== Code ==
Ligne 41 : Ligne 29 :     
  <nowiki>// -------------------------------------------------
 
  <nowiki>// -------------------------------------------------
// Internet Magnetic - Détection d'ouverture de contact Reed
+
// Internet PIR - Détection de mouvement avec senseur PIR
 
// -------------------------------------------------
 
// -------------------------------------------------
 
//
 
//
 
// Exemple didactique dont le but est:
 
// Exemple didactique dont le but est:
// 1) De détecter l'ouverture de contact reed (switch magnetic) avec
+
// 1) De détecter l'activation d'un senseur PIR avec
 
//    avec déparasitage logiciel.
 
//    avec déparasitage logiciel.
 
// 2) Reporte cette information dans une variable "counter" sur Spark Cloud
 
// 2) Reporte cette information dans une variable "counter" sur Spark Cloud
//    (le nombre d'ouverture) permettant à un autre logiciel comme
+
//    (le nombre de détection) permettant à un autre logiciel comme
 
//    un SmartPhone de détecter l'événement.
 
//    un SmartPhone de détecter l'événement.
// 3) Reporte le statut actuel du senseur dans la variable "close".
+
// 3) Reporte le statut actuel du senseur dans la variable "actif".
//    Permet de savoir si le contact/porte est fermé.  
+
//    Permet de savoir si le senseur est actuellement actif.  
//    Pratique par exemple pour la cabane de jardin, chambre froide,
+
//    Pratique par exemple pour savoir s'il y a de l'activité dans une
//    box du cheval (s'il est de sortie... donc porte ouverte), etc
+
//    pièce (ex: surveiller un stock en pleine nuit).
 
// 3) Offrir une fonction "reset" sur Spark Cloud permettant
 
// 3) Offrir une fonction "reset" sur Spark Cloud permettant
 
//    a un autre logiciel de remettre le compteur "counter" à zéro.
 
//    a un autre logiciel de remettre le compteur "counter" à zéro.
 
//    Force la relecture de l'entrée digital et la mise à jour
 
//    Force la relecture de l'entrée digital et la mise à jour
//    de la variable "open"
+
//    de la variable "actif"
 
//
 
//
 
// Voyez le tutoriel MCHobby
 
// Voyez le tutoriel MCHobby
//  http://wiki.mchobby.be/index.php?title=Spark-Core-Switch-Magnetic
+
//  http://wiki.mchobby.be/index.php?title=Spark-Core-PIR
 
// Produit disponible chez MCHobby:
 
// Produit disponible chez MCHobby:
//  http://shop.mchobby.be/product.php?id_product=60
+
//  http://shop.mchobby.be/product.php?id_product=61
 
//
 
//
// contact magnétique/contact reed branché sur la broche D4
+
// Sortie du senseur PIR branché sur la broche D4
 
#define btnPin 4
 
#define btnPin 4
   Ligne 72 : Ligne 60 :     
// Créer les variables internes au programme
 
// Créer les variables internes au programme
int contactState; // etat du bouton
+
int pirState; // etat du senseur PIR
    
/* Exécuté une fois au démarrage */
 
/* Exécuté une fois au démarrage */
29 879

modifications

Menu de navigation