Class CBME280
La classe CBME280 est dédiée au support par la librairie cpp2835 des composants BOSCH BME280 pour des mesures de température, d'humidité relative et pression atmosphérique. Cette classe hérite de la classe CI2CDevice.
Exemple d'utilisation
Cet extrait de code est un pseudo code, il regroupe dans un même flot des opérations normalement disséminées dans diverses parties d'un programme.
C2835Driver* m_pDriver;
CI2CBus* m_pI2CBus;
CBME280* m_pBME280;
// Initialsiation des pointeurs vers les objets requis à un pointeur nul
m_pDriver = nullptr;
m_pI2CBus = nullptr;
m_pBME280 = nullptr;
// Création et vérificaation de création des objets requis
if((m_pDriver = new C2835Driver()) == nullptr) return false;
if((m_pI2CBus = new CI2CBus(m_pDriver)) == nullptr) return false;
if((m_pBME280 = new CBME280(m_pI2CBus, BME280_ADR_0X76)) == nullptr) return false;
// Initialisation de la librairie et ouverture du bus I2C
if(!m_pDriver->Initialize()) return false;
if(!m_pI2CBus->Open(I2C_CLOCK_DIVIDER_65536)) false;
// Initialisation ddu BME280, vérification que c'est bien un BME280, lecture des constantes de calibration
if(!m_pBME280->Reset()) return false;
CSleeper::msleep(1000);
if(!m_pBME280->CheckForBME280(&tf)) return false;
if(!tf) return false;
if(!m_pBME280->GetCalibrationConstants()) return false;
// Prise de mesure et récupération des valeurs mesurées
if(!m_pBME280->Trigger()) return false;
CSleeper::msleep(100);
if(!m_pBME280->Read(pdPressure, pdTemperature, pdHumidity)) return false;
// En fin de programme, fermeture du bus I2C et arrêt de la librairie
if(m_pI2CBus != nullptr) m_pI2CBus->Close();
if(m_pDriver != nullptr) m_pDriver->Terminate();
// En fin de programme, effacement des objets utilisés
if(m_pBME280 != nullptr) delete m_pBME280;
if(m_pI2CBus != nullptr) delete m_pI2CBus;
if(m_pDriver != nullptr) delete m_pDriver;
Fonctions publiques
| CBME280(CI2CBus* pI2CBus, const BME280_ADR& Address) | |
| bool | CheckForBME280(bool* pCheck) |
| bool | GetCalibrationConstants() |
| bool | Read(double* pPressure, double* pTemperature, double* pHumidity) |
| bool | Reset() |
| bool | Trigger(const BME280_PRESS_OVERSAMPLING& POver = BME280_PRESS_OVERSAMPLING_16, const BME280_TEMP_OVERSAMPLING& TOver = BME280_TEMP_OVERSAMPLING_16, const BME280_HUM_OVERSAMPLING& HOver = BME280_HUM_OVERSAMPLING_16) |
Description : Contructeur. Instancie un objet de la classe CBME280.
Paramètre : pI2CBus - type CI2CBus* - Pointeur vers l'objet CI2CBus auquel est connecté ce composant. L'objet pI2CBus aura été instancié et ouvert en amont de cet appel.
Paramètre : Address - type BME280_ADR& - Adresse du composant sur le bus I2C.
Description : Vérifie que le composant est bien un BME280.
Paramètre de sortie : pCheck - type bool* - Pointeur vers un booléen contenant le résultat de la vérification en retour de la fonction.
Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.
Description : Chaque composant BME280 a ses propres constantes de calibration fixées en usine. Avant de faire des mesures avec ce composant, cette fonction doit être appelée afin que la classe connaisse ces valeurs de constantes de calibrage.
Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.
Description : Cette fonction doit être appelée après chaque appel à la fonction Trigger pour récupérer les valeurs des données acquises.
Paramètre de sortie : pPressure - type double* - Pointeur vers un double contenant la valeur de pression atmosphérique en retour de la fonction. La valeur est expimée en mbar.
Paramètre de sortie : pTemperature - type double* - Pointeur vers un double contenant la valeur de température en retour de la fonction. La valeur est exprimée en °C.
Paramètre de sortie : pHumidity - type double* - Pointeur vers un double contenant la valeur d'humidité relative en retour de la fonction. La valeur est exprimée en %HR.
Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.
Description : Initialise ou réinitialise le composant BME280.
Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.
Description : Déclenche une nouvelle mesure.
Paramètre : POver - type BME280_PRESS_OVERSAMPLING& - Valeur de filtrage par intégration et moyennage de la mesure de pression. Plus la valeur est haute, meilleure est la précision mais la durée de mesure augmente.
Paramètre : TOver - type BME280_TEMP_OVERSAMPLING& - Valeur de filtrage par intégration et moyennage de la mesure de température. Plus la valeur est haute, meilleure est la précision mais la durée de mesure augmente.
Paramètre : HOver - type BME280_HUM_OVERSAMPLING& - Valeur de filtrage par intégration et moyennage de la mesure d'humidité. Plus la valeur est haute, meilleure est la précision mais la durée de mesure augmente.
Valeur de retour : Booléen indiquant le succès (true) ou l'échec (false) de la fonction.