zqy 8ff0c5a445 zz 2 years ago
..
assets 8ff0c5a445 zz 2 years ago
doc 8ff0c5a445 zz 2 years ago
README.md 8ff0c5a445 zz 2 years ago

README.md

智能电子牌

一.概述

智能电子牌demo是使用开源鸿蒙OpenHarmony开发的应用,其中主要由日程信息获取模块,实时天气模块,时间获取模块,定时提醒模块与UI显示模块组成。通过该应用我们不仅可以随时查看当天日程规划,设定定时提醒,还可以查看时间,日期以及室内外温湿度,空气PM值等实时天气状况。

1. 设备运行效果

将润和Hi3516DV300 AI Camera开发板进行固件烧录,所开发应用的安装以及连接网络后,打开智能电子牌应用我们可以看到应用运行效果图如下:

2022022316575035

我们可以看到实时获取的时间天气(屏幕左半部分)与日程(屏幕右半部分)等信息,还可以通过滑动屏幕右上角的时间选择器选择提醒时间;日程信息包括日程的起始与终止时间,日程名与日程的执行细节等。

接收到日程时如下图:

656132

2. 设备与云端的交互

image-20211026143222652

我们在手机端的数字管家APP中更新日程信息后对应信息上传至云端,我们开发的智能电子牌应用会通过HTTP协议主动获取云端日程信息并进行显示更新。

二.代码目录结构

如下为设备端核心代码的目录结构:

|—— BUILD.gn							// 编译脚本
|—— res									// 图片资源文件
|—— config.json							// 安装包所需要的json文件
|—— include
|	|—— electronic_board_ability.h		// 入口类的头文件
|	|—— electr_board_ability_slice.h	// 主页面的头文件,包含了时间选择器
|	|—— shcedule_list_view.h			// 日程列表显示类的头文件
|	|—— weather_time_view.h				// 天气以及时间显示类的头文件
|	|—— native_base.h					// 基类的头文件
|	|—— event_listener.h				// 事件定义及实现的类
|	|—— ui_config.h						// 界面相关坐标定义的头文件
|	|—— schedule_server.h				// 日程服务相关定义的头文件
|	|—— schedule_info.h					// 日程内容类的头文件
|	|—— common.h						// 天气获取相关定义的头文件
|	|—— sntp.h							// 时间获取相关定义的头文件
|   |-- link_list.h                     // 链表相关定义函数的解释头文件
|   |-- schedule_net_status.h           // 获取与运行网络连接相关的头函数
|	|__ LinkList.h						// 链表相关定义的头文件
|
|__ src
	|—— electronic_board_ability.cpp	
	|—— electr_board_ability_slice.cpp	// 主页面相关实现
	|—— schedule_list_view.cpp			// 日程列表显示类的实现
	|—— weather_time_view.cpp			// 天气以及时间显示类的实现
	|—— common.c						// 天气获取以及解析的实现
	|—— schedule_server.c				// 日程服务获取的显示
	|—— sntp.c							// 网络实时时间获取的实现
	|-- schedule_net_status.c           // 获取与运行网络连接相关的实现
    |__ LinkList.c						// 链表的实现

三. 产品逻辑图

164586404

智能电子牌通过sntp协议主动于服务器获取实时时间; 通过天气API实时获取天气信息,并且会根据天气状况给出一些暖心建议; 通过http协议主动于华为云获取我们于手机或平板端数字管家中设置的日程,展示日程的起始终止时间,日程名与日程细节; 通过在时间选择器中选择时间,可以起到定时提醒日程的作用。

四.安装教程

1.完成开发板环境的搭建(即完成固件烧录与Ubuntu的编译环境搭建,详细讲解见智能电子牌的开发)后,在OpenHarmony的vendor目录下新建team_x的目录:

mkdir vendor/team_x

2022-02-23_184610

2.将智能电子牌的代码拷贝到新建的team_x下面:

2022-02-23_185055.png

3.之后可以进行应用程序的编译,编译指令共两条hb set与hb build -f:

首先在Terminal内输入:

hb set

2022-02-23_185415.png

之后通过键盘上的上下键选择electronic_board,之后回车进行选中;

之后进行全量编译,输入

hb build -f

2022-02-23_190011

当编译完成后会显示success。

4.编译完成后,out/hispark_taurus/electronic_board/libs/usr/目录下的libelectrBoard.so文件即为我们的目标应用文件,该文件与工程目录下的res以及config.json文件通过压缩打包成zip格式(三个文件直接压缩,不能压缩文件夹),并将后缀名改为hap后即可通过挂载NFS的方式进行应用安装。具体内容见下方“六. 文档目录"部分。

五.文档目录

注:如果只追求项目内容复现的话仅查看“开发文档”中的文章”智能电子牌的开发“即可。

开发文档

开发文档说明了具体的开发内容与复现流程

智能电子牌的开发

智能电子牌——设备端

智能电子牌——数字管家

设备调试文档

设备调试文档介绍了一些在项目开发过程中碰到的问题以及对应的解决方法

Hi3516DV300开发板固件烧录经验

通过NFC挂载加载应用心得

Ubuntu下环境变量设置的心得

智能电子牌——Gitee的使用

六.成果细节演示

如下图所示,电子牌应用功能区共分为三部分,左边的时间天气区,右下区域的日程区,右上区域的定时时间设定区:

222

时间天气区中:

  • 天气通过天气对应的API获取地区对应的实时天气信息
  • 实时时钟是通过sntp协议获取的

日程区中:

  • 日程信息是通过http协议与云端对接主动获取的数字管家设置的信息,日程包含了日程的名字,以及开始时间及日程的内容,如下图所示:

656132

时间选择区中:

  • 通过滑动选择需要提醒的时间,当实时时钟与时间选择区时间相同时会出现提示信息,当用户接收到提示信息并重新设定时间选择区的时间后提示信息会消失,如下图所示:

111

七.结项要求完成说明

智能电子牌实现的主要功能为:在进行网络连接配置后可以随时查看当天日程规划,日程信息包括日程的起始与终止时间,日程名与日程的执行细节;通过设定定时提醒实现定点准时提示;还可以在屏幕上查看实时时间,日期以及室内外温湿度,空气PM值等实时天气状况。人性化的显示服务可以让您轻松记住自己的日程规划,了解当前天气状况是否适合户外运动,同时智能电子牌还能作为一款自动校准的实时时钟,贴心地服务于您,为您的生活带来舒适与便捷。

注:钟禄平老师的设备端开发文件在我进行智能电子牌的应用开发中起到了很大的帮助,参考文章链接如下:

智能电子牌应用开发文件