Différences entre versions de « Rasp-Hack-BMP085-Python-Lib »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 107 : Ligne 107 :
 
print "Pression:    %.2f hPa" % (pressure / 100.0)
 
print "Pression:    %.2f hPa" % (pressure / 100.0)
 
print "Altitude:    %.2f" % altitude</nowiki>
 
print "Altitude:    %.2f" % altitude</nowiki>
 +
 +
You can see from the comments there are a few ways to create the sensor instance. By default if you pass no parameters the library will try to find the right I2C bus for your device. For a Raspberry Pi the library will detect the revision number and use the appropriate bus (0 or 1). For a Beaglebone Black there are multiple I2C buses so the library defaults to bus 1, which is exposed with pin P9_19 as SCL clock and P9_20 as SDA data. You can explicitly set the bus number by passing it in the busnum parameter.
 +
 +
'''Note if you're using a BeagleBone Black with the Ubuntu operating system you might need to change busnum to 2 to use the P9_19 & P9_20 pin I2C connectio'''n.  Just change the line to look like: '''sensor = BMP.BMP085(busnum=2)'''
 +
 +
The library will also choose by default to use the BMP sensor's standard operation mode. You can override this by passing a mode parameter with an explicit mode value--check the [http://www.adafruit.com/datasheets/BMP085_DataSheet_Rev.1.0_01July2008.pdf fiche technique du BMP] for more information on its modes.
 +
 +
Once the BMP sensor instance is created, you can read its values by calling the {{fname|read_temperature}}, {{fname|read_pressure}}, {{fname|read_altitude}}, and {{fname|read_sealevel_pressure}} functions like below:
 +
 +
<syntaxhighlight lang="python">
 +
print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature())
 +
print 'Pressure = {0:0.2f} Pa'.format(sensor.read_pressure())
 +
print 'Altitude = {0:0.2f} m'.format(sensor.read_altitude())
 +
print 'Sealevel Pressure = {0:0.2f} Pa'.format(sensor.read_sealevel_pressure())
 +
</syntaxhighlight>
 +
 +
That's all you need to do to read BMP sensor values using the Adafruit Python BMP library!
 +
 +
For another example of using the BMP library, check out the google_spreadsheet.py example. This code is similar to the [https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview DHT sensor Google Docs spreadsheet logging code] (''Adafruit, Anglais''), but is modified to use the BMP sensor and write the temperature, pressure, and altitude to a Google Docs spreadsheet. Check out the [https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/connecting-to-googles-docs-updated page on configuring Google Docs] to see more details on how to create the spreadsheet and configure the username, password, and spreadsheet name.
  
 
{{Rasp-Hack-BMP085-TRAILER}}
 
{{Rasp-Hack-BMP085-TRAILER}}

Version du 2 janvier 2017 à 11:28


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 code Python du BMP085 pour Raspberry Pi est disponible sur le le dépôt GitHub Adafruit-Raspberry-Pi-Python-Code

Même si une partie des pilotes et classes sont toujours en cours d'évolution -- AdaFruit investit beaucoup de temps pour accéder à la couche matériel de façon aussi simple que possible -- le code actuel est un excellent point de départ pour comprendre comment accéder aux périphériques SMBus/I2C de votre Pi, et obtenir des données depuis votre BMP085/BMP180.

Télécharger le code depuis GitHub

Utiliser le senseur BMP sensor avec Raspberry Pi ou Beaglebone Black est facile grâce à la bibliothèque Adafruit Python BMP. Pour commencer, assurez vous que votre nano-ordinateur est allumé et dispose d'un accès à internet (via une connexion filaire ou WiFi). Connectez vous ensuite sur une session terminal et déplacez vous dans le répertoire où vous téléchargerez la bibliothèque (comme /home/pi sur Raspberry Pi ou /root sur Beaglebone Black).

Pour finir, exécutez les commandes suivantes pour télécharger les dépendences et installer la bibliothèque:

sudo apt-get update
sudo apt-get install git build-essential python-dev python-smbus
git clone https://github.com/adafruit/Adafruit_Python_BMP.git
cd Adafruit_Python_BMP
sudo python setup.py install

Si git ou python-smbus sont déjà installés, vous pouvez ignorer les messages vous informant que les paquets sont déjà installés.

Tester la bibliothèque

Une fois la bibliothèque installée, elle sera accessible pour n'importe quel script python exécuté sur la plateforme. Vous pouvez trouver quelques scripts d'exemples dans le sous-répertoire examples des sources de la bibliothèque. Essayez d'exécuter l'exemple simpletest.py pour effectuer une lecteur sur le senseur puis afficher les résultats à l'écran.

Exécutez les commandes suivantes:

cd examples
sudo python simpletest.py

Si vous recevez un message d'erreur alors vérifiez si la bibliothèque s'est correctement installée à l'étape précédente. N'hésitez pas ré-installer la bibliothèque.

Note: la commande doit être exécutée en tant que superutilisateur à l'aide de sudo pour pouvoir avoir accès au bus I2C matériel.

Après avoir exécuté le script, vous devriez voir un affichage similaire à celui-ci:

Temp = 20.20 *C
Pressure = 101667.00 Pa
Altitude = -28.27 m
Sealevel Pressure = 101665.00 Pa

Sous la capot

