Différences entre versions de « Spark-Core-TMP36 »
Ligne 33 : | Ligne 33 : | ||
== Le code == | == Le code == | ||
Voici le code proposé par Spark que nous avons traduit pour faciliter la compréhension. | Voici le code proposé par Spark que nous avons traduit pour faciliter la compréhension. | ||
+ | |||
+ | Notez que ce montage utilise le deuxième schéma de raccordement (lecture sur la broche analogique A7 et filtrage). | ||
<nowiki>// ----------------- | <nowiki>// ----------------- | ||
− | // | + | // Lecture de la température |
// ----------------- | // ----------------- | ||
− | // | + | // Créer une variable qui pour stocker la valeur |
+ | // de la température | ||
double temperature = 0.0; | double temperature = 0.0; | ||
void setup() | void setup() | ||
{ | { | ||
− | // | + | // Enregistrer la variable sur Spark Cloud |
Spark.variable("temperature", &temperature, DOUBLE); | Spark.variable("temperature", &temperature, DOUBLE); | ||
− | // | + | // Active la broche A7 comme entrée (broche |
− | // | + | // sur laquelle le senseur de température est connecté) |
pinMode(A7, INPUT); | pinMode(A7, INPUT); | ||
} | } | ||
Ligne 56 : | Ligne 59 : | ||
double voltage = 0.0; | double 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(A7); | reading = analogRead(A7); | ||
− | // | + | // 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; | 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; | temperature = (voltage - 0.5) * 100; | ||
}</nowiki> | }</nowiki> |
Version du 4 décembre 2014 à 12:00
En cours de traduction/élaboration. |
Mesurer la température
Jusqu'ici nous avons appris comment envoyer des commandes personnalisée à note Core et comment contrôler la matériel.
Mais comment lire des données sur notre Core?
Dans cet exemple, nous allons brancher un senseur de températuresur le Core et lire des valeurs via Internet (avec un navigateur Internet).
Contrairement à l'envoi de commande, la valeur sera lisible en utilisant une simple requête WEB (de type GET).
Montage
Montage typique
Crédit: Particle.IO www.particle.io
Le TMP36 est un senseur de température très facile à trouver. Il s'agit d'un périphérique analogique (la tension en sortie du senseur dépend de la température). Ce senseur est également inclus dans le Spark Core Maker Kit!
Vous pouvez télécharger la fiche technique ici.
Montage avec Filtrage
Crédit: Particle.IO www.particle.io
Si vous prêtez attention au plan de montage, vous noterez que le senseur est alimenté à l'aide de la broche 3.3V* à la place de la sortie standard 3.3V. C'est parce que la sortie 3.3V* offre une tension filtrée (via un filtre LC), idéal pour les application analogique comme celle-ci.
Si les mesures que vous obtenez sont inconsistance (ou paraissent parasitées), ajoutez une capacité céramique de 0.01µF (10nF) entre l'entrée analogique (A7 dans ce cas) et la masse/GND. Ideally, the sensor should be placed away from the Core so that the heat dissipated by the Core does not affect the temperature readings.
Le code
Voici le code proposé par Spark que nous avons traduit pour faciliter la compréhension.
Notez que ce montage utilise le deuxième schéma de raccordement (lecture sur la broche analogique A7 et filtrage).
// ----------------- // Lecture de la température // ----------------- // Créer une variable qui pour stocker la valeur // de la température double temperature = 0.0; void setup() { // Enregistrer la variable sur Spark Cloud Spark.variable("temperature", &temperature, DOUBLE); // Active la broche A7 comme entrée (broche // sur laquelle le senseur de température est connecté) pinMode(A7, INPUT); } void loop() { int reading = 0; double 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(A7); // 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; }
Faire un appel API
L'appel d'API ressemble à ceci
GET /v1/devices/{DEVICE_ID}/temperature
Voici un exemple de requête Curl, Core_ID est 0123456789abcdef et un Access Token 123412341234.
Notre tuto sur la LED internet explique comment identifier votre CORE_ID et votre ACCESS TOKEN.
curl -G https://api.spark.io/v1/devices/0123456789abcdef/temperature -d access_token=123412341234
Le -G de la commande curl indique que nous voulons utiliser une requête de type GET.
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.