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:
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:
1 2 3 4 5 6 7 8 9 dix 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#! / usr / bin / python de Adafruit_BMP085 importation BMP085 # ================================================= ========================== # Exemple de code # ================================================= ========================== # Initialiser le BMP085 et utiliser le mode STANDARD (valeur par défaut) # bmp = BMP085 (0x77, debug = True) bmp = BMP085(0x77) # Pour spécifier un mode de fonctionnement différent, décommentez l’un des éléments suivants: # bmp = BMP085 (0x77, 0) # Mode ULTRALOWPOWER # bmp = BMP085 (0x77, 1) # Mode STANDARD # bmp = BMP085 (0x77, 2) # Mode HIRES # bmp = BMP085 (0x77, 3) # Mode ULTRAHIRES temp = bmp.readTemperature() # Lire le niveau de pression barométrique actuel pression = bmp.readPressure() # Pour calculer l’altitude sur la base d’une pression moyenne estimée au niveau de la mer # (1013,25 hPa) appeler la fonction comme suit, mais ce ne sera pas très précis altitude = bmp.readAltitude() # Pour spécifier une altitude plus précise, entrez le niveau moyen moyen de la mer # niveau de pression. Par exemple, si le niveau de pression actuel est de 1023,50 hPa # entrez 102350 car nous incluons deux décimales dans la valeur entière # altitude = bmp.readAltitude (102350) impression « Température:% .2f C » % temp impression « Pression:% .2f hPa » % (pression / 100,0) impression « Altitude:% .2f » % altitude |
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.