## 智能保险柜 ### 样例简介 智能保险柜实时监测保险柜中振动传感器,当有振动产生时及时向用户发出警报。在连接网络后,配合数字管家应用,用户可以远程接收智能保险柜的报警信息。后续可扩展摄像头等设备,实现对危险及时报警,及时处理,守护家中财产安全。 #### 运行效果  ![](./media/run.gif) + 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模块实现设备碰一碰快速配网。 #### 样例原理  ![](./media/principle.png) 如上图所示,智能保险柜整体方案框架可以分为:智能保险柜设备、数字管家应用、云平台三部分。智能保险柜设备端按照MQTT协议与华为IOT物联网平台进行通信。当智能保险柜检测到振动时,设备端上报数据至云平台最终同步到数字管家进行报警,并将报警信息也上报至云平台最终同步到数字管家;当用户发现为误报时关闭报警,命令数据先发送至云平台,再由云平台下发至设备侧。关于智能设备接入华为云IoT平台的详细细节可以参考 [连接IOT云平台指南](../iot_huawei/README.md) 。智能设备同数字管家应用之间的设备模型定义可以参考[profile](../DistShedule_Profile/智能保险柜profile定义.md) 。 #### 工程版本 + 系统版本/API版本:OpenHarmony-3.0-LTS/OpenHarmony-3.1-Beta + IDE版本:DevEco Device Tool Release 3.0.0.401 ### 快速上手 #### 准备硬件环境 + SW-18010P振动模块 + 润和Pegasus智能家居套件 + 预装HarmonyOS手机一台 **注:HarmonyOS是华为基于开源项目OpenHarmony开发的面向多种全场景智能设备的商用版本** #### 准备开发环境 开发环境安装配置参照文档:[DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md) #### 准备工程 本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。 - 打开DevEco Device Tool,连接远程linux服务器:[DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md) - 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:  ![main_config](media/main_config.png) - 配置下载工程  ![config download](media/config_download.png) 如上图所示,填写对应样例工程的名称,选择对应的样例组件和样例工程存放路径后,点击创建即可进行样例工程的下载。下载界面如下:  ![download](media/download.png) 当三个进度条都为100%即下载完成。 #### 准备工具链 - 在Projects中,点击Settings按钮,进入配置工程界面。  ![进入工程配置页面](media/config_toolchain1.png) - 在toolchain页签中,DevEco Device Tool会自动检测依赖的编译工具链是否完备,如果提示部分工具缺失,可点击SetUp按钮,自动安装所需工具链。 - 如果出现安装pip组件失败,可参考[修改Python源的方法](https://gitee.com/link?target=http%3A%2F%2Fdevice.harmonyos.com%2Fcn%2Fdocs%2Fdocumentation%2Fguide%2Fide-set-python-source-0000001227639986)进行修改,完成尝试重新安装。  ![工具链配置界面](media/config_toolchain2.png) - 工具链自动安装完成后如下图所示。  ![工具链配置成功](media/config_toolchain3.png) #### 编译 样例代码下载完成后,DevEco Device Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。  ![build](media/build_ok.png) 固件生成在对应工程目录的out/bearpi_hm_nano/smart_safe/目录下。  ![firm](media/firm.png) #### 烧录/安装 编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置: ##### 配置准备 在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。 - 点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。 - 查看 Local PC右边图标 如若图标为![方型图标](media/zhengfang_icon.png),则代表DevEco Device Tool已连接本地,可以正常识别串口。 如若图标为![箭头图标](media/sanjiao_icon.png),则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为![方型图标](media/zhengfang_icon.png)。  ![check local pc](media/check_local_pc.png) - 点击主页,在主页选择对应工程,点击配置工程进入到配置页面  ![start config project](media/config_project.png) ##### 配置串口 配置页面选择的板级配置页面,在该页面查找到烧录选项,配置烧录选项中的upload_port和upload_protocol,upload_port选择开发板对应的串口号,upload_protocol默认选择hiburn-serial,最后点击右上角的保存按钮进行保存。  ![config searail](media/config_serail.png) ##### 烧录 当配置完串口以及固件后,直接点击左边栏工程管理中的upload即可,此时下方终端会出现对应烧录的信息,当终端出现BootromDownloadBoot字样,复位开发板即可。  ![burn ok](media/burn_ok.png) #### 操作体验 ##### 设备配网 1) 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,详情见[数字管家应用开发](../digital_housekeeper_application/README_zh.md), 并在设置中开启手机的NFC功能; 2) 写设备NFC标签,详细操作见设备[NFC标签指导文档](../NFC_label_definition/README.md),其中设备模型定义为[profile](../DistShedule_Profile/智能保险柜profile定义.md) 。 3) 烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处; 4) 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。 具体无感配网相关流程参考 [无感配网指南](../net_config/README.md)  ![](./media/nan_net.gif) ##### 设备控制 配网完成后,数字管家应用会自动进入智能保险柜控制页面,通过控制页面可以关闭告警。 ##### 告警提示 当检测到保险柜有振动时,会通知数字管家应用告警,并且告警消息还会推送同一家庭账号的所有成员。  ![](./media/run.gif) ### 参考资料 + [3861上手Helloworld](../build_and_burn/README.md) + [DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md) + [编译和烧录指南](../build_and_burn/README.md) + [无感配网指南](../net_config/README.md) + [连接华为IoT云](../iot_huawei/README.md) + [NFC标签指导文档](../NFC_label_definition/README.md) + [数字管家应用开发](../digital_housekeeper_application/README_zh.md) + [知识体系](https://gitee.com/openharmony-sig/knowledge)