type
slug
status
summary
icon
category
date
tags
password

开发板功能介绍

notion image
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
notion image
notion image
左上角为引脚1,名称为IO08

Hi3861运行系统介绍

运行HarmonyOS,鸿蒙操作系统LiteOS-M内核,
notion image
包含被包含独立

Hi3861启动流程

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

环境配置

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

网络通信

notion image
数据的传送:层层向下传输,给网卡,网卡将数据转换成物理电路上的电频信号
数据的接受:逆过程,根据首部解析数据
hi3861里面已经封装LwIP协议库
notion image
LiteOS操作系统,运用的是socketAPI(c实现)

AP模式:

notion image
notion image

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

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

UDP通信:

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

TCP协议

notion image
notion image
notion image
notion image

MQTT通信

notion image
MQTT Broker:服务器只负责中转数据,不做存储
客户端:信息的发布者/订阅者
订阅了这个主题的客户端(手机网页云端)可以收到消息
notion image
notion image
MQTT的ip地址:44.232.241.40
cmd: ping + broker.emqx.io

华为IoTDA

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

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

notion image
我的:
产品id:67ba90a82ff1872637de1eda
notion image

创建产品(31.3)

notion image
notion image

注册设备

notion image
设备id: 67ba90a82ff1872637de1eda_hi3861_led
设备密钥:
ffa325b895fd2948fccd46c3ce055c15
 

添加属性

再次点击产品名称,点击模型定义,选择自定义模型,添加服务,
服务ID:attribute
notion image
新增属性:
notion image
我的:
notion image
 

添加命令

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

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

notion image
记录IP地址为117.78.5.126
默认端口1883

软件设计

notion image
注意:
在整个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在烟雾报警和光敏加入后也需要写上这样的句子)
notion image
WIFI连接成功。连接服务器成功:
notion image
MQTT客户端初始化成功:
notion image
数据包传输成功:
notion image
 
温湿度变化不灵敏,对着呼气刷新才可以导致数值变动。
但是上面的更新时间刷新很快,大概4s刷新一次
(?这个4s是可以调整的吗)
(?实时变化是需要灵敏度更高的传感器,还是我给的变化条件再大一些?)
notion image
notion image
注意DHT11的温度和湿度检测范围:
notion image
notion image

下发点灯命令

notion image
监控运维—>在线调试—>选择设备
notion image
同时LED的状态为ON
notion image
板载小灯点亮
notion image
 

传感器

MQ-2烟雾传感器

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

代码修改

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

修改ppm公式和值(评论区)

 

DHT11温湿度传感器

notion image
已改函数名,GPIO_GetInputValue_1(DHT11)
GPIO_GetInputValue(DS18B20)
notion image
notion image
notion image
 
根据我们这个传感器的接线方式为:
从右边往左VCC(红线)第一个孔,out(绿线)在第二个孔,GND(蓝线)在第四个孔
这个DS: DS:这个引脚通常与DS18B20温度传感器相关,DS18B20是一种数字温度传感器,DS引脚是其数据引脚,用于与微控制器通信。
💡
在第一个template.c文件中,你已经实现了通过MQTT协议与华为云平台通信的功能,并且在代码中已经包含了DHT11温湿度传感器的驱动程序(bsp_dht11.h)。为了接受DHT11上传的温度和湿度数据,你需要对代码进行以下修改:

修改步骤

  1. 在数据结构中添加湿度字段msg_sensorData_t结构体中添加一个用于存储湿度值的字段。
    1. mqtt_send_task任务中获取DHT11数据mqtt_send_task函数中,使用DHT11的API获取温度和湿度数据,并将它们存储到sensorData结构体中。
      1. Packaged_json_data函数中添加湿度数据 在生成JSON数据时,将湿度值也包含进去。
        1. 初始化DHT11传感器hardware_init函数中添加对DHT11传感器的初始化。

          测试和验证

          1. 编译代码 确保代码没有语法错误,并且能够成功编译。
          1. 运行程序 将程序烧录到开发板上,观察串口输出,确保DHT11数据能够正确采集并上传到华为云平台。
          1. 检查华为云平台 登录华为云平台,检查设备上报的数据是否包含温度和湿度信息。
          通过以上修改,你的程序将能够接受DHT11传感器上传的温度和湿度数据,并将它们发送到华为云平台。
           

          光敏传感器

          ADC读取
          notion image

          ADC实验

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

          代码修改

          step_motor

          notion image
          将电脉冲信号转化为角位移,每发一个信号,步进电机向前进一步。
          notion image
          notion image
          顺时针旋转:1到8节拍
          逆时针选择:8到1节拍
          notion image
          notion image
          第一步:a导通,其他不导通则默认为高电平
          每一步45度
          通过按键来控制步进电机的方向和速度
          notion image
          k1控制方向
          k2控制速度
          延时1到5ms
          notion image
           
          notion image
          电机驱动模块已经在板子上了
           

          雨滴传感器

          notion image
          notion image
          A0—>9 ADC4
          notion image
          notion image
          A0读取可以显示采集的雨量
          没有雨滴输出高电平,有雨滴输出低电平
          notion image
          雨量大小和数字呈现一个正相关,雨量越大数字越大。没有雨量的时候数字为0(0到4095)
           
           
           
           
           
           
           

          蜂鸣器

          无源蜂鸣器
          源不止是电源的意思
          notion image
          本实验0.5khz,对应的时间,50%占空比,延时时间
          周期200ms,高电平100ms,低电平100ms,连续输出
          notion image
          硬件资源
          notion image
          UL2003D 可以简单理解为非门
          IN6输入高电平,经过模块后输出低电平(beep_out),同时蜂鸣器的另一端为5v,形成电压。又因为是无源蜂鸣器,所以需要IN6还得输入低电平,经过模块后变为高电平,无电势差,即蜂鸣器断电。这样才能形成脉冲信号
          蜂鸣器引脚连接IO14
           

          直流电机

          notion image
          notion image
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           
           

          优化

          串口输出adc_value_ppm/lux

          notion image

          数据更新频率

          idea1

          idea2

          已问,尽力了还是5s一刷……
          notion image
          lux<50
          ppm>1000报警
           

          降雨强度数据优化

          感觉需要修正-47
          notion image
           
           
          notion image
          notion image

          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部分做修改:
          说明
          1. 格式化输出
            1. 使用 sprintf(buf, "%.2f", sensorData.ppm);sensorData.ppm 格式化为两位小数的字符串,再通过 cJSON_AddStringToObject 添加到 JSON 中,保证最终 JSON 数据中 ppm 字段只显示两位小数。
          1. 保持数据原始值
            1. 注意这样处理后,在 JSON 数据中 ppm 和 lux 字段是字符串类型。如果接收端要求为数值类型,可在接收端进行转换,或者考虑在生成 JSON 前将值固定两位,但 C 语言的浮点数本质上无法限制存储精度,只能在输出时控制显示格式。
          通过上述修改,输出的 JSON 数据将类似于:

          Github与Git

           

          第三阶段

          实时传输
          关闭看门狗以实现
          我们例程的写法就是运行一会之后就自动复位了,复位之后就连不上了;然后程序会重启重新连接
          notion image
          send MQTT_Data Fail
          这样的问题是因为:只能调用这些source代码
           
           
          notion image
          为什么bsp_dht11,可以加入路径
          因为在这里面确实是有dht11的拓展的
          但是smoke_sense和light_sense不能自己添加
          只能去他们都使用的地方bsp里面添加代码:
          notion image
           

          统计引脚

          notion image

          光敏传感器

          notion image
          VCC→3V3_2 GND→GND_2 A0—>11
          notion image

          烟雾传感器

          notion image
          A0→12 : adc_0
           

          dht11

          notion image
          ds→7
          notion image
           

          sg90

          notion image
          notion image
          GPIO_05
          GPIO_06
           

          step_motor

          notion image
          IN1→GPIO1
          IN2→GPIO0
          IN3→GPIO13
          IN4→GPIO8

          蜂鸣器

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

          GPIO函数

          notion image
          notion image
          usleep(微妙延时)
          notion image
           
           
           

          雨滴传感器

          notion image
           
           
          notion image
           
           
           
           

          语音模块

          整个工程中,中英文不能混用,标点符号中英文区分。
          GPIO输出控制
          notion image
          notion image
          串口
          notion image
          notion image
          notion image
          notion image
           
           
          室内灯光大概:85lux~120lux波动
          如果用纸巾完全挡住那么大概是80以下lux
          这下面是我的要求:
          光敏传感器
          当小于多少的时候,驱动步进电机(窗帘)打开以及GPIO小灯亮
          小于80lux的时候(驱动窗帘打开和)GPIO小灯亮
          当大于多少的时候,驱动步进电机(窗帘)关闭以及GPIO小灯熄灭
          当大于150lux的时候,驱动窗帘打开
          当小于多少时,驱动GPIO小灯打开,大于多少的时候关闭(人体感应自动实现)
           
           

          计划和杂七杂八的资料

          任务一:应用开发 任务二:硬件开发 任务三:连起来

          应用开发的视频和手册

          notion image

          开发板

          notion image

          项目总览

          notion image
           

          演示

          (只基于板子和应用)https://www.bilibili.com/video/BV1242ZYYEdg/?spm_id_from=333.337.search-card.all.click&vd_source=e4fa1c3d198b15a23736ee13db98083f
          (板子应用和硬件)
           
           

          关于小程序和应用的开发

          (这个是基于STM32的)
           

          云平台

          (阿里云)
           
           
           

          可能的思路

          (1)智能控制中心 主要由智能主板和小型网关组成, 用来对接各类智能化设备,组建成一个智能家居传感场景, 通过OpenHarmony APP和小型网关, 达到设备的智能联动, 智能场景切换的目的;
          ( 2) 安防系统
          通过对NFC卡片的读写数据, 来实现以门禁卡的形式控制门锁开关, NFC卡片开锁, 并结合人脸识别能力, 实现刷脸开锁的功能;
          ( 3) 智能照明
          通过APP实现房屋内灯光的基本控制。 对灯光的亮灭、 亮度进行控制, 并结合人体感应、 光照强度等综合因素进行智能化场景自动控制;
          ( 4) 家庭环境监测系统
          实现对家庭中的温度、 湿度基本信息监测, 并在展示板上进行数值展示,在APP上基本判断环境适宜度, 若温湿度过高或者过低给予远程控制解决方案;
          ( 5) 系统扩展性
          系统可灵活接入其他家居电器,通过APP对其实现控制( 至少接入一个) 。
          在APP上基本判断环境适宜度,若温湿度过高或者过低给予远程控制解决方案。
          手机端:我的理解是,手机端(也可能是电脑上的,但是手机上肯定更好。谁会想开灯之前先打开电脑呢。。。)上开发一个鸿蒙的app,然后通过鸿蒙暴露出来的设备开发接口(可以把这些设备开发接口理解为更高级的库函数),写一些与网络相关的应用程序,实现能够通过手机发出信号,然后通过网络传输给其他的硬件设备(通过网络传输应该要求要在一个局域网内吧,在一个局域网内的所有联网设备应该都在同一个网关下,NAT)
          硬件:我想的是,如果只需要用一个小模型(就是小房子的模型)进行演示的话,那我觉得只需要一个主控板(具体选什么型号的板子都无所谓,但是一定要有联网功能)就好了。主控板接收手机端发出的信号,然后对其他的硬件进行控制即可(比如说智能照明,就是通过主控板对LED灯进行控制。。。)

          任务划分

          • PPT+视频+报告:三个人一起做吧,就是手机端开发和硬件开发做完之后。如果时间不够的话建议直接在网上找找开源的代码。if(找不到开源代码&&是初赛),因为只需要交一个视频就好了,这样手机端就可以做成静态页面(就是不能交互的页面),然后硬件开发也可以硬编码(就比如说点灯就可以随便一点,比如说定时点灯,这个时候手机app和硬件设备之间没有交互,但是拍视频的时候,要假装点了一下手机啥的)
          • 手机端开发:两个人
          • 硬件开发:一个人(最起码实现一下联网点灯,如果还有余力的话就多做点硬件)
          • 鸿蒙系统,在上面怎么开发,应用开发需要什么,类似的源代码项目,板子型号?
           
          应用端云一体化
           

          一些奇奇怪怪的资源

          鸿蒙官方手册:
          基于homeassistant的智能家居控制系统:(这个也好像有点东西哇但是要钱,可以根据这个来搭建)
          关于NFC卡片扫描的演示视频:
          (含源代码)
          基于鸿蒙开发板智能家居项目:
          鸿蒙系统应用开发学习之路:
          运用阿里云的智能家居开发,但作者专栏内容下面的关于stm32获取DHT11温度传感器数据的消息还行
           

          Hi3861鸿蒙开发板及入门常见问题解答

          人脸识别

          stm32:
          esp32cam:
          树莓派人脸识别:
          k210:操作很简单,只是得再多买一块板子。
          基于stm32的智能门禁系统,包含人脸识别,RFID,蓝牙app,密码锁【stm32c8t6】
          (没有接线图和教学视频之类的)
          stm32:
          (有教学视频,接线图但是要付费)
          树莓派、Arduino 做的 人脸识别门禁系统
          Esp32:
          k210:
           
           

          传感器数据

          烟雾传感器(ADC)【报警】
          温湿度传感器、【语音】
          光敏传感器(ADC)【步进电机窗帘,室内灯】,并结合人体感应、 光照强度等综合因素进行智能化场景自动控制;
          晾衣架【两个舵机】
          上云
          报警,
          改GPIO口
          合成一个文件可以同时跑吗(简单的两个文件合起来,再到三个文件)
          温湿度传感器接收数据与测试
          温湿度传感器接收数据上传云端
          烟雾传感器改ADC引脚
          烟雾传感器上传烟雾数据
          查看ppm的正常数值更改,找到打火机进行更改
          光敏传感器上传光照数据
          修改舵机转动速度,驱动两个舵机转动
          合并云平台文件和烟雾传感器
          下发参数0~100,pwm灯

          鸿蒙应用和华为云loT对接

           
          notion image
          notion image

          智能照明

          ( 3) 智能照明
          通过APP实现房屋内灯光的基本控制。 对灯光的亮灭、 亮度进行控制,
          呼吸灯--->外置灯
          实现效果参照之前找的视频?(讨论)
           

          服创第二阶段任务

          传感器数据

          烟雾传感器(ADC)【报警】
          温湿度传感器、【语音】
          光敏传感器(ADC)【步进电机窗帘,室内灯】,并结合人体感应、 光照强度等综合因素进行智能化场景自动控制;
          晾衣架【两个舵机】
          上云
          报警,
          改GPIO口
          合成一个文件可以同时跑吗(简单的两个文件合起来,再到三个文件)
           
          温湿度传感器接收数据与测试
          温湿度传感器接收数据上传云端
          烟雾传感器改ADC引脚
          烟雾传感器上传烟雾数据
          查看ppm的正常数值更改,找到打火机进行更改
          光敏传感器上传光照数据
          修改步进电机转动速度
          驱动两个舵机转动(衣架)
          开门
          合并云平台文件和烟雾传感器
          下发参数0~100,pwm灯
          光敏设定阈值(<50>300),驱动步进电机(窗帘)打开关闭
          烟雾报警设定阈值(>1000),驱动板载蜂鸣器
          模型搭建
          github
          notion image
          3.12 (21:30~22:50)
          上传GitHub,并且学会使用git,写出自己的技术文档
          记录所有设备的接线引脚
           
          3.15
          舵机上云和控制命令
          两个舵机
          步进电机上云和控制命令
          烟雾驱动板载蜂鸣器
          烟雾报警设定阈值(>500),驱动蜂鸣器
          ppm公式有问题(根据stm32进行修改)
          连接线出现问题,电压5v
          光敏驱动舵机和步进电机
          雨滴传感器?驱动舵机转动,收衣服
          光照大于多少时,步进电机转动,降下窗帘
          小于多少客厅灯亮
          在什么区间窗帘抬起
          光照在什么区间的时候,步进电机转动,打开窗帘适合屋内透光
          ppm350左右
          lux的数据计算有点问题?
          修改板载连线
          驱动蜂鸣器,蜂鸣器上云
          雨滴传感器,雨滴传感器上云
          数据下发
          连接稳定
          实时传输数据
          notion image
          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连接云端控制
          notion image
          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
          SparkleYuyuUpdated Apr 16, 2025
           
           
           
           
           
           
           
           
           
           
           
           
           
          GitNotion使用小指南喵~
          Loading...
          🐟🐟
          🐟🐟
          在坚冰还盖着北海的时候,我看到了怒放的梅花
          最新发布
          Hi3861 & 服创
          2025-4-18
          四轴飞行器
          2025-4-16
          Notion使用小指南喵~
          2025-4-16
          Git
          2025-4-16
          嵌入式操作系统
          2025-3-28
          C2驾驶证考试
          2025-3-13
          公告
          🎉NotionNext 3.15已上线🎉
          -- 感谢您的支持 ---
          👏欢迎更新体验👏