0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于OpenHarmony的智能门锁设计

OpenHarmony技术社区 来源:OpenHarmony技术社区 2023-04-10 11:05 次阅读

本项目的场景是智能家居。通过 OpenHarmony 源码与 Hi3861 开发板进行智能门锁的项目开发。最后可以通过舵机进行开关锁与通过手机的数字管家进行密码解锁。

技术要求:

掌握 C,JS,Java 语言

掌握原子化服务原理(Fa ability)

熟悉 Git 等代码版本管理工具

熟悉 OpenHarmony 的设备端开发,包括构建系统

熟悉 IoT 物联网协议(MQTT)

熟悉 VS code与Deveco studo 软件

资源获取:

在 Gitee 上获取 openharmony 源码(本次案例用 3.0 版本作为演示)

在 Gitee 上获取 MQTT 协议与 VS code 的编译工具组件

操作系统 Ubuntu 华为云中国镜像

https://www.huaweicloud.com/theme/77291-1-U

环境搭建

①软件准备

从华为开发者联盟下载开发软件。

VS code:

https://device.harmonyos.com/cn/develop/ide
Deveco:
https://developer.harmonyos.com/cn/develop/deveco-studio
端口驱动官网:
http://www.wch.cn/downloads/CH341SER_EXE.html

选择合适的驱动下载后通过 USB 线即可让板子成功与电脑连接(可以去设备管理器去看看这个驱动有没有安装成功。

②环境介绍

如下:

操作系统:Ubuntu

编译构建:Python

包管理工具:HPM

NPM 环境:Node.js

OpenHarmony 版本:3.0

USB 串口驱动:CH341SER.exe

烧录软件:Hiburn

开发板:润和 HI3861

华为硬件开发工具:Visual Studio Code(DevEco Device Tool)

软件简介:华为把一个集成的硬件编制软件作为插件放在了这个代码编辑器里,里面包含代码编辑,编译,烧录等功能。是一个集成环境。

环境配置组件与软件插件:第一次下载软件后需要自行载入编译组件,在上述的 1.3 中可以获取组件。

下载完通过点击 VS code 左侧的插件标识后在 QUICK ACCESS/主界面/工程设置里点击<添加用户组件>即可添加。

在 Ubuntu 环境下的 VS code 目前只能通过快捷键复制粘贴地址或通过点击文件夹图标选择路径,不可以使用鼠标进行复制粘贴。

这里所载入的插件版本号与描述可以随意填,不影响正常使用。

必须的插件:C/C++,C/C++ GNU Global,Chinese (Simplified),CodeLLDB。

推荐的插件:GN,Better C++ Syntax,CMake Tools,Remote – SSH。

e82f4ce0-d6a4-11ed-bfe3-dac502259ad0.png

上图为编译组件安装好的样子

华为系统开发工具:Deveco Studio,手动在设置中下载 SDK。

协议移植

①协议介绍

Mqtt 是用于设备与服务器通讯的一种协议,使设备可以上报订阅下发信息

②协议移植

通过上述连接下载之后复制粘贴到 openharmony 的 third part(第三方库)中。

③验证成功

从开发板厂商官网下载实验 demo 进行实验。因为目前大多数厂商使用的都是 openharmony 1.0 代码作为演示,不同的源码版本在编译规则和文件名上都会不同,所以在下载的源码中的头文件吊起等也要修改才能接入 mqtt 协议。

Mqtt 最重要要吊起的功能文件在如下中:

/home/open/Downloads/code-v3.0-LTS/OpenHarmony/third_party/pahomqtt/MQTTClient-C/src
特别是 liteOS 中: e8491de6-d6a4-11ed-bfe3-dac502259ad0.png 上图为上报-订阅-下发 的原理图  

解决方案

①用户角度

嵌入式设备开发这块先要考虑用户的操作界面(前端)才能考虑实现功能。

e86e8c2a-d6a4-11ed-bfe3-dac502259ad0.png

②实现原理

交互流程:由智能门锁订阅的命令下发的主题经过代理服务器可下发到用户终端,用户终端就可收到通知。反之用户终端也可发送命令通过代理服务器到达智能门锁。

生命周期管理:对设备使用方的 RPC 对象进行管理,请求进行校验以及对更新后的进行回调处理。

③解锁方案

交互流程:由智能门锁订阅的命令下发的主题经过代理服务器可下发到用户终端,用户终端就可收到通知。反之用户终端也可发送命令通过代理服务器到达智能门锁。

生命周期管理:对设备使用方的 RPC 对象进行管理,请求进行校验以及对更新后的进行回调处理。

无网解锁(可以通过 WIFI,局域网 WIFI AP TCP,蓝牙发送固定码进行连接):仅携带门禁卡:使用开发板上自带的 NFC 可以直接与手机 NFC 卡或实体门禁卡碰一碰解锁。

仅针对于 NFC 识别:非正确门禁卡则指示灯闪烁,正确门禁卡则亮五秒钟。

可使用 WIFI AP&TCP:或通过发送蓝牙固定码到服务端(门锁)。

WIFI TCP 实现:通过手机打开 WIFI 热点交换数据,建立一个 TCP 连接(给门禁锁进入一个新的局域网中)。

AP 实现:通过 AP 搭建桥梁,使在服务端没有连接(断开)默认 WIFI 的时候起到中继作用。(相当于给信号不好的 WIFI 一个中继,不适宜在完全断网时使用)

蓝牙开锁实现:使用蓝牙芯片使智能锁和手机实现时间同步与密码文传输,将手机蓝牙固定码发送到智能锁中,从而不通过 WIFI 与 NFC 就可以将该智能锁进行打开。在初始化蓝牙模块后进行串口发送。

云端:首先去华为云平台创建产品与定义模型(获取 IP 与端口),然后获取上报和下发的通信数据,随后云平台就会给出设备 ID 与密钥。(后面会详细介绍)

编译

①进行编译即可(首先输入 hb set)

e884792c-d6a4-11ed-bfe3-dac502259ad0.png

选中此文件夹后进行编译(hb build)

①Hb(命令行编译)编译与烧录

在 Hb 环境配置好之后所用到的命令:

hbset//产出config.json文件
hbbuild//进行编译
hbclean//删除config.json文件用于下次正常编译,不然会报错

注意:在 hb set 后可通过上下键选择要编译的文件然后回车,选中后即可 build。

e8aa62ea-d6a4-11ed-bfe3-dac502259ad0.png

另外还可以通过 VS_code 进行编译:

e8cb86be-d6a4-11ed-bfe3-dac502259ad0.png

作为一款华为集成的硬件编程插件,里面是有编译与烧录功能的。

如果要进行编译首先要在 PROJECT TASKS 中点击 build,同时在编译过程中在源码里会产生 config.json 文件。

在源码修改之后需要点击 clean 去清除 config.json,然后才能继续点击 Build 进行编译。编译成功后点击 Upload 烧录到开发板中。

然后就完成啦,感谢各位的支持!

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2903

    文章

    44240

    浏览量

    371022
  • 源码
    +关注

    关注

    8

    文章

    633

    浏览量

    29134
  • 开发板
    +关注

    关注

    25

    文章

    4933

    浏览量

    97159
  • 智能门锁
    +关注

    关注

    17

    文章

    1850

    浏览量

    43009
  • OpenHarmony
    +关注

    关注

    25

    文章

    3657

    浏览量

    16129

原文标题:基于OpenHarmony的智能门锁

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OpenHarmony 项目实战:基于全志 XR806 实现的上下位机双 OpenHarmony 智能门锁样例

    一、简介 本 demo 是基于 Openharmony 3.1 Beta 本版开发,不仅可以接收数字管家应用下发的指令来控制门锁开启,而且还可以通过数字管家设置不同的开锁密码以及一次性密码,实现给
    的头像 发表于 02-19 17:25 1047次阅读
    <b class='flag-5'>OpenHarmony</b> 项目实战:基于全志 XR806 实现的上下位机双 <b class='flag-5'>OpenHarmony</b> <b class='flag-5'>智能</b><b class='flag-5'>门锁</b>样例

    OpenHarmony南向开发案例:【智能门锁

    不仅可以接收数字管家应用下发的指令来控制门锁开启,而且还可以通过数字管家设置不同的开锁密码以及一次性密码,实现给临时用户一个临时密码,保证门户安全。当然除了开锁的功能,智能门锁还可以通过检测门与
    的头像 发表于 04-13 22:38 913次阅读
    <b class='flag-5'>OpenHarmony</b>南向开发案例:【<b class='flag-5'>智能</b><b class='flag-5'>门锁</b>】

    【海尔U+智能WIFI模块试用申请】智能门锁

    项目名称:智能门锁试用计划:第一次试用,用在智能门锁方案里,通过wifi控制锁的打开和关闭,并且和门口摄像头模块互连,并实时监控
    发表于 08-03 18:19

    蓝牙智能门锁解决方案 BLE蓝牙指纹智能门锁开发方案

    随着蓝牙技术的成熟,全民智能生活大时代已经开启智能家居的普及,让家庭生活更加智能化就拿蓝牙智能门锁来说好了,现如今市面上的蓝牙
    发表于 07-20 15:42

    蓝牙智能门锁解决方案

    随着消费升级趋势加强,人们对品质生活的追求愈加强烈,智能门锁作为品质家居的一部分,近年来也备受关注。 所谓智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加
    发表于 11-06 16:40

    智能门锁电机驱动推荐

    关于智能门锁的电机驱动选型这里给大家分享一款性价比较高,适合定位高端智能门锁的电机驱动IC---》BA6287F(SOP8)封装,耐压可达18V,控制方式除了正反转,刹车还有睡眠模式(
    发表于 11-23 11:31

    求救!智能门锁设计

    大家好,我现在在找智能门锁相关的资料,最好有设计原理图,我都没有找到合适的,希望有这方面资料的大神们能帮帮忙
    发表于 01-09 11:04

    新房装修必须用智能门锁才更安全吗?

    从功能手机到智能手机,机械门锁智能门锁,每个行业的产品都在推陈出新。就拿门锁来说,早年的门锁
    发表于 04-03 15:32

    基于32位单片机的智能门锁解决方案

    智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管理性方面更加智能化简便化的锁具。智能门锁是门禁系统中锁门的执行部件。
    发表于 12-22 06:05

    基于stm32f4的智能门锁

    文章目录智能门锁一、项目背景二、项目功能要求三、元件准备四、项目设计(一)原理图设计(二)硬件设计(三)程序设计智能门锁资料链接 :stm32智能
    发表于 07-14 06:02

    如何实现基于stm32智能门锁系统的设计?

    如何实现基于stm32智能门锁系统的设计?
    发表于 12-13 06:05

    基于 OpenHarmony 系统的智能门锁

    该样例使用了 OpenHarmony 新支持的 XR806 开发板,通过密码开锁以及开锁密码的管理,支持用户使用数字管家创建修改密码,也支持用户创建一次性密码。该样例使用到了 OpenHarmony 的 HDF 驱动、WLAN 网络、图形图像等特性。
    发表于 03-08 14:18

    OpenHarmony开发样例】基于全志XR806开发板开发的智能门锁

    一. 简介本demo是基于Openharmony 3.1 Beta本版开发,不仅可以接收数字管家应用下发的指令来控制门锁开启,而且还可以通过数字管家设置不同的开锁密码以及一次性密码,实现给临时用户一
    发表于 03-11 10:29

    基于小凌派RK2206的智能门锁设计

    描述 本作品由搭载OpenHarmony的小凌派RK2206进行开发。将AI人脸识别技术应用到智能门锁项目中,极大程度提升了便捷度,并有效避免了钥匙丢失、忘记录入的是哪根手指的指纹等情况发生时无法开门
    发表于 02-21 16:05

    基于OpenHarmony智能门锁设计方案

    本demo是基于Openharmony 3.1 Beta本版开发,不仅可以接收数字管家应用下发的指令来控制门锁开启,而且还可以通过数字管家设置不同的开锁密码以及一次性密码,实现给临时用户一个临时密码
    的头像 发表于 03-25 07:17 3171次阅读