关于openharmony:有智慧的电子牌

40次阅读

共计 4220 个字符,预计需要花费 11 分钟才能阅读完成。

一、产品介绍

智能电子牌 Demo 是基于 OpenHarmony 零碎开发的利用,其中次要由日程信息获取模块、实时天气模块、工夫获取模块、定时揭示模块与 UI 显示模块组成。通过该设施咱们不仅能够随时查看当天日程布局,设定定时揭示,还能够查看工夫,日期以及室内外温湿度,空气 PM 值等实时天气状况。
1. 设施运行成果
将润和 Hi3516DV300 AI Camera 开发板进行 OpenHarmony 1.0.1 版本的固件烧录,开发板的网络连接以及智能电子牌应用程序的装置,之后关上智能电子牌利用,咱们能够看到运行效果图如下:

咱们能够看到实时获取的工夫天气(屏幕左半局部)与日程(屏幕右半局部)等信息,还能够通过滑动屏幕右上角的工夫选择器抉择揭示工夫;日程信息包含日程的起始与终止工夫,日程名与日程的执行细节等。接管到日程时如下图:

2. 设施与云端的交互

咱们在手机端的数字管家 APP 中更新日程信息后对应信息将上传至云端,咱们开发的智能电子牌利用会通过 HTTP 协定被动获取云端日程信息并进行显示更新。
3. 智能电子牌次要性能形容
智能电子牌在进行网络连接配置后能够随时查看当天日程布局,日程信息包含日程的起始与终止工夫,日程名与日程的执行细节;通过设定定时揭示实现定点准时提醒;还能够在屏幕上查看实时工夫,日期以及室内外温湿度,空气 PM 值等实时天气状况。用户能够通过人性化的显示服务轻松记住本人的日程布局,理解到以后的天气状况是否适宜户外运动,同时,智能电子牌还能作为一款主动校准的实时时钟,贴心地服务于用户,为用户的生存带来舒服与便捷。

二、我的项目过程

智能电子牌我的项目依靠于 OpenHarmony 开源开发者成长打算,我的项目的推动离不开导师的领导与帮忙。实现该我的项目时我经验了三个阶段:开发环境的搭建,C++ 语言的学习,智能电子牌我的项目的开发。
开发环境的搭建
该项目标源码编译是在 Ubuntu 环境下进行的,我的开发“配备”只有一台 Windows 电脑,所以咱们想进行下一步开发与调试就必须在 Windows 环境下搭建好虚拟机,而后在虚拟机的 Ubuntu 环境下搭建好对应编译环境。具体的搭建流程请见智能电子牌的开发局部。
C++ 语言的学习
该设施端我的项目是基于 C ++ 语言开发的,但我只有 C 语言根底,所以我在暑假期间借助线上学习平台等学习平台实现了 C ++ 语言的学习,本我的项目的 UI 组件并没有欠缺的开发手册,故而该我的项目被官网评定的开发难度为低等,本我的项目的开发离不开大量的摸索、学习与实际,与此同时,浏览大量官网库文件的过程极大地提高了我的 C ++ 语言熟练程度。
智能电子牌我的项目的开发
本我的项目产品的逻辑图如下:

智能电子牌通过 sntp 协定被动于服务器获取实时工夫;通过天气 API 实时获取天气信息,并且会依据天气状况给出一些暖心倡议;通过 http 协定被动在华为云获取咱们在手机或平板端数字管家中设置的日程,展现日程的起始终止工夫,日程名与日程细节;通过在工夫选择器中抉择工夫,能够起到定时揭示日程的作用。
我将开发过程中对既有代码的一些了解整顿在了本文中:智能电子牌——设施端

三、装置教程

为了让小伙伴们能在本人的开发板上运行智能电子牌我的项目的代码,我将装置该我的项目利用的教程整顿如下:
硬件筹备
预装 Windows 零碎的 PC 机;Hi3516DV300 IoT Camera 开发板;USB 转串口线、网线(Windows 工作台通过 USB 转串口线、网线与 Hi3516DV300 开发板连贯)。1. 实现开发板环境的搭建(即实现固件烧录与 Ubuntu 的编译环境搭建,具体解说见智能电子牌的开发)后,在 OpenHarmony 的 vendor 目录下新建 team_x 的目录:

mkdir vendor/team_x

