Accueil > GNU/LINUX & RASPBERRY PI > Raspberry & BME280 : mesure de température, pression et humidité (...)

Raspberry & BME280 : mesure de température, pression et humidité relative

dimanche 6 novembre 2016, par thebault

Caractéristiques du capteur

JPEG - 99.3 ko

Remarque  : dans la suite, nous allons utiliser le bus I2C pour communiquer avec le capteur.

Rôle des broches.

Broche fonction
Vcc alimentation ( 3.6V max)
GND masse
SDI Données. A relier à SDA dans le cas du bus I2C
SCK Horloge (clock). A relier à SCL dans le cas du bus I2C
CSB permet de passer du mode SPI au mode I2C. Par défaut, CSB=1 donc mode I2C. Si CSB=0 au démarrage, alors le mode SPI est utilisé
SD0 choix de l’adresse I2C. Si SD0=0, alors l’adresse est 0x76, si SD0=1, alors l’adresse est 0x77

Branchements

Dans les branchements suisvants, SD0=0 donc l’adresse du capteur sur le bus I2C sera 0x76

JPEG - 348.8 ko

Installation sur debian Jessie

  • activer le support i2c via raspi-config sur le raspberry Pi dans un terminal :
    sudo raspi-config

Aller dans "9 Advanced Options" puis "A6 I2C " puis "back" et "Finish"pour activer le support au niveau du noyau.

PNG - 49.9 ko
PNG - 38.4 ko
  • installer les outils i2c pour la ligne de commande

I2ctools n’est pas indispensable mais il permet de vérifier la présence du capteur en ligne de commande

sudo apt-get install python-smbus
sudo apt-get install i2c-tools
  • tester la présence du capteur

sudo i2cdetect -y 1
On obtient le résultat suivant, ce qui montre que l’adresse est bien 0x76 lorsque SD0=0 (relié à GND).

JPEG - 33.4 ko

Si on avait relié SD0 à 3.3V (SD0=1), on aurait eu 0x77 pour adresse du capteur :

JPEG - 32.8 ko
  • installer le programme de test

On va utiliser le programme développée par Matt Hawkins http://www.raspberrypi-spy.co.uk/2016/07/using-bme280-i2c-temperature-pressure-sensor-in-python/

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bme280.py

Pour tester le programme (si le capteur est bien à l’adresse 0x76) avec 1 seule mesure.
python bme280.py

JPEG - 19.4 ko

Si on souhaite utiliser l’adresse 0x77, il faut modifier la ligne suivante du programme bme.py :"DEVICE = 0x77 # Default device I2C address"

Programme python

On va utiliser le programme précédent comme une bibliothèque.
Il faudra placer notre programme python dans le même répertoire que le fichier "bme.py" que l’on a téléchargé.
Pour cela, on ajoute "import bme280" dans notre programme.

Le programme suivant permet la mesure de la pression, température et humidité relative toute les 2 secondes.

  1. # -*- coding: utf-8 -*-
  2. import bme280
  3. import time
  4.  
  5. while True:
  6. temperature,pression,humidite = bme280.readBME280All()
  7. print "Temp : ", temperature, "°C \t P : ", pression, "hPa \t HR : ", humidite, "%"
  8. time.sleep(2)

Télécharger

JPEG - 57.5 ko
SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL