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) | truetrue si l’initialisation réussit, false sinon / |
|
getTemperature()
getTemperature() const;
|
Lit la température / | TempératureTempérature en degrés Celsius / |
|
|
getPressure()
getPressure() const;
|
Lit la pression atmosphérique / | PressionPression 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) | AltitudeAltitude en mètres / |
|
getStatus()
getStatus() const {
|
Retourne l'état du capteur. / | DEVICE_OKDEVICE_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