## 智能中控屏开发样例
### 样例简介
本Demo是基于Hi3516开发板,使用开源OpenHarmony开发的应用。通过控制面板可以控制同一局域网内的空调,窗帘,灯等智能家居设备。
当前支持的配套L0设备只有[智能灯](../smart_cenctrl_lamp/README.md),如需添加新的设备,可以参考[指导文档](./add_new_dev.md)。
#### 应用运行效果图:
#### 样例原理

如上图所示,我们可以通过智能中控面板操作对同一局域网内的L0设备进行对应的控制。
#### 工程版本
- 系统版本/API版本:OpenHarmony 1.0.1 release
- IDE版本:DevEco Device Tool Release 3.0.0.401
### 快速上手
#### 准备硬件环境
- 预装windows系统的PC机
- Hi3516DV300 IoT Camera开发板套件
#### 准备开发环境
开发环境安装配置参照文档:[DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md)。
#### 准备工程
本用例采DevEco Device Tool工具进行开发,当配置完开发环境后,我们可以在IDE上进行工程的配置下载。
- 打开DevEco Device Tool,连接远程linux服务器:[DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md)
- 点击左下角DevEco插件图标,然后点击左边框出现的主页,弹出主页界面,主页中选择新建项目,如下图:

- 配置下载工程

如上图所示,填写对应样例工程的名称,选择对应的样例组件和样例工程存放路径后,点击创建即可进行样例工程的下载。下载界面如下:

当三个进度条都为100%即下载完成。
#### 准备工具链
- 在Projects中,点击Settings按钮,进入中控面板工程的配置界面。

- 在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)进行修改,完成尝试重新安装。

- 工具链自动安装完成后如下图所示。

#### 编译
样例代码下载完成后,DevEco Device Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面,此时点击左下角DevEco插件图标,选择PROJECT TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。

固件生成在对应工程目录的out/hispark_taurus/smart_cenctrl_board/目录下。

#### 烧录/安装
编译完成后可以通过DevEco Device Tool进行烧录,在烧录前需要做一些烧录的配置:
##### 配置准备
在配置烧录前需要先查看DevEco Device Tool是否可以正常识别串口。
- 点击左边栏"REMOTE DEVELOPMENT",找到 并点击” Local PC “ 选项。
- 查看 Local PC右边图标
如若图标为,则代表DevEco Device Tool已连接本地,可以正常识别串口。
如若图标为,则代表DevEco Device Tool未连接本地,不能识别串口,此时需要点击该绿色图标进行连接,连接成功后图标会变为。

- 点击主页,在主页选择对应工程,点击配置工程进入到配置页面

##### 配置串口
配置页面选择的板级配置页面,在该页面查找到烧录选项,配置烧录选项中的upload_port和upload_protocol,upload_port选择开发板对应的串口号,upload_protocol选择hiburn-usb,最后点击右上角的保存按钮进行保存。

##### 烧录固件
- 当配置完工程所有的选项后, 点击hi3516dv300下的Upload按钮,启动烧录。

+ 在终端窗口显示如下蓝色提示信息时,在终端按下任意键继续烧录。

+ 在终端窗口显示如下提示信息时,按住复位键,插拔USB线,最后松开复位键启动烧录。

+ 成功启动烧录后,界面提示如下信息时,表示烧录成功。

+ 具体烧录步骤可以参考文档:[Hi3516使用DecEcho Device Tool 烧录指南](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681)。
##### 设备启动
如果是第一次烧录程序的话,单板在启动的时候需要设置bootargs,否则不能正常启动。单板第一次启动会停在hisilicon界面:

我们需要输入以下指令:
```
setenv bootcmd "mmc read 0x0 0x80000000 0x800 0x4800; go 0x80000000";
setenv bootargs "console=ttyAMA0,115200n8 root=emmc fstype=vfat rootaddr=10M rootsize=20M rw";
saveenv
reset
```
##### 打包应用
本demo是以安装包的形式安装到系统中启动运行的。因此,在安装应用前,需要将应用打包成安装包。
将编译好的libcenctrl.so文件与工程目录下的res以及config.json文件通过压缩打包成zip格式(三个文件直接压缩,不能压缩文件夹),并将后缀名改为hap(cenctrl.hap)。

##### 挂载NFS
应用打包后,我们是通过NFS方式将单板挂载到本地,通过相关的指令来安装的,NFS挂载方法参照社区文章:[Hi3516通过NFS挂载方式与Windows共享文件](https://harmonyos.51cto.com/posts/3078)。

##### 安装
通过nfs是单板连接到本地电脑后,我们可以通过bm安装指令进行安装。bm 安装工具在系统编译完后会自动生成,路径在:
```
out/hispark_taurus/smart_cenctrl_board/dev_tools/bin/
```

由于bm默认安装的应用为已经签名的应用,所以我们在安装前需要先将签名去掉。
```
bm set -s disable // 去签名
bm install -p filename // 安装应用filename, filename需要指定路径
```

安装完后桌面会显示对应应用的ICON,直接点击ICON即可以启动油烟机的应用。
#### 操作体验

- 由于本demo涉及到摄像头的读写,故申请了相关的权限。在使用本demo前需要在setting中打开对应的权限。具体操作:
点击 setting-->应用-->cenctrl,然后将所有应用打开。
- 本demo最主要的功能是可以接收手机端发送的图片和视频,所以设备必须和手机在同一局域网内。网络配置可以通过setting应用来进行。
点击setting-->WiFi,然后选择对应的ssid,弹出密码输入框,输完密码后点击回车即可连接网络。
- demo主要控制其他无屏的智能设备:
a. 智能灯的开关,亮度调节等窗帘。
b. 智能空调的开关,模式,温度调节以及风速等。
c. 智能窗帘的开关等。
### 参考资料
+ [系统基础环境搭建](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/%E6%90%AD%E5%BB%BA%E7%B3%BB%E7%BB%9F%E5%9F%BA%E7%A1%80%E7%8E%AF%E5%A2%83.md)
+ [DevEco Device Tool 环境搭建](../南向IDE环境搭建/README.md)。
+ [Hi3516使用DecEcho Device Tool 烧录指南](https://device.harmonyos.com/cn/docs/documentation/guide/ide-hi3516-upload-0000001052148681)
+ [Hi3516开发板介绍](https://gitee.com/openharmony/docs/blob/OpenHarmony_1.0.1_release/zh-cn/device-dev/quick-start/Hi3516%E5%BC%80%E5%8F%91%E6%9D%BF%E4%BB%8B%E7%BB%8D.md)
+ [3516上快速运行Hello OHOS](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-lite-steps-hi3516-running.md)。
+ [知识体系](https://gitee.com/openharmony-sig/knowledge)