如何用工业树莓派和MQTT平台打通OT和IT?
一、应用设备
OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备
边缘侧设备:宏集工业树莓派;
IT端设备:PC、安卓手机;
IT端软件:宏集HiveMQ MQTT通信平台
二、原理

宏集工业树莓派通过MODBUS协议分别采集步进电机、MODBUS TCP I/O模块、PLC设备数据,并在工业树莓派完成一些简单的数据处理。宏集HiveMQ将PC端配置为MQTT Broker;工业树莓派可通过MQTT协议将数据传输到PC端;在手机端,操作人员可通过自行编写的APP程序订阅PC端的数据主题。
三、实际测试
1.工业树莓派源码
- import threading
- import time
- from doctest import OutputChecker
- from os import P_PID
- from time import sleep
- from threading import Thread
- from tkinter import W
- from myCtrlLib import *
- import sys
- import serial
- import paho.mqtt.client as mqtt
- import json
- def on_connect(client, userdata, flags, rc):
- print(f"Connected with result code {rc}")
- client = mqtt.Client()
- client.on_connect = on_connect
- client.connect("192.168.1.168", 1883, 60)
- #读取PLC数据
- def read_plc_data():
- on_motor()
- i = 0
- j = 0
- while True:
- Weight = readFromName('Weight') #读取PLC重量值数据
- Humidity = readFromName('Humidity') #读取PLC湿度值数据
- Temperature = readFromName('Temperature') #读取PLC温度值数据
- #读取光电开关状态,0表示两个光电开关没有被触发;1表示光电开关1被触发,2表示光电开关2被触发,3表示两个光电开关同时被触发
- Switch = readFromName('Switch_1')
- sleep(1)
- Back_motor()
- sleep(1)
- Advance_motor()
- #根据光电开关状态控制电机
- if Switch == 1:
- i = i+1
- if Weight > 500:
- j = 1
- else:
- j = 0
- #构建JSON数据
- data = {
- 'Stepping_motor_speed':300, #电机转速
- 'Temperature':Temperature, #温度值
- 'Humidity':Humidity, #湿度值
- 'Obj_weighth':Weight, #重量值
- }
- json_data = json.dumps(data)
- client.publish('IndustrialProductionLin', payload=json_data, qos=0, retain=True)
- print(i)
- #电机启动
- def on_motor():
- writeToName('Motor',1)
- pass
- #电机正转
- def Advance_motor():
- writeToName('DIR',0)
- pass
- #电机反转
- def Back_motor():
- writeToName('DIR',1)
- pass
- #电机停止
- def stop_motor():
- writeToName('Motor',0)
- pass
- # 创建并启动线程
- plc_thread = threading.Thread(target=read_plc_data)
- #启动线程
- plc_thread.start()
- # 主线程等待两个线程结束
- plc_thread.join()
2. 效果



四、为何选择宏集工业树莓派和宏集HiveMQ方案?
1. 宏集工业树莓派集成了较多的现场总线协议,配合对应的Python库,能通过一些简单配置就能够实现OT端数据的采集,例如该案例使用的MODBUS协议,通过PiCtory配置,就能够编写Python程序,快速实现OT端的数据对接;
2. 宏集工业树莓派目前最高配置达到了8GB RAM,性能上等同于一台PC,能够完成一些较为复杂的运算和轻量化机器学习模型。
3. 宏集HiveMQ平台是基于MQTT通信的物联网解决方案,支持快速配置MQTT Broker,支持高负载、高并发、高扩展性。在实际应用中,能够确保数据的快速稳定传输,保证不会出现任何一条数据丢失。除此之外的话,它还支持企业级扩展,例如对接Kafka以及企业级信息安全管理等功能。
工业树莓派特价活动
宏集工业树莓派特价活动火爆进行中,欢迎扫描下方小程序码咨询选购~

