Raspberry Pi et I2C Capteur de pression d’air BMP180

Pour les stations météorologiques et les projets similaires, il est souvent important de déterminer la pression atmosphérique. La façon de déterminer la température et l’humidité avec des capteurs a déjà été montrée dans des tutoriels précédents. À l’aide du baromètre BMP180, la pression atmosphérique (en hPa / bar) peut être déterminée via le bus I²C du Raspberry Pi.

Contrairement aux DHT11 / DHT22, le BMP180 ne peut pas mesurer l’humidité, mais la pression atmosphérique, qui à son tour ne peut pas être mesurée par les deux autres capteurs. Mais les deux peuvent également mesurer la température.

Accessoires

Le modèle précédent BMP085 a été fabriqué par Bosch. Dans ce tutoriel, j’utilise un modèle successeur, le BMP180, bien que la version précédente soit également compatible

Construction

En fonction du modèle (et du fabricant) que vous utilisez, l’étiquette peut être différente. J’essaie donc de donner une description générale. Au total, il ne faut que quatre broches du Raspberry Pi (3V3, GND, ligne de données SDA, horloge SCL).

Capteur Raspberry Pi
VCC 3V3 (Pin 1)
GND GND (Pin 6)
SCL SCL (pin 5)
SDA SDA (Pin 3)

Toutes les autres broches du capteur (telles que 3.3 ou XCLR) n’ont pas besoin d’être connectées.
Voici l’affectation des broches des Raspberry Pi:
RaspberyPI_GPIO_Configuration

 

Activation de l’I²C

Comme le capteur BMP180 fonctionne via le bus I²C, il doit d’abord être activé, car il est désactivé par défaut (si vous l’avez déjà fait, vous pouvez passer au chapitre suivant).

Nous traitons d’abord le fichier suivant :

sudo nano /etc/modules

À la fin du fichier, ces deux lignes sont ajoutées :

i2c-bcm2708
i2c-dev

Avec CTRL + O et CTRL + X, on sauvegarde et on sort.
Nous pouvons maintenant commenter les entrées de la liste noire (dans certaines versions, le fichier n’existe pas, alors il suffit de passer à la commande suivante) :

sudo nano /etc/modprobe.d/raspi-blacklist.conf

Ici, nous pouvons utiliser un hash # pour commenter les entrées correspondantes.

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

En outre, les versions rases à partir de 2015 nécessitent l’activation de Devietree. Cela peut être fait dans la configuration :

sudo raspi-config

Sous « Options avancées », vous activez le chargement automatique du bus I2C. Redémarrez votre Raspberry.

Nous installons maintenant trois autres outils nécessaires :

sudo apt-get install python-smbus i2c-tools git

Vous pouvez alors, au moyen de

i2cdetect -y 1

tester si tout a fonctionné. Un appareil doit être affiché. Pour moi, cela ressemble à ça :

pi@raspberrypi ~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77

 

Logiciel BMP180

La façon la plus simple de s’adresser au capteur est de prendre une bibliothèque existante qui possède déjà toutes les fonctions. Adafruit propose une telle bibliothèque, avec des exemples également pour d’autres capteurs.

Nous clonons le dépôt d’Adafruit (git doit être installé).

git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code/
git checkout 9ff733d59242a02f7ccd0222001ce80f6090a978 
cd Adafruit_BMP085

Alors nous pouvons déjà faire le premier test :

sudo python Adafruit_BMP085_example.py

Le script fournira un résultat similaire à celui-ci:

Temperature: 25.70 C
Pressure:    1007.08 hPa
Altitude:    50.83

Dans mon test, c’était 1007 hPa (ce qui correspond à 100700 Pascal ou 1,007 bar).

 

Bien sûr, nous pouvons maintenant intégrer le dossier dans un autre projet. Pour cela, il suffit de copier le fichier à inclure et d’éditer le fichier Adafruit_BMP085_example.py, qui ressemble à ceci :

Comme vous pouvez le voir, il existe plusieurs modes (Ultralowpower, etc.) que vous pouvez spécifier. Vous êtes maintenant libre de personnaliser le fichier à votre convenance et/ou de le modifier.

 

Leave a Comment

Your email address will not be published.