潘多拉 RT-Thread 温度传感器
实验概述
本实验利用 RT-Thread 的 AHT10 软件包,读取 aht10 传感器所测量的温度(temperature)与湿度(humidity)。AHT10 软件包提供了使用温度与湿度传感器 aht10 基本功能,并且提供了软件平均数滤波器可选功能,使用软件包可加快项目开发速度。
AHT10 传感器的输入电压范围为 1.8v - 3.3v,可测量温度范围为 -40 至 85 ℃(精度 ±0.5 ℃),相对湿度的量程为 0 至 100 % rH(精度 ±3 %)。
硬件连接
潘多拉 IoT Board 板载的 AHT10 传感器采用 I2C 接口连接到 STM32。单片机通过 IIC_SDA(PC1)、IIC_SCL2(PD6) 即可对传感器 aht10 发送命令、读取数据。

示例代码
参考《潘多拉 IoT Board 开发环境》创建工程,在 applications/main.c 中输入如下代码。
applications/main.c
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include "aht10.h"
#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>
int main(void)
{
float humidity, temperature;
aht10_device_t dev;
/* 总线名称 */
const char *i2c_bus_name = "i2c4";
int count = 0;
/* 等待传感器正常工作 */
rt_thread_mdelay(2000);
/* 初始化 aht10 */
dev = aht10_init(i2c_bus_name);
if (dev == RT_NULL)
{
LOG_E(" The sensor initializes failure");
return 0;
}
while (count++ < 100)
{
/* 读取湿度 */
humidity = aht10_read_humidity(dev);
LOG_D("humidity : %d.%d %%", (int)humidity, (int)(humidity * 10) % 10);
/* 读取温度 */
temperature = aht10_read_temperature(dev);
LOG_D("temperature: %d.%d", (int)temperature, (int)(temperature * 10) % 10);
rt_thread_mdelay(1000);
}
return 0;
}
完整代码:07_driver_temp_humi