Hi3861鸿蒙物联网项目实战:智能照明灯

news2024/9/27 5:36:32

华清远见FS-Hi3861开发套件,支持HarmonyOS 3.0系统。开发板主控Hi3861芯片内置WiFi功能,开发板板载资源丰富,包括传感器、执行器、NFC、显示屏等,同时还配套丰富的拓展模块。开发板配套丰富的学习资料,包括全套开发教程、视频课程、7大项目实战案例,

可以帮助学员系统性学习鸿蒙设备开发及物联网开发。同时作为一款物联网开发板,华清远见FS-Hi3861开发套件可以进行物联网全技术体系的学习,包括传感器、无线传感网络(WiFi/蓝牙)、物联网操作系统(OpenHarmonyOS)、物联网云接入(华为云)等技术方向,可广泛应用于高校物联网创新教学、学生毕设及企业产品开发评估。

可学习技术鸿蒙设备开发环境搭建、鸿蒙裸机驱动开发、OpenHarmonyOS系统开发、鸿蒙网络开发、华为IoTDA设备接入、鸿蒙系统项目开发等鸿蒙设备开发及物联网开发技术。
可实战项目:智能照明灯、智能安防报警、智能农业、智能温度计、智能测距仪、倒车雷达、智能小车。

 

华清远见综合项目案例包括:

• 鸿蒙物联网项目实战:智能照明灯

• 鸿蒙物联网项目实战:智能温度计

• 鸿蒙物联网项目实战:智能安防报警

• 鸿蒙物联网项目实战:智慧农业

• 鸿蒙物联网项目实战:倒车雷达

• 鸿蒙物联网项目实战:智能测距仪

• 鸿蒙物联网项目实战:智能小车

这7个综合项目的难易程度各不相同,方便用户以循序渐进的方式进行学习。项目案例的设计,偏重于综合性更强,更贴近于产品化。每个项目,都可以使用“NFC碰一碰”进行配网。每个项目,都有微信小程序和华为云物联网平台的联动。每个项目,都配套详细的项目开发文档及实验源码,非常方便开发者学习。

公众号“华清远见V智能有料”,回复“鸿蒙项目”,可索取项目配套文档及源码。

鸿蒙开发板项目演示视频:鸿蒙物联网开发板+智能车项目演示_哔哩哔哩_bilibili

基于物联网的智能照明灯项目

项目简介:

随着时代的发展,万物互联的趋势也越来越明显,而传统的本地照明控制方式显然无法满足当前技术先进的生活方式,并且限制了本地照明控制方法。一个好的智能照明系统不仅可以节省最大的照明能源,并且它还可以创建一个舒适的工作环境,以提高工作效率,改善环境质量并确保人们的生活舒适和健康。

开发平台:

华清远见hi3861鸿蒙开发板

项目功能:

1. 设备端

1) NFC 配网功能;

2) 按键切换照明灯的工作模式;

3) 根据光照传感器进行调整当前光照的亮度;

4) 发布和订阅 MQTT 的消息;

2. 微信小程序端

1) 可以将数据写入 NFC 标签中;

2) 可以手动控制 RGB 灯的开关和颜色控制;

3) 可以定时控制 RGB 灯的开启时间和关闭时间;

4) 可以手动切换 RGB 灯的工作模式;

5) 在界面中显示当前光照传感器的数据和 RGB 灯当前的状态;

项目框架

