type
slug
status
summary
icon
category
date
tags
password
开发板功能介绍

1:OLED液晶接口 支持I2C的OLED
2:蜂鸣器模块 无源蜂鸣器
3:Hi-07S模组(含海思Hi3861v100芯片,flash存储芯片288KB,SRAM352KB,一个外扩flash2MB)
4:舵机接口,两路SG90,连接更多舵机,可以通过引出的IO口和电源进行扩展
5:ADC电位器,测试芯片内部ADC的功能
6:DS18B20和DHT11(温湿度传感器)的公用接口,右边三个孔:DS18B20(温度传感器),
7:继电器模块(5V),大电流和大电压设备的控制
8:NFC模块(NT3H1101芯片),可以实现FC设备配对和数据传输
9:Hi3861的IO引脚,电源和设备引脚接口
10:按键(设备控制和参数调节)
11:用户指示灯LED
12:复位按键
13:电源模块,5V转化为3.3V,供系统和设工作使用
14:USB转串口的模块,上位机电脑通信以及程序下载(电脑USB接口,模组支持串口通信),CH340驱动实现串口和USB的转换。
15:程序下载口
16:电机模块(5V直流电机和五线四线步进电机ULN2003芯片)
Hi3861
Hi——07S:2.4G


左上角为引脚1,名称为IO08
Hi3861运行系统介绍
运行HarmonyOS,鸿蒙操作系统LiteOS-M内核,

包含被包含独立
Hi3861启动流程
LiteOS启动流程:最小硬件系统配置完成之后,Lite0S操作系统内核进行初始化到合适的状态,再由appint()调用open harmony和应用相关的代码,最后由osstart把操作系统运作起来
环境配置
详情见视频