2. 将智能电子牌的代码拷贝到新建的 team_x 上面。
曾经合仓的代码链接:electronic_board
https://gitee.com/openharmony…
3. 之后能够进行应用程序的编译,编译指令共两条 hb set 与 hb build -f:
首先在 Terminal 内输出:

hb set

之后通过键盘上的高低键抉择 electronic_board,之后回车进行选中;
之后进行全量编译,输出:
hb build -f
当编译实现后会显示 success。
4. 编译实现后 out/hispark_taurus/electronic_board/libs/usr/ 目录下的 libelectrBoard.so 文件即为咱们的指标利用文件,该文件与工程目录下的 res 以及 config.json 文件通过压缩打包成 zip 格局(三个文件间接压缩,不能压缩文件夹),并将后缀名改为 hap 后即可通过挂载 NFS 的形式进行利用装置。具体内容见下方“五、文档目录”局部。

四、我的项目展现

1. 代码目录构造
如下为设施端外围代码的目录构造:

|—— 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                        // 链表的实现

曾经合仓的代码链接:electronic_board
https://gitee.com/openharmony…
2. 成绩细节演示
如下图所示,电子牌利用功能区共分为三局部,右边的工夫天气区,右下区域的日程区,右上区域的定时工夫设定区:

工夫天气区中:
• 天气通过天气对应的 API 获取地区对应的实时天气信息• 实时时钟是通过 sntp 协定获取的日程区中:• 日程信息是通过 http 协定与云端对接被动获取的数字管家设置的信息,日程蕴含了日程的名字,以及开始工夫及日程的内容,如下图所示:

工夫抉择区中
• 通过滑动抉择须要揭示的工夫,当实时时钟与工夫抉择区工夫雷同时会呈现提示信息,当用户接管到提示信息并从新设定工夫抉择区的工夫后提示信息会隐没,如下图所示:

五、我的项目感触

我的项目开发过程其实没有很多人设想中的枯燥乏味,在我看来可能开发出一款好用有价值的产品是一件很有成就感的事件。不可否认学习一门新的语言是很破费精力的,然而在学习与我的项目开发过程中本人的能力也在疾速晋升,这种学有所得的感觉正是我所谋求的。
该我的项目是在原有代码的根底上进行了二次开发,老师们写的源码十分柔美,当中的语言构造与构建办法都很值得我认真学习。在开发过程中我也曾碰到过蛮多艰难的事件,因为到手的第一块开发板的 boot 呈现了问题无奈实现固件的烧录,起初和导师一块摸索了一段时间才最终通过更换开发板解决了这个问题,感激电子发烧友官网和导师所提供的帮忙。前面在搭建编译环境的时候也呈现了各种各样的问题,感激导师钟老师的悉心领导,让我最终解决了所有问题。
编译一次源代码的工夫比拟长 (20min+),所以我每次对源码的批改都非常审慎,之后进行利用挂载后既有可能呈现你称心的 UI 与性能,也有可能呈现各种乱码甚至有可能利用没方法启动,这一种相似“开奖”感觉的调试过程预先回忆也是回味无穷。
总而言之,在我的项目开发过程中我学到了很多新常识,看到开发调试出料想的性能后我心里也是充斥成就感,感激官网提供的机会与导师的悉心教导。

六、文档目录

我在进行开发过程中将思路等整顿为如下文档:
注:如果只谋求我的项目内容复现的话仅查看“开发文档”中的文章“智能电子牌的开发”即可。
智能电子牌的开发 https://blog.csdn.net/weixin_…
1、开发文档
开发文档阐明了具体的开发内容与复现流程
智能电子牌的开发 https://blog.csdn.net/weixin_…
智能电子牌——设施端 https://blog.csdn.net/weixin_…
智能电子牌——数字管家 https://blog.csdn.net/weixin_…
2、设施调试文档
设施调试文档介绍了一些在我的项目开发过程中碰到的问题以及对应的解决办法。
Hi3516DV300 开发板固件烧录教训 https://blog.csdn.net/weixin_…
通过 NFC 挂载加载利用心得 https://blog.csdn.net/weixin_…
Ubuntu 下环境变量设置的心得 https://blog.csdn.net/weixin_…
智能电子牌——Gitee 的应用 https://blog.csdn.net/weixin_…
注:钟禄平老师的设施端开发文件在我进行智能电子牌的利用开发中起到了很大的帮忙,参考文章链接如下:
智能电子牌利用开发文件
https://gitee.com/openharmony…

正文完
 0