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

这篇具有很好参考价值的文章主要介绍了【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 
 
 文章来源地址https://www.toymoban.com/news/detail-840232.html

到了这里,关于【AIOT项目讲解-开源-省创-毕设】分布式智慧蜂箱的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【分布式技术专题】「分布式ID系列」百度开源的分布式高性能的唯一ID生成器UidGenerator

    UidGenerator是什么 UidGenerator是百度开源的一款分布式高性能的唯一ID生成器,更详细的情况可以查看官网集成文档 uid-generator是基于Twitter开源的snowflake算法实现的一款唯一主键生成器(数据库表的主键要求全局唯一是相当重要的)。要求java8及以上版本。 snowflake算法 Snowflake算法描

    2024年02月04日
    浏览(61)
  • 分布式开源监控Zabbix实战

    Zabbix作为一个分布式开源监控软件,在传统的监控领域有着先天的优势,具备灵活的数据采集、自定义的告警策略、丰富的图表展示以及高可用性和扩展性。本文简要介绍Zabbix的特性、整体架构和工作流程,以及安装部署的过程,并结合实战进行监控配置。 1、Zabbix介绍 Zab

    2024年02月09日
    浏览(39)
  • .NET开源分布式锁DistributedLock

    线程锁通常在单个进程中使用,以防止多个线程同时访问共享资源。 在我们.NET中常见的线程锁有: 自旋锁:当线程尝试获取锁时,它会重复执行一些简单的指令,直到锁可用 互斥锁: Mutex,可以跨进程使用。Mutex 类定义了一个互斥体对象,可以使用 WaitOne() 方法等待对象上的

    2024年02月01日
    浏览(36)
  • LinkedIn 开源分布式存储系统Ambry

    分布式存储是一种用于处理大规模数据的存储系统。随着互联网的发展和数据量的爆发式增长,传统的集中式存储已经无法满足需求。分布式存储通过将数据分散存储在多个节点上,实现高可靠性、高扩展性和高性能的存储解决方案 分布式存储的基本原理 分布式存储系统由

    2024年02月04日
    浏览(41)
  • Zipkin开源的分布式链路追踪系统

    Zipkin是一款开源的分布式链路追踪系统,主要功能包括: 1. 采集跟踪数据 - Zipkin client库负责收集并上报各服务的请求信息。 2. 存储跟踪数据 - 存储层默认采用Zipkin自带的基于内存的快速存储,也支持整合MySQL、Cassandra等外部存储。 3. 查询接口 - 提供RESTful API进行跟踪数据查询。

    2024年02月11日
    浏览(42)
  • 一个开源的分布式在线教育系统

    大家好,我是 Java陈序员 。 今天给大家介绍一个开源的 分布式在线教育系统 ,支持课程在线播放、课程购买等功能。 关注微信公众号:【Java陈序员】,获取 开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 roncoo-education —— 一个分布式在线教育系统。目前主要

    2024年03月14日
    浏览(60)
  • 字节跳动正式开源分布式训练调度框架 Primus

    动手点关注 干货不迷路 项目地址:https://github.com/bytedance/primus 随着机器学习的发展,模型及训练模型所需的数据量越来越大,也都趋向于通过分布式训练实现。而算法工程师通常需要对这些分布式框架涉及到的底层文件存储和调度系统有较深的理解,才能够快速批量开启模

    2024年02月05日
    浏览(45)
  • 用通俗易懂的方式讲解大模型分布式训练并行技术:MOE并行

    前面的文章中讲述了数据并行、流水线并行、张量并行、序列并行、自动并行等多种并行技术。但现在的模型越来越大,训练样本越来越多,每个样本都需要经过模型的全部计算,这就导致了训练成本的平方级增长。 而当我们希望在牺牲极少的计算效率的情况下,把模型规模

    2024年02月02日
    浏览(63)
  • LLMs开源模型们的分布式训练和量化

    前一篇博文整理了: LLMs开源模型们和数据集简介 这篇博文主要整理一下目前流行的训练方法和量化。 (图自Towards a Unified View of Parameter-Efficient Transfer Learning) 使通用LLMs适应下游任务的最常见方法是微调所有模型参数或微调尾层参数(Freeze)。然而这会导致每个任务都有一

    2024年02月07日
    浏览(45)
  • 开源 IoT 物联网分布式实时数据分析服务

    随着物联网设备增长,也产生了大量的数据,这些数据具有高速、多样和实时的特点。如果你的物联网数据 不及时、不准确、不具有可操作性 ,那么你在收集的这些数据就变得毫无价值。为了有效地利用这些数据,我们需要一种能够快速响应、灵活扩展和支持复杂查询的系

    2024年02月12日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包