清除上次编译产生的中间文件/编译/重新编译整个文件/下载
三个.gn:
app.gn:指定编译器所查找的目录
demo.gn:指定编译的实验工程(需要编译就删除#,加上crl+s)
实验.gn:源文件,头文件路径
网络通信

数据的传送:层层向下传输,给网卡,网卡将数据转换成物理电路上的电频信号
数据的接受:逆过程,根据首部解析数据
hi3861里面已经封装LwIP协议库

LiteOS操作系统,运用的是socketAPI(c实现)
AP模式


sta模式:客户端模式,sta模式来连接外部的一个热点


关闭串口助手之后再upload,再开启串口助手,再复位执行程序

UDP通信



本机的ip地址:192.168.1.107
开发板:196.169.1.100
本地主机端口:8080
cmd+ ipconfig/all
TCP协议




MQTT通信

MQTT Broker:服务器只负责中转数据,不做存储
客户端:信息的发布者/订阅者
订阅了这个主题的客户端(手机网页云端)可以收到消息


MQTT的ip地址:44.232.241.40
cmd: ping + broker.emqx.io
华为IoTDA
实现设备和云端的双向通信

物联网平台作为连接业务应用和设备的中间层,屏蔽各种复杂的设备接口
数据上报到平台,平台也可以通过控制命令下发给设备,实现双向通信
业务应用是通过调用物联网平台提供的API,实现设备数据的采集/数据下发设备的一个管理等的场景
hi3861的数据通过MQTT接入华为云LOT,也可以通过物联网平台控制设备




接入设备地址信息和端口号(31.2)

我的:
产品id:67ba90a82ff1872637de1eda

创建产品(31.3)


注册设备

设备id:
67ba90a82ff1872637de1eda_hi3861_led
设备密钥:
ffa325b895fd2948fccd46c3ce055c15
添加属性
再次点击产品名称,点击模型定义,选择自定义模型,添加服务,
服务ID:attribute

新增属性:

我的:

添加命令

ON,OFF之间需要用英文字符隔开

修改代码里相应的数据(31.4)

记录IP地址为117.78.5.126
默认端口1883
软件设计

注意:
在整个demo的BUILD.gn中只需要打开27一个
在27_wifi_huawei_lotda的BUILD.gn,需要增加(第一次错了是因为少了一个逗号)
"//vendor/pzkj/pz_hi3861/common/bsp/src/bsp_dht11.c",
同时注释掉
#"//vendor/pzkj/pz_hi3861/common/bsp/src/bsp_ds18b20.c",
结果
数据传输
build upload后串口调试助手:
DHT11初始化成功:(tips在烟雾报警和光敏加入后也需要写上这样的句子)

WIFI连接成功。连接服务器成功:

MQTT客户端初始化成功:

数据包传输成功:

温湿度变化不灵敏,对着呼气刷新才可以导致数值变动。
但是上面的更新时间刷新很快,大概4s刷新一次
(?这个4s是可以调整的吗)
(?实时变化是需要灵敏度更高的传感器,还是我给的变化条件再大一些?)


注意DHT11的温度和湿度检测范围:


下发点灯命令

监控运维—>在线调试—>选择设备

同时LED的状态为ON

板载小灯点亮

传感器
MQ-2烟雾传感器
adc

烟雾传感器:检测浓度为300~10000



代码修改

对应引脚:
VCC→3V3_1 GND→GND_1 A0—>12


修改ppm公式和值(评论区)
DHT11温湿度传感器

已改函数名,GPIO_GetInputValue_1(DHT11)
GPIO_GetInputValue(DS18B20)



根据我们这个传感器的接线方式为:
从右边往左VCC(红线)第一个孔,out(绿线)在第二个孔,GND(蓝线)在第四个孔
这个DS: DS:这个引脚通常与DS18B20温度传感器相关,DS18B20是一种数字温度传感器,DS引脚是其数据引脚,用于与微控制器通信。
在第一个
template.c
文件中,你已经实现了通过MQTT协议与华为云平台通信的功能,并且在代码中已经包含了DHT11温湿度传感器的驱动程序(bsp_dht11.h
)。为了接受DHT11上传的温度和湿度数据,你需要对代码进行以下修改:修改步骤
- 在数据结构中添加湿度字段
在
msg_sensorData_t
结构体中添加一个用于存储湿度值的字段。
- 在
mqtt_send_task
任务中获取DHT11数据 在mqtt_send_task
函数中,使用DHT11的API获取温度和湿度数据,并将它们存储到sensorData
结构体中。
- 在
Packaged_json_data
函数中添加湿度数据 在生成JSON数据时,将湿度值也包含进去。
- 初始化DHT11传感器
在
hardware_init
函数中添加对DHT11传感器的初始化。
测试和验证
- 编译代码 确保代码没有语法错误,并且能够成功编译。
- 运行程序 将程序烧录到开发板上,观察串口输出,确保DHT11数据能够正确采集并上传到华为云平台。
- 检查华为云平台 登录华为云平台,检查设备上报的数据是否包含温度和湿度信息。
通过以上修改,你的程序将能够接受DHT11传感器上传的温度和湿度数据,并将它们发送到华为云平台。
光敏传感器
ADC读取

ADC实验

常见的电压转化为数字信号

代码修改
step_motor

将电脉冲信号转化为角位移,每发一个信号,步进电机向前进一步。


顺时针旋转:1到8节拍
逆时针选择:8到1节拍


第一步:a导通,其他不导通则默认为高电平
每一步45度
通过按键来控制步进电机的方向和速度

k1控制方向
k2控制速度
延时1到5ms


电机驱动模块已经在板子上了
雨滴传感器


A0—>9 ADC4


A0读取可以显示采集的雨量
没有雨滴输出高电平,有雨滴输出低电平

雨量大小和数字呈现一个正相关,雨量越大数字越大。没有雨量的时候数字为0(0到4095)
蜂鸣器
无源蜂鸣器
源不止是电源的意思

本实验0.5khz,对应的时间,50%占空比,延时时间
周期200ms,高电平100ms,低电平100ms,连续输出

硬件资源

UL2003D 可以简单理解为非门
IN6输入高电平,经过模块后输出低电平(beep_out),同时蜂鸣器的另一端为5v,形成电压。又因为是无源蜂鸣器,所以需要IN6还得输入低电平,经过模块后变为高电平,无电势差,即蜂鸣器断电。这样才能形成脉冲信号
蜂鸣器引脚连接IO14
直流电机


优化
串口输出adc_value_ppm/lux

数据更新频率
- idea1
idea2
已问,尽力了还是5s一刷……

lux<50
ppm>1000报警
降雨强度数据优化
感觉需要修正-47



PPM/Humidity/lux保留两位小数和%
以字符串的形式上发
由于浮点数在 C 语言中以二进制形式存储,并没有固定的“显示精度”,你目前在采集数据时已经做了四舍五入处理,但在调用 cJSON_AddNumberToObject 时,JSON 库仍会按照浮点数的全部精度输出。要让 JSON 数据中 “ppm” 和 “lux” 只显示两位小数,可以在组 JSON 时先将这两个值格式化成字符串,再添加到 JSON 对象中。这样最终输出的 JSON 数据中的这两个字段就是字符串形式的两位小数了。
你可以将湿度数据也格式化为字符串,添加上“%”符号,然后在组 JSON 时通过 cJSON_AddStringToObject 添加。下面给出修改后的 Packaged_json_data 函数示例,针对湿度数据做了处理:
下面给出修改后的 Packaged_json_data 函数示例,仅对 ppm 、lux 、humidi部分做修改:
说明
- 格式化输出
使用
sprintf(buf, "%.2f", sensorData.ppm);
将 sensorData.ppm
格式化为两位小数的字符串,再通过 cJSON_AddStringToObject
添加到 JSON 中,保证最终 JSON 数据中 ppm 字段只显示两位小数。- 保持数据原始值
注意这样处理后,在 JSON 数据中 ppm 和 lux 字段是字符串类型。如果接收端要求为数值类型,可在接收端进行转换,或者考虑在生成 JSON 前将值固定两位,但 C 语言的浮点数本质上无法限制存储精度,只能在输出时控制显示格式。
通过上述修改,输出的 JSON 数据将类似于:
第三阶段
实时传输
关闭看门狗以实现
我们例程的写法就是运行一会之后就自动复位了,复位之后就连不上了;然后程序会重启重新连接

send MQTT_Data Fail
这样的问题是因为:只能调用这些source代码

为什么bsp_dht11,可以加入路径
因为在这里面确实是有dht11的拓展的
但是smoke_sense和light_sense不能自己添加
只能去他们都使用的地方bsp里面添加代码:

统计引脚

光敏传感器

VCC→3V3_2 GND→GND_2 A0—>11

烟雾传感器

A0→12 : adc_0
dht11

ds→7

sg90


GPIO_05
GPIO_06
step_motor

IN1→GPIO1
IN2→GPIO0
IN3→GPIO13
IN4→GPIO8
蜂鸣器

BP-IO
换一个蜂鸣器:有源蜂鸣器



这个源是震荡源。有源蜂鸣器内部有一个震荡电路,所以就直接供电就可以发出固定的音调。
无源蜂鸣器没有震荡电路,需要外部提供震荡。(有源上面有贴纸)


GPIO函数


usleep(微妙延时)

雨滴传感器


语音模块
整个工程中,中英文不能混用,标点符号中英文区分。
GPIO输出控制


串口




室内灯光大概:85lux~120lux波动
如果用纸巾完全挡住那么大概是80以下lux
这下面是我的要求:
光敏传感器
当小于多少的时候,驱动步进电机(窗帘)打开以及GPIO小灯亮
小于80lux的时候(驱动窗帘打开和)GPIO小灯亮
当大于多少的时候,驱动步进电机(窗帘)关闭以及GPIO小灯熄灭
当大于150lux的时候,驱动窗帘打开
当小于多少时,驱动GPIO小灯打开,大于多少的时候关闭(人体感应自动实现)
计划和杂七杂八的资料
参考资料服创省赛任务
传感器数据
烟雾传感器(ADC)【报警】
温湿度传感器、【语音】
光敏传感器(ADC)【步进电机窗帘,室内灯】,并结合人体感应、 光照强度等综合因素进行智能化场景自动控制;
晾衣架【两个舵机】
上云
报警,
改GPIO口
合成一个文件可以同时跑吗(简单的两个文件合起来,再到三个文件)
温湿度传感器接收数据与测试
温湿度传感器接收数据上传云端
烟雾传感器改ADC引脚
烟雾传感器上传烟雾数据
查看ppm的正常数值更改,找到打火机进行更改
光敏传感器上传光照数据
修改步进电机转动速度
驱动两个舵机转动(衣架)
开门
合并云平台文件和烟雾传感器
下发参数0~100,pwm灯
光敏设定阈值(<50>300),驱动步进电机(窗帘)打开关闭
烟雾报警设定阈值(>1000),驱动板载蜂鸣器
模型搭建
github

3.12 (21:30~22:50)
上传GitHub,并且学会使用git,写出自己的技术文档
记录所有设备的接线引脚
3.15
舵机上云和控制命令
两个舵机
步进电机上云和控制命令
烟雾驱动板载蜂鸣器
烟雾报警设定阈值(>500),驱动蜂鸣器
ppm公式有问题(根据stm32进行修改)
连接线出现问题,电压5v
光敏驱动舵机和步进电机
雨滴传感器?驱动舵机转动,收衣服
光照大于多少时,步进电机转动,降下窗帘
小于多少客厅灯亮
在什么区间窗帘抬起
光照在什么区间的时候,步进电机转动,打开窗帘适合屋内透光
ppm350左右
lux的数据计算有点问题?
修改板载连线
驱动蜂鸣器,蜂鸣器上云
雨滴传感器,雨滴传感器上云
数据下发
连接稳定
实时传输数据

4.10
16:52~17:52测试整个其他的
光敏传感器
当小于多少的时候,驱动步进电机(窗帘)打开以及GPIO小灯亮
当大于多少的时候,驱动步进电机(窗帘)关闭以及GPIO小灯熄灭
当小于多少时,驱动GPIO小灯打开,大于多少的时候关闭(人体感应自动实现)
测试模块(教给🐏姐)
17:52~18:52语音模块
打开所有照明
播报温湿度
打开空调
打开窗帘
打开衣架
4.12完成视频拍摄|完成视频剪辑
服创脚本:
第一幕:
作品外观展示
第二幕:
作品app展示
(1)智能控制中心 主要由智能主板和小型网关组成, 用来对接各类智能化设备,组建成一个智能家居传感场景, 通过OpenHarmony APP和小型网关, 达到设备的智能联动, 智能场景切换的目的;
第三幕:
作品功能演示
3.1( 2) 安防系统
通过对NFC卡片的读写数据, 来实现以门禁卡的形式控制门锁开关, NFC卡片开锁, 并结合人脸识别能力, 实现刷脸开锁的功能;
3.2( 3) 智能照明
通过APP实现房屋内灯光的基本控制。 对灯光的亮灭、 亮度进行控制, 并结合人体感应、 光照强度等综合因素进行智能化场景自动控制;
光敏:当室内光照过暗:打开走廊灯(夜晚人走过时)
亮度进行控制
3.3( 4) 家庭环境监测系统
实现对家庭中的温度、 湿度基本信息监测, 并在展示板上进行数值展示,在APP上基本判断环境适宜度, 若温湿度过高或者过低给予远程控制解决方案;(??)
光敏:当室外光照合适,打开窗帘。室外光照弱时,自动打开灯光。
温湿度传感器:检测环境温度,提醒用户穿衣
进入厨房后,检测到天然气泄漏等,变回触发报警器报警
在卧室的窗外有语音可控的晾衣架,方便晾晒衣服的同时可减少占地
雨滴:当室外雨水过大时,自动收起晾衣杆。衣架还可以通过手机app连接云端控制

3.4( 5) 系统扩展性
系统可灵活接入其他家居电器,通过APP对其实现控制( 至少接入一个) 。
(是将语音模块和app模块合在一起展示吗)
12:30~13:00 完成数据库作业(30min)
13:00~14:00完成视频剪辑
12:00~ 14:00 完成视频剪辑
完成ppt制作
(1)项目概要介绍;
(2)项目简介PPT;
(3)项目详细方案;
(4)项目演示视频;
(5)企业要求提交的材料:
需求分析文档完整;
②系统设计文档完整;
③测试案例完整;
④源码与数据库完整(源代码自愿提供);
⑤测试报告完整;
⑥产品HAP安装包。
(6)团队自愿提交的其他补充材料
传感器说明书、板子说明书
服创最终
视频
代码
Hi3861
SparkleYuyu • Updated Apr 16, 2025
(*****)答辩稿
答辩服创学校登记
软件学院“睿启鸿居”团队推出基于OpenHarmony的全场景智能家居解决方案,直面行业“生态割裂”与“隐私安全”两大痛点,以科技创新诠释“科技向善”。 在万物互联却生态割裂的“智能巴别塔”时代,我们以OpenHarmony为基,打造“双芯双盾”智慧架构——Hi3861边缘网关与ESP32-S3 AI引擎协同,构建分布式设备中枢,让小米、海尔等跨品牌家电共融一网;动态加密NFC与精准人脸识别组成双因子安防,数据全程驻守端侧,隐私固若金汤。系统独创“鸿小伴”全龄语音助手,以92.4%方言识别率听懂银发乡音,借声纹唤醒守护童真;NFC“碰一碰”打破触屏壁垒,让科技小白秒变智能管家。环境智控网络以卡尔曼滤波融合传感数据,温湿度异常秒级联动空调,烟雾预警3倍速响应,守护万家灯火。在“数字中国”战略下,这套国产化方案已适配多款不同厂商款设备,以MQTT+TLS贯通云端,用开源生态终结“协议割据”,更以边缘计算捍卫数据主权——当老人凭乡音点亮客厅暖光,当留守儿童借语音联通亲情,我们正以自主创新之笔,在OpenHarmony的蓝图上书写“科技惠民、万物共生”的中国式温暖注脚。
嵌入式AI
Idea1:将大模型部署在板子上还是
【淘宝】7天无理由退货 https://e.tb.cn/h.hTosa9gE7ujGDLg?tk=ZTwG4aaFgWj HU006 「聆思CSK6大模型语音视觉DeepSeek开发板家居玩具音箱机器人模块」
点击链接直接打开 或者 淘宝搜索直接打开
【淘宝】假一赔四 https://e.tb.cn/h.hTK3tM33jjjcaaU?tk=C2eg4aZ7RM4 HU287 「正点原子ESP32 BOX开发板小智AI聊天机器人组合套件 虾哥ESP32S3」
点击链接直接打开 或者 淘宝搜索直接打开
Idea2:APP接api
- 问问题,提意见
- 如果单纯APP显示的话,我觉得接api就行了

- 一篇论文:
- 演示是直接app弹
下面是我们的创新点三:鸿小伴AI助手。专为解决老人日常医疗咨询的难题。鸿小伴AI通过华为云实时对接业界领先的DeepSeek-R1大模型,实现精准的自然语言理解与答案生成。老人无需任何打字操作,直接通过语音提问:例如‘我喉咙疼该怎么办’,AI理解问题后,即时用清晰语音播报答案,形成无障碍语音闭环交互。
鸿小伴通过这一创新的语音驱动模式,结合端云与大模型技术,切实解决老人操作障碍,让尖端AI安全便捷地服务银发群体的健康咨询需求。谢谢!”
照片墙


- 作者:🐟🐟
- 链接:https://www.imyuyu.top//article/Competiton1
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。