Merge branch 'master' of gitlab.com:HDIoT/smart_household/wired_sensors/iaq_wired_sensor

This commit is contained in:
David Žaitlík 2021-07-18 18:55:06 +02:00
commit 3abd90f197
4 changed files with 24 additions and 24 deletions

View File

@ -33,11 +33,11 @@
*/
typedef enum {
START_PERIODIC_MEASUREMENT = 0x21B1,
READ_MEASUREMENT = 0xEC05,
STOP_PERIODIC_MEASUREMENT = 0x3F86,
GET_DATA_READY_STATUS = 0xe4b8,
PERFORM_FACTORY_RESET = 0x3632
SCD4X_START_PERIODIC_MEASUREMENT = 0x21B1,
SCD4X_READ_MEASUREMENT = 0xEC05,
SCD4X_STOP_PERIODIC_MEASUREMENT = 0x3F86,
SCD4X_GET_DATA_READY_STATUS = 0xe4b8,
SCD4X_PERFORM_FACTORY_RESET = 0x3632
} scd4x_cmd_t;
/*

View File

@ -33,17 +33,17 @@
*/
typedef enum {
START_MEAS_HIGH_PRECISION = 0xFD,
START_MEAS_MEDIUM_PRECISION = 0xF6,
START_MEAS_LOW_PRECISION = 0xE0,
READ_SERIAL = 0x89,
SOFT_RESET = 0x94,
HEATER_200_mW_1_s = 0x39,
HEATER_200_mW_01_s = 0x32,
HEATER_110_mW_1_s = 0x2F,
HEATER_110_mW_01_s = 0x24,
HEATER_20_mW_1_s = 0x1E,
HEATER_20_mW_01_s = 0x15
SHT4X_START_MEAS_HIGH_PRECISION = 0xFD,
SHT4X_START_MEAS_MEDIUM_PRECISION = 0xF6,
SHT4X_START_MEAS_LOW_PRECISION = 0xE0,
SHT4X_READ_SERIAL = 0x89,
SHT4X_SOFT_RESET = 0x94,
SHT4X_HEATER_200_mW_1_s = 0x39,
SHT4X_HEATER_200_mW_01_s = 0x32,
SHT4X_HEATER_110_mW_1_s = 0x2F,
SHT4X_HEATER_110_mW_01_s = 0x24,
SHT4X_HEATER_20_mW_1_s = 0x1E,
SHT4X_HEATER_20_mW_01_s = 0x15
} sht4x_cmd_t;
/*

View File

@ -30,17 +30,17 @@ int8_t scd4x_read_data(uint8_t *buffer, int len)
int8_t scd4x_start_periodic_measurement( void )
{
return scd4x_send_cmd(START_PERIODIC_MEASUREMENT);
return scd4x_send_cmd(SCD4X_START_PERIODIC_MEASUREMENT);
}
int8_t scd4x_stop_periodic_measurement( void )
{
return scd4x_send_cmd(STOP_PERIODIC_MEASUREMENT);
return scd4x_send_cmd(SCD4X_STOP_PERIODIC_MEASUREMENT);
}
int8_t scd4x_perform_factory_reset( void )
{
return scd4x_send_cmd(PERFORM_FACTORY_RESET);
return scd4x_send_cmd(SCD4X_PERFORM_FACTORY_RESET);
}
int8_t scd4x_read_measurement(int * co2, int *temperature, int *relative_humidity)
@ -66,8 +66,8 @@ int8_t scd4x_read_measurement(int * co2, int *temperature, int *relative_humidit
// start measurement
buffer[0] = READ_MEASUREMENT >> 8;
buffer[1] = READ_MEASUREMENT & 0x00ff;
buffer[0] = SCD4X_READ_MEASUREMENT >> 8;
buffer[1] = SCD4X_READ_MEASUREMENT & 0x00ff;
result = i2c_transmit(SCD4X_I2C_ADDRESS<<1, buffer, 2);
// TODO: Proc to vraci NACK? Vyresit.
@ -88,7 +88,7 @@ int8_t scd4x_read_measurement(int * co2, int *temperature, int *relative_humidit
uint32_t co2_ticks = (buffer[0] << 8) + buffer[1];
uint32_t t_ticks = (buffer[3] << 8) + buffer[4];
uint32_t rh_ticks = (buffer[6] << 8) + buffer[7];
int t_degC = 10*(-45 + 175 * t_ticks / 65535);
int t_degC = -450 + 10 * 175 * t_ticks / 65535;
int rh_pRH = 100 * rh_ticks / 65535;
if (rh_pRH > 100) {
rh_pRH = 100;

View File

@ -23,7 +23,7 @@ int8_t sht4x_measure(int *temperature, int *relative_humidity)
int result;
// start measurement
buffer[0] = START_MEAS_HIGH_PRECISION;
buffer[0] = SHT4X_START_MEAS_HIGH_PRECISION;
result = i2c_transmit(SHT4X_I2C_ADDRESS<<1, buffer, 1);
// TODO: Proc to vraci NACK? Vyresit.
/*
@ -40,7 +40,7 @@ int8_t sht4x_measure(int *temperature, int *relative_humidity)
// Convert to T and RH; taken directly from pseudocode in SHT4x datasheet, page 3
uint32_t t_ticks = (buffer[0] << 8) + buffer[1];
uint32_t rh_ticks = (buffer[3] << 8) + buffer[4];
int t_degC = 10*(-45 + 175 * t_ticks / 65535);
int t_degC = -450 + 10 * 175 * t_ticks / 65535; /* temperature * 10 */
int rh_pRH = -6 + 125 * rh_ticks / 65535;
if (rh_pRH > 100) {
rh_pRH = 100;