电子SOP实施(MQTT协议)

news2024/11/26 10:51:02

架构图

服务与程序

用docker启动mqtt broker(服务器)

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

用户名:admin  密码:***

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

修改url,重新发布消息

import random
from paho.mqtt import client as mqtt_client

broker = '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 client


def 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 webbrowser

broker = '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_connect
    client.connect(broker, port)
    return client


def subscribe(client: mqtt_client):
    def on_message(client, userdata, msg):  # 回调函数
        print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic")
        url = msg.payload
        webbrowser.open(url, 1)
        os.system("start /max edge")

    client.subscribe(topic)
    client.on_message = on_message


def 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.coloradmin.cn/o/1852237.html

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

相关文章

5.XSS-反射型(post)利用:获取cookie

原理: 文件路径:\pikachu\pkxss\xcookie\post.html 将post.html文件,复制到皮卡丘的根路径下或者根下随意路径即可,并编辑文件 需要修改以下两个地址,第一个地址是将原界面的样子链接过来,让用户认为是原…

探索Agent AI智能体的未来

随着人工智能(AI)技术的飞速发展,Agent AI智能体正成为一种改变世界的新力量。这些智能体不仅在当前的技术领域中发挥着重要作用,而且在未来将以更深远的影响改变我们的生活、工作和社会结构。本文将探讨Agent AI智能体的现状、潜…

Python学习打卡:day13

day13 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day1397、初识对象98、类的成员方法类的定义和使用成员变量和成员方法成员方法的定义语法 99、类和对象在程序中通过类来描述基于类创建对象 100、…

通信系统网络架构_2.广域网网络架构

1.概述 通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现…

24年下半年各省自考报名时间汇总

24年下半年各省自考报名时间汇总

自动驾驶⻋辆环境感知:多传感器融合

目录 一、多传感器融合技术概述 二、基于传统方法的多传感器融合 三、基于深度学习的视觉和LiDAR的目标级融合 四、基于深度学习的视觉和LiDAR数据的前融合方法 概念介绍 同步和配准 时间同步 标定 摄像机内参标定(使用OpenCV) 摄像机与LiDAR外…

Java学习 - 网络静态路由与动态路由 讲解

网络畅通的条件 数据报包有去有回网络中的路由器必须知道且只需要知道下一跳的地址【路由器只要知道下一跳地址就行,不必知道如何到达任意的路由器,因为如果要实现,路由表将非常非常巨大,这是不可能的】 静态路由 静态路由是指…

【Python系列】探索 NumPy 中的 mean 函数:计算平均值的利器

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

LabVIEW电控旋翼测控系统

开发基于LabVIEW开发的电控旋翼测控系统,通过高效监控和控制提升旋翼系统的性能和安全性。系统集成了多种硬件设备,采用模块化设计,实现复杂的控制和数据处理功能,适用于现代航空航天领域。 项目背景 传统旋翼系统依赖机械和液压…

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

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

网络安全-如何设计一个安全的API(安全角度)

目录 API安全概述设计一个安全的API一个基本的API主要代码调用API的一些问题 BasicAuth认证流程主要代码问题 API Key流程主要代码问题 Bearer auth/Token auth流程 Digest Auth流程主要代码问题 JWT Token流程代码问题 Hmac流程主要代码问题 OAuth比较自定义请求签名身份认证&…

Day9 —— 大数据技术之ZooKeeper

ZooKeeper快速入门系列 ZooKeeper的概述什么是ZooKeeper?ZooKeeper的特点和功能使用ZooKeeper的原因 ZooKeeper数据模型ZooKeeper安装ZooKeeper配置ZooKeeper命令行操作常见服务端命令 ZooKeeper的概述 什么是ZooKeeper? ZooKeeper是一个开源的分布式协…

微服务——重复消费(幂等解决方案)

目录 一、唯一ID机制二、幂等性设计三、状态检查机制四、利用缓存和消息队列五、分布式锁总结 在微服务中,防止重复消费的核心思想是通过设计使得操作一次与多次产生相同的效果,并为每次操作生成唯一的ID。这样,即使在消息被重复发送的情况下…

动态创建接口地址

和SpringBoot版本有关系 这里用的boot 2.2.2

使用USI作为主SPI接口

代码; lcd_drive.c //***************************************************************************** // // File........: LCD_driver.c // // Author(s)...: ATMEL Norway // // Target(s)...: ATmega169 // // Compiler....: AVR-GCC 3.3.1; avr-libc 1.0 // // D…

Java并发编程:理解线程、同步和锁

第1章:引言 Java并发编程是多线程技术的一种实现方式,它在现代软件开发中扮演着至关重要的角色。随着计算机处理器核心数量的增加,以及云计算和大数据技术的普及,能够有效利用并发编程的程序员将能为企业创造更高的效率和价值。此…

小米15系列将首发骁龙8 Gen4 SoC

高通已确认2024年骁龙峰会定于10月21日举行。在这次峰会中高通将推出其最新的移动芯片Snapdragon 8 Gen4 SoC。著名科技博主DigitalChatStation今天证实,骁龙8 Gen4将以小米15系列首次亮相。这意味着小米15系列将是第一款使用这款新旗舰处理器的手机。 这不是小米第…

【软件设计】详细设计说明书(word原件,项目直接套用)

软件详细设计说明书 1.系统总体设计 2.性能设计 3.系统功能模块详细设计 4.数据库设计 5.接口设计 6.系统出错处理设计 7.系统处理规定 软件全套资料:本文末个人名片直接获取或者进主页。

使用ViewDragHelper打造属于自己的DragLayout(抽屉开关 )

</com.xujun.drawerLayout.drag.DragLayout> 在代码中若想为其设置监听器, 分别可以监听打开的 时候&#xff0c;关闭的时候&#xff0c;拖动的时候&#xff0c;可以在里面做相应的处理&#xff0c;同时我还加入了 自定义属性可以通过 app:range”480”或者setRange&am…

基于JSP技术的家用电器销售网站

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPJava 工具&#xff1a;ECLIPSE、MySQL数据库管理工具、Tomcat 系统展…