Ligne 150 : |
Ligne 150 : |
| // et stocker la valeur dans notre variable statique 'temperature' | | // et stocker la valeur dans notre variable statique 'temperature' |
| temperature = (voltage - 0.5) * 100; | | temperature = (voltage - 0.5) * 100; |
| + | }</nowiki> |
| + | |
| + | |
| + | == 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. |
| + | |
| + | J'ai donc modifié le programme pour publier toutes les variables du programme sur l'API Spark Cloud |
| + | |
| + | === Le code === |
| + | Le code ci-dessous déclare toutes les variables utilisées par le programme... variables que je publie sur l'API Spark Cloud. |
| + | |
| + | <nowiki>// ----------------- |
| + | // Lecture de la température |
| + | // version des petits curieux. |
| + | // ----------------- |
| + | |
| + | // Créer une variable qui pour stocker la valeur |
| + | // de la température |
| + | double temperature = 0.0; |
| + | double voltage = 0.0; |
| + | int reading = 0; |
| + | |
| + | void setup() |
| + | { |
| + | // Enregistrer la variable sur Spark Cloud |
| + | Spark.variable("temperature", &temperature, DOUBLE); |
| + | Spark.variable("voltage", &voltage, DOUBLE ); |
| + | Spark.variable("reading", &reading, INT ); |
| + | // Active la broche A7 comme entrée (broche |
| + | // sur laquelle le senseur de température est connecté) |
| + | pinMode(A0, INPUT); |
| + | } |
| + | |
| + | void loop() |
| + | { |
| + | reading = 0; |
| + | voltage = 0.0; |
| + | |
| + | // Lire continuellement la valeur du senseur. De sorte que |
| + | // lorsque nous faison un appel sur l'API pour lire la valeur |
| + | // nous obtenons la dernière valeur disponible. |
| + | reading = analogRead(A0); |
| + | |
| + | // La lecture analogique retourne une valeur entre 0 et 4095 |
| + | // pour une tension entre 0 et 3.3V. |
| + | // Calculer la tension correspondante |
| + | voltage = (reading * 3.3) / 4095; |
| + | |
| + | // Calculer la valeur de la température (formule pour un TMP36) |
| + | // et stocker la valeur dans notre variable statique 'temperature' |
| + | temperature = (voltage - 0.5) * 100; |
| + | }</nowiki> |
| + | |
| + | === Lecture des valeurs === |
| + | Pour lire les différentes valeurs, nous pouvons utiliser les trois requêtes CURL suivantes: |
| + | |
| + | <nowiki>curl -G https://api.spark.io/v1/devices/54yyyyyyyyyyyyyyyyyyy67/temperature -d access_token=1dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxf8<nowiki> |
| + | |
| + | Ce qui offre le résultat suivant: |
| + | <nowiki>{ |
| + | "cmd": "VarReturn", |
| + | "name": "temperature", |
| + | "result": 23.413919413919405, |
| + | "coreInfo": { |
| + | "last_app": "", |
| + | "last_heard": "2014-12-08T11:55:38.292Z", |
| + | "connected": true, |
| + | "deviceID": "54yyyyyyyyyyyyyyyyyyy67" |
| + | } |
| }</nowiki> | | }</nowiki> |
| | | |