智能保险柜

奶盖
发布于 2022-3-28 16:47
浏览
0收藏

、 简介

智能保险柜实时监测保险柜中振动传感器,当有振动产生时及时向用户发出警报。在连接网络后,配合数字管家应用,用户可以远程接收智能保险柜的报警信息。后续可扩展摄像头等设备,实现对危险及时报警,及时处理,守护家中财产安全。

1.流程交互 智能保险柜-鸿蒙开发者社区

如上图所示,智能保险柜整体方案框架可以分为:智能保险柜设备、数字管家应用、云平台三部分。智能保险柜设备端按照MQTT协议与华为IOT物联网平台进行通信。当智能保险柜检测到振动时,设备端上报数据至云平台最终同步到数字管家进行报警,并将报警信息也上报至云平台最终同步到数字管家;当用户发现为误报时关闭报警,命令数据先发送至云平台,再由云平台下发至设备侧。关于智能设备接入华为云IoT平台的详细细节可以参考 连接IOT云平台指南 。智能设备同数字管家应用之间的设备模型定义可以参考profile 。

2.实物简介

我们使用润和Pegasus智能家居开发底板+SW-18010P振动模块来模拟感智能保险柜设备。 通过检测GPIO输入获取振动感应;

SW-18010P振动模块。智能保险柜-鸿蒙开发者社区

润和Pegasus智能家居开发板底板智能保险柜-鸿蒙开发者社区

连接图

将SW-18010P的GND连接开发板的GND,VCC连接开发板的V3.3,DO连接开发板的A9。智能保险柜-鸿蒙开发者社区3.实物操作体验智能保险柜-鸿蒙开发者社区OLED屏负责显示当前网络状况,有三种状况:

  1. WIFI_CONNECT_ING(等待配网,未连入WIFI);
  2. WIFI_CONNECT_OK(已经连入WIFI,等待自动连入华为云端);
  3. IOT_CONNECT_OK(已经连入华为云端)。

重新配网操作:

按键2组合reset按键执行配网操作,具体操作如下:

  1. 按下按键2,保持按键2被按下,执行以下第2步;
  2. 按下reset按键,保持1秒;
  3. 先松开reset按键后等待设备重启,待OLEN显示WIFI_CONNECT_ING后再松开按键2;
  4. 等待手机数字管家保险柜设备为离线状态;
  5. 通过NFC模块实现设备碰一碰快速配网。

二、快速上手

1、硬件准备

SW-18010P振动模块

润和Pegasus智能家居套件

预装HarmonyOS手机一台。

2、获取源码及Ubuntu编译环境准备

开发基础环境由windows 工作台和Linux 编译服务器组成。windows 工作台可以通过samba 服务或ssh 方式访问Linux编译服务器。其中windows 工作台用来烧录和代码编辑,Linux编译服务器用来编译OpenHarmony代码,为了简化步骤,Linux编译服务器推荐安装Ubuntu20.04。

操作文档

3、Hi3861开发环境准备

在Linux编译服务器上搭建好基础开发环境后,需要安装OpenHarmony 编译Hi3861 平台特有的开发环境。

操作文档

4、源码下载&编译准备

1.码云工具下载

cd ~/
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ./repo
sudo cp repo /usr/local/bin/repo
chmod a+x /usr/local/bin/repo
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

本智能保险柜demo适配OpenHarmony-3.0-LTS与OpenHarmony-3.1-Beta。

1) OpenHarmony代码下载

mkdir ~/OpenHarmony
cd ~/OpenHarmony

OpenHarmony-3.0-LTS下载:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

OpenHarmony-3.1-Beta下载:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-3.1-Beta --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

2) 设备侧代码下载

具体仓库地址:https://gitee.com/openharmony-sig/knowledge_demo_smart_home/

直接下载仓库对应zip 包文件并放到 ~/目录

3) 编译前准备

拷贝teamX

cd ~/
unzip knowledge_demo_smart_home-master.zip
cp -raf knowledge_demo_smart_home-master/dev/team_x ~/OpenHarmony/vendor

