BME280

tools
tools/BME280.h
tool

Gestion du capteur environnemental BME280 Cette classe encapsule un capteur BME280 (température, pression, humidité, altitude). L’initialisation est volontairement séparée de la construction afin de laisser le contrôle total à l’utilisateur.

Méthodes publiques

Méthode Description Paramètres Retour
BME280()
BME280();
Constructeur Le capteur n’est pas initialisé ici. /
begin()
begin(uint8_t address = 0x76);
Initialise le capteur BME280 / address: Adresse I2C du capteur (ex: 0x76) true
true si l’initialisation réussit, false sinon /
getTemperature()
getTemperature() const;
Lit la température / Température
Température en degrés Celsius /
getPressure()
getPressure() const;
Lit la pression atmosphérique / Pression
Pression en hPa /
getHumidity()
getHumidity() const;
Lit l’humidité relative / Humidité
Humidité en % /
getAltitude()
getAltitude(float localPressure) const;
Calcule l’altitude / localPressure: Pression locale au niveau de la mer (hPa) Altitude
Altitude en mètres /
getStatus()
getStatus() const {
Retourne l'état du capteur. / DEVICE_OK
DEVICE_OK si begin() a réussi, DEVICE_ERROR_INIT sinon. /

Méthodes privées


            begin(115200);;
println("Erreur d'initialisation du BME280 !");;
while (1);;
getTemperature();;
getPressure();;
getHumidity();;
getAltitude(1013.25);;
print("Temp: ");;
print(temperature);;
println(" °C");;
print("Pression: ");;
print(pressure);;
println(" hPa");;
print("Humidité: ");;
print(humidity);;
println(" %");;
print("Altitude: ");;
print(altitude);;
println(" m");;
delay(2000);;

                    

Variables membres


            return _status;

                    

Code source


        #pragma once

#include <Arduino.h>
#include "../StatusDevice.h"
#include <Adafruit_BME280.h>
#include <Adafruit_Sensor.h>


namespace crepp::tools {

/**
 * @class BME280
 * @brief Gestion du capteur environnemental BME280
 *
 * Cette classe encapsule un capteur BME280 (température,
 * pression, humidité, altitude).
 *
 * L’initialisation est volontairement séparée de la construction
 * afin de laisser le contrôle total à l’utilisateur.
 *
 */
class BME280
{

public:
    /**
     * @brief Constructeur
     *
     * Le capteur n’est pas initialisé ici.
     */
    BME280();

    /**
     * @brief Destructeur
     */
    ~BME280() = default;

    /**
     * @brief Initialise le capteur BME280
     * @param address Adresse I2C du capteur (ex: 0x76)
     * @return true si l’initialisation réussit, false sinon
     */
    bool begin(uint8_t address = 0x76);

    /**
     * @brief Lit la température
     * @return Température en degrés Celsius
     */
    float getTemperature() const;

    /**
     * @brief Lit la pression atmosphérique
     * @return Pression en hPa
     */
    float getPressure() const;

    /**
     * @brief Lit l’humidité relative
     * @return Humidité en %
     */
    float getHumidity() const;

    /**
     * @brief Calcule l’altitude
     * @param localPressure Pression locale au niveau de la mer (hPa)
     * @return Altitude en mètres
     */
    float getAltitude(float localPressure) const;

    /**
     * @brief Retourne l'état du capteur.
     * @return DEVICE_OK si begin() a réussi, DEVICE_ERROR_INIT sinon.
     */
    StatusDevice getStatus() const { return _status; }

private:
    bool _initialized = false;

    class Adafruit_BME280* _bme;
    StatusDevice _status = StatusDevice::DEVICE_ERROR_INIT;
};

/*
@example

@include 
#include <crepp/tools/BME280.h>
@end_include

@macro
#define I2C_ADDRESS_BME280 0x76
@end_macro

@instance
crepp::tools::BME280 bme;
@end_instance

@isr
@end_isr

@function
@end_function

@setup
  Serial.begin(115200);
  if (!bme.begin(I2C_ADDRESS_BME280)) {
      Serial.println("Erreur d'initialisation du BME280 !");
      while (1);
  }
@end_setup

@loop
  float temperature = bme.getTemperature();
  float pressure = bme.getPressure();
  float humidity = bme.getHumidity();       
  float altitude = bme.getAltitude(1013.25);
  Serial.print("Temp: "); Serial.print(temperature); Serial.println(" °C");
  Serial.print("Pression: "); Serial.print(pressure); Serial.println(" hPa");
  Serial.print("Humidité: "); Serial.print(humidity); Serial.println(" %");
  Serial.print("Altitude: "); Serial.print(altitude); Serial.println(" m");
  delay(2000);
@end_loop

@end_example
*/


} // namespace crepp::tools