电子SOP实施(MQTT协议)

架构图

服务与程序

用docker启动mqtt broker(服务器)

访问:http://192.168.88.173:18083/#/dashboard/overview

用户名:admin  密码:***

消息发布者(查找sop的url地址,发布出去)

修改url,重新发布消息

import random
from paho.mqtt import client as mqtt_clientbroker = '192.168.88.173'
port = 1883
topic = "/python/mqtt"client_id = f'python-mqtt-{random.randint(0, 1000)}'def connect_mqtt():def on_connect(client, userdata, flags, rc):if rc == 0:print("Connected to MQTT Broker!")else:print("Failed to connect, return code %d\n", rc)raise Exception("连接MQTT 服务失败!")client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION1,client_id)  # 创建客户端client.on_connect = on_connect  # 指定回调函数client.connect(broker, port)  # 开始连接return clientdef publish(client):msg = "http://hhy201904.x3322.net:8070/web"msg = "http://www.baidu.com"result = client.publish(topic, msg)status = result[0]if status == 0:print(f"Send `{msg}` to topic `{topic}`")else:print(f"Failed to send message to topic {topic}")def run():client = connect_mqtt()client.loop_start()  # 开启一个独立的循环通讯线程publish(client)if __name__ == '__main__':run()
消息订阅者(订阅topic主题)

获取订阅消息,启动浏览器 
 

import random
import os
from paho.mqtt import client as mqtt_client
import webbrowserbroker = '192.168.88.173'
port = 1883
topic = "/python/mqtt"client_id = f'python-mqtt-{random.randint(0, 100)}'def connect_mqtt() -> mqtt_client:def on_connect(client, userdata, flags, rc):if rc == 0:print("Connected to MQTT Broker!")else:print("Failed to connect, return code %d\n", rc)client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION1,client_id)client.on_connect = on_connectclient.connect(broker, port)return clientdef subscribe(client: mqtt_client):def on_message(client, userdata, msg):  # 回调函数print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic")url = msg.payloadwebbrowser.open(url, 1)os.system("start /max edge")client.subscribe(topic)client.on_message = on_messagedef run():client = connect_mqtt()subscribe(client)client.loop_forever()if __name__ == '__main__':run()

树莓派设置

python开机自启动(打开订阅者服务)

目录:/home/tx/.config/autostart/my.desktop

[Desktop Entry]
Type=Application
Exec=lxterminal -e python3 -i /home/pi/example.py && chromium-browser  --disable-popup-blocking --no-first-run --disable-desktop-notifications  --kiosk "http://www.baidu.com"

****

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Claude 3.5 Sonnet已经上线,Claude 3.5 Opus即将上线

https://docs.anthropic.com/en/docs/about-claude/models 人工智能学习网站 https://chat.xutongbao.top/

Python基础——字符串常见用法:切片、去空格、替换、拼接

文章目录 专栏导读1、拼接字符串2、获取字符串长度3、字符串切片4、字符串替换:5、字符串分割6、字符串查找7、字符串大小写转换8、字符串去除空白9、字符串格式化:10、字符串编码与解码:11、字符串判断12、字符串填充与对齐总结 专栏导读 &a…

高性能并行计算华为云实验四:快排算法实验

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建快排算法源码 3.2 makefile的创建与编译 3.3 主机文件配置与运行监测 四、实验结果与分析 4.1 结果一及分析 4.2 结果二及分析 五、实验思考与总结 5.1 实验思考 5.2 实验总结 END~ 一、实验目的…

移动端 UI 风格,诠释精致

移动端 UI 风格,诠释精致

C++跨平台socket编程

C跨平台socket编程 一、概述1.1 TCP协议1.1 TCP 的主要特性1.2 TCP报文格式 UDP报文格式IP协议使用windows编辑工具直接编辑Linux上代码 二、系统socket库1.windows上加载socket库2.创建socket2.1 windows下2.2 linux下 3.网络字节序4.bind端口5.listen监听并设置最大连接数6.a…

什么是投保人豁免,第二投保人,什么是ROI和IRR

投保人豁免通常是指在保险合同中,如果投保人因意外伤害或疾病导致身故或全残,保险公司将免除后续的保险费用,而被保险人的保险合同仍然有效。这意味着,如果投保人因意外身故,保险公司将不再收取保费,但被保…

css布局之flex应用

