电子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"
****

相关文章:
电子SOP实施(MQTT协议)
架构图 服务与程序 用docker启动mqtt broker(服务器) 访问:http://192.168.88.173:18083/#/dashboard/overview 用户名:admin 密码:*** 消息发布者(查找sop的url地址,发布出去) 修改url,重新发布消息 import ran…...
【Unity导航系统】Navigation组件的概念及其使用示例
Unity中的NavMeshObstacle组件是一个用于动态障碍物的组件,它可以实时地影响导航网格(NavMesh)。当游戏对象附加了NavMeshObstacle组件时,它可以在AI进行路径规划时被识别为障碍物,从而让AI避开这些动态变化的障碍。 …...
vue-cli 根据文字生成pdf格式文件 jsPDF
1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件,反正调一个需要的ttf字体文件就行,但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址: FontsMarket.com - Download Microsoft YaHei …...
【嵌入式DIY实例】-Nokia 5110显示DS3231 RTC数据
Nokia 5110显示DS3231 RTC数据 文章目录 Nokia 5110显示DS3231 RTC数据1、硬件准备与接线2、代码实现本文将介绍如何使用 ESP8266 NodeMCU 板和 DS3231 RTC 模块制作一个简单的数字实时时钟,其中可以使用连接到 NodeMCU 的两个按钮设置时间和日期,并将它们打印在诺基亚 5110 …...
【十三】图解mybatis缓存模块之装饰器模式
图解mybatis缓存模块之装饰器模式 简介 之前有写过一篇博客介绍过mybatis的缓存模块设计【九】mybatis 缓存模块设计-CSDN博客 ,当时着重讲解的是mybatis种一级缓存和二级缓存,本次博客补充讲解一下装饰器模式的应用,本篇主要分两部分讲解&a…...
字节大神强推千页PDF学习笔记,弱化学历问题,已拿意向书字节提前批移动端!
主要问java,以及虚拟机,问了一点android 1.实习项目有关的介绍以及问题回答 2.反射与代理的区别,动态代理,静态代理,二者的区别,以及代理模式的UML图 3.字节码技术 4.虚拟机的双亲委派,以及好…...
Python爬虫-贝壳二手房“改进版”
前言 本文是该专栏的第31篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏之前的文章《Python爬虫-贝壳二手房》中,笔者有详细介绍,基于python爬虫采集对应城市的二手房数据。 而在本文,笔者将基于该项目案例的基础上,进行一个项目代码的“改进版”。 具体实…...
zookeeper学习、配置文件参数详解
zookeeper学习、配置文件参数详解 zookeeper 配置文件参数详解tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系initLimit,syncLimit什么区别minSessionTimeout 默认值,**他的单位是ms** zookeeper 配置文件参数详解 ZooKeeper 是一个分布式协调服…...
SVG 模糊效果
SVG 模糊效果 SVG(Scalable Vector Graphics,可缩放矢量图形)是一种基于XML的图像格式,用于描述二维图形。它是一种矢量图形格式,因此可以无限放大而不失真。SVG广泛应用于网页设计、动画制作和图形编辑等领域。本文将介绍SVG中一种特殊的效果——模糊效果,以及如何使用…...
Electron+vite+vuetify项目搭建
最近想用Electron来进行跨平台的桌面应用开发。同时想用vuetify作为组件,于是想搭建一个这样的开发环境。其中踩了不少坑,总是会出现各种的编译错误和问题,依赖的各种问题,搞了好久最终环境终于弄好可正常开发了。这里分享下快速搭…...
洛谷:P1085 [NOIP2004 普及组] 不高兴的津津
1. 题目链接 https://www.luogu.com.cn/problem/P1085 P1085 [NOIP2004 普及组] 不高兴的津津 2. 题目描述 题目描述:津津每天要上课还要上辅导班,每天学习超过8小时就不开心,帮忙检查下津津的下周日程安排,然后告诉我她哪天不高…...
Webpack4从入门到精通以及和webpack5对比_webpack现在用的是哪个版本
3.1 打包样式资源css-loader、style-loader… {// 匹配哪些文件test: /\.less$/,// 使用哪些loader进行处理use: [// use数组中loader执行顺序:从右到左,从下到上,依次执行(先执行css-loader)// style-loader:创建style标签&#…...
巴鲁夫MacroBuilder2.0.0.0软件巴鲁夫和使用手侧
巴鲁夫MacroBuilder2.0.0.0软件巴鲁夫和使用手侧...
分享:Javascript开源桌面环境-Puter
Puter这是一个运行在浏览器里的桌面操作系统,提供了笔记本、代码编辑器、终端、画图、相机、录音等应用和一些小游戏。该项目作者出于性能方面的考虑没有选择 Vue 和 React 技术栈,而是采用的 JavaScript 和 jQuery 构建,支持 Docker 一键部署…...
【idea-jdk1.8】使用Spring Initializr 创建 Spring Boot项目没有JDK8
信息差真可怕! 很久没创建springboot项目,今天使用idea的Spring Initializr 创建 Spring Boot项目时,发现java版本里,无法选择jdk1.8,只有17、21、22;前段时间也听说过,springboot将放弃java8&a…...
647. 回文子串(leetcode)
647. 回文子串(leetcode) 题目描述 给你一个字符串 s ,请你统计并返回这个字符串中回文子串的数目。 回文字符串 是正着读和倒过来读一样的字符串。 子字符串 是字符串中的由连续字符组成的一个序列。 示例1 输入:s “abc” 输出…...
【车载开发系列】汽车嵌入式开发常用工具介绍
【车载开发系列】汽车嵌入式开发常用工具介绍 【车载开发系列】汽车嵌入式开发常用工具介绍 【车载开发系列】汽车嵌入式开发常用工具介绍一. ChipON IDE For KungFu32二. ChipON PRO KF32三. GIT四. JLink五. S32DS六. parasoft ctest七. TCANLINPro八. vector Canoe 一. Chip…...
python脚本获取本机IP的方式
#方法一: #!/usr/bin/python import socket import fcntl import struct def get_ip_address(ifname): s socket.socket(socket.AF_INET,socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl( s.fileno(), 0x8915, struct.pack(256s,ifna…...
查看LabVIEW及各个模块和驱动的版本号
要方便地查看当前计算机上安装的LabVIEW版本以及各个模块和驱动的版本号,可以使用以下几种方法: 1. 使用NI MAX (Measurement & Automation Explorer) NI MAX 是一个强大的工具,可以帮助你管理National Instruments硬件、软件和驱动程序…...
LLM主流架构和模型
本文参考自https://github.com/HqWu-HITCS/Awesome-Chinese-LLM?tabreadme-ov-file和Huggingface中的ModelCard(https://huggingface.co/) LLM主要类别架构 LLM本身基于transformer架构。自2017年,attention is all you need诞生起&#x…...
ARM内存拷贝指令CPYFPT/CPYFMT/CPYFET详解与优化
1. ARM内存拷贝指令概述在现代计算机体系结构中,内存拷贝是最基础也是最频繁的操作之一。传统的内存拷贝通常通过软件循环实现,这种方式简单但效率不高。ARM架构从v8.7-A开始引入了一组专门的内存拷贝指令——CPYFPT、CPYFMT和CPYFET,它们构成…...
从像素到频域:基于可逆神经网络与小波变换的下一代图像隐写术
1. 为什么图像隐写需要从像素域转向频域? 传统图像隐写术大多直接在像素层面操作,比如通过微调RGB值的最低有效位(LSB)来嵌入信息。这种方法简单直接,但存在明显缺陷:人眼对像素级变化的敏感度其实很高&…...
LangChain实战:从零构建RAG应用与模块化开发指南
1. 项目概述:LangChain示例库的实战价值如果你最近在尝试用大语言模型(LLM)构建应用,大概率会听到“LangChain”这个名字。它就像一个乐高积木的百宝箱,把调用LLM、连接外部数据、管理对话记忆这些复杂任务,…...
NotebookLM思维导图生成已进入「语义拓扑时代」:2024Q2最新Benchmark显示其节点关联准确率超越MindNode Pro 41.6%
更多请点击: https://intelliparadigm.com 第一章:NotebookLM思维导图生成已进入「语义拓扑时代」 传统基于关键词共现或规则模板的思维导图生成方式,正被 NotebookLM 的语义理解能力彻底重构。其底层 LLM 模型不再仅识别显式术语关系&#…...
【风光场景生成】基于改进ISODATA的负荷曲线聚类算法附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。 🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &…...
【开源】基于 ASP.NET Core Blazor Server 10.0 构建的学生信息查询系统
学生查询系统基于 ASP.NET Core Blazor Server 10.0 构建的学生信息查询系统,使用 Excel 文件作为数据源,支持动态列适配和响应式布局。功能特性灵活查询:支持按姓名、学号进行模糊查询,可单独或组合使用动态列适配:不…...
基于Emissaries框架构建多AI智能体协作系统:从原理到实践
1. 项目概述:一个基于AI的智能体协作框架最近在开源社区里,一个名为muinyc/emissaries的项目引起了我的注意。乍一看这个名字,你可能会联想到“使者”或“特使”,这其实非常贴切地揭示了它的核心定位。简单来说,Emissa…...
基于RAG与向量数据库的智能知识库系统构建实战
1. 项目概述:当AI成为你的“第二大脑”最近在折腾一个挺有意思的开源项目,叫IIMS-By-AI。这个名字乍一看有点唬人,IIMS是“Intelligent Information Management System”的缩写,翻译过来就是“智能信息管理系统”。但它的核心玩法…...
Web架构师工具箱:从工程化实践到现代化Web开发全流程
1. 项目概述:一个Web架构师的工具箱最近在GitHub上看到一个挺有意思的项目,叫choppawave-beep/web-architect。光看这个名字,你可能会有点摸不着头脑,choppawave-beep像是个用户名,而web-architect则直白地指向“Web架…...
杰理之智能充电舱通信模块【篇】
固定 VOUT0/1 使用的通信 IO 为 P10/P11,固定使用 UART0。 SDK公版已经做好智能仓的基本通信交互了,耳机电量获取,状态获取,耳机配对等...
