ESP8266 sous MicroPython - utiliser un senseur BMP180
Faisant suite à l'article d'hier, nous allons nous pencher sur l'utilisation du BMP180 (senseur de pression) avec un ESP8266 reflashé sous MicroPython.
Introduction au BMP180
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!
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 concerne 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:
Installer la bibliothèque
Vous aurez besoin du fichier bmp180.py pour pouvoir utiliser ce senseur.
Voyez ce point du tutoriel de MCHobby pour trouver et installer le fichier sur votre ESP8266.
Code de test
La pression PNM
Si vous voulez réaliser une station météo à partir d'un BMP180, vous aurez besoin de calculer la pression PNM à partir de la pression relevée.
Nous avons abordé ce point dans notre publication d'hier.
Notre tutoriel BMP180 avec ESP8266 sous MicroPython reprend ce point en détail.
Encore plus
Voici quelques autres points abordés dans notre tutoriel.
La pression varie au niveau de la mer!!!
Une valeur standard de la pression au niveau de la mer est de 1013.25 mbar (ou 1013.25 hPa).
Cependant, cette valeur varie en fonction des conditions atmosphérique et de la quantité de vapeur d'eau dans l'air.
Par exemple, ce jour, la pression est de 1002.00 hPa à la Panne (En bordure de mer, Belgique). La Belgique étant un petit territoire relativement plat, la variation de pression à la mer est forcement un élément plus important qu'ailleurs.
Cette valeur est importante si vous avez besoin de relever votre altitude avec une certaine précision en vue de calculer la colonne d'air de compensation (pour calculer les pressions PNM)
J'ai donc corrigé ma baseline comme suit (valeur en hPa * 100):
Vous pouvez facilement prendre connaissance de cette pression en consultant un site météo local.
Je vous propose ce lien vers meteobelgique.be
Le senseur ne donne pas la bonne altitude
Voyez ce point de notre tutoriel.
La pression atmosphérique semble incorrecte
Voyez ce point de notre tutoriel.
Tutoriel
Où acheter
Introduction au BMP180
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 disponible chez MCHobby |
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 concerne 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: compatible 3 à 5V (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
Source: ce tutoriel MCHobby |
Vous aurez besoin du fichier bmp180.py pour pouvoir utiliser ce senseur.
Voyez ce point du tutoriel de MCHobby pour trouver et installer le fichier sur votre ESP8266.
Code de test
# 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
Si vous voulez réaliser une station météo à partir d'un BMP180, vous aurez besoin de calculer la pression PNM à partir de la pression relevée.
Nous avons abordé ce point dans notre publication d'hier.
Notre tutoriel BMP180 avec ESP8266 sous MicroPython reprend ce point en détail.
Encore plus
Voici quelques autres points abordés dans notre tutoriel.
La pression varie au niveau de la mer!!!
Une valeur standard de la pression au niveau de la mer est de 1013.25 mbar (ou 1013.25 hPa).
Cependant, cette valeur varie en fonction des conditions atmosphérique et de la quantité de vapeur d'eau dans l'air.
Par exemple, ce jour, la pression est de 1002.00 hPa à la Panne (En bordure de mer, Belgique). La Belgique étant un petit territoire relativement plat, la variation de pression à la mer est forcement un élément plus important qu'ailleurs.
Cette valeur est importante si vous avez besoin de relever votre altitude avec une certaine précision en vue de calculer la colonne d'air de compensation (pour calculer les pressions PNM)
J'ai donc corrigé ma baseline comme suit (valeur en hPa * 100):
bmp180.baseline = 100200
Vous pouvez facilement prendre connaissance de cette pression en consultant un site météo local.
Je vous propose ce lien vers meteobelgique.be
Le senseur ne donne pas la bonne altitude
Voyez ce point de notre tutoriel.
La pression atmosphérique semble incorrecte
Voyez ce point de notre tutoriel.
Tutoriel
Où acheter
- BMP180 - mesure de pression et température
- Feather ESP8266 Huzzah
- Huzzah ESP8266 WiFi breakout
- La gamme MicroPython
can i put on this on a def function?
RépondreSupprimerYes, for sure!
RépondreSupprimer