2.设备与云端的交互我们在手机端的数字管家APP中更新
一、产品介绍
智能电子卡Demo是基于该系统开发的应用程序,主要由日程信息获取模块、实时天气模块、时间获取模块、定时提醒模块和UI显示模块组成。通过这款设备,我们不仅可以随时查看当天的日程安排,设置定时提醒,还可以查看时间、日期、室内外温湿度、空气PM值等实时天气状况。
1. 设备运行效果
将润禾AI开发板固件烧录到1.0.1版本,将开发板连网安装智能电子卡应用,然后打开智能电子卡应用,我们可以看运行效果图如下:
我们可以看到实时获取的时间、天气(屏幕左半边)和日程(屏幕右半边)等信息,也可以通过滑动右上角的时间选择器来选择提醒时间屏幕; 调度信息包括调度的开始和结束时间、调度名称和调度执行细节等。
收到时间表后,如下所示:
2. 端云交互
我们在手机端的数字管家APP中更新日程信息后,相应的信息会上传到云端,我们开发的智能电子卡应用会通过HTTP协议主动获取云端的日程信息并显示和显示。更新它。
3.智能电子卡主要功能说明
配置网络连接后,智能电子卡可以随时查看当天的日程安排。调度信息包括调度的开始和结束时间、调度名称和调度的执行细节;通过设置定时提醒,可以实现定点准时提醒;它也可以显示在屏幕上。查看实时时间、日期以及室内外温湿度、空气PM值等实时天气状况。用户可以通过人性化的显示服务轻松记住自己的日程安排,了解当前天气状况是否适合户外运动。给用户的生活带来舒适和便利。
二、项目流程
智能电子卡项目依托开源开发者成长计划,项目的推进离不开导师的指导和帮助。项目完成时,我经历了开发环境搭建、C++语言学习、智能电子卡项目开发三个阶段。
开发环境建设
本项目源码编译在环境中进行。我的开发“设备”只有一台电脑软件社区,所以如果我们要进行接下来的开发和调试,就必须在环境中搭建一个虚拟机,然后在虚拟机的环境中搭建。它很好地对应了编译环境。具体构建过程请参考智能电子卡开发部分。
学习 C++ 语言
这个设备端项目是基于C++语言开发的,但是我只有C语言基础,所以在寒假期间借助在线学习平台等学习平台实现了C++语言学习。本项目的 UI 组件没有完整的开发手册。因此,该项目的开发难度被官方评为高。这个项目的发展离不开大量的探索、研究和实践。同时,阅读大量官方库文件的过程也大大提高了我的C++语言能力。
智能电子卡项目开发
本项目产品逻辑图如下:
智能电子卡通过sntp协议主动从服务器获取实时时间;通过天气API实时获取天气信息,并根据天气情况给出一些温馨的建议;在华为云上通过http协议主动获取手机或平板终端数字管家中的信息 设置的日程显示日程的起止时间、日程名称和日程详情;通过在时间选择器中选择时间,可以起到定时提醒日程的作用。
我在这篇文章的开发过程中整理了一些对现有代码的理解:智能电子卡-设备端
三、安装教程
为了让小伙伴们可以在自己的开发板上运行智能电子卡项目的代码,我将项目应用安装教程整理如下:
硬件准备
预装系统的电脑;物联网开发板;USB转串口线和网线(工作台通过USB转串口线和网线连接到开发板)。1.开发板环境搭建完成后(即完成固件烧录和编译环境搭建,详见智能电子卡开发)软件社区,在目录下新建一个目录:
mkdir vendor/team_x
2.将智能电子卡的代码复制到新卡下。
已关闭的代码链接:
3. 之后,就可以编译应用程序了。有两个编译指令:hb set 和 hb build -f:
首先进入里面:
hb set
然后用键盘上的上下键选择,再按回车键选择;
完全编译后,输入:
hb build -f
编译完成后会显示。
4.编译完成后out///libs/usr/目录下的.so文件就是我们的目标应用文件,与目录下的res和.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 // 链表的实现
已关闭的代码链接:
2.结果的详细呈现
如下图所示,电子卡应用功能区分为三个部分,左侧时间天气区、右下区日程区、右上区定时设置区:
在时区天气:
• 通过天气对应的API获取地区对应的实时天气信息
• 通过sntp协议获取实时时钟
在计划区域: