有“智慧”的电子牌

news/2024/11/24 18:26:54/

一、产品介绍

智能电子牌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-sig/knowledge_demo_smart_home/tree/master/dev/team_x/electronic_board_1

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-sig/knowledge_demo_smart_home/tree/master/dev/team_x/electronic_board_1

2.成果细节演示

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

时间天气区中:

• 天气通过天气对应的API获取地区对应的实时天气信息

• 实时时钟是通过sntp协议获取的

日程区中:

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

时间选择区中:

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

五、项目感受

项目开发过程其实没有很多人想象中的枯燥乏味,在我看来能够开发出一款好用有价值的产品是一件很有成就感的事情。不可否认学习一门新的语言是很花费精力的,但是在学习与项目开发过程中自己的能力也在快速提升,这种学有所得的感觉正是我所追求的。

该项目是在原有代码的基础上进行了二次开发,老师们写的源码非常优美,当中的语言结构与构建方法都很值得我认真学习。在开发过程中我也曾碰到过蛮多困难的事情,因为到手的第一块开发板的boot出现了问题无法完成固件的烧录,后来和导师一块探索了一段时间才最终通过更换开发板解决了这个问题,感谢电子发烧友官方和导师所提供的帮助。后面在搭建编译环境的时候也出现了各种各样的问题,感谢导师钟老师的悉心指导,让我最终解决了所有问题。

编译一次源代码的时间比较长(20min+),所以我每次对源码的修改都十分谨慎,之后进行应用挂载后既有可能出现你满意的UI与功能,也有可能出现各种乱码甚至有可能应用没办法启动,这一种类似“开奖”感觉的调试过程事后回想也是回味无穷。

总而言之,在项目开发过程中我学到了很多新知识,看到开发调试出预想的功能后我心里也是充满成就感,感谢官方提供的机会与导师的悉心教诲。

六、文档目录

我在进行开发过程中将思路等整理为如下文档:

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

智能电子牌的开发

https://blog.csdn.net/weixin_46836693/article/details/124312294?spm=1001.2014.3001.5501

1、开发文档

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

智能电子牌的开发

https://blog.csdn.net/weixin_46836693/article/details/124312294?spm=1001.2014.3001.5501

智能电子牌——设备端

https://blog.csdn.net/weixin_46836693/article/details/124312456?spm=1001.2014.3001.5501

智能电子牌——数字管家

https://blog.csdn.net/weixin_46836693/article/details/124312360?spm=1001.2014.3001.5501

2、设备调试文档

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

Hi3516DV300开发板固件烧录经验

https://blog.csdn.net/weixin_46836693/article/details/124312473?spm=1001.2014.3001.5501

通过NFC挂载加载应用心得

https://blog.csdn.net/weixin_46836693/article/details/124312536?spm=1001.2014.3001.5501

Ubuntu下环境变量设置的心得

https://blog.csdn.net/weixin_46836693/article/details/124312495?spm=1001.2014.3001.5501

智能电子牌——Gitee的使用

https://blog.csdn.net/weixin_46836693/article/details/124312569?spm=1001.2014.3001.5501

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

智能电子牌应用开发文件

https://gitee.com/openharmony-sig/knowledge_demo_smart_home/tree/master/dev/docs/electronic_borad#%E6%99%BA%E8%83%BD%E7%94%B5%E5%AD%90%E7%89%8C%E7%AE%80%E4%BB%8B


http://www.ppmy.cn/news/124240.html

相关文章

手机无线耳机什么牌子好?手机蓝牙耳机十大品牌排行榜!

选蓝牙耳机其实也是一门学问,懂行的人三两下就可以看出区别。而新手用户可能对比来对比去依旧是一头懵。要说2021蓝牙耳机排行榜有哪些好品牌!笔者作为一名数码博主,在数码圈内混了也有五六年,而蓝牙耳机的使用时间比我混数码圈更长&#xff…

蓝牙耳机什么牌子好?四大品牌蓝牙耳机推荐

不得不说,现在蓝牙耳机发展得越来越多了,各种类型都有,也更多选择可选择,但也因为蓝牙耳机种类过多,每款耳机的音质跟配置、佩戴体验都不一样,导致很多小伙伴选购不到一款适合自己的蓝牙耳机,针…

笔记本什么牌子好?笔记本电脑性价比排行2020

首先要明白什么是性价比,性价比不等于便宜,价格低。它是一个综合标准。而且因人而异,每个人需求功能不一样,花费的成本不一样。 (特别提出一点,性价比这个词,很多朋友上来就问我想要台性价比高的…

十大护眼灯品牌什么牌子好?盘点护眼灯品牌排行前十名

这几年受到疫情的影响,相信大家或多或少都有经历过居家办公和居家学习的情况,居家生活,又一个大难题就是办公学习时家里的光线不够好,而因为光线不够好等等各种原因就非常容易导致近视的情况,所有在家中备有一款护眼台…

蓝牙耳机什么牌子好?国产蓝牙耳机最好的牌子推荐

在以前的有线时代,大家对耳机的要求只有声音,现在,随着生活水平的提高和生活环境的变化,我们开始对耳机有更多的要求,不仅要把线除掉,还要音质不能太低,减噪也要加强,耳机要支持无线…

什么牌子的蓝牙耳机好?好用的蓝牙耳机排行

现如今,蓝牙耳机的用途越来越广泛,无论是追剧、游戏、通话、运动等,都能看到使用蓝牙耳机的人。在日常的使用中蓝牙耳机也逐渐取代有线耳机成为受人们欢迎的存在,那么,什么牌子的蓝牙耳机好?接下来&#xf…

智能手机是计算机的一种吗,智能手机是什么

智能手机是什么 在现在科技发达的当今,智能手机已经成为了生活的必需品,相信很多网友都和小编一样,无论去哪里都会带上手机,就算没有电话和短信,也会玩下游戏,上QQ或者微信,甚至刷一下微博&…

蓝牙耳机什么牌子好?口碑最好的蓝牙耳机品牌排行

在现代除了手机或智能手机,人们生活中离不开的另一件事就是“耳机”,尤其是对于心中有音乐的人。那么市面上的蓝牙耳机五花八门,尤其是陆续上新的新品,哪个牌子更好呢?以下是笔者整理的几款口碑好的蓝牙耳机&#xff0…