|
|
@ -65,7 +65,7 @@ void Hardware::init() { |
|
|
|
ZASSERT(huart2.Init.BaudRate == 19200); |
|
|
|
ZASSERT(huart2.Init.StopBits == UART_STOPBITS_2); |
|
|
|
m_H2o2Sensor_ModbusBlockHost.initialize(&huart2); |
|
|
|
m_H2o2Sensor_H2O2Adc.initialize(&hadc1, ADC_CHANNEL_10); //
|
|
|
|
m_H2o2Sensor_H2O2Adc.initialize("h2o2adc", &hadc1, ADC_CHANNEL_10); //
|
|
|
|
m_H2o2Sensor_HMP110.init(&m_H2o2Sensor_ModbusBlockHost); |
|
|
|
|
|
|
|
if (m_H2o2Sensor_HMP110.ping(1)) { |
|
|
@ -163,8 +163,9 @@ int32_t Hardware::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
// float mv = adcv / 4095.0 * 3.3 * 1000;
|
|
|
|
// float ma = mv / 150.0;
|
|
|
|
// float ppm = (ma - 4) / (20 - 4) * 2000;
|
|
|
|
int32_t h2o2ma = (h2o2adcVal / 4095.0 * 3.3 * 1000) / 150.0; |
|
|
|
double h2o2ma = (h2o2adcVal / 4095.0 * 3.3 * 1000) / 150.0; |
|
|
|
int32_t h2o2ppm = (h2o2ma - 4) * 1.0 / (20 - 4) * 2000; |
|
|
|
if (h2o2ppm < 0) h2o2ppm = 0; |
|
|
|
|
|
|
|
readdata->sensor_error = ecode != 0; |
|
|
|
readdata->h2o2 = h2o2ppm; |
|
|
@ -172,15 +173,16 @@ int32_t Hardware::h2o2_sensor_data(report_h2o2_data_t* readdata) { |
|
|
|
readdata->temp = sensordata.temp; |
|
|
|
readdata->saturation = 0; |
|
|
|
|
|
|
|
ZLOGI(TAG, "ecode: %d ppm:%d, rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
|
|
|
|
ecode, //
|
|
|
|
h2o2ppm, //
|
|
|
|
sensordata.rh, //
|
|
|
|
sensordata.temp, //
|
|
|
|
sensordata.df_ptemp, //
|
|
|
|
sensordata.ah, //
|
|
|
|
sensordata.mr, //
|
|
|
|
sensordata.wet_bulb_temp, //
|
|
|
|
ZLOGI(TAG, "ecode: %d ppm:%d %.2f(ma), rh:%d, temp:%d, df_ptemp:%d, ah:%d, mr:%d, wbt:%d, eh:%d", //
|
|
|
|
ecode, //
|
|
|
|
h2o2ppm, //
|
|
|
|
h2o2ma, //
|
|
|
|
sensordata.rh, //
|
|
|
|
sensordata.temp, //
|
|
|
|
sensordata.df_ptemp, //
|
|
|
|
sensordata.ah, //
|
|
|
|
sensordata.mr, //
|
|
|
|
sensordata.wet_bulb_temp, //
|
|
|
|
sensordata.enthalpy); |
|
|
|
|
|
|
|
return 0; |
|
|
|