无锡杨巷镇智慧农业项目

无锡杨巷镇智慧农业项目

九月 04, 2021

智慧农业

跟随导师参与的第一个项目,在村民原农机的基础上布置自己的装备,对农机进行全方位的监控。

1. 相关背景

项目由两部分构成,管理平台和农机平台,两平台各自又包括自己的前端页面和后端管理,本人负责的主要是农机平台的业务,所使用的底层设备如下图所示

其本质上可以理解为一台袖珍PC,只不过其系统性能收硬件及成本影响不及家用PC,机器上运行的是Ubuntu系统,我们的开发工作可以理解为Linux平台下的客户端应用开发

用到的部分传感器

  • 姿态传感器
    28814982d88c2b49af66e5f4a2e7578.jpg
  • GPS
  • 摄像头
    efb8fc172caac5595db68bebecdd8d5.jpg
  • 油量传感器
  • ……

2. 技术栈

  • Electron(基于Chromium的跨平台应用开发框架)
  • PortSerial(串口交互)
  • AutoUpdater(客户端应用自动更新)

3. 实现效果

97f86e5880573211c883afabb0cf37a.jpg

4. 优化

1. 性能优化

简述

应用需要不断的绘制图表,带来极大的资源消耗

方法

适当降低图表的刷新间隔,例如对于油量显示,我们划分为若干格,以格的方式来更新,较少无意义的刷新

2. 版本不一致

简述

农机数量很多,且农机还需要外出工作,我们一次出差并不能在全部的机器上安装最新的应用,久而久之造成了大量的版本不一致问题

方法

使用AutoUpdater在每次应用启动时检查是否需要更新,当存在更新的版本,则后台进行下载,并自动的重启安装

更近一步

我们的方法相比传统的更新取消了用户安装的过程,但仍然比较繁琐,需要设置自动重启应用,进一步来说可以考虑热更新的策略,由于Electron的实际代码基本都存在于app.asar包中,我们可以更新改包的形式实现程序的热更新