Modifications

Sauter à la navigation Sauter à la recherche
2 747 octets ajoutés ,  2 janvier 2017 à 11:48
Ligne 8 : Ligne 8 :     
== 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).
 +
 
 +
Pour finir, exécutez les commandes suivantes pour télécharger les dépendences et installer la bibliothèque:
    
  <nowiki>sudo apt-get update
 
  <nowiki>sudo apt-get update
Ligne 16 : Ligne 18 :  
sudo python setup.py install</nowiki>
 
sudo python setup.py install</nowiki>
   −
{{ADFImage|Rasp-Hack-BMP085-Python-Lib-01.png|480px}}
+
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 ==
Si vous utiliser un Pi version 2 (512 Mega de RAM) alors vous aurez besoin de changer l'adresse du bus I2C (puisque ce dernier est passé de la broche #0 à #1 dans la version 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.
 +
 
 +
Exécutez les commandes suivantes:
   −
Le code Adafruit_I2C.py est capable de détecter automatiquement la révision de votre Raspberry Pi.
+
<nowiki>cd examples
 +
sudo python simpletest.py</nowiki>
   −
Si pour une raison quelconque votre périphérique I2C ne répond pas, vous pouvez toujours HardCoder le numéro de broche à utiliser sur bus (''c'est une méthode que nous avons déjà utilisé chez MCHobby'').
+
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.  
   −
Editez le fichier Adafruit_I2C.py avec la commande ''nano Adafruit_I2C.py'' et changez la ligne suivante
+
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.
   −
<nowiki>def __init__(self, address, busnum=-1, debug=False):</nowiki>
+
Après avoir exécuté le script, vous devriez voir un affichage similaire à celui-ci:
   −
en
+
<syntaxhighlight lang="bash">
 +
Temp = 20.20 *C
 +
Pressure = 101667.00 Pa
 +
Altitude = -28.27 m
 +
Sealevel Pressure = 101665.00 Pa
 +
</syntaxhighlight>
   −
<nowiki>def __init__(self, address, busnum=1, debug=False):</nowiki>
+
== 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.
    +
Pour commencer, nous importons la bibliothèque avec cette commande:
   −
Une fois que vous avez téléchargé le code dans le bon répertoire, et que vous avez votre BMP raccordé correctement ALORS vous pouvez commencer à lire quelques données en utilisant la commande suivante (le pilote inclus un simple programme d'exemple):
+
<syntaxhighlight lang="python">
 +
import Adafruit_BMP.BMP085 as BMP085
 +
</syntaxhighlight>
   −
<nowiki>sudo python Adafruit_BMP085_example.py</nowiki>
+
Ensuite, une instance du senseur BMP085 est créé à l'aide de cette commande:
   −
Qui devrait produire un résultat similaire à ceci:
+
<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
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.
+
# 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>
   −
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:
+
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 le BMP085/BMP180 et utilise le mode STANDARD (valeur par défaut)
+
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):
# 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
+
<syntaxhighlight lang="python">
#  des lignes suivantes:
+
print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature())
# bmp = BMP085(0x77, 0) # Mode ULTRALOWPOWER (super basse consommation)
+
print 'Pressure = {0:0.2f} Pa'.format(sensor.read_pressure())
# bmp = BMP085(0x77, 1) # Mode STANDARD
+
print 'Altitude = {0:0.2f} m'.format(sensor.read_altitude())
# bmp = BMP085(0x77, 2) # Mode HIRES (haute résolution)
+
print 'Sealevel Pressure = {0:0.2f} Pa'.format(sensor.read_sealevel_pressure())
# bmp = BMP085(0x77, 3) # Mode ULTRAHIRES (Ultra haute résolution)
+
</syntaxhighlight>
   −
temp = bmp.readTemperature()  # Lecture de la température
+
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() # Lecture de la pression
  −
altitude = bmp.readAltitude() # Lecture de l'altitude
     −
print "Température: %.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 "Pression:    %.2f hPa" % (pressure / 100.0)
  −
print "Altitude:    %.2f" % altitude</nowiki>
      
{{Rasp-Hack-BMP085-TRAILER}}
 
{{Rasp-Hack-BMP085-TRAILER}}
30 894

modifications

Menu de navigation