基于MQTT服务的校园智能灯杆系统的设计与实现
(本科毕设项目,所使用的工具基本都是我现学的)
- 项目完成的主要功能:
在实现现有灯杆功能(照明,视频监控)的基础上,增加智能灯控、环境数据采集、电子信息显示牌和一键紧急求救等功能。树莓派终端通过MQTT协议进行数据传输,将数据实时展示到网页端,实现网页端远程实时监控和控制路灯状态。 - 项目来源:老师的课题,让我读研之前跟进一下,毕设做了这个项目,算是课题的精简版吧,一点点皮毛
- 主控:树莓派3B+
- 传感器设备:温湿度传感器-DHT11、OLED显示屏、轻触式按键开关、摄像头-Raspberry Pi Camera Modulev2
- 功能实现:
- MQTT服务器:EMQ官方集成版(https://www.emqx.cn/products/broker)
- MQTT客户端:树莓派终端使用paho-python-mqtt官方库、网页终端使用paho-JavaScript-mqtt官方库(https://github.com/eclipse?q=mqtt)
- 摄像头驱动:MJPG-streamer(参考:https://blog.youkuaiyun.com/wuli_dear_wang/article/details/84628771)
- OLED显示屏:淘的树莓派专用的,带有教程(也可以买个IIC的便宜的,网上教程一大堆)
- 树莓派系统:Raspberry Pi OS(Raspbian)(https://shumeipai.nxez.com/download#os)
- WEB服务器:flask框架(本项目只是简单实现了web服务器,只是用来传递网页和静态文件了,并没有用来提供其他数据服务,网页端获取到静态文件之后服务器就没用了)
- 树莓派终端
- web服务器
- mqtt服务器
项目总结:
- 这个项目涉及到的东西基本上之前都没有接触过:树莓派第一次用、第一次搭建web服务器、第一次写JavaScript代码........
- 其实,现在想想,也没什么东西,只是第一次接触比较陌生罢了
- 这次项目大多是参考别人的案例来实现的,正所谓:实现功能就是调用API嘛
- 也算是摸索着前进吧,多经历些项目慢慢就找到套路了
总结下来的经验/教训:
- 做项目期间效率很低,做事不专心,老是去捯饬其他事情,项目周期拖延的很长--开始一个项目,就全心全意的去做,尽快干掉它!专心去做,项目进行的很快的
- 不要惧怕英文,要知道计算机都是老外发明的,学习计算机怎么离得了英文,英文技术文档并没有那么难,也就是一些专有名词而已,语法很简单的,拿着翻译软件,四级没过的我也是读得懂的!
- 做项目的时候不要过于专注而忘了站起来走走!真的有几天,一坐就是一整天,腰疼了跪在凳子上编码,太过头了,身体是革命的本钱!
- 站在巨人的肩膀上,冲冲冲!