## 智能儿童手表 ### 样例简介 本项目是基于BearPi套件开发的智能儿童手表系统,该系统通过与GSM模块(型号:SIM808)的通信来实现通话和定位功能。 智能儿童手表系统可以通过云和手机建立连接,同步时间和获取天气信息,通过手机下达日程安排到儿童手表,并显示在儿童手表的屏幕端,还可以通过SIM808模块获取地理位置信息,接收和拨打电话等功能。 #### 运行效果 当设备启动之后,操作效果如下:  ![](./media/主界面.jpg) #### 样例原理  ![原理示意图](./media/principle.png) #### 工程版本 + 系统版本/API版本:OpenHarmony 1.0.1 release + IDE版本:DevEco Device Tool Release 3.0.0.401 ### 快速上手 #### 准备硬件环境 + BearPi-HM Nano套件一套 + 预装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%即下载完成。 #### 代码修改 样例代码下载完成后,DevEco Device Tool会重新要求连接远程服务器,输入密码连接后会进入对应的代码编辑界面, 由于3861的task数量有限,需要屏蔽掉一些任务: 在文件夹device/bearpi/bearpi_hm_nano/sdk_liteos/build/config/usr_config.mk内屏蔽掉AT相关的任务。 #CONFIG_AT_SUPPORT=y 在文件vendor/team_x/common/iot_boardled/iot_boardled.c屏蔽掉灯的任务。 // g_ledFlashController.taskID = osThreadNew((osThreadFunc_t)LedTaskEntry, NULL, (const osThreadAttr_t *)&attr); #### 准备工具链 - 在Projects中,点击Settings按钮,进入cleaner配置界面。  ![进入工程配置页面](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插件图标,选择PROJECT TASKS可以查看到对应的样例工程,点击build选项进行编译,并可在终端查看对应的编译结果。  ![build ok](media/build_ok.png) 固件生成在对应工程目录的out/bearpi_hm_nano/smart_watch/目录下。  ![](./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) - 点击主页,在主页选择对应工程,点击配置工程进入到配置页面  ![config project](media/config_project.png) ##### 配置串口 配置页面选择的板级配置页面,在该页面查找到烧录选项,配置烧录选项中的upload_port和upload_protocol,upload_port选择开发板对应的串口号,upload_protocol默认选择hiburn-serial,最后点击右上角的保存按钮进行保存。  ![config serail port](media/config_serial.png) ##### 烧录 当配置完串口以及固件后,直接点击左边栏工程管理中的upload即可,此时下方终端会出现对应烧录的信息,当终端出现BootromDownloadBoot字样,按下开发板的 “RESET” 键复位开发板即可。  ![burn](media/burn.png) ### 操作准备 #### 硬件调整 把E53板上的接口2与主板断开,此管脚复用为跑步计数器的中断引脚,会影响F2按键功能。把E53板上的拨档开关置为OFF,打开串口的TX(IO06)功能。具体见下图:  ![](./media/硬件改动-管脚.png) #### 串口线连接 小熊派板卡与SIM808串口线连接方法如下: | 串口 | 小熊派端 | SIM808通信模块 | | ---- | ------------- | :------------- | | GND | GND | GND(J6接口) | | TX | UART_TX(IO06) | RXD(J6接口) | | RX | UART_RX(IO05) | TXD(J6接口) | 具体实物图如下:  ![](./media/串口线连接示意图.jpg) #### 电源和天线连接 安装电源线和天线,最后的总的线材连接如下图:  ![](./media/电源天线连接方式.jpg) ### 操作体验 #### 开发板上电 在小熊派开发板和SIM808模块都连接上电源后,先按小熊派复位按钮,启动小熊派开发板。然后再按SIM808模块的电源波动开关,然后按SIM808模块的POWER按键3秒以上。具体如下:  ![](./media/SIM808电源开关.jpg) #### 设备配网 - 在设备上电前需准备好安装了数字管家应用的HarmonyOS手机,详情见[数字管家应用开发](../digital_housekeeper_application/README_zh.md), 并在设置中开启手机的NFC功能; - 写设备NFC标签,详细操作见设备[NFC标签指导文档](https://gitee.com/openharmony-sig/knowledge_demo_smart_home/blob/master/dev/docs/NFC_label_definition/README.md); - 烧录完成后,上电。开发者在观察开发板上状态LED灯以8Hz的频率闪烁时,将手机上半部靠近开发板NFC标签处; - 无需任何操作手机将自动拉起数字管家应用并进入配网状态,配网过程中无需输入热点账号密码。 具体无感配网相关流程参考 [无感配网指南](../net_config/README.md) ​ 无感配网操作如下图所示  ![](./media/nan_net.gif) 配网成功后,设备端LCD进入主页面显示,儿童手表会连接IOT云端服务器,注册成功后手机端显示如下:  ![](./media/手机端-配网成功界面.jpg) 设备端LCD会点亮屏幕并进入显示主页面。 #### 设置联系人和拨打电话 手机端设置紧急联系人电话号码:在手机端的儿童手表详情页,点击紧急联系人菜单的【+】,具体如下图:  ![](./media/手机端-主页面.jpg) 设置需要拨打的电话号码,暂时支持设置两个电话号码: ​ 第一个电话号码:father:18688888888 ​ 第二个电话号码:mother:18689999999 具体操作如下:  ![](./media/手机端-添加联系人.jpg) 删除联系人的操作跟上面的步骤类似,在紧急联系人选项列表中选择【-】操作,不做过多赘述。 手机端设置完电话号码后,然后短按手表端的F2按键,进入拨打号码界面,具体如下:  ![](./media/拨打电话界面.jpg) 长按儿童手表的F2按键3秒以上,进入电话簿界面,然后再短按F2按键可选择联系人,最后长按F2按键保存并退出,下次再次短按F2按键就拨打上次选择的号码。具体如下图:  ![](./media/通信录界面.jpg) #### 接电话 若有电话打入,设备端会进入来电显示界面,可以短按F2接听,然后再次短按F2可挂断电话。来电界面如下:  ![](./media/来电界面.jpg) #### GPS地理位置上报 GPS位置上报。若设备端与SIM808模块通过串口已连接,上电后会设备会控制SIM808通过命令打开GPS的POWER,然后查询GPS信息,由于此模块属于2G信号,反应比较慢,需要等待2分钟左右,模块需要放置在室外比较空旷的位置才能获取到位置信息。获取到的地理位置显示在手机端的儿童手表详情页界面,具体如下:  ![](./media/手机端-主页面-GPS.jpg) #### 日程安排设置 在手机端的“日程”界面,选择右上角的“+”按钮。弹出“新增日程”菜单项,如下图:  ![](./media/FA-新增日程.png) 写入日程名称,例如“起床”,现可选择【起床,吃饭,睡觉,吃药,喝水,写作业】,如下图:  ![](./media/FA-日程名称.jpg) 【通知成员】选项选择需要通知的设备,如下图:  ![](./media/FA-日程选择设备.jpg) 【相关设备】选项选择需要操作的设备,如下图:  ![](./media/FA-日程选择相关的设备.jpg) 开始时间和结束时间选择需要通知的时间,如下图:  ![](./media/FA-时间选择.jpg) 提醒方式可选择需要周几提醒,如下图:  ![](./media/FA-循环设置.jpg) 最后选择【√】下发日程到设备端。然后等待时间到,设备端提示相关信息。 ### 参考资料 + [DevEco Device Tool 环境搭建](../南向IDE环境搭建/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)