Accueil > ESP32, Matériel, NodeMCU > Utilisation du capteur BME280 en Micropython

Utilisation du capteur BME280 en Micropython

Le capteur BME280 est un capteur qui permet de mesurer la température, l’humidité et la pression atmosphérique :

La communication avec ce capteur peut s’effectuer via le bus i2c ou SPI. Dans l’article qui suit, nous allons utiliser le bus i2c pour communiquer avec.

Le câblage entre l’ESP32 Heltec Wifi Kit 32 et le capteur BME280 sera le suivant :

ESP32 Heltec                                   BME280

+3.3v                                                 +3.3v

GND                                                  GND

GPIO21 (SDA)                                  SDA

GPIO22 (SCL)                                   SCL

La première chose à effectuer est de télécharger la librairie du capteur à cette adresse; ensuite copier le fichier bme280.py sur l’ESP32 à l’aide de la commande ampy.

Voici un petit exemple d’utilisation de la librairie avec le module ESP32 Heltec Wifi Kit 32 :

#
# Utilisation de capteur BME280
#
# Materiel :
# Heltec Wifi Kit 32 (ESP32)
# OLED SSD1306 integre
# BME280
#
# Auteur : iTechnoFrance
#

import machine, time, ssd1306, bme280

# Activation ecran OLED integre
reset_oled = machine.Pin(16, machine.Pin.OUT) # GPIO16 --> Reset OLED
reset_oled.value(0) # reset OLED
time.sleep(0.050) # attente 50 ms
reset_oled.value(1) # active OLED

# Declaration I2C pour la gestion de l'afficheur OLED SSD1306
# GPIO15 --> SCL OLED, GPIO04 --> SDA OLED
i2c_oled = machine.I2C(scl=machine.Pin(15), sda=machine.Pin(4))
oled = ssd1306.SSD1306_I2C(128, 64, i2c_oled) # 128 x 64 pixels

# Declaration I2C pour la communication avec le capteur BME280
# GPIO21 --> SDA, GPIO22 --> SCL
i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21))
bme = bme280.BME280(mode=bme280.BME280_OSAMPLE_2, address=0x77, i2c=i2c)

while True:
    temperature, pression, humidite = bme.values
    oled.fill(0) # efface l'ecran
    oled.text("Mesure BME280", 20, 0)
    oled.text("Temp :", 0, 15)
    oled.text(temperature, 50, 15)
    oled.text("Humi :", 0, 25)
    oled.text(humidite, 50, 25)
    oled.text("Pres :", 0, 35)
    oled.text(pression, 50, 35)
    oled.show()
    time.sleep(10)

Le résultat est le suivant :

Publicités
Catégories :ESP32, Matériel, NodeMCU Étiquettes : ,
  1. Aucun commentaire pour l’instant.
  1. No trackbacks yet.

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :