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}} |