[STM32L4+] 【STEVAL-STWINKT1B测评】STTS751和 HTS221的温度检测

[复制链接]
2176|3
 楼主| OldestTrick 发表于 2024-8-10 23:40 | 显示全部楼层 |阅读模式


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


5621566b7873dd8f2a.png
2、STWINKT1B的开发包里面提供了各个传感器的读取测试,可以把数据存储到SD卡上也可以通过虚拟串口读取。
默认的demo代码是只读取 STTS751的温度,我们修改下程序,同时读取2个温度传感器进行对比。
  1.   BSP_ENV_SENSOR_Init(HTS221_0, ENV_TEMPERATURE);
  2.   BSP_ENV_SENSOR_SetOutputDataRate(HTS221_0, ENV_TEMPERATURE, HTS221_ODR);
  3.   
  4.   BSP_ENV_SENSOR_Init(STTS751_0, ENV_TEMPERATURE);
  5.   BSP_ENV_SENSOR_SetOutputDataRate(STTS751_0, ENV_TEMPERATURE, STTS751_ODR);
读取数据
  1.   if ( BSP_ENV_SENSOR_GetValue(STTS751_0, ENV_TEMPERATURE, &mptr->temperature0 ) == BSP_ERROR_COMPONENT_FAILURE )
  2.   {
  3.     mptr->temperature0 = 0.0f;
  4.     ret = BSP_ERROR_COMPONENT_FAILURE;
  5.   }
  6.   if ( BSP_ENV_SENSOR_GetValue(HTS221_0, ENV_TEMPERATURE, &mptr->temperature1 ) == BSP_ERROR_COMPONENT_FAILURE )
  7.   {
  8.     mptr->temperature1 = 0.0f;
  9.     ret = BSP_ERROR_COMPONENT_FAILURE;
  10.   }
然后把数据传输到串口助手
  1.         size = sprintf(data_s, "STTS751 Temp:%5.2f,HTS221 Temp:%5.2f\r\n", rptr->temperature0, rptr->temperature1);         
  2.                        
  3.         osPoolFree(sensorPool_id, rptr);      // free memory allocated for message
  4.         BSP_LED_Toggle(LED1);
  5.         CDC_Transmit_FS(( uint8_t * )data_s, size);
数据输出如下
5319066b788003e126.png
把输出的数据用MATLAB绘图如下。
上电首先检测室温,然后用吹风机进行加热,再用吹风机进行降温。最后是关闭吹风机让传感器慢慢降温。
下面的对比图,Y轴单位是温度,X轴是采样点个数,2秒采样一次。
开始的室温接近32度,实际并没有这么高的温度,可能是板子靠近笔记本的出风口导致。
室内开了空调,我一个温度计检测的是29度,空调温度计检测的室温是28度多。
8184366b7882e296d6.png
这个降温的过程有点久。



呐咯密密 发表于 2024-8-13 10:39 | 显示全部楼层
官方有工具可以绘制这个温度曲线吗
 楼主| OldestTrick 发表于 2024-8-13 10:58 | 显示全部楼层
呐咯密密 发表于 2024-8-13 10:39
官方有工具可以绘制这个温度曲线吗

官方也应该有更强大的工具。我是用matlab简单画了下。
AloneKaven 发表于 2024-9-21 12:18 | 显示全部楼层
之前见过个开源的画图工具
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

45

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部