summaryrefslogtreecommitdiff
path: root/platformio/common/libs/temphum
diff options
context:
space:
mode:
Diffstat (limited to 'platformio/common/libs/temphum')
-rw-r--r--platformio/common/libs/temphum/homekit/temphum.cpp89
-rw-r--r--platformio/common/libs/temphum/homekit/temphum.h38
-rw-r--r--platformio/common/libs/temphum/library.json8
3 files changed, 0 insertions, 135 deletions
diff --git a/platformio/common/libs/temphum/homekit/temphum.cpp b/platformio/common/libs/temphum/homekit/temphum.cpp
deleted file mode 100644
index e69b3a5..0000000
--- a/platformio/common/libs/temphum/homekit/temphum.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#ifndef CONFIG_TARGET_ESP01
-#include <Arduino.h>
-#endif
-#include <homekit/logging.h>
-#include "temphum.h"
-
-namespace homekit::temphum {
-
-void Sensor::setup() const {
-#ifndef CONFIG_TARGET_ESP01
- pinMode(CONFIG_SDA_GPIO, OUTPUT);
- pinMode(CONFIG_SCL_GPIO, OUTPUT);
-
- Wire.begin(CONFIG_SDA_GPIO, CONFIG_SCL_GPIO);
-#else
- Wire.begin();
-#endif
-}
-
-void Sensor::writeCommand(int reg) const {
- Wire.beginTransmission(dev_addr);
- Wire.write(reg);
- Wire.endTransmission();
- delay(500); // wait for the measurement to be ready
-}
-
-SensorData Si7021::read() {
- uint8_t error = 0;
- writeCommand(0xf3); // command to measure temperature
- Wire.requestFrom(dev_addr, 2);
- if (Wire.available() < 2) {
- PRINTLN("Si7021: 0xf3: could not read 2 bytes");
- error = 1;
- }
- uint16_t temp_raw = Wire.read() << 8 | Wire.read();
- double temperature = ((175.72 * temp_raw) / 65536.0) - 46.85;
-
- writeCommand(0xf5); // command to measure humidity
- Wire.requestFrom(dev_addr, 2);
- if (Wire.available() < 2) {
- PRINTLN("Si7021: 0xf5: could not read 2 bytes");
- error = 1;
- }
- uint16_t hum_raw = Wire.read() << 8 | Wire.read();
- double humidity = ((125.0 * hum_raw) / 65536.0) - 6.0;
-
- return {
- .error = error,
- .temp = temperature,
- .rh = humidity
- };
-}
-
-SensorData DHT12::read() {
- SensorData sd;
- byte raw[5];
- sd.error = 1;
-
- writeCommand(0);
- Wire.requestFrom(dev_addr, 5);
-
- if (Wire.available() < 5) {
- PRINTLN("DHT12: could not read 5 bytes");
- goto end;
- }
-
- // Parse the received data
- for (uint8_t i = 0; i < 5; i++)
- raw[i] = Wire.read();
-
- if (((raw[0] + raw[1] + raw[2] + raw[3]) & 0xff) != raw[4]) {
- PRINTLN("DHT12: checksum error");
- goto end;
- }
-
- // Calculate temperature and humidity values
- sd.temp = raw[2] + (raw[3] & 0x7f) * 0.1;
- if (raw[3] & 0x80)
- sd.temp *= -1;
-
- sd.rh = raw[0] + raw[1] * 0.1;
-
- sd.error = 0;
-
-end:
- return sd;
-}
-
-}
diff --git a/platformio/common/libs/temphum/homekit/temphum.h b/platformio/common/libs/temphum/homekit/temphum.h
deleted file mode 100644
index 1952ce0..0000000
--- a/platformio/common/libs/temphum/homekit/temphum.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-#include <Wire.h>
-
-namespace homekit::temphum {
-
-struct SensorData {
- uint8_t error = 0;
- double temp = 0; // celsius
- double rh = 0; // relative humidity percentage
-};
-
-
-class Sensor {
-protected:
- int dev_addr;
-public:
- explicit Sensor(int dev) : dev_addr(dev) {}
- void setup() const;
- void writeCommand(int reg) const;
- virtual SensorData read() = 0;
-};
-
-
-class Si7021 : public Sensor {
-public:
- SensorData read() override;
- Si7021() : Sensor(0x40) {}
-};
-
-
-class DHT12 : public Sensor {
-public:
- SensorData read() override;
- DHT12() : Sensor(0x5c) {}
-};
-
-} \ No newline at end of file
diff --git a/platformio/common/libs/temphum/library.json b/platformio/common/libs/temphum/library.json
deleted file mode 100644
index 329b7ca..0000000
--- a/platformio/common/libs/temphum/library.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "name": "homekit_temphum",
- "version": "1.0.3",
- "build": {
- "flags": "-I../../include"
- }
-}
-