本项目使用的是华为云平台作为中间服务器,在设备端(Hi3861):首先进行连接附近的 WiFi 热点,与华为云平台建立 MQTT 连接,并且使用 JSON 格式数据进行交互数据;在应用端(微信小程序):使用HTTP 协议与华为云平台进行连接,调用相关 API,调用成功之后,会返回 JSON 格式的数据。在设备端,在连接不上附近 WiFi 热点的时候,会在 OLED 显示屏上显示,连接 WiFi 热点失败的提示信息,此时我们可以使用微信小程序上的 NFC 烧写界面,将 WiFi 名称和密码进行烧写开发板上的 NFC 标签,然后再重新开发板进行重新连接新的 WiFi 热点。连接成功之后,可以按下开发板上的按键进行切换照明灯的工作模式,每次切换模式都会向华为云平台发送一次数据,在 MQTT 接收任务中,当接收到云平台接收到数据之后,会进行解析正确的 JSON 数据包,根据 JSON 数据包中的命令进行控制本系统中的相关变量。在应用端,首先进行获取项目的 Token 秘钥信息,获取到 Token 秘钥信息之后,再去使用“获取设备镜像 API”,才能知道当前设备是否在线状态。当同时满足以上两种情况的时候,就可以进行下发指令控制设备端。此外,我们还需要再华为云平台中进行配置相关的基础数据和控制数据格式,配置完成之后,才可以

进行通信使用。

硬件部分

主控部分

本项目使用的是 WF-H861-RTA1 模组作为主控,此模组是基于 Hi3861V100 芯片设计的,该芯片是一款高度集成的 2.4GHz 芯片,集成了 IEEE 802.11b/g/n 基带和 RF 电路,包括功率放大器 PA、低噪声放大器 LNA、RF balun、天线开关以及电源管理模块等。

支持 20MHz 标准带宽和 5MHz/10MHz 窄带宽,提供最大 72.2Mbit/s 物理层速率。并且集成了高性能32 位微处理器,提供 SPI、UART、I2C、I2S、PWM、GPIO 以及多路 ADC 模拟输入等丰富的外设接口,同时支持 SDIO2.0 接口,时钟最高支持 50MHz

主控部分原理图如下图所示:

 模组的外设引脚功能,如下图所示:

 三色灯部分

RGB 灯部分所使用的是 AW2013 控制芯片进行驱动和共阳极的三色 LED 灯,此芯片支持淡入淡出效果和直接 PWM 控制模式和一次编程模式,使用的 I2C 端口与主控芯片进行通信,它可以驱动 3 个单独的LED 灯或一组 RGB 灯。亮度可以使用 PWM 进行设置,输出电流可配置 4 级(0A、5mA、10mA、15mA)

NFC部分

NFC 通信使用的是恩智浦公司生产的 NT3H1101 芯片,此芯片支持 I2C 通信,支持可配置的现场检测引脚,内部配备有 EEPROM 存储芯片,允许在 RF 和 I2C 之间快速传出数据,不收 EEPROM 内存的写入周期进行限制

OLED 显示屏部分

采用 SSD1306 芯片进行驱动 0.96 寸 OLED 显示屏,本显示屏使用黄+蓝屏幕进行显示。点阵数量为 128*64

软件部分

设备端程序框架

应用端程序框架

云平台配置

步骤1: 注册华为云账号并登录

1. 打开华为云物联网平台的网址https://www.huaweicloud.com/,打开网址之后,点击右上角的“注册”。

2.在“注册”页面中,填入手机号进行注册,所有信息填写完成之后,点击“注册按钮”进行注册,注册成功之后,进入下一步。

3.注册完成之后,再次进入华为云的官网进行登录

4. 在登录界面,填入刚刚注册的“手机号”、“华为账号”和“密码”,然后点击“登录”。

 

5. 登录成功之后,点击右上角的“控制台”。

6.在控制台的左上角,因为“标准版免费试用仅对企业用户开放,个人用户建议使用北京四基础版”,所以选择地区为“北京四”,然后点击左侧“服务列表”。

7.在“服务列表”的搜索框中搜索“IoTDA”,然后点击“设备接入 IoTDA”。

8. 点击“平台接入地址”,需要在记事本记录“MQTT 协议设备接入 IP 地址和端口号”。

9. 我们只需要使用设备接入的 MQTT 协议就可以,记住这个服务器的地址。

步骤2: 创建新产品

1.点击左侧的产品,点击右上角的创建产品按钮。

2.选择所属的资源,产品名称填写 smartLamp_Hi3861,数据格式默认,厂商名称和设备类型任意,点击确定。

3.在左侧菜单栏中,找到所有设备,点击注册设备。

