鸿蒙
OpenHarmony · GPIO · PWM · I²C · UART

Hi3861嵌入式开发

基于 OpenHarmony 的 Hi3861 嵌入式开发项目,覆盖红绿灯、炫彩灯、环境监测与 AT 指令四大模块。

01

红绿灯板开发

三色 LED 与 S3 按钮协同,完成灯控、并发与按钮交互综合实验。

02

炫彩灯板开发

蜂鸣器、RGB 灯、光敏与人体红外传感器融合,实现音乐可视化与感应照明。

03

环境监测板开发

基于 MQ 2、AHT20、OLED 的环境参数采集、显示与阈值报警。

04

AT 指令开发

扩展自定义 AT 命令,完成开发板串口通信与计算结果返回。

项目速览

本项目将 Hi3861 上的 OpenHarmony 嵌入式练习组织为四条路径:交通灯状态机、灯光与蜂鸣器联动、环境数据采集,以及自定义 AT 指令。每条路径均先实现单个外设控制,再与其它模块组合,四个场景合计覆盖输入、处理与输出三类任务。

关于这个项目

它要解决什么

嵌入式学习中常见的情况是各外设分别掌握,但缺少将其组织为完整系统的经验。本项目以四个可独立运行的场景,将 GPIO、PWM、传感器与串口通信按难度排列为一条学习路径。

四条路径的内容

交通灯以状态机控制红绿灯切换并检测违规鸣笛;炫彩灯通过 PWM 生成灯效并与蜂鸣器联动;环境监测通过 ADC 与 I²C 采集温湿度与光照,并显示于 OLED;AT 指令则将串口扩展为可自定义的命令接口。

用到什么

Hi3861 开发板与 OpenHarmony LiteOS-M,使用 C 语言开发,涉及 GPIO、PWM、ADC、I²C 与 OLED 显示屏,以及 UART 串口通信。

如何查阅

按页面中的模块顺序选择开发板,核对引脚与外设后进入对应 README,查看源码目录与编译流程。页面另提供完整 README 的在线阅读页;复现实物效果需要对应的板卡与器件。

项目结构

目录组织遵循模块化设计,功能分区清晰,便于逐步激活与验证。

Hi3861/
├── rayawa/
│   ├── hello/
│   ├── traffic_light/
│   ├── colorful_light/
│   ├── environment/
│   └── at_command/
├── demolink/
├── iothardware/
├── samgr/
└── startup/
01

模块一 | 红绿灯板开发

聚焦 GPIO 输出与按键输入协同,形成从基础灯控到状态机联动的完整实验链路。

硬件配置

  • 三色 LED:GPIO_10 红灯,GPIO_11 绿灯,GPIO_12 黄灯
  • 控制按键:GPIO_8,S3 按钮

开发项目

  1. light.c:基础灯控,单灯开关与组合控制
  2. traffic.c:交通灯时序循环与任务调度
  3. ability.c:多线程并发与任务同步
  4. button.c:按键检测、消抖与输入处理
  5. control.c:按钮控制红绿灯综合项目

学习路径

light.c → traffic.c → ability.c → button.c → control.c

02

模块二 | 炫彩灯板开发

围绕声音、灯光与感知融合,构建从器件驱动到场景联动的实验体系。

硬件配置

  • 三色 LED:PWM1 红色,PWM2 绿色,PWM3 黄色
  • 蜂鸣器:PWM0
  • 人体传感器:ADC 通道 3
  • 光敏电阻:ADC 输入

开发项目

  1. beep.c:蜂鸣器频率与音效控制
  2. music.c:旋律播放与节奏控制
  3. led.c:音乐与三色灯同步显示
  4. human_sensor.c:人体红外热释电传感器采样
  5. photosensitive.c:光敏采样与环境光判断
  6. human_sensor_light.c:夜晚感应人体自动亮灯

学习路径

beep.c → music.c → led.c → human_sensor.c → photosensitive.c → human_sensor_light.c

03

模块三 | 环境监测板开发

通过多传感器协同与 OLED 可视化,完成环境参数监测与超阈值告警。

硬件配置

  • MQ 2 燃气传感器:ADC 通道 5
  • AHT20 温湿度传感器:I2C
  • OLED 显示屏:SSD1306,I2C
  • 火焰传感器与蜂鸣器告警模块

开发项目

  1. mq2_demo.c:燃气浓度采样
  2. aht20.c/.h:温湿度驱动实现
  3. aht20_demo.c:温湿度采集演示
  4. oled_ssd1306.c/.h:OLED 显示驱动
  5. oled_demo.c:显示渲染演示
  6. enrionment_demo.c:综合监测与报警

技术特性

  • I2C 总线复用:AHT20 与 OLED 协同通信
  • ADC 采样:可燃气体与环境信号数字化
  • 实时显示:OLED 周期刷新关键参数
  • 阈值报警:参数超限触发蜂鸣器告警
04

模块四 | AT 指令开发

在 OpenHarmony AT 框架上扩展命令,形成参数解析、执行与结果回传闭环。

开发项目

  1. cal.c:自定义 AT+CALC=a,b 指令
  2. 支持和、差、积、商四类结果输出
  3. 包含参数校验与除零保护逻辑

通信示例

输入命令:

AT+CALC=12,3

返回结果:

+CALC:Sum=15 +CALC:Diff=9 +CALC:Prod=36 +CALC:Quot=4 OK

编译与使用流程

  1. 编辑 rayawa/BUILD.gn 激活目标模块
  2. 编辑模块内部 BUILD.gn 激活目标源码
  3. 在 OpenHarmony 根目录执行 hb build
  4. 使用 HiBurn 烧录到 Hi3861 开发板
  5. 串口参数设置为 115200,8N1,观察运行输出

技术栈

  • 硬件接口:GPIO、PWM、I2C、ADC
  • 系统框架:OpenHarmony、CMSIS RTOS2、HiAT Framework
  • 构建工具:GN、Ninja、hb
  • 调试与烧录:HiBurn、串口终端
  • 版本管理:Git
返回项目列表