Modifications

Sauter à la navigation Sauter à la recherche
670 octets ajoutés ,  24 octobre 2015 à 13:16
aucun résumé de modification
Ligne 29 : Ligne 29 :     
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'''.
 
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'''.
 +
 +
== 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).
 +
 +
[[fichier:SPARK-MAGNETIC-SWITCH_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.
 
   
 
   
 
== Code ==
 
== Code ==
Ligne 40 : Ligne 47 :  
// 1) De détecter l'ouverture de contact reed (switch magnetic) avec
 
// 1) De détecter l'ouverture de contact reed (switch magnetic) 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 Particle Cloud
 
//    (le nombre d'ouverture) permettant à un autre logiciel comme
 
//    (le nombre d'ouverture) permettant à un autre logiciel comme
 
//    un SmartPhone de détecter l'événement.
 
//    un SmartPhone de détecter l'événement.
Ligne 47 : Ligne 54 :  
//    Pratique par exemple pour la cabane de jardin, chambre froide,  
 
//    Pratique par exemple pour la cabane de jardin, chambre froide,  
 
//    box du cheval (s'il est de sortie... donc porte ouverte), etc
 
//    box du cheval (s'il est de sortie... donc porte ouverte), etc
// 3) Offrir une fonction "reset" sur Spark Cloud permettant
+
// 3) Offrir une fonction "reset" sur Particle 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
Ligne 70 : Ligne 77 :  
void setup()
 
void setup()
 
{
 
{
   // Enregistrer la variable compteur sur Spark Cloud
+
   // Enregistrer la variable compteur sur Particle Cloud
 
   Spark.variable("counter", &counter, INT );
 
   Spark.variable("counter", &counter, INT );
   // Publie l'état du contact  dans la variable "close" sur Spark Cloud
+
   // Publie l'état du contact  dans la variable "close" sur Particle Cloud
 
   Spark.variable("close", &contactState, INT );
 
   Spark.variable("close", &contactState, INT );
 
    
 
    
   // Enregistrer la fonction "reset compteur" sur Spark Cloud
+
   // Enregistrer la fonction "reset compteur" sur Particle Cloud
 
   Spark.function("reset", resetCounter );
 
   Spark.function("reset", resetCounter );
 
    
 
    
Ligne 129 : Ligne 136 :  
     return 1; // retour de valeur pour l'API
 
     return 1; // retour de valeur pour l'API
 
}</nowiki>
 
}</nowiki>
  −
== 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).
  −
  −
[[fichier:SPARK-MAGNETIC-SWITCH_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.
      
== Faire un appel d'API avec CURL ==
 
== Faire un appel d'API avec CURL ==
Nous allons maintenant tester notre programme... nous allons donc faire des appels d'API sur Spark Cloud.
+
Nous allons maintenant tester notre programme... nous allons donc faire des appels d'API sur Particle Cloud.
    
Pour rappel, nous avons deux API dans notre programme:
 
Pour rappel, nous avons deux API dans notre programme:
Ligne 157 : Ligne 157 :  
   "name": "counter",
 
   "name": "counter",
 
   "result": 5,
 
   "result": 5,
 +
  "coreInfo": {
 +
    "last_app": "",
 +
    "last_heard": "2014-12-31T15:53:55.238Z",
 +
    "connected": true,
 +
    "deviceID": "0123456789abcdef"
 +
  }
 +
}</nowiki>
 +
 +
=== L'état du contact ===
 +
Pour commencer, nous allons récupérer l'état du contact magnétique en utilisant curl (voyez nos précédents tutoriels concernant CURL).
 +
 +
<nowiki>curl -G https://api.spark.io/v1/devices/0123456789abcdef/close -d access_token=123412341234</nowiki>
 +
 +
Ce qui produit le résultat ci-dessous, où vous pouvez constater que le contact est actuellement ouvert (a priori, la porte est ouverte):
 +
 +
<nowiki>{
 +
  "cmd": "VarReturn",
 +
  "name": "close",
 +
  "result": 1,
 
   "coreInfo": {
 
   "coreInfo": {
 
     "last_app": "",
 
     "last_app": "",
Ligne 166 : Ligne 185 :     
=== Réinitialiser le compteur ===
 
=== Réinitialiser le compteur ===
Idéalement votre programme utilisant l'API Spark devrait prendre la valeur du compteur... puis surveiller le changement de cette valeur.
+
Idéalement votre programme utilisant l'API Particle devrait prendre la valeur du compteur... puis surveiller le changement de cette valeur.
    
Si le compteur augmente... c'est que l'on a ouvert le contact (la porte) :-)
 
Si le compteur augmente... c'est que l'on a ouvert le contact (la porte) :-)
Ligne 172 : Ligne 191 :  
Restons pragmatique... cette façon de faire n'est pas forcement confortable.  
 
Restons pragmatique... cette façon de faire n'est pas forcement confortable.  
   −
En conséquence, nous avons ajouté une fonction '''reset''' sur Spark Cloud pour réinitialiser le compteur (ps: j'ai volontairement laissé le paramètre "params", même s'il est vide).
+
En conséquence, nous avons ajouté une fonction '''reset''' sur Particle Cloud pour réinitialiser le compteur (ps: j'ai volontairement laissé le paramètre "params", même s'il est vide).
    
  <nowiki>curl https://api.spark.io/v1/devices/0123456789abcdef/reset -d access_token=123412341234 -d params=</nowiki>  
 
  <nowiki>curl https://api.spark.io/v1/devices/0123456789abcdef/reset -d access_token=123412341234 -d params=</nowiki>  
Ligne 186 : Ligne 205 :  
}</nowiki>
 
}</nowiki>
   −
La valeur 1 est retournée par l'exécution de la fonction sur le Spark... mais le compteur sera bien à zéro!  
+
La valeur 1 est retournée par l'exécution de la fonction sur le Particle... mais le compteur sera bien à zéro!  
    
{{Spark-Core-Hacking-TRAILER}}
 
{{Spark-Core-Hacking-TRAILER}}
29 837

modifications

Menu de navigation