相关文章:
如何用工业树莓派和MQTT平台打通OT和IT?
一、应用设备 OT端设备:步进电机,MODBUS TCP远程I/O模块,PLC设备 边缘侧设备:宏集工业树莓派; IT端设备:PC、安卓手机; IT端软件:宏集HiveMQ MQTT通信平台 二、原理 宏集工业树…...
大模型背景下软件工程的机遇与挑战
点击链接了解详情 本文作者:汪晟杰 导语:AISE(AI Software Engineering)有人说是软件工程 3.0,即基于大模型(LLM - Large Language Model)时代下的软件工程。那么究竟什么是 AISE,他的发展历程对…...
flink中使用GenericWriteAheadSink的优缺点
背景 GenericWriteAheadSink是flink中提供的实现几乎精确一次输出的数据汇抽象类,本文就来看一下使用GenericWriteAheadSink的优缺点 GenericWriteAheadSink的优缺点 先看一下GenericWriteAheadSink的原理图 优点: 几乎可以精确一次的输出…...
第五章Maven依赖的特性-进阶篇
文章目录 第一节 重新认识MavenMaven 的完整功能项目管理功能的具体体现 POM 的四个层次超级 POM父 POM有效 POM概念查看有效 POM 小结 属性的声明与引用help 插件的各个目标使用 help:evaluate 查看属性值通过 Maven 访问系统属性Java 系统属性一览使用 Maven 访问系统属性 访…...
【Javascript】数组练习(在排好序的数组⾥,按照⼤⼩顺序插⼊数据)
var array[1,4,5,7,9,17]; console.log(array);比如要插入一个数16 var array[1,4,5,7,9,17];var num16; var indexnull; var i; for(i0;i<array.length;i){if(array[i]<num){indexi;} } console.log(index);首先通过循环找出最后一个比自定义的num小的值,并…...
记低版本okhttp超时会导致死锁
一、问题起源 在处理一次生产环境cpu拉满问题时,把日志拉下来看发现很多http请求调用出错,项目使用的是okhttp 3.8.1版本。 二、问题描述 问题出在okhttp3.Dispatcher.finished(Dispatcher.java:201)代码如下: void finished(AsyncCall c…...
idea必装的插件 Spring Boot Helper 插件(创建 Spring Boot 项目)
Spring Spring让Java程序更加快速,简单和安全.Spring对于速度、简单性和⽣产⼒的关注使其成为 世界上最流⾏的Java框架。Spring官⽅提供了很多开源的项⽬,覆盖范围从Web开发到⼤数据,Spring发展到了今天,已经形成了⾃ ⼰的⽣态圈.我们在开发时,也倾向于使⽤Spring官⽅提供的技术…...
Scrum(敏捷开发)的前端定位
1. Scrum(敏捷开发)的开发流程 Scrum将整个开发过程分为多次迭代(称为Sprint,冲刺),一般为期2~4周,最常见的为2周。Scrum并非以一段时间集中完成一个过程,而是将所有过程中必须的每一部分集中在这段时间内完成。需求、设计、编码、测试、上线都必须在一个迭代中完成,每…...
uniapp缓存对象数组
需求:使用uniapp,模拟key(表名)增删改查对象数组,每个key可以单独操作,并模拟面对对象对应表,每个key对应的baseInstance 类似一个操作类,当然如果你场景比较简单,可以改…...
腾讯云优惠券免费领取入口整理分享
腾讯云作为国内领先的云服务提供商,为了回馈用户的支持和信任,经常推出各种优惠活动,并提供优惠券供用户使用。本文将整理和分享腾讯云优惠券的免费领取入口,帮助用户在购买腾讯云产品时享受更多的优惠和福利。 一、腾讯云优惠券介…...
功率放大器在PZT陶瓷薄膜压电传感器研究中的应用
随着科技的进步和工业发展的需求,对于压力测量和控制的需求日益增加。压力传感器作为一种关键的传感器器件,在机械、自动化、医疗、航空等多个领域都有广泛应用。PZT陶瓷薄膜压电传感器由于其响应速度快、精度高、稳定性好等优点,成为了许多应…...
Anaconda创建新的虚拟环境及Jupyter Notebok中、PyCharm中环境的使用
Anaconda创建新的虚拟环境 在windows开始菜单中【徽标键】,查找Anaconda文件夹并打开【Anaconda Prompt】 查看已有虚拟环境 conda env list1.创建 conda create --name mytest python3.7 # 创建一个名称为mytest,python版本为3.7的虚拟环境输入【…...
[QT] 如果你怎么试HTTP下载文件得到的QNetworkReply的readAll()都是空数据(长度为0),请看这里
1,首先你对比看看QT官方给出的例子 Download Data from URL - Qt Wiki 2,再看看是不是要设置重定向,如果要,要设置一下 QNetworkRequest request(imageUrl); request.setAttribute(QNetworkRequest::FollowRedirectsAttribute, …...
使用docker部署flask接口服务 一
文章目录 一:说明二:dockerfile 参数说明1. 一般常用的 参数,以及它的含义2. 我自己的 dockerfile 三:示例操作1. Gunicorn Gevent启动服务的好处2. 用Gunicorn Gevent的好处:3. Gunicorn Gevent的 使用示例4. 创建…...
超实用的跟圈和一键转发好友朋友圈功能
一键转发朋友圈/跟圈 想转发别人的朋友圈内容,通常需要手动复制粘贴,一个个复制保存实在是太麻烦耗费时间。 有时候咱也不可能随时都看朋友圈嘛,那又想及时转发朋友的圈的,有什么办法可以轻松实现呢? 操作步骤 单击…...
口袋参谋:如何一键获取竞品数据?这招实用!
在淘宝天猫上开店,市场竞争日益激烈,想要做好店铺,我们就不得不去分析竞品的数据了。 很多卖家开店后,一上来就直接卡在类目前10,折腾了一两个月才发现自己对标错了对象,最终竹篮打水一场空。 所以&…...
python 生成html文件并端口展示
1.生成相关的html文件 import json import os import calc import requests import numpy as npwith open(picture, r,encodingutf-8) as f:lines f.readlines() html <html>\n<html lang"zh">\n<head>\n<meta charset"UTF-8">…...
二进制部署 Kubernetes(master和node)
二进制搭建 Kubernetes v1.20 k8s集群master01:20.0.0.101 kube-apiserver kube-controller-manager kube-scheduler etcd k8s集群master02:20.0.0.106 k8s集群node01:20.0.0.102 kubelet kube-proxy docker k8s集群node02:20.0…...
【计算机网络】IP协议的相关特性
IP协议:互联网的核心组件 在当今高度数字化的世界中,互联网已成为人们生活、工作不可或缺的一部分。而在这个庞大的网络中,IP协议(Internet Protocol)作为核心的通信协议,发挥着至关重要的作用。本文将详细…...
如何在Potplayer中使用公网访问群晖WebDav?
文章目录 1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透,映射至公网5 使用固定地址在potplayer访问webdav 国内流媒体平台的内容让人一言难尽,就算是购买了国外的优秀作品,也总是在关键剧情上删删…...
SpringBoot编程式事务实战:为什么我放弃了@Transactional注解
SpringBoot编程式事务实战:为什么我放弃了Transactional注解 在SpringBoot开发中,事务管理一直是保证数据一致性的核心环节。大多数开发者习惯使用Transactional注解来简化事务配置,直到我在一个高并发订单系统中遭遇了事务失效的噩梦——凌晨…...
3步解决华硕笔记本性能管理难题:G-Helper硬件控制全解析
3步解决华硕笔记本性能管理难题:G-Helper硬件控制全解析 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, …...
无需Root!Termux+Samba三步搭建手机NAS,跨平台文件共享无忧
1. 为什么你需要手机NAS? 每次用微信传文件都要忍受压缩画质?电脑和手机互传文件还得找数据线?家里多台设备共享电影资源只能靠U盘来回倒腾?这些问题我都遇到过,直到发现用旧手机搭建NAS这个神器方案。最让我惊喜的是…...
Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享
Asian Beauty Z-Image Turbo 微信小程序前端开发:实时图像生成与分享 最近在捣鼓一些有意思的AI应用,发现把大模型的能力搬到移动端,特别是像微信小程序这样的轻量级平台上,能玩出很多新花样。今天想和大家聊聊,怎么给…...
Rust的#[derive(Clone)]中的拷贝深
Rust语言中的#[derive(Clone)]是一个强大的派生宏,它允许开发者快速为自定义类型实现Clone trait,从而支持值的显式拷贝。在Rust中,拷贝分为浅拷贝和深拷贝,而#[derive(Clone)]默认生成的实现通常是浅拷贝。在某些场景下ÿ…...
深度学习项目训练环境端到端:从数据准备→训练→验证→剪枝→微调→部署一体化支持
深度学习项目训练环境端到端:从数据准备→训练→验证→剪枝→微调→部署一体化支持 1. 环境准备与快速上手 深度学习项目开发最让人头疼的就是环境配置问题。不同的框架版本、CUDA版本、Python版本之间的兼容性常常让人抓狂。这个镜像环境就是为了解决这个问题而生…...
Sambert语音合成镜像实战:快速搭建智能客服语音播报系统
Sambert语音合成镜像实战:快速搭建智能客服语音播报系统 1. 业务场景与需求分析 在智能客服系统中,语音播报功能直接影响用户体验。传统解决方案通常面临三个核心痛点: 音质机械感强:拼接式语音合成缺乏自然流畅度情感表达单一…...
从调试到量产:手把手教你玩转热成像机芯的UART串口(含常用AT指令集)
从调试到量产:手把手教你玩转热成像机芯的UART串口(含常用AT指令集) 在工业检测、安防监控和医疗诊断领域,热成像技术的精准度往往取决于硬件与软件的协同效率。而UART串口作为热成像机芯的"神经末梢",承担着…...
前端面试题智能评估:nli-distilroberta-base判断答案相关性
前端面试题智能评估:nli-distilroberta-base判断答案相关性 1. 面试评估的痛点与解决方案 前端技术面试中,开放性问题占据了重要位置。面试官常常需要花费大量时间阅读候选人的文字回答,判断其是否涵盖了关键知识点。这个过程不仅耗时&…...
AI原生研发必须通过的第4道门:SITS2026定义的“伦理可审计性”标准(含6类强制留痕字段+审计失败率下降41%实测数据)
第一章:SITS2026专家:AI原生研发的伦理考量 2026奇点智能技术大会(https://ml-summit.org) AI原生研发正从工具增强迈向系统级自主演化,其伦理边界不再仅由人类开发者单向设定,而需在模型训练、推理服务、反馈闭环等全生命周期中…...
