From b73bc67c8edd01184802f6357a86d674a3b3b747 Mon Sep 17 00:00:00 2001 From: Clement Date: Mon, 26 Jun 2023 17:23:41 +0200 Subject: [PATCH] add Barometer --- IOT/Capteur/lib/Capteur/include/Barometer.h | 44 ++++++++++++++++++++ IOT/Capteur/lib/Capteur/src/Barometer.cpp | 45 +++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 IOT/Capteur/lib/Capteur/include/Barometer.h create mode 100644 IOT/Capteur/lib/Capteur/src/Barometer.cpp diff --git a/IOT/Capteur/lib/Capteur/include/Barometer.h b/IOT/Capteur/lib/Capteur/include/Barometer.h new file mode 100644 index 0000000..f00f5ce --- /dev/null +++ b/IOT/Capteur/lib/Capteur/include/Barometer.h @@ -0,0 +1,44 @@ +#ifndef BAROMETER_H +#define BAROMETER_H + +#include +#include +#include +#include "Capteur.h" + +class Barometer : public Capteur{ +public: + + /** + * @brief Construct a new Capteur object + * + */ + Barometer(); + + /** + * @brief lit la valeur du capteur + * + * @return String valeur forma "XX/YY" X mBar et Y °C + */ + virtual String read(); + + /** + * @brief retourne le type de valeur lue + * + * @return String + */ + String getValType(); + + //TODO: faire commentaire + int getTemp(); + int getPressure(); + +private: + + //TODO: faire commentaire + SFE_BMP180* capteur; + +}; + + +#endif // BAROMETER_H diff --git a/IOT/Capteur/lib/Capteur/src/Barometer.cpp b/IOT/Capteur/lib/Capteur/src/Barometer.cpp new file mode 100644 index 0000000..e7ae486 --- /dev/null +++ b/IOT/Capteur/lib/Capteur/src/Barometer.cpp @@ -0,0 +1,45 @@ +#include "../include/Barometer.h" + +Barometer::Barometer(): + Capteur("P/T"){ + this->capteur = new SFE_BMP180(); + this->capteur->begin(); +} + +int Barometer::getTemp(){ + char status = capteur->startTemperature(); + if (status != 0){ + delay(status); + } + double temp; + status = this->capteur->getTemperature(temp); + if(status == 0){ + Serial.println("Temperature reading failed "); + return -1; + } + return temp; +} + +int Barometer::getPressure(){ + char status = this->capteur->startPressure(3); + if(status){ + delay(status); + } + double press = 0; + double T = 0; + status = this->capteur->getPressure(press, T); + if(status == 0){ + Serial.println("Pressure reading failed "); + return -1; + } + return press; +} + +String Barometer::read(){ + String sortie = ""; + + sortie += String(this->getPressure()); + sortie += "/"; + sortie += String(this->getTemp()); + return sortie; +}