28

脱颖而出 · 2023年09月18日 · 湖北

【全国大学生IoT设计竞赛】安谋科技&灵动赛题国赛一等奖分享:城市环境监测小车

本文为全国大学生物联网设计大赛安谋科技&灵动微电子命题全国一等奖作品分享,参加极术社区和灵动微电子组织的【有奖征集】分享作品传播技术成果,更有奖品等你来领!线上征集活动。

团队介绍

参赛单位:武汉大学
队伍名称:物联网之心
指导老师:朱卫平
参赛队员:陈卓颖、康沛森、赵颖、裘轶栋
全国总决赛奖项:一等奖

安谋科技命题

竞赛题目:城市环境检测小车
竞赛内容:

  • 使用 MM32F5270 微控制器作为主控芯片。
  • 使用 MindSDK 或 MicroPython 作为软件开发平台。
  • 使用位置传感器(GPS、摄像头、NTAG、毫米波雷达、dToF或其他),自动定位小车行驶的信标位置。
  • 使用环境信息传感器,例如烟雾传感器、火焰、温湿度、光照、噪声等,采集小车周边的环境信息。
  • 通过无线网络传输模块(4G、Wifi、BLE、ZigBee等),将监控数据上传至云端。
  • 云端数据库保存每次上传记录的记录。
  • 加分项:在云端和本地实现自主导航、通过微信小程序或者网页在云端实现超控等。

项目简介

随着科技的发展和生活水平的提高,城市环境质量愈发受到人们重视。目前,城市环境质量监测装置以固定式装置为主。针对现有城市环境监测装置低覆盖、高成本、易误报的问题,以解决城市环境动态低成本检测需求为目的,本团队设计实现了嵌入式城市环境检测无人车,与传统的环境检测设备相比,其具备建设成本低,建设周期短,精度高,可多机协同,动态部署及适用场合灵活等诸多优点。

本项目为安谋科技命题。项目团队自主开发了小车设备硬件和可视化软件应用。设备侧小车采用国产灵动微电子 MM32F5270 微控制器作为主控板。MM32F5270 系列微控制器是上海灵动微电子设计生产的搭载了安谋科技(Arm China)“星辰” STAR-MC1 处理器的 MCU 产品,其工作频率可达 120MHz,内置256KB Flash 和 192KB RAM,配置浮点运算单元(Floating Point Unit, FPU)、数字信号处理单元(Digital Signal Processing,DSP)、信号间互联矩阵 MindSwitch、可配置逻辑单元 CLU、三角函数加速单元 CORDIC等算法加速单元,并集成了丰富的外设模块和充足的 I/O 端口。MM32F5270 相较于现有产品全面提升了性能、存储容量、总线架构和外设配置,旨在覆盖更广泛的工业、汽车和 IoT 应用。

小车上搭载温湿度、噪声、可燃气体、有毒有害气体等多种环境监测传感器,加载自行开发的控制程序。此外,项目还部署了云端网页应用,提供小车巡航任务下达,远程操控,数据可视化,数据预警,数据共享接口等功能。
6.png

特色与创新

  1. 小车群组自主巡航
    在云端网页中,用户可以实时查看所有小车的当前位置。点击地图中的小车图标,可以对该小车的巡航路线进行规划。规划完成并下达巡航指令后,小车将沿着当前规划线路行驶并采集沿途的环境数据。
  2. 车辆任务远程下达和统一管理
    系统支持多辆小车同时接入和管理。在控制台面板中,点击小车图标可以看到该小车的id号,经纬度坐标等信息。可以对小车进行远程操控。
  3. 丰富数据分析、可视化及定制化预警。
    控制台面板中可以实时显示小车采集到的数据。统计图面板中有更多的数据分析图,包括折线图,饼图,3D散点图,单轴散点图,便于用于进行查看和分析。此外,用户可以设置异常数据预警。当出现处于用户设定的异常范围的数据时,系统将通过弹窗和邮件两种方式对用户进行提醒。

系统设计

