【AIOT项目讲解】开源省创毕设-分布式智慧蜂箱

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、配置前提条件
> 设备开热点或路由器,该局域网需要能够上外网。<br>
> 最好不要运行Android的手机开热点<br>
> 根据单片机所需要的WIFI,保证Win Linux ESP 都在同个局域网内<br>
> Linux 与 Windows 能相互ping通<br>

## 2、配置Windows端
> 按照显卡需求,安装CUDA、cudnn<br>
> 来使用GPU版本的GUI_YoloQt,否则只能使用CPU版本<br>

## 3、配置虚拟机Linux端
> 网卡模式配置成桥接模式<br>
> 能连接外网<br>
> 已经安装好了mosquito、lighttpd等(用提供的虚拟机即可)

# 四、具体用法
## 1、先运行Windows端的Slave模拟器
1. 安装好Modbus Slave软件
2. 运行fx_All\code_All\code_Hardware\fxModbusSlave 的两个文件
3. 建立连接

## 2、再运行Linux服务器端的所有任务
### 配置部分
1. 第一次运行,先运行/home/hq/fxProjNew/init_start.sh
2. 再执行  
    ipcs -q         # 显示所有的消息队列
    ipcrm -q 0      # 删除id为0的消息队列
3. 新终端运行 mosquito

### 网关服务器
1. cd进入 /home/hq/fxProjNew/gatewayApp/ 中<br>
    修改format.h 中 MDSLAVE_ADDR_IP 这个宏<br>
    改为运行ModbusSlave的win主机ip(已提前运行该模拟软件)
2. 执行make,运行./gatewayApp

### 网页服务器
1. cd进入 /home/hq/fxProjNew/webServerApp<br>
2. 执行make,然后运行 sudo ./webServerApp/thttpd.out<br>
    
### 阿里云SDK
1. cd进入 /home/hq/fxProjNew/aliMqttApp/build/output/bin
2. 运行 ./device_basic_demo

>  查看 Readme.md<br>
>  mkdir build && cd build<br>
>  cmake ..<br>
>  make -j<br>
>  输出的可执行文件在这里 <br>/fxProjNew/aliMqttApp/build/output/bin
       
## 3、运行ESP32
1. 确保其中WIFI信息与所用的WIFI是同一个
2. 确保硬件接线没问题后,上电

## 4、运行Winodws的应用
1. QtPC端程序     QtPcApp
> 运行可执行文件<br>
> code_All\code_Application\Qt_PcApp\mult_PcApp\fxQtPcApp.exe

2. 网页客户端      Web
> 浏览器输入 虚拟机ip即可

3. 阿里云公网平台  AliIOT
> 登录 https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fiot.console.aliyun.com%2Flk%2Fsummary%2Fnew&lang=zh

## 5、运行Andorid的应用
1. Qt安卓端程序    QtAndorid
> 手机运行软件即可

## 6、图像处理方面
1. 根据个人电脑,选择运行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

物联沃分享整理
物联沃-IOTWORD物联网 » 【AIOT项目讲解】开源省创毕设-分布式智慧蜂箱

发表评论