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

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(13 versions intermédiaires par le même utilisateur non affichées)
Ligne 2 : Ligne 2 :
  
 
== Introduction ==
 
== Introduction ==
 
+
{{bloc-etroit|text=Le code Python du BMP085 pour Raspberry Pi est disponible sur le le dépôt GitHub [https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code Adafruit-Raspberry-Pi-Python-Code]
Le code Python du BMP085 pour Raspberry Pi est disponible sur le le dépôt GitHub [https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code 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.
 
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 ==
 
== Télécharger le code depuis GitHub ==
La façon la plus simple d'obtenir le code est de brancher un câble réseau et de cloner le code directement le code en utilisant 'git' ('git' est installé par défaut sur la plupart des distribution). Exécutez simplement les commandes suivante depuis un répertoire approprié (ex. "/home/pi"):
+
Utiliser le senseur BMP sensor avec Raspberry Pi ou Beaglebone Black est facile grâce à la [https://github.com/adafruit/Adafruit_Python_BMP 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 {{fname|/home/pi}} sur Raspberry Pi ou {{fname|/root}} sur Beaglebone Black).
  
<nowiki>git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
+
Pour finir, exécutez les commandes suivantes pour télécharger les dépendences et installer la bibliothèque:
$ cd Adafruit-Raspberry-Pi-Python-Code
 
$ cd Adafruit_BMP085</nowiki>
 
  
{{ADFImage|Rasp-Hack-BMP085-Python-Lib-01.png|480px}}
+
<nowiki>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</nowiki>
 +
 
 +
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 ==
 
== Tester la bibliothèque ==
If you're using a version 2 Pi (512 M) then you'll have to change the I2C bus as it flipped from #0 to #1 in the version 2.
+
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 {{fname|examples}} des sources de la bibliothèque. Essayez d'exécuter l'exemple {{fname|simpletest.py}} pour effectuer une lecteur sur le senseur puis afficher les résultats à l'écran.
Edit Adafruit_I2C.py with nano Adafruit_I2C.py and change this line
+
 
 +
Exécutez les commandes suivantes:
 +
 
 +
<nowiki>cd examples
 +
sudo python simpletest.py</nowiki>
 +
 
 +
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.  
  
<nowiki>def __init__(self, address, bus=smbus.SMBus(0), debug=False):</nowiki>
+
Note: la commande doit être exécutée en tant que superutilisateur à l'aide de {{fname|sudo}} pour pouvoir avoir accès au bus I2C matériel.
  
to
+
Après avoir exécuté le script, vous devriez voir un affichage similaire à celui-ci:
  
<nowiki>def __init__(self, address, bus=smbus.SMBus(1), debug=False)</nowiki>
+
<syntaxhighlight lang="bash">
 +
Temp = 20.20 *C
 +
Pressure = 101667.00 Pa
 +
Altitude = -28.27 m
 +
Sealevel Pressure = 101665.00 Pa
 +
</syntaxhighlight>
  
 +
== Sous la capot ==
 +
Ouvez le code de {{fname|simpletest.py}} dans un éditeur de texte pour voir comment utiliser la bibliothèque pour lire le senseur BMP.
  
Once the code has be downloaded to an appropriate folder, and you have your BMP085 properly connected, you can start reading some data via the following command (the driver includes a simple demo program):
+
Pour commencer, nous importons la bibliothèque avec cette commande:
  
<nowiki>sudo python Adafruit_BMP085_example.py</nowiki>
+
<syntaxhighlight lang="python">
 +
import Adafruit_BMP.BMP085 as BMP085
 +
</syntaxhighlight>
  
Which should give you something similar to the following:  
+
Ensuite, une instance du senseur BMP085 est créé à l'aide de cette commande:
  
 +
<syntaxhighlight lang="python">
 +
# 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()
  
{{ADFImage|Rasp-Hack-BMP085-Python-Lib-02.png|480px}}
+
# Pour pouvez egalement modifier le numero du bus a utiliser:
 +
#sensor = BMP085.BMP085(busnum=2)
  
== Modifier le code ==
+
# Vous pouvez egalement modifier le mode du BMP085 vers l'un des modes supporte
The BMP085 library is organized as two seperate classes. There is one class to handle the low-level SMBus/I2C calls (Adafruit_I2C), and another class that handles the BMP085-specific functionality.
+
# 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)
 +
</syntaxhighlight>
  
The library includes the basic example shown above, but you can also customize the code a bit to provide full debug output if you're having any problems, change the address, or use the BMP085 in one of it's four different modes (ULTRALOWPOWER, STANDARD, HIRES, and ULTRAHIRES), as seen in the commented out initializors in the sample code below:
+
Vous pouvez constater dans les commentaires qu'il existe différentes façons de créer une instance du senseur.
  
<nowiki>#!/usr/bin/python
+
Par défaut, si vous ne passez aucun paramètre alors la bibliothèque essaye d'identifier le bon bus I2C pour le périphérique. Sur un Raspberry-Pi, la bibliothèque utilise le numéro de révision du Pi pour sélectionner le numéro de bus approprié (0 ou 1). Comme le Beaglebone Black dispose de plusieurs bus I2C, la bibliothèque utilise le bus 1 par défaut (exposé sur les broches P9_19 pour SCL et P9_20 pour SDA). Vous pouvez fixer explicitement le numéro de bus en passant un paramètre busnum .
  
from Adafruit_BMP085 import BMP085
+
{{underline|'''Si vous utilisez BeagleBone Black avec Ubuntu'''}} alors vous pourriez avoir besoin d'utiliser le busnum 2 pour utiliser les broches I2C P9_19 & P9_20. Modifiez simplement la ligne pour qu'elle ressemble à '''sensor = BMP.BMP085(busnum=2)'''
  
# ===========================================================================
+
Par défaut, la bibliothèque utilise le senseur en mode standard. Il est possible de choisir explicitement le mode utilisé en passant un paramète {{fname|mode}} --voyez la [http://www.adafruit.com/datasheets/BMP085_DataSheet_Rev.1.0_01July2008.pdf fiche technique du BMP] pour plus d'information sur les modes disponibles.
# Example Code
 
# ===========================================================================
 
  
# Initialise the BMP085 and use STANDARD mode (default value)
+
Une fois l'instance du senseur BMP créée, vous pouvez lire les valeur en appelant les fonctions {{fname|read_temperature}}, {{fname|read_pressure}}, {{fname|read_altitude}} et {{fname|read_sealevel_pressure}} (comme présenté ci-dessous):
# bmp = BMP085(0x77, debug=True)
 
bmp = BMP085(0x77)
 
  
# To specify a different operating mode, uncomment one of the following:
+
<syntaxhighlight lang="python">
# bmp = BMP085(0x77, 0) # ULTRALOWPOWER Mode
+
print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature())
# bmp = BMP085(0x77, 1) # STANDARD Mode
+
print 'Pressure = {0:0.2f} Pa'.format(sensor.read_pressure())
# bmp = BMP085(0x77, 2) # HIRES Mode
+
print 'Altitude = {0:0.2f} m'.format(sensor.read_altitude())
# bmp = BMP085(0x77, 3) # ULTRAHIRES Mode
+
print 'Sealevel Pressure = {0:0.2f} Pa'.format(sensor.read_sealevel_pressure())
 +
</syntaxhighlight>
  
temp = bmp.readTemperature()
+
C'est tout ce que vous aurez besoin de faire pour lire les différentes valeurs du senseur avec la bibliothèque python!
pressure = bmp.readPressure()
 
altitude = bmp.readAltitude()
 
  
print "Temperature: %.2f C" % temp
+
Pour un autre exemple d'utilisation de la bibliothèque BMP, vous pouvez vous pencher sur le script {{fname|google_spreadsheet.py}} . Ce code est très similaire au projet [https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/overview Logger les valeurs d'un senseur DHT dans une feuille de calcul Google Docs] (''Adafruit, Anglais''). Le script {{fname|google_spreadsheet.py}} utilise un senseur BMP pour écrire la température, la pression et l'altitude dans une feuille de calcul Google Docs. Voyez la page [https://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/connecting-to-googles-docs-updated comment configurer Google Docs] (''Adafruit, anlais'') pour les différents détails concernant la création de la feuille de calcul, le nom utilisateur, mot de passe et nom de la feuille de calcul.  
print "Pressure:    %.2f hPa" % (pressure / 100.0)
 
print "Altitude:    %.2f" % altitude</nowiki>
 
  
 
{{Rasp-Hack-BMP085-TRAILER}}
 
{{Rasp-Hack-BMP085-TRAILER}}

Version actuelle datée du 2 janvier 2017 à 11:48


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)

Vous pouvez constater dans les commentaires qu'il existe différentes façons de créer une instance du senseur.

Par défaut, si vous ne passez aucun paramètre alors la bibliothèque essaye d'identifier le bon bus I2C pour le périphérique. Sur un Raspberry-Pi, la bibliothèque utilise le numéro de révision du Pi pour sélectionner le numéro de bus approprié (0 ou 1). Comme le Beaglebone Black dispose de plusieurs bus I2C, la bibliothèque utilise le bus 1 par défaut (exposé sur les broches P9_19 pour SCL et P9_20 pour SDA). Vous pouvez fixer explicitement le numéro de bus en passant un paramètre busnum .

Si vous utilisez BeagleBone Black avec Ubuntu alors vous pourriez avoir besoin d'utiliser le busnum 2 pour utiliser les broches I2C P9_19 & P9_20. Modifiez simplement la ligne pour qu'elle ressemble à sensor = BMP.BMP085(busnum=2)

Par défaut, la bibliothèque utilise le senseur en mode standard. Il est possible de choisir explicitement le mode utilisé en passant un paramète mode --voyez la fiche technique du BMP pour plus d'information sur les modes disponibles.

Une fois l'instance du senseur BMP créée, vous pouvez lire les valeur en appelant les fonctions read_temperature, read_pressure, read_altitude et read_sealevel_pressure (comme présenté ci-dessous):

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())

C'est tout ce que vous aurez besoin de faire pour lire les différentes valeurs du senseur avec la bibliothèque python!

Pour un autre exemple d'utilisation de la bibliothèque BMP, vous pouvez vous pencher sur le script google_spreadsheet.py . Ce code est très similaire au projet Logger les valeurs d'un senseur DHT dans une feuille de calcul Google Docs (Adafruit, Anglais). Le script google_spreadsheet.py utilise un senseur BMP pour écrire la température, la pression et l'altitude dans une feuille de calcul Google Docs. Voyez la page comment configurer Google Docs (Adafruit, anlais) pour les différents détails concernant la création de la feuille de calcul, le nom utilisateur, mot de passe et nom de la feuille de calcul.


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