samedi 11 juin 2016

Mesurer la pression atmosphérique avec BMP180 et Arduino

Dans cet article, je vais vous expliquer comment j'ai utilisé un capteur BMP180 pour mesurer la pression atmosphérique.  Pour tester le capteur, je l'ai placé à l'intérieur d'un récipient hermétique mis sous pression grâce à une pompe à vélo.

Le BMP180

Le BMP180 est un circuit intégré mis au point par Bosch Sensortec conçu pour mesurer la pression atmosphérique avec précision.  Typiquement, il est utilisé pour des observations météorologiques ou pour la détermination de l'altitude à partir de la pression.

Le circuit intégré est minuscule; pour nous faciliter la tâche, c'est important de nous procurer un breakout tout fait, qui pourra facilement être inséré dans une breadboard, ou branché à une carte Arduino. Sparkfun et Adafruit vendent leurs modèles au prix de 10 USD, alors que les modèles génériques fabriqués en Chine sont 4 fois moins chers sur eBay.

Le circuit

Le BMP180 utilise le protocole i2c, nous ne sommes donc pas surpris de constater qu'il comporte 4 connecteurs:
  • VIN doit être branché à la sortie 3,3 V ou 5 V de l'Arduino*
  • GND doit être branché à une des pins GND de l'Arduino
  • SCL doit être branché à l'entrée A5 de l'Arduino Uno**
  • SDA doit être branché à l'entrée A4 de l'Arduino Uno**
* Le module comporte un régulateur de tension permettant de l'alimenter à 5 V.  Mais j'ai fait tous mes tests avec une alimentation de 3,3 V, sans problème.

** Ces pins sont différentes pour certains modèles d'Arduino, comme par exemple Mega et Leonardo.

Bibliothèque Sparkfun

Plutôt qu'étudier la fiche technique du BMP180 afin de tout programmer moi-même, j'ai installé la bibliothèque conçue par Sparkfun.

Après avoir procédé à l'installation de cette bibliothèque, vous  pouvez jeter un coup d'oeil à l'exemple "SFE_BMP180_example" qui montre comment mesurer la température et la pression, en plus de calculer la pression au niveau de la mer en utilisant l'altitude.


Dispositif pour tester le capteur

Pour vérifier que le capteur fonctionnait adéquatement, j'ai construit un petit récipient dans lequel il était possible d'augmenter la pression grâce à une pompe conçue pour gonfler les ballons.


Le capteur BMP180 se trouve à l'intérieur du récipient, alors que l'Arduino est à l'extérieur:  les fils qui relient le BMP180 à l'Arduino passent par un petit trou, calfeutré avec de l'epoxy.


Voici le dispositif complet.  J'ai ajouté une brique par-dessus le récipient pour éviter que le couvercle s'ouvre trop tôt sous l'effet de la pression (un couvercle vissable aurait donné de meilleurs résultats).


Sketch

L'exemple "SFE_BMP180_example" fourni avec la bibliothèque affiche un certain nombre d'informations inutiles, et le délai de 5 secondes entre deux mesures consécutives ne convenait pas à mes besoins.  Je l'ai donc modifié pour qu'il n'affiche rien d'autre que la pression en hectopascals, en prenant deux mesures à chaque seconde.

D'après ce que j'ai compris, il est nécessaire de prendre une mesure de température avant de prendre la mesure de pression, c'est pourquoi j'ai laissé en place la fonction getTemperature même si je n'affiche pas la valeur mesurée.


Résultats

Voici ce que ça donne.  Au moment de la mesure, la pression atmosphérique était d'environ 1002 hPa, mais elle a grimpé jusqu'à 1059 hPa pendant que je pompais de l'air à l'intérieur du récipient.



Yves Pelletier   (TwitterFacebook)

Une autre application du capteur BMP180: flûte à bec MIDI

4 commentaires:

  1. Bravo mais nous esperond la voir à video merci infiniment

    RépondreSupprimer
  2. bonjour
    blog tres instructif, merci
    une question : pourquoi doit-on brancher le bpm180 sur le 3v3, le module integre un reg 662k 3v3 qui permet de l'alimenter en 5 volts ?

    RépondreSupprimer
    Réponses
    1. C'est vrai! J'ai fait tous mes tests à 3,3 V (sans problème), mais la présence du régulateur permet d'utiliser une alimentation de 5 V.

      Supprimer

Related Posts Plugin for WordPress, Blogger...