设备侧

小车由主控板,车身,以及传感器组成。

主控板为搭载了安谋科技(Arm China)“星辰” STAR-MC1 处理器的国产灵动微电子 MM32F5270 微控制器。
板子(带logo).png

车身由底板,两个众灵科技总线370 马达模块后驱电机,一个众灵科技ZP15S转向舵机组成。后驱电机和转向舵机均支持总线串口通信。将电机接在主控板的UART串口上,只需发送字符串指令即可完成对电机的控制。

另外,小车上搭载了以下传感器。

  • 正点原子ATK-1218-BD北斗GPS模块
  • 正点原子ATK-MPU6050六轴传感器模块
  • 正点原子ATK-ESP8266 WiFi模块
  • 盈盛电子YS-E02-12噪声检测模块
  • GP2Y1014AU0F PM2.5空气颗粒物传感器
  • DHT11温湿度传感器
  • Risym MQ2可燃气体传感器, MQ7一氧化碳传感器, MQ135有毒有害气体传感器,火焰传感器,光照传感器

7.png

小车的工作逻辑如下图所示。小车上电后先进行传感器初始化,对各引脚,中断,串口等进行定义和设置。随后小车开始采集数据,并把采集到的数据通过WIFI发送到后端服务器,同时查看服务器发送过来的消息。如果有消息的话,对其进行解析。小车接收的消息有且仅有两种类型:行动指令以及目的地坐标。当用户远程操控小车时,后端服务器会直接向小车发送行动指令。此时小车会直接将该消息转发至电机所在的串口。当用户下达巡航任务时,后端服务器会将一次巡航任务划分成多个目的地坐标点,并把这些目的地坐标点依次发送给小车。每个目的地坐标点都是纬度和经度的组合。小车将这些坐标点依次保存在一个队列中。当小车与后端服务器数据交换结束后,小车会查看坐标点队列中是否为空。若不为空,则取出一个坐标点作为当前的目的地,并使用PID算法前进到该点。

9.png

应用侧

前端

在本项目中,前端工程有两大任务:实现小车数据及环境数据的统计以及可视化、实现一个合适的人机交互界面用以远程操控小车。以这两大任务为出发点,分别选取了高德Amap.js地图组件和Echarts图表库作为各自的主要交互组件;同时为了确保数据的实时性,采用了Websocket通信协议实现了前后端的双工通信;再而就是项目框架以及视图组件库的选择,分别如下:Vue前端框架、ElementUI组件库以及Font Awesome图标库;另外有一些工具库如lodash、moment 、mock等不再赘述。
前端工程选用了较为流行的ElementUI container布局模板,在左侧设置侧边栏,并提供三个主要页面:小车控制台、统计视图、数据库。下面分别对这三个页面进行设计:

  • 小车控制台。作为用户与设备的交互界面,该页面主体组件为Amap.js,其上展示小车和环境数据图标,并配有丰富的交互方式。

8.jpg

  • 统计视图。作为展示环境数据的主要界面,该页面主体组件为Echarts.js,共设置四个图表:3D散点图,单轴散点图,饼图,折线图。
    折线图用于展示指定小车采集数据的历史趋势,通过上方按钮选择查看的数据类型、鼠标悬停展示该数据点的所有数据。
    饼图用于展示数据的分布情况,展示各种数据的每个范围内数据点的个数。
    3D散点图用于展示时空大数据。x轴代表经度、y轴代表纬度、z轴代表时间、颜色深度代表值大小。通过右侧下拉框选择观察的数据类型、拖拽缩放该图调整观察视角、悬停在某点上显示详情、通过左侧颜色框调整显示范围。

单轴散点图用于展示各小车数据随时间变化规律。x轴代表时间、圆圈大小代表值大小。通过右侧下拉框选择观察的数据类型、拖拽缩放下方颜色框调整显示范围、悬停在某点上显示详情。

10.png

11.png

  • 数据库。使用列表展示所有的环境数据、预警信息、小车数据。

