M5Stack UnitV2 - 任务一 观察小动物并记录上传到云端生成报表
通过爬虫爬取摄像头识别结果,解析json数据后上传mqtt服务器,另一个vps订阅数据并生成pdf,接到指令后转发最新pdf到指定邮箱实现报表获取。
标签
M5Stack
M5Stack UnitV2
xuyu
更新2021-10-18
736

重新上传了视频,结尾确认了视频结束

1 硬件介绍及实现的功能

硬件采用M5Stack UnitV2 摄像头,这个摄像头内置了arm处理器(双核Cortex-A7 1.2Ghz),运算能力支持对摄像头输入数据的一定程度的实时处理分析,并且内置了深度学习模型及很多基本的功能,软件接口和硬件接口都可以很方便的与已有工作逻辑结合。适合作为边缘计算节点,摄像头支持1080p。

 

实现的功能:通过爬虫爬取摄像头识别结果,解析json数据后上传mqtt服务器,另一个vps订阅数据并生成pdf,接到指令后转发最新pdf到指定邮箱实现报表获取。

2 实现思路及实现功能的具体介绍

功能实现思路:由于摄像头采用的是标准的串口接口,但是手边并没有这种接口,尝试使用排线连接串口获得结果,但是排线总松动。

 

摄像头提供即插即用的UI控制界面,通过在摄像头内部建立服务器,与外部pc连接后即可访问控制页面,在这个页面可以实时调用各种识别功能并获取结果,相当方便。因此,使用爬虫爬取识别结果,等效于用串口获取识别结果(还省了购买额外一个塑料接口的钱)。

识别结果被爬虫获取后,使用python将结果发送至MQTT服务器,MQTT服务器将此结果转发至腾讯云VPS,腾讯云VPS上运行着订阅的MQTT服务,其中名为data的话题将被接收,并加入一个列表,每当加入列表一个新的数据,就会重新生成一个新的pdf文件,覆盖旧的pdf文件。这个pdf文件完全由list里的数据决定,关机或者重启就消失。但是目前来看还是很稳定的,我连续运行了11天,没有丢失数据。理论上来说应该使用数据库对数据进行持久化,但是这样有点麻烦,不如python直接建立一个list。

pdf文件每次更新后都存储在vps上了,想要获取这个pdf如果还是手动sftp比较麻烦,因此又写了smtp的代码,通过sftp利用qq邮箱将pdf文件作为附件发送给我的outlook邮箱,触发方式是对MQTT服务器发送话题为email的消息,消息内容不作判断,随便什么内容都会触发发送邮件至邮箱的动作。

这个MQTT服务器不是全部手动搭建的,我使用了一个免费的(30天内免费)的托管MQTT服务提供商,叫EMQ X cloud. 搭建服务器很快,而且运行稳定,理论上来说支持更多功能,但是我是免费用户,不能用比如和数据库连接或者其他更高级的功能。但是能免费用还能快速稳定实现MQTT服务,已经算是很良心了。

3 功能展示图

Foabmk8B3mUuL8jpDeoyTdejkNsc

这个图片能更好的将功能实现的流程解释清楚。

 

 

 

Fgf_tcJHqQoqY7oYfIhcCix8DsZn

VPS订阅data话题和email话题,接收到广播后打印出来。

Fi8ly2x6wP4YcRnnL_vqI09GdsUt

生成的pdf文件,在outlook邮箱中预览。

 

 

 

Fr5yqeDUBbpLVioKi5slLSX2SrKf

更多演示请参见B站视频。

 

4 遇到的主要难题

主要难题:1,没有串口接线,但是用爬虫获取数据也行。

2.有线接入电脑后,由于被识别为网卡,相当于接入了另一个网络,有时候需要等一下才能访问互联网(比如百度),在此之前无法访问。我猜是电脑没想明白用哪个以太网接口给浏览器用,等一阵之后自动换回原来的接口就可以了。估计几天后更新固件后将摄像头接入局域网就没这个问题了。

5未来的计划建议等

未来的计划:等有时间的话,自己训练模型,尝试实现别的功能,这个摄像头对我这种非视觉相关专业的用户来说算得上十分友好了,可以很快上手,又有云训练平台,还内置python开发环境。

建议的话,如果摄像头能更高清就好了,此外还有发热问题,希望能增加更强的散热.

可编译下载的代码

代码已经上传,但是考虑到代码里有一些隐私配置,因此用随机数字或者****代替了。

 

 

 

 

 

 

 

 

附件下载
cloud_project.zip
newer_version
团队介绍
EE Ph.D. 学生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号