拷贝智能保险柜相应代码,iot云连接三方库代码、无感配网相关库文件(libHwKeystoreSDK.a),libHwKeystoreSDK.a文件与无感配网相关,缺少无法编译通过。

cd ~/
cp -raf  knowledge_demo_smart_home-master/dev/team_x/smart_safe/libs/libHwKeystoreSDK.a OpenHarmony/vendor/team_x/common/iot_wifi/libs/ 
cp -raf  knowledge_demo_smart_home-master/dev/third_party/iot_link  OpenHarmony/third_party/

适配平台系统的config.json。

cd ~/OpenHarmony/vendor/team_x/smart_safe
如果使用的是OpenHarmony-3.0-LTS版本
cp config.json_3_0_LTS config.json
如果使用的是OpenHarmony-3.1-Beta版本
cp config.json_3.1-Beta config.json
cd ~/OpenHarmony

后续修改操作在OpenHarmony-3.0-LTS版本源码下,OpenHarmony-3.1-Beta版本类似只是行号不同。

地址vendor/team_x/common/iot_wifi/BUILD.gn。将libs/libHwKeystoreSDK.a加入到编译中。

添加17行
14 config_file = [
15    "libs/libnetcfgdevicesdk.a",
16    "libs/libhilinkadapter_3861.a",
17    "libs/libHwKeystoreSDK.a"
18 ]

地址:device/hisilicon/hispark_pegasus/sdk_liteos/build/config/usr_config.mk。打开I2C与PWM开关。

33 CONFIG_I2C_SUPPORT=y
40 CONFIG_PWM_SUPPORT=y

地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_hotspot.c。与无感配网功能相冲突,须屏蔽。

EnableHotspot函数中屏蔽如下字段
139  //if (SetHotspotIpConfig() != WIFI_SUCCESS) {
140  //    return ERROR_WIFI_UNKNOWN;
141  //}

地址:device/hisilicon/hispark_pegasus/hi3861_adapter/hals/communication/wifi_lite/wifiservice/source/wifi_device.c。与无感配网功能相冲突,须屏蔽。

DispatchConnectEvent函数下 屏蔽StaSetWifiNetConfig相关代码行
239  //StaSetWifiNetConfig(HI_WIFI_EVT_CONNECTED);
260  //StaSetWifiNetConfig(HI_WIFI_EVT_DISCONNECTED);​

 

地址:device/hisilicon/hispark_pegasus/sdk_liteos/BUILD.gn。将smart_safe中的demo加入编译配置

在deps中添下如下27行
23 deps = [
24     ":sdk",
25     "//base/security/deviceauth/frameworks/deviceauth_lite:hichainsdk",
26     "//build/lite:ohos",
27     "//build/lite:product",
28   ]

地址:base/security/huks/interfaces/innerkits/huks_lite/BUILD.gn

屏蔽164行
161   sources = huks_sources
162   sources += huks_storage_source
163   sources += huks_access_sources
164   #sources += [ "hks_tmp_client.c" ]

如果使用

整合并修改完成后的目录结构如下图:

智能保险柜-鸿蒙开发者社区5、编译&烧录

编译命令:

hb set  // 如果是第一次编译,Input code path 命令行中键入"./" 指定OpenHarmony工程编译根目录后 回车。

如下图所示,选择智能保险柜智能保险柜-鸿蒙开发者社区

hb build // 如果需要全量编译,可以添加-f 选项

详细的代码编译及固件烧录步骤,请参考 编译和烧录指南

6、设备配网

在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,详情见数字管家应用开发, 并在设置中开启手机的NFC功能;

写设备NFC标签,详细操作见设备NFC标签指导文档,其中设备模型定义为profile

烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处;

无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。 具体无感配网相关流程参考 无感配网指南智能保险柜-鸿蒙开发者社区

7、操作体验

1.设备控制

配网完成后,数字管家应用会自动进入智能保险柜控制页面,通过控制页面可以关闭告警。

2.告警提示

当检测到保险柜有振动时,会通知数字管家应用告警,并且告警消息还会推送同一家庭账号的所有成员。

智能保险柜-鸿蒙开发者社区

已于2022-5-5 14:17:02修改
1
收藏
回复
举报
回复
    相关推荐