/*父 100*/.parent-div {/* 这里添加你想要的属性 */display: flex;flex-direction: row; //行justify-content: space-between; //左右对齐align-items: center;flex-wrap: wrap; //换行}/*中 90 10 */.middle-div {/* 这里添加你想要的属性 */display: flex;flex-direction:…

Redis 入门篇

文章目录 Redis简介关系型数据库:非关系型数据库 Redis应用场景Redis下载和安装Redis 数据类型Redis 常用命令字符串 string 操作命令哈希 hash 操作命令列表 list 操作命令集合 set 操作命令有序集合 sorted set 操作命令通用命令 Jedis 快速入门配置依赖建立连接 / 操作 Jedi…

【物联网】802.15.4简介

目录 一、概述 二、802.15.4主要特点 2.1 工作频段和数据速率 2.2 支持简单器件 2.3 信标方式和超帧结构 2.4 数据传输和低功耗 三、低功耗 一、概述 802.15.4包括用于低速无线个人域网(LR-WPAN)的物理层和媒体接入控制层两个规范。它能支持消耗功率最少,一般…

使用python下载图片且批量将图片插入word文档

最近有一个小的功能实现,从小某书上下载指定帖子的图片们,然后批量插入到word文档中,便于打印。于是有了以上需求。 一、下载图片 1、首先获取图片们的链接img_urls 首先,获取到的指定帖子的所有信息可以存入一个json文件中&am…

NeRF从入门到放弃4: NeuRAD-针对自动驾驶场景的优化

NeuRAD: Neural Rendering for Autonomous Driving 非常值得学习的一篇文章,几乎把自动驾驶场景下所有的优化都加上了,并且也开源了。 和Unisim做了对比,指出Unisim使用lidar指导采样的问题是lidar的垂直FOV有限,高处的东西打不…

深入源码设计!Vue3.js核心API——Computed实现原理

如果您觉得这篇文章有帮助的话!给个点赞和评论支持下吧,感谢~ 作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者/csdn百万访问前端博主/B站千粉前端up主 此篇文章是博主于2022年学习《Vue.js设计与实现》时的笔记整理而来 书籍&a…

华为HCIP Datacom H12-821 卷5

1.单选题 下列哪种工具不能被 route-policy 的 apply 子句直接引用? A、IP-Prefix B、tag C、community D、origin 正确答案: A 解析: 因route-policy工具中, apply 后面跟的是路由的相关属性。 但是ip-prefix是用来匹配路由的工具。 2.单选题

Map.entry方法总结

Map.entry方法总结 大家好,在下是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的程序员,也是穿着拖鞋写代码,穿着拖鞋调BUG,穿着拖鞋也要拯救世界的“拖鞋王”! 什么是Map.entry方法? 在Java中&…

Leetcode 力扣 128. 最长连续序列 (抖音号:708231408)

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums [100,4,200,1,3,2] 输出:4 解…

【AI技术】GPT-4o背后的语音技术猜想

前言: 本篇文章全文credit 给到 台大的李宏毅老师,李宏毅老师在机器学习上风趣幽默、深入浅出的讲解,是全宇宙学AI、讲中文学生的福音,强力推荐李宏毅老师的机器学习课程和深度学习 人工智能导论; 李宏毅老师的个人长…

bazel build ‘...‘

Okay, let’s discuss the Bazel build command: bazel build ‘…’. Bazel Build Command: The bazel build command is used to build the targets (e.g., libraries, binaries, tests) specified in a Bazel-based project. Target Selection: The ‘…’ part of the com…

力扣(2024.06.22)

1. 59——螺旋矩阵2 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 标签:数组,矩阵,模拟 代码: class Solution:def generateMatrix(sel…

SVN 安装教程

SVN 安装教程 SVN(Subversion)是一个开源的版本控制系统,广泛用于软件开发和文档管理。本文将详细介绍如何在不同的操作系统上安装SVN,包括Windows、macOS和Linux。 Windows系统上的SVN安装 1. 下载SVN 访问SVN官方网站或Visu…

wordpress教程自动采集并发布工具

随着互联网的快速发展,越来越多的人开始关注网络赚钱。而对于许多人来说,拥有一个自己的个人网站是一个不错的选择。然而,要让自己的个人网站内容丰富多样,就需要不断地进行更新。那么,有没有一种方法可以让我们轻松地…