本帖最后由 OldestTrick 于 2024-8-12 10:35 编辑
1、HTS221 除了可以检测温度外,还可以检测湿度。手册上参数如下,
2、测试还是使用官方提供的代码,HTS221 湿度初始化如下
BSP_ENV_SENSOR_Init(HTS221_0, ENV_HUMIDITY);
BSP_ENV_SENSOR_SetOutputDataRate(HTS221_0, ENV_HUMIDITY, HTS221_ODR);
湿度读取
if ( BSP_ENV_SENSOR_GetValue(HTS221_0, ENV_HUMIDITY, &mptr->humidity ) == BSP_ERROR_COMPONENT_FAILURE )//ENV_HUMIDITY &mptr->humidity
{
mptr->humidity = 0.0f;
ret = BSP_ERROR_COMPONENT_FAILURE;
}
最后还是通过USB把数据传输到串口助手
size = sprintf(data_s, "Hum:%4.1f\r\n", rptr->humidity);
osPoolFree(sensorPool_id, rptr); // free memory allocated for message
BSP_LED_Toggle(LED1);
CDC_Transmit_FS(( uint8_t * )data_s, size);
数据输出
下面是测试结果。首先是上电后读取室内的湿度,比较稳定的一个范围。
然后用加湿器对电路板进行加湿,可以看到读取的湿度快速上升。后面停止加湿后湿度值比较快速的恢复到室内的正常值。
通过对比,HTS221读取的湿度值和家里其他的温湿度计读取的湿度值非常接近。
|