Modifications

Sauter à la navigation Sauter à la recherche
2 250 octets ajoutés ,  8 décembre 2014 à 11:59
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>
  
29 836

modifications

Menu de navigation