想了解更多关于开源的锁简内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
本项目的基于介场景是智能家居。通过openharmony源码与hi3861开发板进行智能门锁的锁简项目开发。最后可以通过舵机进行开关锁与通过手机的基于介数字管家进行密码解锁。
VS code:https://device.harmonyos.com/cn/develop/ideDeveco: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)
上图为编译组件安装好的样子
华为系统开发工具:
Deveco Studio *手动在设置中下载SDK
Mqtt是用于设备与服务器通讯的一种协议,使设备可以上报订阅下发信息。
通过上述连接下载之后复制粘贴到openharmony的third part(第三方库)中。
从开发板厂商官网下载实验demo进行实验。因为目前大多数厂商使用的都是openharmony 1.0代码作为演示,不同的源码版本在编译规则和文件名上都会不同,所以在下载的源码中的头文件吊起等也要修改才能接入mqtt协议。
/home/open/Downloads/code-v3.0-LTS/OpenHarmony/third_party/pahomqtt/MQTTClient-C/src里,特别是liteOS中
上图为上报-订阅-下发 的原理图
在嵌入式设备开发这块先要考虑用户的操作界面(前端)才能考虑实现功能。
1.交互流程:由智能门锁订阅的命令下发的主题经过代理服务器可下发到用户终端,用户终端就可收到通知。反之用户终端也可发送命令通过代理服务器到达智能门锁。
2.生命周期管理:对设备使用方的 RPC 对象进行管理,请求进行校验以及对更新后的进行回调处理。
1.无网解锁(可以通过WIFI,局域网WIFI AP TCP,蓝牙发送固定码进行连接):仅携带门禁卡:使用开发板上自带的NFC可以直接与手机NFC卡或实体门禁卡碰一碰解锁。
2.仅针对于NFC识别:非正确门禁卡则指示灯闪烁,正确门禁卡则亮五秒钟。
3.可使用 WIFI AP&TCP:或通过发送蓝牙固定码到服务端(门锁)。
4.WIFI TCP 实现:通过手机打开WIFI热点交换数据,建立一个TCP连接(给门禁锁进入一个新的局域网中)。
5.AP 实现:通过AP搭建桥梁,使在服务端没有连接(断开)默认WIFI的时候起到中继作用。(相当于给信号不好的WIFI一个中继,不适宜在完全断网时使用)
6.蓝牙开锁实现:使用蓝牙芯片使智能锁和手机实现时间同步与密码文传输,将手机蓝牙固定码发送到智能锁中,从而不通过WIFI与NFC就可以将该智能锁进行打开。在初始化蓝牙模块后进行串口发送。
7.云端:首先去华为云平台创建产品与定义模型(获取IP与端口),然后获取上报和下发的通信数据,随后云平台就会给出设备ID与密钥。(后面会详细介绍)
选中此文件夹后进行编译(hb build)
在Hb环境配置好之后所用到的命令:
hb set //产出config.json文件hb build //进行编译。
hb clean //删除config.json文件用于下次正常编译,不然会报错。
注意:在hb set后可通过上下键选择要编译的文件然后回车,选中后即可build。
另外还可以通过VS_code进行编译。
作为一款华为集成的硬件编程插件,里面是有编译与烧录功能的。
如果要进行编译首先要在PROJECT TASKS中点击build,同时在编译过程中在源码里会产生config.json文件。在源码修改之后需要点击clean去清除config.json,然后才能继续点击Build进行编译。编译成功后点击Upload烧录到开发板中。
想了解更多关于开源的内容,请访问:
51CTO 开源基础软件社区
https://ost.51cto.com
责任编辑:jianghua 来源: 51CTO 开源基础软件社区 智能家居项目开发(责任编辑:时尚)