FEATHER-MICROPYTHON-BMP180

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

Le BMP180 de précision Bosch est la meilleure solution à petit prix pour mesurer la pression barométrique et la température. Comme la pression varie avec l'altitude, vous pouvez également utiliser ce senseur comme altimètre!

BMP180-intro-00.jpg
Crédit: AdaFruit Industries www.adafruit.com

Le senseur est souder sur une carte avec un un régulateur de tension 3.3V, un convertisseur de tension sur le bus I2C (level shifter) et des résistances pull-up sur les broches I2C.

Le BMP180 est la prochaine génération de senseur Bosch et remplace le célèbre BMP085. La bonne nouvelles c'est qu'il est totalement identique au BMP085 en ce qui concernen le FirmWare / Logiciel / Interfacing.

Cette carte est totalement compatible avec la logique 5V, et 3.3V grâce régulateur de tension 3.3V et Level Shifter I2C inclus sur le breakout. Vous pouvez aussi bien l'utiliser sur un Arduino (5v), un Raspberry-Pi (3.3v) ou ESP8266 (3.3v).

Quelques détails techniques:

  • Vin: 3 à 5V DC (continu)
  • Logique: 3 à 5V compliant (utilisable aussi bien en 3.3v qu'en 5v).
  • Gamme de mesure de pression: 300-1100 hPa (9000m à -500m sous le niveau de la mer)
  • Précision en pression: 0.03hPa / 0.25m
  • Précision en température: +-2°C
  • Température de fonctionnement: -40 à +85°C.
  • Précision sur température: +/- 2°C
  • Cette carte/puce utilise l'adresse I2C 7-bits 0x77.
  • Fiche technique du BMP180

Schéma

FEATHER-MICROPYTHON-BMP180.jpg

Installer

L'utilisation requière l'installation d'une bibliothèque spécifique. Vous trouvez celle-ci ici:

Download-icon.pngTéléchargez la bibliothèque bmp180

Vous devrez copier les fichiers suivant sur votre carte MicroPython

  • bmp180.py dans le répertoire racine.

Pour savoir comment copier vos fichiers sur votre carte MicroPython Feather ESP8266 Huzza, vous pouvez vous référer aux ressources suivantes:

Ampy

Tlogo-micropython-Debugger.jpg

Outil simplifié de transfert de fichiers et de contrôlez de carte depuis une connexion série. ESP8266 compatible.

RSHell

Tlogo-micropython-Debugger.jpg

Transférez des fichiers et contrôlez votre carte depuis une simple connexion série. ESP8266 compatible.

 

Tester

Nous allons nous connecter en WebREPL pour tester notre code. Vous pouvez également réaliser ce test en REPL Série via la liaison USB-Série (si celle-ci est disponible).

La connexion REPL et WEBRepl sont abordés dans nos tutoriels généraux ESP8266 sous MicroPython

# Utilisation du breakout BMP180 (ADA1603) avec Feather ESP8266 Python
#
# Shop: http://shop.mchobby.be/product.php?id_product=397
# Wiki: https://wiki.mchobby.be/index.php?title=MicroPython-Accueil#ESP8266_en_MicroPython

from bmp180 import BMP180
from machine import I2C, Pin

# Bus I2C
#   Ne pas utiliser la broche standard SCL (broche 5) car perturbe la
#   sequence de boot lorsque l'on utilise un bloc d'alim USB
# 
i2c = I2C( sda=Pin(4), scl=Pin(2), freq=20000 )

bmp180 = BMP180( i2c )

# 0 précision la plus basse, mesure rapide
# 3 précision la plus élevée; mesure plus lente
bmp180.oversample_sett = 2 

# Pression au niveau de la mer (en millibar * 100)
bmp180.baseline = 101325

# Température sur le BMP
temp = bmp180.temperature
print( "Temperature: %.2f deg.Celcius" % temp )

p = bmp180.pressure
print( "pressure: %.2f mbar" % (p/100) )
print( "pressure: %.2f hPa" % (p/100) )

# Altitude calculée a partir de la difference de pression 
# entre le niveau de la mer et "ici"
altitude = bmp180.altitude
print( "altitude: %.2f m" % altitude )

La pression PNM comme sur les stations météos

Cette section est importante car elle explique étape par étape comment afficher la pression comme celles affichées sur les stations météo de références (ou professionnelles).

Pour commencer, les stations météos affichent des pressions PNM (PNM: Pression Niveau Mer ou SLP: Sea Level Pressure).

La pression PNM c'est comme si on relevait la pression non pas à votre altitude réelle mais à une altitude correspondant au niveau de la mer. En gros, cela revient à creuser un trou en dessous de chez vous... jusqu'au niveau de la mer puis de relever cette pression au fond de ce trou. Avoir des pressions PNM (donc toutes à la même altitude - au même niveau-) c'est bien pratique pour déterminer les mouvements d'air des zones de pression la plus élevées vers les zones de pression plus faible.

Nous venons donc de dire qu'il "creuser un trou sous la maison pour revenir jusqu'au niveau de la mer". Pas besoin de faire un vrai trou, il suffit de connaître la hauteur de ce trou (donc notre altitude) puis d'ajouter la pression correspondant à cette colonne d'air.

Voici la marche à suivre:

  1. Relevez la pression hPa (ou mmbar) au niveau de la mer (sur une station météo de référence)
  2. saisissez cette valeur comme baseline (n'oubliez pas de multiplier par 100)
  3. Utilisez le senseur pour déterminer votre l'altitude.
  4. Calculer la valeur de compensation (colonne d'air) en hPa = hauteur-en-m / 8.3

Ensuite, vous pourrez relever la pression du senseur (sans vous préoccuper de la baseline) PUIS ajouter la valeur de compensation calculée -> Voilà! Vous avez la Pression PNM (celles affichées sur les stations météo de référence).

# pression moyenne au niveau de la mer (non essentielle pour Pression PNM)
p.baseline = 101325
# pression PNM 
p = bmp180.pressure + compensation
 

p contiendra alors la valeur de pression normalisée au niveau de la mer (PNM).

Par contre, l'altitude absolue ne sera plus mesurée fiablement (à moins de pouvoir faire une mise-à-jour de p.baseline régulièrement). Il sera toujours possible d'utiliser la valeur de l'altitude pour détecter une différence de niveau si votre senseur est embarqué sur un "ballon sonde". Dans le cas d'une station météo fixe, l'altitude ne sera plus d'une très grande utilité :-) ... c'est la pression PNM qui nous intéresse

La pression au niveau de la mer varie!

x

Encore Plus

Voyez:

Où acheter


Tutoriel réaliser par Meurisse D. pour MC Hobby SPRL

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.