4. 选择所属资源空间,所属产品,填写设备标识码为 hi3861,秘钥为 fs123456,当然也可以自己定义。

注意:生成好的设备 ID 和设备秘钥一定到妥善保管,只生成这一份。

步骤3: 创建产品模型

1. 点击左侧“产品”,点击设备新创建好的产品名称“Hi3861_comprehensive”

2. 点击自定义模型。

3.填加基础服务(base)

4. 添加控制服务(control)

5.在“基础服务”中添加属性,用于上传开发板上的数据,以下图为例,其他传感器也是类似的方法

6.展示创建完成的属性列表

7.在“控制服务”中添加属性,用于下发指令控制开发板,以下图为例,其他传感器也是类似的方法

8.展示创建完成的命令列表

步骤4: 根据设备信息,生成用户名和密码

1. 打开由华为云提供的生成用户名和密码的网址,进行生成。

https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

2. 填写生成好的设备 ID 和设备秘钥,点击按钮,生成用户名和密码。

注意:下面的图片提供了方法。

3.将生成好的信息(ClientID、Username、Password),修改文件“/applications/sample/wifi-iot/app/smarLamp/sys_config.h”,下面内容直接替换。

4.修改华为云平台的 MQTT 服务器的 IP 地址,打开 Windows 下 cmd 控制端,在控制端输入内容。

5. 然后修改/applications/sample/wifi-iot/app/smarLamp/sys_config.h 文件中 IP 地址和端口号。

 

第五章 综合测试

编译工程

1.在 Vscode 的左侧按钮中,打开 DevEco Device Tool 开发工具,在开发工具中首先点击“Clean”,再点击“build”进行编译源码

2.编译完成之后,会在终端中提示“SUCCESS”字样,说明编译完成。

3. 编译完成之后,将要烧写的.bin 文件拷贝到共享目录下。在 VSCode 中打开终端:

1) 点击“+”,新建一个新的终端,如下图所示:

2) 然后在工程源码的目录下,输入以下命令,将文件拷贝到共享目录下。

cpout/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin /mnt/hgfs/ubuntu_20.04_64_bit/

烧写程序

1. 打开【HarmonyOS Hi3861 开发板光盘资料\工具软件\Hiburn】程序烧写软件,点击左上角“settin

g”中“com setting”选项,配置一下串口的波特率为 2000000,然后点击确定,如下图所示:

 

2.此时需要开发本通过串口线连接电脑,电脑端的设备管理器会出现一个串口端口号,当然也可以通过烧写软件中“Refresh”按钮进行刷新,然后选择要烧写的 bin 文件,最后要选择“Auto burn”,要不然下载速度会很慢很慢。操作步骤如下图所示:

 

3. 会自动的添加.bin 文件,添加完成之后,点击“Connect”按钮,然后复位开发板,即可开始烧写程序。烧写完成之后会有提示:

 

注意:烧写完成之后,一定要关闭串口连接,点击“DisConnect”。不然的话,当你点击复位之后,又会再次下载一次。

运行程序

1.首先打开微信开发者工具

2.然后点击导入源码

3.选择该工程微信小程序源码的根路径和填写自己 AppID

4.编译源码

5. 生成微信小程序的二维码。

按下开发板中复位按钮,让设备重启,会出现两种情况,

连接 WiFi 失败

第一种是连接不上附近的 WiFi 热点,如下图所示:

这是因为在 NFC 标签内部存储的 WiFi 信息与当前环境中的 WiFi 热点不匹配导致的,按照下面的步骤进行操作:

注意:微信小程序不支持 ios 系统的 NFC 配置功能!!下方会有方法解决。

1. 使用具有 NFC 功能的手机扫描微信开发者工具的预览二维码。

2. 扫描完成之后,在微信小程序中,点击“NFC 配网”按钮

3.在弹出的“NFC 配网设置”界面中,填写正确的 WiFi 名称和 WiFi 密码

4. 填写完成之后,点击“开始配置”,会提示“请靠近设备”,此时将手机靠近开发板上的 NFC 线圈区域。

5. 当提示“写入数据成功”时,说明烧写 NFC 线圈成功。

