Merge pull request #651 from awolden/awolden/ina226
Add INA226 to environmental sensors
This commit is contained in:
@@ -115,12 +115,14 @@ build_flags =
|
|||||||
-D ENV_INCLUDE_LPS22HB=1
|
-D ENV_INCLUDE_LPS22HB=1
|
||||||
-D ENV_INCLUDE_INA3221=1
|
-D ENV_INCLUDE_INA3221=1
|
||||||
-D ENV_INCLUDE_INA219=1
|
-D ENV_INCLUDE_INA219=1
|
||||||
|
-D ENV_INCLUDE_INA226=1
|
||||||
-D ENV_INCLUDE_INA260=1
|
-D ENV_INCLUDE_INA260=1
|
||||||
-D ENV_INCLUDE_MLX90614=1
|
-D ENV_INCLUDE_MLX90614=1
|
||||||
-D ENV_INCLUDE_VL53L0X=1
|
-D ENV_INCLUDE_VL53L0X=1
|
||||||
lib_deps =
|
lib_deps =
|
||||||
adafruit/Adafruit INA3221 Library @ ^1.0.1
|
adafruit/Adafruit INA3221 Library @ ^1.0.1
|
||||||
adafruit/Adafruit INA219 @ ^1.2.3
|
adafruit/Adafruit INA219 @ ^1.2.3
|
||||||
|
robtillaart/INA226 @ ^0.6.4
|
||||||
adafruit/Adafruit INA260 Library @ ^1.5.3
|
adafruit/Adafruit INA260 Library @ ^1.5.3
|
||||||
adafruit/Adafruit AHTX0 @ ^2.0.5
|
adafruit/Adafruit AHTX0 @ ^2.0.5
|
||||||
adafruit/Adafruit BME280 Library @ ^2.3.0
|
adafruit/Adafruit BME280 Library @ ^2.3.0
|
||||||
|
|||||||
@@ -65,6 +65,14 @@ static Adafruit_INA219 INA219(TELEM_INA219_ADDRESS);
|
|||||||
static Adafruit_INA260 INA260;
|
static Adafruit_INA260 INA260;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENV_INCLUDE_INA226
|
||||||
|
#define TELEM_INA226_ADDRESS 0x44
|
||||||
|
#define TELEM_INA226_SHUNT_VALUE 0.100
|
||||||
|
#define TELEM_INA226_MAX_AMP 0.8
|
||||||
|
#include <INA226.h>
|
||||||
|
static INA226 INA226(TELEM_INA226_ADDRESS);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENV_INCLUDE_MLX90614
|
#if ENV_INCLUDE_MLX90614
|
||||||
#define TELEM_MLX90614_ADDRESS 0x5A // MLX90614 IR temperature sensor I2C address
|
#define TELEM_MLX90614_ADDRESS 0x5A // MLX90614 IR temperature sensor I2C address
|
||||||
#include <Adafruit_MLX90614.h>
|
#include <Adafruit_MLX90614.h>
|
||||||
@@ -202,6 +210,17 @@ bool EnvironmentSensorManager::begin() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENV_INCLUDE_INA226
|
||||||
|
if (INA226.begin()) {
|
||||||
|
MESH_DEBUG_PRINTLN("Found INA226 at address: %02X", TELEM_INA226_ADDRESS);
|
||||||
|
INA226.setMaxCurrentShunt(TELEM_INA226_MAX_AMP, TELEM_INA226_SHUNT_VALUE);
|
||||||
|
INA226_initialized = true;
|
||||||
|
} else {
|
||||||
|
INA226_initialized = false;
|
||||||
|
MESH_DEBUG_PRINTLN("INA226 was not found at I2C address %02X", TELEM_INA226_ADDRESS);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENV_INCLUDE_MLX90614
|
#if ENV_INCLUDE_MLX90614
|
||||||
if (MLX90614.begin(TELEM_MLX90614_ADDRESS, TELEM_WIRE)) {
|
if (MLX90614.begin(TELEM_MLX90614_ADDRESS, TELEM_WIRE)) {
|
||||||
MESH_DEBUG_PRINTLN("Found MLX90614 at address: %02X", TELEM_MLX90614_ADDRESS);
|
MESH_DEBUG_PRINTLN("Found MLX90614 at address: %02X", TELEM_MLX90614_ADDRESS);
|
||||||
@@ -323,6 +342,15 @@ bool EnvironmentSensorManager::querySensors(uint8_t requester_permissions, Cayen
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENV_INCLUDE_INA226
|
||||||
|
if (INA226_initialized) {
|
||||||
|
telemetry.addVoltage(next_available_channel, INA226.getBusVoltage());
|
||||||
|
telemetry.addCurrent(next_available_channel, INA226.getCurrent_mA() / 1000.0);
|
||||||
|
telemetry.addPower(next_available_channel, INA226.getPower_mW() / 1000.0);
|
||||||
|
next_available_channel++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENV_INCLUDE_MLX90614
|
#if ENV_INCLUDE_MLX90614
|
||||||
if (MLX90614_initialized) {
|
if (MLX90614_initialized) {
|
||||||
telemetry.addTemperature(TELEM_CHANNEL_SELF, MLX90614.readObjectTempC());
|
telemetry.addTemperature(TELEM_CHANNEL_SELF, MLX90614.readObjectTempC());
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ protected:
|
|||||||
bool INA3221_initialized = false;
|
bool INA3221_initialized = false;
|
||||||
bool INA219_initialized = false;
|
bool INA219_initialized = false;
|
||||||
bool INA260_initialized = false;
|
bool INA260_initialized = false;
|
||||||
|
bool INA226_initialized = false;
|
||||||
bool SHTC3_initialized = false;
|
bool SHTC3_initialized = false;
|
||||||
bool LPS22HB_initialized = false;
|
bool LPS22HB_initialized = false;
|
||||||
bool MLX90614_initialized = false;
|
bool MLX90614_initialized = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user