12.png

除此之外,提供了一个设置预警的界面,用于个性化预警阈值以及通知方式,以及一个后端数据接口API,用于分享本项目采集到的环境数据。

后端

在后端的系统实现中,团队使用了SpringBoot作为后端Web框架,使用MySQL作为云端数据库,集成了MyBatis用作数据库访问策略。在数据通信上,通过Socket开启端口监听,使用UDP协议与小车进行数据传输服务;通过WebSocket与前端进行双向信息交互。

应用场景

本项目可以搭载不同的传感器从而部署在不同的实际场景。比如搭载可燃气体,有毒有害气体等传感器,小车可以部署在化工园区;搭载温湿度,光照,二氧化碳等传感器,小车可以部署在种植园区。

用户可以通过“控制台”页面的高德地图看到实时小车位置,并可以通过点击“数据点”按钮将数据也显示在地图上(不同颜色的数据点代表不同的紧急程度)。同时用户可以将鼠标移动到小车图标上或者数据点图标上来进一步查看相关信息。此外,用户点击某小车图标后,地图左侧会出现浮窗来展示该小车的实时信息,通过点击浮窗中的“历史数据”可以查看该小车所采集的环境数据随时间的关系,通过点击浮窗中的“远程操控”可以在弹窗中点击按钮实现对该小车的控制(也可以通过键盘上的WASD键实现同样的操作)。若用户想为小车下发导航指令,可以右键小车图标,点击“路径规划后”在地图上出现一条可以编辑的折线,只需要将折线的各个端点拖放在途径点即可,再次右键“完成规划”系统便会自动规划出一条路径,点击“开始巡航”即可为小车下发巡航指令同时页面上将高亮该小车的规划路线。

用户可以通过“统计数据”页面看到四张数据可视化图表。第一张“3D散点图”将多维时空数据展示在拥有xyz轴的坐标系中,其中xyz分别代表经度、纬度和时间,数据点的颜色代表了该数据的范围,其中红色为最大值,通过此图,可以直观地看到数据随地理位置和时间的关系。第二张“单轴散点图”将各个小车采集的数据分别展示在一条直线上,用户可以方便地对比各个小车采集数据随时间变化的差异,一个经典的应用场景为:各个小车抵达目标点后停止运动,实时检测各个目标点的数据,这时此图将会直观地看到各个地点环境数据随时间的变化趋势。第三章“折线图”展示某小车所采集的所有历史数据,用户可以通过上方按钮方便的控制展示哪类数据,也可以通过下方滑动窗口来控制展示的时间范围,通过此图,用户可以直观地看到某小车所采集的环境数据随时间的变化趋势。第四张“饼图”就某种数据类型,统计落于各个数据区间的环境数据点个数,通过此图,用户可以方便地看到各类数据中各个数据区间的占比。

用户可以通过“数据库”界面看到所有的小车数据、环境数据和预警信息。可以通过点击各个栏顶部来控制表格里的数据展示顺序。也可以通过右侧“删除”按钮来人工剔除异常数据从而使统计数据表更为准确。

用户可以通过点击页面右上角设置按钮,在弹窗中设置各类环境数据的预警阈值,并通过的闹铃按钮来控制是否弹窗展示异常数据。此外,本项目在点击右上角分享按钮弹出的窗口中列出了获取本项目所有采集数据的后端API接口,创作者可以通过这些接口获取原始数据进行二次分析等。

总结

对于当前较为明显的城市环境问题,我们团队实现了一套城市环境监测小车系统。针对现有固定式城市环境监测站低覆盖、高成本、易误报的问题,本团队设计实现了城市环境检测小车,实现动态部署、多机协同、低成本、高精度、可视化的环境检测。

参加极术社区的【有奖征集】分享作品传播技术成果,更有奖品等你来领!
更多物联网设计大赛分享作品请关注IC技术竞赛作品分享
推荐阅读
关注数
18729
内容数
130
基于Arm技术竞赛作品的分享,欢迎交流~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息