Ouvez le code de simpletest.py dans un éditeur de texte pour voir comment utiliser la bibliothèque pour lire le senseur BMP.

Pour commencer, nous importons la bibliothèque avec cette commande:

import Adafruit_BMP.BMP085 as BMP085

Ensuite, une instance du senseur BMP085 est créé à l'aide de cette commande:

# Constructeur par defaut qui utilise le bus I2C par defaut.
#
# Pour le Raspberry Pi, cela signifie que le senseur doit être branché sur
# le seul bus I2C exposé sur le connecteur GPIO du Raspberry Pi.
# La bibliothèque identifiera le numero de BUS depuis le numero de revision
# du Pi.
#
# Sur le Beaglebone Black tle bibliotheque  utilise le bus 1 par defaut.
# Ce bus est expose avec SCL = P9_19 et SDA = P9_20.
sensor = BMP085.BMP085()

# Pour pouvez egalement modifier le numero du bus a utiliser:
#sensor = BMP085.BMP085(busnum=2)

# Vous pouvez egalement modifier le mode du BMP085 vers l'un des modes supporte 
# BMP085_ULTRALOWPOWER, BMP085_STANDARD, BMP085_HIGHRES ou BMP085_ULTRAHIGHRES. 
# Voyez la fiche technique du BMP085 pour plus de details sur la signification
# de chacun de ces mode (precision et consommation sont les elements principaux
# qui distincte ces modes). Le mode par defaut est STANDARD.
#sensor = BMP085.BMP085(mode=BMP085.BMP085_ULTRAHIGHRES)

Modifier le code

La bibliothèque BMP085 (BMP180) est organisé en deux classes séparée. Il y a une classe qui gère la communication de bas niveau sur le SMBus/I2C (Adafruit_I2C), et une autre classe pour gérer les fonctionnalités spécifiques au BMP085/BMP180.

La bibliothèque inclus l'exemple ci-dessous, mais vous pouvez également adapter un peu le code pour obtenir des informations de débug (utile au cas où vous auriez des problèmes), ou modifier l'adresse ou utiliser le BMP085/180 dans l'un des 4 différents modes (ULTRALOWPOWER, STANDARD, HIRES, and ULTRAHIRES). Voyez les différents commentaires dans le code ci-dessous:

#!/usr/bin/python

from Adafruit_BMP085 import BMP085

# ===========================================================================
# Example Code
# ===========================================================================

# Initialise le BMP085/BMP180 et utilise le mode STANDARD (valeur par défaut)
# L'adresse du BMP sur le BUS est ici 0x77.
# bmp = BMP085(0x77, debug=True)
bmp = BMP085(0x77) 

# Pour utiliser un mode différent avec le BMP, vous pouvez décommenter l'une
#   des lignes suivantes:
# bmp = BMP085(0x77, 0)  # Mode ULTRALOWPOWER (super basse consommation)
# bmp = BMP085(0x77, 1)  # Mode STANDARD
# bmp = BMP085(0x77, 2)  # Mode HIRES (haute résolution)
# bmp = BMP085(0x77, 3)  # Mode ULTRAHIRES (Ultra haute résolution)

temp = bmp.readTemperature()  # Lecture de la température
pressure = bmp.readPressure() # Lecture de la pression
altitude = bmp.readAltitude() # Lecture de l'altitude

print "Température: %.2f C" % temp
print "Pression:    %.2f hPa" % (pressure / 100.0)
print "Altitude:    %.2f" % altitude

You can see from the comments there are a few ways to create the sensor instance. By default if you pass no parameters the library will try to find the right I2C bus for your device. For a Raspberry Pi the library will detect the revision number and use the appropriate bus (0 or 1). For a Beaglebone Black there are multiple I2C buses so the library defaults to bus 1, which is exposed with pin P9_19 as SCL clock and P9_20 as SDA data. You can explicitly set the bus number by passing it in the busnum parameter.

Note if you're using a BeagleBone Black with the Ubuntu operating system you might need to change busnum to 2 to use the P9_19 & P9_20 pin I2C connection. Just change the line to look like: sensor = BMP.BMP085(busnum=2)

The library will also choose by default to use the BMP sensor's standard operation mode. You can override this by passing a mode parameter with an explicit mode value--check the fiche technique du BMP for more information on its modes.

Once the BMP sensor instance is created, you can read its values by calling the read_temperature, read_pressure, read_altitude, and read_sealevel_pressure functions like below:

print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature())
print 'Pressure = {0:0.2f} Pa'.format(sensor.read_pressure())
print 'Altitude = {0:0.2f} m'.format(sensor.read_altitude())
print 'Sealevel Pressure = {0:0.2f} Pa'.format(sensor.read_sealevel_pressure())

That's all you need to do to read BMP sensor values using the Adafruit Python BMP library!

For another example of using the BMP library, check out the google_spreadsheet.py example. This code is similar to the DHT sensor Google Docs spreadsheet logging code (Adafruit, Anglais), but is modified to use the BMP sensor and write the temperature, pressure, and altitude to a Google Docs spreadsheet. Check out the page on configuring Google Docs to see more details on how to create the spreadsheet and configure the username, password, and spreadsheet name.


Source: Using BMP085 with Raspberry Pi. Créé par Kevin Townsend pour AdaFruit Industries.

Traduction et corrections réalisée par Meurisse D pour MCHobby.be.

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.

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com