基于树莓派的环境数据采集小车

(整期优先)网络出版时间:2023-04-19
/ 2

基于树莓派的环境数据采集小车

李世豪,齐金榜,王晓丽

上海工程技术大学 上海市 201600

摘要:智能小车可实现足不出户便获取各个地区的环境质量信息,对于一些人类难以进入或者危险区域,智能小车具有高机动性,大大提高了便捷性,安全性。

关键词:树莓派 内网穿透  MQTT

1.研究背景

环境污染愈发严重,安装环境监测装置费时费力,且往往装置比较庞大,对于一些狭小的特殊场合以及需要远程检测的地方,明显不合适。人工巡检的方法通常需要大量劳动力,而且受环境因素的影响,很容易发生危险

2.研究意义

本项目的环境监测智能车,用户可通过远程遥控此车开展环境监测任务,具有内外穿透的摄像头实现实时视频传输,且可在手机界面查询采集到的环境信息,节省大量的人力、物力及财力的投入,方便简单,具有良好的应用前景。

(一)研究内容:

本项目通过使用树莓派作为小车主控,小车架构选择麦克纳姆轮车型,在其上面组装好小车电机驱动,传感器以及专属的400万像素摄像头。手机APP通过发送命令让树莓派控制整个小车运动和采集数据,树莓派上的摄像头信息通过内网穿透传回APP,而传感器的数据则是通过MQTT协议传回APP,从而实现远程操作以及实时反馈。

本项目介绍分为两大模块,第一模块为树莓派视频流的内网穿透,第二模块为MQTT物联网协议通信。

基于树莓派的小型环境检测智能车,通过内外穿透技术进行稳定的远程视频,利用多种传感器实现对各种环境因子(光照强度、温度、湿度、灰尘浓度及实时视频信息)进行监测,再由树莓派进行简单运算及分析,利用物联网技术通过MQTT协议在安卓APP为人们实时传送环境信息。

(二)总体框架:

图1 总体框架

2.1硬件选取:

基于麦克纳姆轮技术的全方位运动设备可以实现前行、横移、斜行、旋转及其组合等运动方式。非常适合空间有限、作业通道狭窄的环境,在降低人力成本方面具有明显的效果。

通过烧录工具Raspberry Pi Imager烧录树莓派官方镜像,在树莓派上安装好python3,然后通过调用RPi.GPIO库,通过编写程序代码,让指定的引脚拉高或拉低,进而控制电机来控制小车运动。

2.2 物联网通讯:

2.2.1 MQTT协议

MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。

消息队列遥测传输(Message Queuing TelemetryTransport,MQTT) 协 议 是 一 个 超 轻 量 级 的 发 布(publish)/ 订阅(subscribe)消息传输协议,是专为受限设备和低带宽、高延迟或不可靠的网络而设计的。该协议第 1 个版本由 IBM 公司在 1999 年发布,版本 v3.1.1 于 2014 年成为结构化信息标准促进组织(Organization for the Advancement of StructuredInformation Standards,OASIS)的标准,其最新版本为 MQTT v5.0[1]。

MQTT协议交付的信息质量可以分为三种级别,一次正好、一次至少、一次至多。可以以消息的实际传输需求作为依据,将信息的订阅者和发布者信息按照其需求传输到目的地[2]。

MQTT协议的通信形式可以把它理解为三端一线通信:客户端A端、B端和服务端。首先A端连接服务端,然后B端也连接服务端,接着,A端向服务端订阅一个 主题 “topicA”,然后当B端发送消息给服务端时,B端也会按规定给发送的消息加个 主题 “topicB”,当"topicA" == "topicB"时,A端就能收到B端发送的消息。

通过在云服务器上搭建MQTT服务器,手机APP和树莓派通过订阅相应的主题以及发布消息到相应的主题即可完成广域网上的信息传递与交换。

2.2.2传感器获取信息

在树莓派智能小车上,安装多种传感器,例如温湿度传感器,超声波传感器,二氧化碳浓度传感器等,当小车驶入某一环境时,能立马检测到周围的环境指标,并可以将该信息通过MQTT协议传回手机APP中,供人们参考了解当前环境状况。

2.3视频流内网穿透

内网是从路由器下开始的,有自己的 IP 号段,IP 都是以192 开头的,而外网(公网)无须经由如何设备,直接连接终端,就可以上网且能直接被外界所访问[3]。

frp 是一个可用于内网穿透的高性能的反向代理应用(采用Go语言进行开发),支持 tcp, udp ,stcp协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。

树莓派使用专用的树莓派CSI摄像头接到树莓派上,通过内网穿透工具frp进行内网穿透。具体步骤如下:首先有一台具有公网ip的服务器,然后利用frp内网穿透工具进行相应的信息配置,把树莓派的IP穿透出去,使摄像头的访问网址能在任何地方都能被访问,最后再把该访问网址加入手机APP当中即可。

2.4 APP开发

在电脑上搭建Android Studio环境,使用Java语言进行开发,先做好界面,再配置好对应的功能事件,包括MQTT协议的物联网通讯收发,内网穿透好的访问网址接口。

参考文献

[1]BANKSA,GUPTAR.MQTTversion5.0[EB/OL].(2019-03-07)[2020-02-15].https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html.

[2]叶康林,钟瑾瑞,焦冠文,等.基于MQTT协议的生产实时数据传输技术应用研究[J].信息系统工程,2021,(11):65-68.

[3] 倪菁,吕昕,荆巍巍,等.云计算环境下基于信任的访问控制研究[J].信息通信,2020(10):4.