1、项目说明与介绍
这是个人的毕设项目,也是省创、校创的项目
包含物联网部分、图像处理部分的讲解和演示
衷心感谢三年来,帮助过我的师长们、兄弟姐妹们,文字表达不完心意,祝你们生活顺利、福生无量!
2、项目开源
欢迎HR、技术朋友、学弟学妹们,参与交流,若有需要,知无不言!
开源如下,最新代码在百度网盘
【说明书也在Gitee,视频开头忘记讲了】
【Gitee】
https://gitee.com/Sanyangmate/fx
【百度网盘】
链接:https://pan.baidu.com/s/1iFg-i9X-i5qM_v-KuvpZCA?pwd=0000 提取码:0000
【B站在这里】
等等
【其他开源项目】
【海陆空环境监测系统】https://gitee.com/Sanyangmate/sensorSystem
【基于Linux的多组态边缘网关】https://gitee.com/Sanyangmate/gateway-linux-c
3、说明书
项目的用法。这里凑凑字数,都在Gitee和B站视频
一、说明书首页
该文档包括 整体的蜂箱综合项目的描述
包含:项目工程介绍、环境配置说明、具体用法
二、项目工程介绍
本项目参考物联网三层体系结构,每层都进行实现
1、应用层:
Qt桌面端程序 QtPcApp
Qt安卓端程序 QtAndorid
网页客户端 Web
阿里云公网平台 AliIOT
2、中间层
网页服务器 Lighttpd/CGI
网关服务器 并发综合服务器
阿里云SDK Ali_MQTT客户端
3、硬件层
模拟Slave ModbusTcp
ESP32 FreeRTOS
三、环境配置说明
1、配置前提条件
设备开热点或路由器,该局域网需要能够上外网。
最好不要运行Android的手机开热点
根据单片机所需要的WIFI,保证Win Linux ESP 都在同个局域网内
Linux 与 Windows 能相互ping通
2、配置Windows端
按照显卡需求,安装CUDA、cudnn
来使用GPU版本的GUI_YoloQt,否则只能使用CPU版本
3、配置虚拟机Linux端
网卡模式配置成桥接模式
能连接外网
已经安装好了mosquito、lighttpd等(用提供的虚拟机即可)
四、具体用法
1、先运行Windows端的Slave模拟器
- 安装好Modbus Slave软件
- 运行fx_All\code_All\code_Hardware\fxModbusSlave 的两个文件
- 建立连接
2、再运行Linux服务器端的所有任务
配置部分
- 第一次运行,先运行/home/hq/fxProjNew/init_start.sh
- 再执行
ipcs -q # 显示所有的消息队列
ipcrm -q 0 # 删除id为0的消息队列 - 新终端运行 mosquito
网关服务器
- cd进入 /home/hq/fxProjNew/gatewayApp/ 中
修改format.h 中 MDSLAVE_ADDR_IP 这个宏
改为运行ModbusSlave的win主机ip(已提前运行该模拟软件) - 执行make,运行./gatewayApp
网页服务器
- cd进入 /home/hq/fxProjNew/webServerApp
- 执行make,然后运行 sudo ./webServerApp/thttpd.out
阿里云SDK
- cd进入 /home/hq/fxProjNew/aliMqttApp/build/output/bin
- 运行 ./device_basic_demo
查看 Readme.md
mkdir build && cd build
cmake ..
make -j
输出的可执行文件在这里
/fxProjNew/aliMqttApp/build/output/bin
3、运行ESP32
- 确保其中WIFI信息与所用的WIFI是同一个
- 确保硬件接线没问题后,上电
4、运行Winodws的应用
QtPC端程序 QtPcApp
运行可执行文件
code_All\code_Application\Qt_PcApp\mult_PcApp\fxQtPcApp.exe网页客户端 Web
浏览器输入 虚拟机ip即可
阿里云公网平台 AliIOT
5、运行Andorid的应用
- Qt安卓端程序 QtAndorid
手机运行软件即可
6、图像处理方面
- 根据个人电脑,选择运行CPU GPU两个版本程序
五、网关程序 设计思路
1、打开共享内存
所有数据 用一个结构体 存放在共享内存
给webServer使用
给AliClinet使用
2、打开UDP服务 *多线程
用来搜索服务器
QtAppPC
QtAppAndroid
ESP32
3、打开TCP服务 *多线程
用来通信
QtAppAndroid
4、打开MQTT服务 *多线程
与QtAppPC通信 定时上传
与ESP32 通信 上报数据,数据库同时保存
5、打开ModbusTCP服务 *多线程
Slave 上报数据,数据库同时保存
6、打开消息队列
不管来自谁,只区分 控制 或者 广播
只能同时处理一类任务的一个,所以同时间多个任务,需要依次入队
处理webServer 下发的控制命令
处理QtAppPC 下发的控制命令
处理QtAppAndroid 下发的控制命令
处理AliClinet 下发的控制命令
7、数据库保存数据
每次获得数据后,即刻插入
time name val key
版权归原作者 南北旅程 Hia 所有, 如有侵权,请联系我们删除。