Capteur de pression d’air Raspberry Pi et I2C BMP180

Capteur de pression dair Raspberry Pi et I2C BMP180
Capteur de pression dair Raspberry Pi et I2C BMP180

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

Contrairement au DHT11 / DHT22, le BMP180 ne peut pas mesurer l’humidité, mais la pression de l’air, 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 BMP180, bien que la version précédente soit également compatible

Construction

Selon le modèle (et le fabricant) que vous utilisez, l’étiquette peut être différente. J’essaie donc de donner une description générale. Dans l’ensemble, seules quatre broches du Raspberry Pi sont nécessaires (3V3, GND, ligne de données SDA, horloge SCL).

Capteur Tarte aux Raspberry PI
VCC 3V3 (broche 1)
GND GND (broche 6)
SCL SCL (broche 5)
SDA SDA (broche 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 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

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

i2c-bcm2708
i2c-dev

Avec CTRL + O et CTRL + X, nous enregistrons et quittons.
Maintenant, nous pouvons commenter les entrées de la liste noire (dans certaines versions, le fichier n’existe pas, passez simplement à la commande suivante):

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

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

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

De plus, les versions Raspbian à 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 PI.

Maintenant, nous installons trois autres outils nécessaires:

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

Ensuite, vous pouvez au moyen de

i2cdetect -y 1

tester si tout fonctionnait. Un périphérique doit être affiché. Pour moi, cela ressemble à ceci:

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

Le moyen le plus simple d’adresser le 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 à 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

Ensuite, nous pouvons déjà faire le premier test:

sudo python Adafruit_BMP085_example.py

Le script fournira une sortie similaire à celle-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 fichier dans un autre projet. Pour cela, nous copions uniquement le fichier à inclure et modifions le 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 guise et / ou de le modifier.

  • AZDelivery 3 x GY-68 BMP180 Capteur Numérique pour Pression Barométrique, Température et l'Altitude. Compatible avec Arduino et Raspberry Pi incluant Un E-Book!
    ✅ AZ-Delivery GY-68 / BMP180 Digital Barometric Pressure Temperature et l'Altitude Sensor Module Board pour Raspberry Pi a gamme de mesure de pression de 300 à 1100hpa, altitude de 9000 m à -500 m au-dessus du niveau de la mer et de la température de mesure plage de -40°C à +85°C. ✅ La tension de fonctionnement du module capteur GY-68 / BMP180 est de 1,8 V à 3,6 V. ✅ Les dimensions du module de capteur numérique de pression barométrique, de température et d'altitude AZ GY-68 / BMP180 sont approximativement (L x l x H) : 13 mm x 10 mm x 2,6 mm. ✅ Le GY-68/BMP180 est basé sur le capteur Bosch BMP180 et est nettement plus précis, plus économe en énergie et plus petit que le modèle précédent BMP085. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery 5 x GY-68 BMP180 Capteur Numérique pour Pression Barométrique, Température et l'Altitude. Compatible avec Arduino et Raspberry Pi incluant Un E-Book!
    ✅ AZ-Delivery GY-68 / BMP180 Digital Barometric Pressure Temperature et l'Altitude Sensor Module Board pour Raspberry Pi a gamme de mesure de pression de 300 à 1100hpa, altitude de 9000 m à -500 m au-dessus du niveau de la mer et de la température de mesure plage de -40°C à +85°C. ✅ La tension de fonctionnement du module capteur GY-68 / BMP180 est de 1,8 V à 3,6 V. ✅ Les dimensions du module de capteur numérique de pression barométrique, de température et d'altitude AZ GY-68 / BMP180 sont approximativement (L x l x H) : 13 mm x 10 mm x 2,6 mm. ✅ Le GY-68/BMP180 est basé sur le capteur Bosch BMP180 et est nettement plus précis, plus économe en énergie et plus petit que le modèle précédent BMP085. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.