Différences entre versions de « Spark-Core-Switch-Magnetic »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 37 : Ligne 37 :
 
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 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 ==
 +
Nous allons maintenant tester notre programme... nous allons donc faire des appels d'API sur Spark Cloud.
 +
 +
Pour rappel, nous avons deux API dans notre programme:
 +
* '''counter''' (variable) - permet de savoir combien de fois le contact magnétique à été ouvert.
 +
* '''reset''' (function) - sans paramètre, permet de réinitialiser le compteur à 0.
 +
 +
Dans les exemples Curl ci-dessous, le Core_ID est fixé à 0123456789abcdef et l'Access Token fixé à 123412341234, notre tuto sur la LED internet explique [[Spark-Core-NetLED#Faire_une_requ.C3.AAte_sur_l.27API|comment identifier votre CORE_ID et votre ACCESS TOKEN]].
 +
=== Le compteur ===
 +
Pour commencer, nous allons récupérer le résultat du compteur en utilisant curl (voyez nos précédents tutoriels concernant CURL).
 +
 +
<nowiki>curl -G https://api.spark.io/v1/devices/0123456789abcdef/counter -d access_token=123412341234</nowiki>
 +
 +
Ce qui produit le résultat ci-dessous, où vous pouvez constater que nous avons ouvert 5 fois le contact:
 +
 +
<nowiki>{
 +
  "cmd": "VarReturn",
 +
  "name": "counter",
 +
  "result": 5,
 +
  "coreInfo": {
 +
    "last_app": "",
 +
    "last_heard": "2014-12-31T15:53:55.238Z",
 +
    "connected": true,
 +
    "deviceID": "0123456789abcdef"
 +
  }
 +
}</nowiki>
 +
 +
=== 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.
 +
 +
Si le compteur augmente... c'est que l'on a ouvert le contact (la porte) :-)
 +
 +
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).
 +
 +
<nowiki>curl https://api.spark.io/v1/devices/0123456789abcdef/reset -d access_token=123412341234 -d params=</nowiki>
 +
 +
Ce qui produit le résultat suivant:
 +
 +
<nowiki>{
 +
  "id": "0123456789abcdef",
 +
  "name": "mch-demo",
 +
  "last_app": null,
 +
  "connected": true,
 +
  "return_value": 1
 +
}</nowiki>
 +
 +
La valeur 1 est retournée par l'exécution de la fonction sur le Spark... mais le compteur sera bien à zéro!
 +
 +
{{Spark-Core-Hacking-TRAILER}}
  
 
{{Spark-Core-Hacking-TRAILER}}
 
{{Spark-Core-Hacking-TRAILER}}

Version du 3 janvier 2015 à 21:18


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Switch Magnétique

Aussi appelé contact magnétique, disponible ici, ce contact utilise un interrupteur reed (Wikipédia) et un aimant pour activer un contact.

Un contact magnétique est constitué de deux parties.

  1. Un aimant
  2. Le contact magnétique (aussi appelé Reed switch).

ReedSwitch.jpg

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").
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 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.

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).

SPARK-MAGNETIC-SWITCH bb.jpg

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

Nous allons maintenant tester notre programme... nous allons donc faire des appels d'API sur Spark Cloud.

Pour rappel, nous avons deux API dans notre programme:

  • counter (variable) - permet de savoir combien de fois le contact magnétique à été ouvert.
  • reset (function) - sans paramètre, permet de réinitialiser le compteur à 0.

Dans les exemples Curl ci-dessous, le Core_ID est fixé à 0123456789abcdef et l'Access Token fixé à 123412341234, notre tuto sur la LED internet explique comment identifier votre CORE_ID et votre ACCESS TOKEN.

Le compteur

Pour commencer, nous allons récupérer le résultat du compteur en utilisant curl (voyez nos précédents tutoriels concernant CURL).

curl -G https://api.spark.io/v1/devices/0123456789abcdef/counter -d access_token=123412341234

Ce qui produit le résultat ci-dessous, où vous pouvez constater que nous avons ouvert 5 fois le contact:

{
  "cmd": "VarReturn",
  "name": "counter",
  "result": 5,
  "coreInfo": {
    "last_app": "",
    "last_heard": "2014-12-31T15:53:55.238Z",
    "connected": true,
    "deviceID": "0123456789abcdef"
  }
}

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.

Si le compteur augmente... c'est que l'on a ouvert le contact (la porte) :-)

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).

curl https://api.spark.io/v1/devices/0123456789abcdef/reset -d access_token=123412341234 -d params= 

Ce qui produit le résultat suivant:

{
  "id": "0123456789abcdef",
  "name": "mch-demo",
  "last_app": null,
  "connected": true,
  "return_value": 1
}

La valeur 1 est retournée par l'exécution de la fonction sur le Spark... mais le compteur sera bien à zéro!


Source: Particle Core Examples créé par Particle.IO.

Traduction (et augmentation de contenu) réalisée par Meurisse D pour MCHobby.be - Translated (and enhanced) by Meurisse D. for MCHobby.be

Traduit avec l'autorisation de Particle.IO - Translated with the permission from Particle.IO - Particle.IO

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.


Source: Particle Core Examples créé par Particle.IO.

Traduction (et augmentation de contenu) réalisée par Meurisse D pour MCHobby.be - Translated (and enhanced) by Meurisse D. for MCHobby.be

Traduit avec l'autorisation de Particle.IO - Translated with the permission from Particle.IO - Particle.IO

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.