Remove sensor wrapper classes and simplify. Switch to Adafruit libs for sensors.
This commit is contained in:
@@ -1,33 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include <helpers/SensorManager.h>
|
||||
#include "INA3221Sensor.h"
|
||||
#include "INA219Sensor.h"
|
||||
#include "AHTX0Sensor.h"
|
||||
#include "BME280Sensor.h"
|
||||
#include <Mesh.h>
|
||||
#include <Adafruit_INA3221.h>
|
||||
#include <Adafruit_INA219.h>
|
||||
#include <Adafruit_AHTX0.h>
|
||||
#include <Adafruit_BME280.h>
|
||||
|
||||
#define NUM_SENSOR_SETTINGS 3
|
||||
|
||||
#define TELEM_INA3221_SETTING_CH1 "INA3221-1"
|
||||
#define TELEM_INA3221_SETTING_CH2 "INA3221-2"
|
||||
#define TELEM_INA3221_SETTING_CH3 "INA3221-3"
|
||||
#define TELEM_AHTX_ADDRESS 0x38 // AHT10, AHT20 temperature and humidity sensor I2C address
|
||||
#define TELEM_BME280_ADDRESS 0x76 // BME280 environmental sensor I2C address
|
||||
#define TELEM_INA3221_ADDRESS 0x42 // INA3221 3 channel current sensor I2C address
|
||||
#define TELEM_INA219_ADDRESS 0x40 // INA219 single channel current sensor I2C address
|
||||
|
||||
#define TELEM_INA3221_SHUNT_VALUE 0.100 // most variants will have a 0.1 ohm shunts
|
||||
#define TELEM_INA3221_NUM_CHANNELS 3
|
||||
|
||||
#define TELEM_INA219_SHUNT_VALUE 0.100 // shunt value in ohms (may differ between manufacturers)
|
||||
#define TELEM_INA219_MAX_CURRENT 5
|
||||
|
||||
#define TELEM_BME280_SEALEVELPRESSURE_HPA (1013.25) // Athmospheric pressure at sea level
|
||||
|
||||
class EnvironmentSensorManager : public SensorManager {
|
||||
// INA3221 channels in telemetry
|
||||
const char * INA3221_CHANNEL_NAMES[NUM_SENSOR_SETTINGS] = { TELEM_INA3221_SETTING_CH1, TELEM_INA3221_SETTING_CH2, TELEM_INA3221_SETTING_CH3};
|
||||
|
||||
protected:
|
||||
int next_available_channel = TELEM_CHANNEL_SELF + 1;
|
||||
INA3221Sensor INA3221_sensor;
|
||||
AHTX0Sensor AHTX0_sensor;
|
||||
INA219Sensor INA219_sensor;
|
||||
BME280Sensor BME280_sensor;
|
||||
|
||||
bool INA3221_initialized = false;
|
||||
bool INA219_initialized = false;
|
||||
bool BME280_initialized = false;
|
||||
bool AHTX0_initialized = false;
|
||||
public:
|
||||
EnvironmentSensorManager(){};
|
||||
bool begin() override;
|
||||
bool querySensors(uint8_t requester_permissions, CayenneLPP& telemetry) override;
|
||||
int getNumSettings() const override;
|
||||
const char* getSettingName(int i) const override;
|
||||
const char* getSettingValue(int i) const override;
|
||||
bool setSettingValue(const char* name, const char* value) override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user