6. 然后再次按下开发板中的复位按钮。

7. 还有一种是 ios 系统下微信小程序不能使用 NFC 配置的功能时,需要按照下面步骤进行操作:

1) 在 ios 系统的手机商店中下载“NFC Tools”NFC 调试工具。

2)然后点击“写”功能。

3) 点击“添加记录”。

4) 添加“Wi-Fi 网络”信息。

5) 在“配置 WiFi 网络”中,选择身份验证为“WPA/WPA2-Personal”,并输入 SSID 和密码。

 6)然后点击“写/87 字节”按钮,进行烧写。

7) 此时会弹出“贴近 NFC 标签”,请靠近开发板上 NFC 线圈部分。

8)烧写完成之后,会在显示如下图片,说烧写 NFC 芯片数据成功。

连接 WiFi 成功

第二种是直接连接附近 WiFi 成功,会在 OLED 显示屏界面中会显示当前设备连接附近 WiFi 热点的提示信息和连接华为云平台服务器的信息,直到在界面中显示如下图所示,说明连接华为云成功。

连接成功之后,我们需要打开微信小程序,在小程序中界面中,我们可以点击开关按钮,进行下发指令让设备中 RGB 灯进行点亮和熄灭操作,还可以进行调整当前 RGB 灯的颜色值,并且可以调整当前 RGB 灯的亮度值,还可以设置定时开关,还可以设置当前的工作模式(睡眠模式、自动亮度模式、阅读模式、闪烁模式等)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/127196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第十篇 1+X考证 Web前端测试题(新)

单选题 1、关于HTML和CSS以下说法错误的是( D ) A、HTML标签中属性的值一定要用双引号或单引号括起来B、HTML空元素要有结束的标签或于开始的标签后加上"/"C、结构与样式完全分离时,结构代码中不涉及任何的样式元素,如f…

Qt之软键盘的实现

文章目录前言一、基于中文汉字数据库1、核心代码2、效果二、基于谷歌拼音输入引擎1、核心代码2、效果前言 Qt5.8版本开始推出了基于QML实现的软键盘功能,在此之前,并没有官方版本的软键盘。本篇主要介绍Qt实现软键盘的两种方案,一种基于中文汉…

[python][GUI]pyside6

------------------------------------------------------------------------------------------------------------------ #非常好资料和教程: 1. Module Index - Qt for Python 2. muziing/PySide6-Code-Tutorial: 可能是最好的PySide6中文教程!用代…

Spring boot 日志直接推送到elasticsearch上

Spring boot 日志直接推送到elasticsearch前言核心依赖elasticsearch配置文件1.url格式如下2.index索引前缀 "xxx"3.maxMessageSize参数数据内容最大值,本文未使用(默认值-1全部数据接收)如下4.BasicAuthentication.java 重写该类用…

详解opencv库函数ellipse()

opencv库函数ellipse()函数可以画扇形,也可以画椭圆。画扇形时只需要将椭圆的长短轴长度设为相同并给定扇形的圆心角即可。 # 参数 1.目标图片 2.椭圆圆心 3.长短轴长度 4.偏转角度 5.圆弧起始角度 6.终止角度 7.颜色 8.是否填充 cv2.ellipse(img_p, (500, 2…

[python] PyMouse、PyKeyboard用python操作鼠标和键盘

1、PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用。支持的平台及依赖如下: Linux - XlibMac - Quartz, AppKitWindows - pywin32, pyHook 支持python版本:我用的是3.6.7 2、安装 直接源码安装…

越南猫年来袭!2023Lazada年货节热销品趋势

距离2023年春节倒计时23天!大家是否对春节假期已经满怀期待了?越南人也和我们一样正期盼着新年到来,越南所有的传统节日都是按照农历来算的,其中春节也是越南重大的节日。春节将至,提前置办年货成了越南人和华人必不可…

MySQL 表的增删改查(进阶篇②)· 联合查询 内连接 外连接 · 自连接 · 子查询 exists · 合并查询 union

