Capteurs – Pression, température et altitude avec le BMP180

Si vous connaissez le CamJam EduKits, vous connaissez déjà quelques capteurs, comme le capteur de température à 1 fil, une résistance dépendante de la lumière et le mouvement avec le capteur infrarouge passif (PIR). Dans ce tutoriel, nous allons apprendre à ressentir le monde extérieur à l’aide d’un ensemble de capteurs numériques sur la petite carte BMP180.

Le diagramme de gauche montre le BMP180 d’Adafruit et celui de droite montre le type de BMP180 utilisé dans ce tutoriel. Ils font exactement la même chose les uns que les autres, bien que l’article Adafruit puisse être utilisé sur les systèmes 5V et 3.3v. Si vous utilisez l’Adafruit BMP180, assurez-vous d’utiliser la broche 3v3 et non la broche VIN du BMP180.

Adafruit BMP180blank

La BMP180 est une carte i2c, ce qui signifie qu’elle utilise le protocole i2c (prononcé ‘eye two see’ ou ‘eye squared see’) pour communiquer avec votre Raspberry Pi. L’avantage d’i2c est qu’il n’utilise que deux broches sur le Framboise Pi (plus la puissance et la masse) pour communiquer avec de nombreux appareils différents. Une broche transporte un signal d’horloge et l’autre transporte les données. Si vous souhaitez en savoir un peu plus sur le fonctionnement d’i2c, vous trouverez une description Site Wikipédia.

Le diagramme ci-dessous montre l’emplacement des broches i2c sur le Raspberry Pi.

blank

Utiliser i2c sur votre Raspberry Pi

La première chose que vous devez faire est de configurer le Raspberry Pi pour utiliser i2c. Simon Monk a écrit de très bonnes instructions sur la façon de configurer votre Raspberry Pi pour pouvoir utiliser i2c sur le Site d’Adafruit. Suivez les instructions complètes, notamment en vérifiant que tout a fonctionné en suivant également les instructions du manuel.

Brancher le BMP180

Pour connecter votre BMP180 à votre Raspberry Pi, vous aurez besoin d’une planche à pain et de quatre cavaliers femelle à mâle. Il est toujours préférable de Framboise Pi éteint avant d’y connecter quoi que ce soit, alors émettez ce qui suit et attendez que le voyant vert s’éteigne:

sudo shutdown -h now

Suivez maintenant le schéma ci-dessous pour connecter le BMP180 à votre Framboise Pi. Veuillez noter qu’il existe en fait plusieurs modèles différents pour les cartes BMP180. Le BMP180 fait référence à la puce, pas à la carte entière elle-même, vous pouvez donc constater que votre carte a 4, 5 ou six broches.

BMP180 à Raspberry Pi

Dans ce schéma, les fils de connexion sont connectés comme suit, Framboise Pi orienté comme indiqué ci-dessus:

  • Le cavalier rouge va de la broche 3v3 (alimentation 3,3 volts) du Raspberry Pi à la broche VCC du BMP180.
  • Le cavalier jaune va de la deuxième broche de droite sur la rangée supérieure du Raspberry Pi à la broche SDA du BMP180. Le BMP180 utilise ce fil pour communiquer avec le Framboise Pi.
  • Le cavalier bleu va de la troisième broche de droite sur la rangée supérieure du Raspberry Pi à la broche SCL du BMP180. Cette broche fournit un signal d’horloge (il s’allume et s’éteint à intervalles réguliers) qui est utilisé par les appareils i2c pour chronométrer leur communication avec le Framboise Pi.
  • Le cavalier noir passe de l’une des broches de terre (GND) du Raspberry Pi à la broche GND du BMP180.

Avant d’allumer quoi que ce soit, vérifiez à nouveau vos connexions. Il est peu probable que quelque chose de mauvais se produise, mais il est préférable de vérifier deux fois avant d’appliquer l’alimentation.

Utilisation du BMP180

Si tout a été installé correctement et que tout a été connecté correctement, vous êtes maintenant prêt à allumer votre Framboise Pi et commencez à voir ce que le BMP180 vous dit sur le monde qui vous entoure.

La première chose à faire est de vérifier que le Framboise Pi voit votre BMP180. Essayez ce qui suit dans une fenêtre de terminal:

sudo i2cdetect -y 1

Si vous recevez un message d’erreur et que vous avez un Raspberry Pi Model B très tôt, essayez:

sudo i2cdetect -y 0

Si la commande a fonctionné, vous devriez voir ce qui suit:

blank

Cela montre que le BMP180 est sur le canal «77».

Nous devons maintenant installer des bibliothèques pour que Python sache lire la sortie du BMP180. Les bibliothèques ont été écrites par Adafruit pour être utilisées avec le prédécesseur du BMP180, le BMP085, mais comme les puces ont été conçues pour être compatibles les unes avec les autres, les bibliothèques fonctionnent avec ce nouvel appareil.

Pour installer ces bibliothèques et les bibliothèques Python requises, tapez ce qui suit dans une fenêtre de terminal sur votre Framboise Pi:

    • Installez l’application GIT qui pourra récupérer le code du GitHub (un site Web utilisé pour stocker et contrôler le code de version):

sudo apt-get update
sudo apt-get install git build-essential python-dev python-smbus

    • Créez et déplacez-vous vers un répertoire qui contiendra votre code. Ce répertoire peut être appelé comme bon vous semble:

mkdir ~/BMP180Code
cd ~/BMP180Code

    • Téléchargez le référentiel GIT pour le BMP180. Cela téléchargera le contenu de la bibliothèque Adafruit Python à l’emplacement actuel:

git clone https://github.com/adafruit/Adafruit_Python_BMP.git

    • La bibliothèque doit maintenant être compilée pour que vous puissiez l’utiliser. Dans la même fenêtre de terminal que ci-dessus, exécutez ce qui suit:

cd Adafruit_Python_BMP
sudo python setup.py install

Vous êtes maintenant prêt à utiliser le BMP180.

Code simple

Le code pour utiliser votre BMP180 est très simple. L’exemple de code suivant peut être trouvé (avec plus de commentaires) dans Adafruit_Python_BMP / examples / simpletest.py. Vous pouvez le modifier en utilisant:

nano ~/BMP180Code/Adafruit_Python_BMP/examples/simpletest.py

Examinons le code. N’oubliez pas que le BMP085 est compatible avec le BMP180. La bibliothèque fait référence au BMP085

#!/usr/bin/python

import Adafruit_BMP.BMP085 as BMP085 # Imports the BMP library

# Créer un «objet» contenant les données du BMP180
capteur = BMP085.BMP085 ()

print 'Temp = {0:0.2f} *C'.format(sensor.read_temperature()) # Temperature in Celcius
print 'Pressure = {0:0.2f} Pa'.format(sensor.read_pressure()) # The local pressure
print 'Altitude = {0:0.2f} m'.format(sensor.read_altitude()) # The current altitude
print 'Sealevel Pressure = {0:0.2f} Pa'.format(sensor.read_sealevel_pressure()) # The sea-level pressure

Et c’est tout! Vous pouvez maintenant inclure ce petit capteur dans vos propres projets. Cela entre définitivement dans mon projet actuel.

Articles similaires

Bouton retour en haut de la page
Fermer