【开发者说】深爱农-高效智能的自动化农业生产管理平台

科技   其他   2024-03-15 21:02   广东  
# 开发者说 #

【开发者说】栏目是为HarmonyOS开发者提供的展示和分享平台,在这里,大家可以发表自己的技术洞察和见解,也可以展示自己的开发心得和成果。

欢迎大家积极投稿,后台回复【投稿】,即可获得投稿渠道。期待你们的分享~



背景介绍

十四五时期是我国推动乡村振兴和数字中国建设的重要时期,农业领域受到大量政策支持和资金投入,智慧农业发展空前活跃。但目前智慧农业存在一些问题,例如硬件部署系统分散,难以进行统一的管理,每个设备都具有自己的管理界面和数据格式,缺乏统一的通信技术标准,导致设备之间难以互联互通,限制了系统整体的效能和扩展性,以及存在着数据安全,隐私保护等问题。而鸿蒙系统的加入为解决智慧农业上的痛点提供了新思路,为主动把握万物互联时代带来的新机遇,我们团队研发出了一套基于鸿蒙系统的智慧农业中控系统——深爱农。

深圳技术大学FFH团队

项目介绍

深爱农旨在打造一个高效,智能的自动化的农业生产管理平台,来改进现代农业生产。这个系统将充当一个智能中心,用于监测和控制各种智能农业设备,包括无人机、移动机器人、自动灌溉系统和环境监测系统等。通过一次开发多端部署的技术使得应用可以在手机,平板,智慧屏等设备上使用,为用户提供无缝的全场景的体验,并通过鸿蒙分布式架构的特点组成互联的系统网络,实现高效组网通信。这个系统将不仅提高农业生产效率,还有助于可持续农业实践的推广。

系统架构

ArkUI高效构建多端可运行应用

应用使用ArkTS语言进行开发,运用ArkUI开发框架,大大减少了代码的输入,代码更加简洁美观,同时ArkUI的实时界面预览功能,还提供不同屏幕尺寸设备的应用预览,让开发效果视觉化呈现,避免了重复开发,有效帮助开发者们提升应用界面的开发效率。


一次开发多端部署

通过mediaquery模块接口,设置查询条件并绑定回调函数,在对应的条件的回调函数里更改页面布局或者实现业务逻辑,实现页面的响应式设计,在回调函数中判断应用当前处于何种断点,后续便可以通过断点查询的方式,来编写代码适应不同断点。

```  private smListener: mediaquery.MediaQueryListener;  private mdListener: mediaquery.MediaQueryListener;  private lgListener: mediaquery.MediaQueryListener;  aboutToAppear() {    this.smListener = mediaquery.matchMediaSync('(320vp<width<=530vp)');    this.smListener.on("change", this.isBreakpointSM);    this.mdListener = mediaquery.matchMediaSync('(530vp<width<=840vp)');    this.mdListener.on("change", this.isBreakpointMD);    this.lgListener = mediaquery.matchMediaSync('(840vp<width)');    this.lgListener.on("change", this.isBreakpointLG);  }  isBreakpointSM = (mediaQueryResult) => {    if (mediaQueryResult.matches) {      this.curBp = 'sm';      AppStorage.SetOrCreate('curBp', this.curBp);    }    Logger.info(TAG, `this.curBp = ${this.curBp}`);  }  isBreakpointMD = (mediaQueryResult) => {    if (mediaQueryResult.matches) {      this.curBp = 'md';      AppStorage.SetOrCreate('curBp', this.curBp);    }    Logger.info(TAG, `this.curBp = ${this.curBp}`);  }  isBreakpointLG = (mediaQueryResult) => {    if (mediaQueryResult.matches) {      this.curBp = 'lg';      AppStorage.SetOrCreate('curBp', this.curBp);    }    Logger.info(TAG, `this.curBp = ${this.curBp}`);  }```

通过GridRow和GridCol组件,根据不同宽度类型的设备,设置不同的栅格间距和列数,保证不同设备上各个模块的布局一致性。

1.手机 

2.平板

3.智慧屏


分布式技术

1. 设备发现

使用@ohos.distributedDeviceManager接口,首先通过createDeviceManager创建设备管理器实例,然后通过getTrustedDeviceListSync同步获取所有可信设备列表;接口调用参考IndexTitleBar,使用showDiainfo进行弹窗显示,registerDeviceListCallback注册监听回调,发现设备或查找到已认证设备会弹窗显示,使用selectDevice()连接选择的设备,如果是已新人设备调用startAbility远程拉取设备应用,为信任设备则调用authenticateDevice接口进行PIN码认证在拉取应用。

2. 设备连接与拉取

首先通过on方法注册设备状态,例如发现设备,设备连接失败,然后通过startDeviceDiscovery方法发现周边设备,然后选择连接设备,再用startAbility启动连接设备的应用。

3. 分布式关系型数据库实现数据同步

在数据持久化方面,使用分布式关系型数据进行数据持久化管理,将农业数据存储和管理分布在多个节点上的数据库系统,实现多设备数据的同步。在智慧农业应用中,选择使用分布式关系型数据库来存储和管理农业方案、设备信息、参数和事件历史数据等。

通过@ohos.data.relationalStore提供的接口高效实现数据库的创建以及增删改查,也可以直接运行用户输入的SQL语句来满足复杂的场景需要。分布式数据同步能力通过RdbStore.on注册数据库观察者,使用RdbStore.obtainDistributedTableName根据本地表名获取指定远程设备的分布式表名,数据发生变动时通过RdbStore.sync同步数据,不需要用时删除指定观察者使用RdbStore.off。


未来畅想

这个万物互联的时代,鸿蒙系统的加入,利用其强大的分布式能力和系统特性,不仅解决了不同农业设备之间的互联互通问题,从底层操作系统源头上也保证了数据的安全可靠,并且能为用户提供无缝的全场景体验,相信随着越来越多的开发者加入到鸿蒙生态,能为智慧农业带来更多新的可能性,真正构建全场景,全连接,全智能的智能化农业系统,为我国实现农业现代化的伟大目标保驾护航。

更多推荐
点击下方图片链接,查看更多栏目内容


HarmonyOS开发者技术
HarmonyOS开发者提供HarmonyOS关键技术解析、版本更新、Codelabs实践和活动资讯,欢迎各位开发者加入鸿蒙生态,一起创造无限可能!
 最新文章