| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 23 天前 | ||
| 23 天前 | ||
| 23 天前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 23 天前 | ||
| 23 天前 | ||
| 23 天前 | ||
| 23 天前 |
DHT22 示例
功能说明
本示例适用于 HiDiTing V100 的 diting-community 固件,提供两种入口:通过 AT+DHT22=<读取次数>,<读取周期(ms)> 读取并输出温湿度,或从表盘应用列表进入“温湿度测量”页面,连续显示温湿度并设置超限提醒。
采集使用 C,界面使用系统已有的 C++ UIKit / Native Ability 能力。业务代码、界面和注册代码全部位于本示例目录,不是纯 C 图形库,也不依赖 JS、HiClaw 或新增系统接口。除使用者手动开启构建配置外,不需要修改 src/ 下的代码。
本示例必须外接 DHT22 温湿度传感器,开发板自身不包含该传感器。测试前请按下图完成传感器与 HiDiTing V100 开发板的连接:

| DHT22 | HiDiTing V100 |
|---|---|
VCC |
3.3 V |
DATA / OUT / S |
H_15 |
GND / - |
GND |
NC |
不连接 |
构建与烧录
DHT22 示例和 Native APP 默认不编入固件,测试时按以下步骤开启:
-
用 VS Code 打开
hs-fbb仓库根目录,再打开配置文件:src/build/config/target_config/3322/config.py -
在文件中搜索
'diting-community': {,在该目标的defines列表中增加:'CONFIG_ENABLE_DHT22_SAMPLE', -
在同一目标的
ram_component列表中增加:'dht22_sample', -
保存文件。宏和组件必须同时添加;此配置由使用者自行修改,不作为本示例提交内容。保持
SDK_DITING_COMMUNITY和原有图形、Native Ability、KV 存储组件开启。 -
在
src/目录执行干净构建:fbb build --clean diting-community首次构建或需要完整启动链时,使用 SDK 的组合目标
fbb build --clean pack_diting_community。以实际构建输出的固件路径为准,不要烧录目录中遗留的旧包。修改开关、移动源文件后必须清理重编,确认构建日志包含本示例的 C 文件和四个 UI.cpp文件。
关闭功能时删除上述宏和组件配置,再次清理重编即可,不需要改动公共页面或其他业务模块。
运行与验收
表盘界面
- 从应用列表进入“温湿度测量”。等待首次有效采样后显示温度、湿度;未取得数据或读取失败时显示占位符,不沿用旧读数。
- 点击“设置”,周期可选
2、3、5、10、15、20、30秒。温度和湿度按钮分别标注“温度上限 (C)”和“湿度上限 (%RH)”,超过上限才提醒,等于上限不提醒。 - 点击一个阈值打开数字键盘。温度允许
-40.0 ~ 80.0 C,湿度允许0.0 ~ 100.0 %RH,最多一位小数。只有数字、小数点、温度负号、删除和确认;不会打开系统字母键盘。 - 第一次按数字直接替换原值;“删除”逐字删除现有值。“确认”校验后返回设置页,尚未持久化;点击设置页“保存”才写入 KV 并返回测量页。输入错误保留编辑界面并提示范围。
- 编辑时点击左上角返回或右滑,放弃当前正在编辑的数值;在设置页返回则放弃未保存的设置。默认周期为 2 秒、温度上限为 35.0 C、湿度上限为 80.0 %RH。
设置保存在独立键 dht22_ui_config,兼容旧版的逗号分隔整数格式。存储缺失、内容损坏或数值越界时使用默认配置;写入失败不会更改已生效设置。退出页面时停止采样,进入设置时暂停采样,返回后按保存的周期重新启动。
串口 AT
以 750000 波特率打开 UART2 串口,发送以下指令进行单次读取:
AT+DHT22=1,2000
连续读取 3 次,每次间隔 2 秒:
AT+DHT22=3,2000
读取次数范围为 1~100,读取周期范围为 2000~60000 ms。OK 只代表任务启动成功;还要确认每轮输出有效温湿度且最终出现 dht22: task completed,不能把读取失败日志当作通过。
UI 与 AT 同一时间只允许一个入口占用传感器。UI 使用时发送 AT 采样命令会返回忙;AT 使用时 UI 显示等待,AT 完成后再启动页面采样。跨 AT 命令、跨页面重启也保持至少 2 秒的读取间隔;首次上电需等待传感器稳定。
二次开发
修改数据引脚时,同步修改 dht22.c 中的 DHT22_DATA_PIN;修改读取次数、读取周期或通信时序时,同步调整对应宏定义和 AT 参数范围。
界面按本开发板的 400 × 400 屏幕设计。移植其他分辨率、应用框架或裁剪版固件时,需要重新核对布局、注册接口与组件依赖,不应直接假设可用。DHT22 的单总线位捕获仍有毫秒级关中断窗口,在高实时性业务同时运行的场景下需单独评估延迟影响。