Ligne 180 : |
Ligne 180 : |
| | | |
| == Les petits curieux == | | == Les petits curieux == |
− | Soyons un peu plus curieux et désobéissant! Avant d'opter pour l'utilisation d'un montage avec filtrage, j'ai essayé de comprendre pourquoi mon Core prétendait qu'il faisait -20°C dans mon salon. | + | Soyons un peu plus curieux et désobéissant! Avant d'opter pour l'utilisation d'un montage avec filtrage, j'ai essayé de comprendre pourquoi mon Core prétendait qu'il faisait -20°C dans mon salon! |
| | | |
− | J'ai donc modifié le programme pour publier toutes les variables du programme sur l'API Spark Cloud | + | J'ai donc modifié le programme pour publier toutes les variables du programme sur l'API Spark Cloud et c'est là qu'on apprend des choses intéressantes. |
| | | |
| === Le code === | | === Le code === |
Ligne 246 : |
Ligne 246 : |
| } | | } |
| }</nowiki> | | }</nowiki> |
| + | |
| + | Il est également possible de lire les autres variables avec les requêtes CURL suivantes: |
| + | |
| + | <nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67/voltage -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki> |
| + | |
| + | <nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67/reading -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki> |
| + | |
| + | === Désobéissons === |
| + | Vous vous doutez certainement que votre programme Spark publie les éléments de votre interface sur Spark Cloud. |
| + | |
| + | C'est en faisant preuve de curiosité que j'ai remarqué qu'il était possible de consulter l'interface disponible en faisant une {{underline|requête CURL sur le Core (sans préciser l'API)}}. |
| + | |
| + | <nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67 -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki> |
| + | |
| + | Ce qui produit un résultat contenant une énumération de l'interface disponible sur votre Core. |
| + | |
| + | <nowiki>{ |
| + | "id": "54yyyyyyyyyyyyyyyyyyy67", |
| + | "name": "mch-demo", |
| + | "connected": true, |
| + | "variables": { |
| + | "temperature": "double", |
| + | "voltage": "double", |
| + | "reading": "int32" |
| + | }, |
| + | "functions": [], |
| + | "cc3000_patch_version": "1.29" |
| + | </nowiki> |
| + | |
| + | Comme vous pouvez le contaster, nous obtenons beaucoup d'informations utiles: |
| + | * '''id''': Identification de votre Core. Superflux à la base mais peut grandement faciliter l'écriture de votre code. |
| + | * '''name''': Le nom que vous avez donné à votre Core. En utilisant une nomenclature adéquate, vous pourriez identifier |
| + | * '''connected''': permet de savoir si votre Core est actuellement connecté sur Spark Cloud. |
| + | * '''variables''': contient les entrées (et type) correspondant aux {{underline|variables}} d'API déclarées dans notre programme avec <code>Spark.variable()</code> |
| + | * '''functions''': contient les entrées correspondant aux {{underline|fonctions}} d'API déclarées dans votre programme avec <code>Spark.function()</code> |
| | | |
| {{Spark-Core-Hacking-TRAILER}} | | {{Spark-Core-Hacking-TRAILER}} |
| | | |
| <small>Source: [http://docs.spark.io/examples/#measuring-the-temperature docs.spark.io/examples/#measuring-the-temperature]</small> | | <small>Source: [http://docs.spark.io/examples/#measuring-the-temperature docs.spark.io/examples/#measuring-the-temperature]</small> |