From ab553e44ac3375f357a460c61b3315561e366247 Mon Sep 17 00:00:00 2001 From: Moritz Perschke <moritz.perschke@uibk.ac.at> Date: Fri, 29 Jul 2022 15:54:39 +0200 Subject: [PATCH] added basic implementation of abstract sensor class, scd30 implementation of it and a file to define all pins --- client/client/include/forte_sensor.hpp | 13 +++++++++++++ client/client/include/pinout.hpp | 8 ++++++++ client/client/lib/scd30/scd30.cpp | 19 +++++++++++++++++++ client/client/lib/scd30/scd30.hpp | 16 ++++++++++++++++ client/client/platformio.ini | 2 ++ 5 files changed, 58 insertions(+) create mode 100644 client/client/include/forte_sensor.hpp create mode 100644 client/client/include/pinout.hpp create mode 100644 client/client/lib/scd30/scd30.cpp create mode 100644 client/client/lib/scd30/scd30.hpp diff --git a/client/client/include/forte_sensor.hpp b/client/client/include/forte_sensor.hpp new file mode 100644 index 0000000..8e030b9 --- /dev/null +++ b/client/client/include/forte_sensor.hpp @@ -0,0 +1,13 @@ +#ifndef _FORTE_SENSOR +#define _FORTE_SENSOR + +class Forte_Sensor { + public: + virtual void* read_data() = 0; + virtual void setup() = 0; + + private: + +}; + +#endif \ No newline at end of file diff --git a/client/client/include/pinout.hpp b/client/client/include/pinout.hpp new file mode 100644 index 0000000..9a9ad92 --- /dev/null +++ b/client/client/include/pinout.hpp @@ -0,0 +1,8 @@ +#ifndef _FORTE_PINOUT +#define _FORTE_PINOUT + +// Pins for I2C +#define I2C_SDA 18 +#define I2C_SCL 19 + +#endif \ No newline at end of file diff --git a/client/client/lib/scd30/scd30.cpp b/client/client/lib/scd30/scd30.cpp new file mode 100644 index 0000000..326de88 --- /dev/null +++ b/client/client/lib/scd30/scd30.cpp @@ -0,0 +1,19 @@ +#include "scd30.hpp" +#include "Wire.h" +#include <SparkFun_SCD30_Arduino_Library.h> + +void Forte_SCD30 :: setup(){ + Wire.begin(I2C_SDA, I2C_SCL); + if(!airSensor.begin()){ + // Sensor init went wrong + return; + } +} + +float* Forte_SCD30 :: read_data(){ + float data[3]; + data[0] = airSensor.getCO2(); + data[1] = airSensor.getTemperature(); + data[2] = airSensor.getHumidity(); + return data; +} \ No newline at end of file diff --git a/client/client/lib/scd30/scd30.hpp b/client/client/lib/scd30/scd30.hpp new file mode 100644 index 0000000..396e311 --- /dev/null +++ b/client/client/lib/scd30/scd30.hpp @@ -0,0 +1,16 @@ +#ifndef _SCD30 +#define _SCD30 +#include <forte_sensor.hpp> +#include <pinout.hpp> +#include <SparkFun_SCD30_Arduino_Library.h> + +class Forte_SCD30 : public Forte_Sensor{ + public: + void setup(); + float* read_data(); + + private: + SCD30 airSensor; +}; + +#endif \ No newline at end of file diff --git a/client/client/platformio.ini b/client/client/platformio.ini index e36a50f..12980ea 100644 --- a/client/client/platformio.ini +++ b/client/client/platformio.ini @@ -12,3 +12,5 @@ platform = espressif32 board = esp32-c3-devkitm-1 framework = arduino +lib_deps = sparkfun/SparkFun SCD30 Arduino Library@^1.0.18 + Wire -- GitLab