Sommaire
- LE MATERIEL
- Le capteur TMP102: Low-Power Digital Temperature Sensor With SMBus™ and Two-Wire Serial Pages
- Les cartes Netduino
- Les cartes FEZ
- LE LOGICIEL
- LIENS
- La page du projet MicroToolsKit
1. LE MATERIEL
1.1 Le capteur TMP102: Low-Power Digital Temperature Sensor With SMBus™ and Two-Wire Serial Pages.
- Présentation
- Schéma interne du composant
- Adressage
- Registres
- Documentation: pdf
- Distributeur: Go Tronic
Le capteur TMP102 mesure la température avec une précision de 0,5°C de -40°C à 125°C et communique l'information via une interface I²C.
Module TMP102
SparkFun |
Documentation - Schéma |
1.2 Les cartes Netduino
Secret Labs
- Microcontrôleur : STM32F405RG 32 bits à architecture Cortex-M4 cadencé à 168 MHz.
- RAM : 164KB+.
- Flash : 1408KB.
- Port Ethernet : 10/100Mbps (Wifi:802.11b/g/n)*.
- E/S numériques : 22
- Entrées analogiques : 6
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
- Compatibilité : shield Arduino, Gadgeteer
Netduino 3 Ethernet | Netduino 3 wifi* |
- Sites à consulter : Netduino
- Distributeurs : Mouser Electronics
1.3 Les cartes FEZ
GHI Electonics (Extrait)
- Microcontrôleur : 180 MHz 32-bit ARM Cortex-M4.(120 MHz 32-bit ARM Cortex-M3 )*
- SoC(SoM)* : G80 G120*
- RAM : 156 KB(2.87 MB)*.
- Flash : 256 KB (13.67 MB)*.
- E/S numériques : 53(60)*
- Entrées analogiques : 16(8)*
- Réseaux : Ethernet TCP/IP, WiFi, and SSL.
- Stockage: carte µSD
- IDE : Microsoft Visual Studio
- Framework : .NETMF 4.3
- Langages de programmation : C#, VB
PANDA III | COBRA III* (compatible Gadgeteer) |
- Sites à consulter : GHI ELECTRONICS
- Distributeurs : Mouser Electronics
- Schémas : Panda III, Cobra III
2. LE LOGICIEL
2.1 Contenu du répertoire proposé au téléchargement
Le répertoire proposé au téléchargement (au format zip ou tar.gz) contient la solution TMP102 composée :
- Du projet TMP102 : le code source de la classe TMP102.
- Du projet Netduino: un exemple d'utilisation de cette classe avec une carte Netduino.
- Du projet FezPanda: un exemple d'utilisation de cette classe avec une carte Panda III.
2.2 Le NuGet MicroToolsKit
La dernière version compilée de la classe TMP102 se situe dans la bibliothèque MicroToolsKit disponible sur nuget.org.
Organisation des classes contenues dans MicroToolsKit [lien]
Important : Installer ce nuget dans le projet Visual Studio simplifie l'utilisation de la classe.
2.3 Le wiki .NetMF v4.3
-
Un wiki est dédié au
microframework .Net v4.3. Il propose au téléchargement :
- Des exemples de code pour les cartes Netduino, GHI FEZ (Panda 3 , BrainPad etc.) . [lien]
2.4 Description et utilisation de la classe TMP102
- Rôle: Contrôler un capteur de température TMP102 via un bus I²C.
- Assembly: MicroToolsKit (disponible sur nuget.org)
- Espace de noms: Microtoolskit.Hardware.Sensors
Création d'un projet avec l'IDE Visual Studio
- Créer un nouveau projet en suivant la démarche décrite dans le chapitre "Premier programme en C# étape par étape" avec une carte Netduino ou avec une carte Fez (Panda 3, BrainPad etc). [lien]
- Utiliser le gestionnaire de paquets NuGet pour ajouter l'assembly MicroToolsKit ( nuget.org) dans le répertoire Références du projet.(clic droit sur Références dans le gestionnaire de solutions de Visual Studio puis Gérer les packages NuGet... Installer le paquet.)
- Ajouter l'espace de noms Microtoolskit.Hardware.Sensors dans l'en-tête du fichier source.
- Créer un objet en utilisant le constructeur TMP102 et les paramètres appropriés.
- Initialiser le circuit avec la méthode Init et les paramètres appropriés.
- Utiliser la méthode ReadAsCelcius pour déclencher une mesure de température et obtenir le résultat en °C.
Exemple
using System.Threading; using Microsoft.SPOT; using Microtoolskit.Hardware.Sensors; namespace test { public class Program { public static void Main() { float temperature = 0; TMP102 ModuleMesureTemp = new TMP102(); ModuleMesureTemp.Init(); while (true) { temperature = ModuleMesureTemp.ReadAsCelcius(); Debug.Print("Temp=" + temperature.ToString("F1") + "degC"); Thread.Sleep(1000); } } } }
Constructeurs
Syntaxe | Description | |
TMP102( ADD0 pin, UInt16 Frequency ) | Instancie un objet "TMP102 ".
pin : égal à ADD0.GND => SLA= 0x48. (par défaut) Frequency: >Féquence du signal SCL = 100kHz. (par défaut) Exemple TMP102 ModuleMesureTemp = new TMP102(); |
Enumérations
Syntaxe | Description | |
ADD0 |
Si la broche ADD0 est connecté à :
|
|
AlertPolarity |
AlertPolarity permet de régler l'état actif de la broche ALERT.
|
|
ConsecutiveFaults |
Une erreur se produit lorsque la température dépasse les limites fixées par l'utilisateur dans les registres THIGH et TLOW. ConsecutiveFaults active la broche ALERT si un, deux, quatre ou six dépassements se sont produits.
|
|
ConversionRate |
Fréquence de conversion
|
|
Registers |
Sélection des registres du TMP102
|
|
ThermostatMode |
|
Méthodes
Syntaxe | Description | |
bool Init( ADD0 addressSelect) |
Initialise le composant avec :
Exemple ModuleMesureTemp.Init(); |
|
bool Init(
[ ADD0 addressSelect = ADD0.Gnd ], [ bool oneShotMode = false ], [ AlertPolarity alertPolarity = AlertPolarity.activeHight ], [ ConversionRate conversionRate = ConversionRate.four_Hz ], [ ThermostatMode thermostatMode = ThermostatMode.ComparatorMode ]) |
Initialise le composant avec :
|
|
float ReadAsCelcius() | Renvoi la température de l'air en °C.
Exemple temperature = ModuleMesureTemp.ReadAsCelcius(); |
|
float ReadAsFahrenheit() | Renvoi la température de l'air en °F.
Exemple temperature = ModuleMesureTemp.ReadAsFahrenheit(); |
|
float ReadAsKelvin() | Renvoi la température de l'air en K.
Exemple temperature = ModuleMesureTemp.ReadAsKelvin(); |
|
float ReadAsRankine() | Renvoi la température de l'air en °R.
Exemple temperature = ModuleMesureTemp.ReadAsRankine(); |