lundi 29 mai 2017

Capteur de pression BMP180 et STM32 Nucleo

Aujourd'hui, je vous explique comment utiliser un capteur de pression barométrique BMP180 branché à une carte STM32 Nucleo que nous programmerons au moyen de mbed (si vous préférez utiliser un Arduino, lisez plutôt cet autre article).

Le capteur BMP180 utilise le protocole i2c pour transmettre la pression atmosphérique et la température.  Il peut évidemment être utilisé pour effectuer des mesures météorologiques, mais on peut également s'en servir pour déterminer indirectement l'altitude.  Il n'y a pas longtemps, je vous ai parlé de la fabrication d'une flûte à bec MIDI qui utilisait ce capteur pour détecter le souffle du flûtiste.

Le circuit:

On peut se procurer à faible coût un module BMP180 prêt à l'utilisation.  Le module comporte 4 connecteurs (2 connecteurs pour l'alimentation du module, et 2 connecteurs pour la transmission des données par le protocole i2c).



Les connections sont les suivantes:

VIN du BMP180:  3V3 du STM32 Nucleo
GND du BMP180:  GND du STM32 Nucleo
SCL du BMP180:  SCL/D15 du STM32 Nucleo
SDA du BMP180:  SDA/D14 du STM32 Nucleo



Importation du script dans mbed

J'ai trouvé sur mbed un programme et une bibliothèque qui m'ont donné d'excellents résultats, je ne vois donc aucune raison de vous proposer autre chose.



A) À l'intérieur du compilateur mbed, vous cliquez sur le bouton "Import" (en haut à gauche).
B) Cliquez sur l'onglet "Programs"
C) Dans le champ de recherche, écrivez "BMP180" et cliquez sur le bouton "Search".
D) Dans la liste des résultats de recherche, sélectionnez le programme "BMP_example" par Kevin Gillepsie.
E) Cliquez le bouton "Import!" à droite.

Si vous préférez, vous pouvez également importer le script à partir de sa page web.

Petit pépin:  le projet importé ne comporte pas le fichier "mbed.h", pourtant indispensable à son exécution!


Remède simple:  vous allez dans un autre projet stocké sur votre espace mbed (ou vous en créez un), vous y copier le document "mbed.h", et vous le collez dans BMP_180_example:


Vous pouvez maintenant compiler le programme et le téléverser sur votre carte Nucleo.

Résultats:

Le script de Kevin Gillepsie envoie de façon répétitive, par communication série, la pression en Pascals et la température en degrés Celsius.

Dans un premier test, j'ai enfermé le capteur BMP180 dans un récipient muni d'une petite ouverture (une petite coquille de Kinder Surprise) et j'ai soufflé à l'intérieur afin d'augmenter la pression.  J'ai utilisé le moniteur série de l'IDE Arduino pour capter les résultats.

Dans la liste ci-dessous, on peut voir que la pression augmente légèrement pendant que je souffle (lignes au milieu de la liste).  L'air sortant de ma bouche étant légèrement plus chaud que l'air ambiant, la température a également augmenté.



Ensuite, j'ai laissé le capteur au congélateur pendant quelques minutes, puis que l'ai ressorti à la température ambiante:  on peut constater que la température est beaucoup plus faible que précédemment, mais qu'elle augmente pendant que le capteur se réchauffe.



Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire