打印
[STM32L4+]

【STEVAL-STWINKT1B测评】STTS751和 HTS221的温度检测

[复制链接]
1232|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主


1、STWINKT1B上有2个温度传感器,分别是STTS751和 HTS221,HTS221还可以检测湿度。目前HTS221已经停产,不再推荐新项目使用。
在STWINKT1B上2个传感器都是通过IIC接口进行通信,不同的I2C Addr 可以方便的把多个外设接到同一个IIC上进行通信。



2、STWINKT1B的开发包里面提供了各个传感器的读取测试,可以把数据存储到SD卡上也可以通过虚拟串口读取。
默认的demo代码是只读取 STTS751的温度,我们修改下程序,同时读取2个温度传感器进行对比。
  BSP_ENV_SENSOR_Init(HTS221_0, ENV_TEMPERATURE);
  BSP_ENV_SENSOR_SetOutputDataRate(HTS221_0, ENV_TEMPERATURE, HTS221_ODR);
  
  BSP_ENV_SENSOR_Init(STTS751_0, ENV_TEMPERATURE);
  BSP_ENV_SENSOR_SetOutputDataRate(STTS751_0, ENV_TEMPERATURE, STTS751_ODR);
读取数据
  if ( BSP_ENV_SENSOR_GetValue(STTS751_0, ENV_TEMPERATURE, &mptr->temperature0 ) == BSP_ERROR_COMPONENT_FAILURE )
  {
    mptr->temperature0 = 0.0f;
    ret = BSP_ERROR_COMPONENT_FAILURE;
  }
  if ( BSP_ENV_SENSOR_GetValue(HTS221_0, ENV_TEMPERATURE, &mptr->temperature1 ) == BSP_ERROR_COMPONENT_FAILURE )
  {
    mptr->temperature1 = 0.0f;
    ret = BSP_ERROR_COMPONENT_FAILURE;
  }
然后把数据传输到串口助手
        size = sprintf(data_s, "STTS751 Temp:%5.2f,HTS221 Temp:%5.2f\r\n", rptr->temperature0, rptr->temperature1);          
                       
        osPoolFree(sensorPool_id, rptr);      // free memory allocated for message
        BSP_LED_Toggle(LED1);
        CDC_Transmit_FS(( uint8_t * )data_s, size);
数据输出如下

把输出的数据用MATLAB绘图如下。
上电首先检测室温,然后用吹风机进行加热,再用吹风机进行降温。最后是关闭吹风机让传感器慢慢降温。
下面的对比图,Y轴单位是温度,X轴是采样点个数,2秒采样一次。
开始的室温接近32度,实际并没有这么高的温度,可能是板子靠近笔记本的出风口导致。
室内开了空调,我一个温度计检测的是29度,空调温度计检测的室温是28度多。

这个降温的过程有点久。



使用特权

评论回复
沙发
呐咯密密| | 2024-8-13 10:39 | 只看该作者
官方有工具可以绘制这个温度曲线吗

使用特权

评论回复
板凳
OldestTrick|  楼主 | 2024-8-13 10:58 | 只看该作者
呐咯密密 发表于 2024-8-13 10:39
官方有工具可以绘制这个温度曲线吗

官方也应该有更强大的工具。我是用matlab简单画了下。

使用特权

评论回复
地板
AloneKaven| | 2024-9-21 12:18 | 只看该作者
之前见过个开源的画图工具

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

44

帖子

3

粉丝