接进阶篇①,我们继续学习。 一、联合查询1.1 内连接1.2 外连接1.3 内连接和左右外连接的区别二、自连接三、子查询3.1 单行子查询3.2 多行子查询使用 in 范围匹配多行另一种写法 exists两种写法的区别3.3 在 from 子句中使用子查询四、合并查询unionunion all一、联…

随谈_前端与后端

文章目录一、前言二、前后端分别是什么?2.1. 前端(front end)2.2. 后端(back end)一、前言 最近在学习Vue,打算边学边用,开发一个网页系统。 Vue的话,网上介绍很多,简单…

容器安全的三大挑战

容器凭借其经济高效的优势改变了应用程序的交付方式,随着容器的普遍使用,管理应用程序基础设施的 IT 劳动力和资源也显著减少。然而,在保护容器和容器化生态系统时,软件团队遇到了许多障碍。尤其是习惯于更传统的网络安全流程和策…

MYSQL学习之路

MYSQL架构示意图 MYSQL8.0开始移除了查询缓存这个模块; 查询缓存:适合读多写少的任务; 建议:将 have_query_cache 设置为No,在需要使用查询缓存的语句上显式声明; select SQL_CACHE * from test;WAL(Write …

mysql sql优化、查看索引、创建索引

1.索引遵循原则 仅在被频繁检索的字段上创建索引。针对大数据量的表创建索引,而不是针对只有少量数据的表创建索引。通常来说,经常查询的记录数目少于表中总记录数据的 15% 时,可以创建索引。这个比例并不绝对,它与全表扫描速度成…

java:jackson 一:Jackson Annotation

java:jackson 一:Jackson Annotation 1 前言 参考文档地址: https://www.baeldung.com/jacksonhttps://www.baeldung.com/jackson-annotations2 使用 2.1 Jackson Serialization Annotations jackson 序列化注解 2.1.1 JsonAnyGetter T…

产业互联网是以大数据、云计算、AI等为代表的数字技术的出现为标志

事实上,以往,我们所经历的那个互联网玩家频出的年代,其实就是一个以互联网技术为主导的年代。在那样一个年代里,互联网技术几乎是解决一切痛点和难题的万能解药,几乎是破解一切行业痛点和难题的杀手锏。任何一个行业&a…

数据可视化③:大学生就业数据分析

大学生就业是和我们息息相关的话题,每一位大学生都关注着,我们常常在网络上看到有关大学生就业的话题,比如毕业季的一些讨论。在大一的创新创业课中,我们也了解到自己所学的专业和以后如何就业,往哪方面就业。但我们了…

深度学习目标检测_IOU、Precision、Recall、AP、mAP详解

文章目录背景IOU:Intersection Over Unionprecision(精度)和recall(召回率)TP、TN 、FP 、FNAP和mAP首先回顾两个概念PR曲线AP(Average Precision)mAP(mean Average Precision)背景 目标检测的任务是找出图…

[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

整合shell编程 回忆上次内容 用\r 可以让输出位置回到行首原位刷新时间 如果想要的是大字符效果 需要使用 figlet但同时还希望能刷新这可能吗?🤔 建立脚本 我们得熟悉一下shell 先新建一个test.sh vi test.sh python3 show_time.py python3 show_time.…

如何通过GB35114国密标准接入到LiveGBS GB28181/GB35114监控平台

1.1 安装LiveGBS GB28181/GB35114视频平台 1.2 获取设备端证书给平台 我们用LiveNVR做为设备端向LiveGBS注册,这里先将LiveNVR的证书导出,并给LiveGBS端。 本地自签名证书是LiveNVR自己给自己签发的证书。如果需要用第三方机构的证书,可点击…

【软件测试】资深测试的总结,有限时间找最有价值bug......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试团队的新同事&a…

Mybatis进阶之自定义TypeHandler

实际应用开发中的难免会有一些需求要自定义一个TypeHandler ,比如这样一个需求:前端传来的性别是 男, 女,但是数据库定义的字段却是tinyint 类型( 1:男 2:女)。此时可以自定义一个年龄的类型处理器,进行转换…