优化一些参数,添加mqtt可控制灯

This commit is contained in:
sityliu 2024-05-05 19:19:41 +08:00
parent 4334db8251
commit 9e74869882
12 changed files with 193 additions and 9478 deletions

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="C:\ruanjian\anaconda\envs\test_env1" project-jdk-type="Python SDK" />
<component name="Black">
<option name="sdkName" value="test_env1" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="test_env1" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>

View File

@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="jdk" jdkName="C:\ruanjian\anaconda\envs\test_env1" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="test_env1" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -16,8 +16,11 @@
## 使用方法:
```shell
# 前期准备
sudo apt-get install python3-pip
# 安装依赖
pip install -r requirements.txt
pip3 install -r requirements.txt
# 运行
Python3 main.py

View File

@ -1,12 +1,12 @@
class Config:
# 程序信息
VERSION = "1.0.0"
VERSION = "1.0.1"
DESCRIPTION = "简易智能家居系统程序"
CHANGELOG = """v1.0.0: 初始版本"""
CHANGELOG = """v1.0.0: 初始版本; v1.0.1: 部署测试版添加mqtt控制灯优化一些参数"""
# mqtt 服务端配置
UNAME = 'admin'
PASSWORD = 'admin'
BROKER = '10.168.1.103'
PORT = 1883
TOPIC = "/python/mqtt"
@ -20,3 +20,5 @@ class Config:
HUMITURE_UP = '/python/mqtt/humiture'
EQUIPMENT_TEMPERATURE_UP = '/python/mqtt/equipment_temperature'
# 订阅话题
VOICE_CMD_SUB = '/python/mqtt/voice_cmd'

File diff suppressed because it is too large Load Diff

View File

@ -1,192 +0,0 @@
2024-05-03 07:15:47,919 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:15:47,924 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:15:47,926 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:15:47,927 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:15:47,928 - main.py - INFO - 上次修改时间2024-05-03 07:15:43
2024-05-03 07:15:47,929 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:16:10,167 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:16:10,171 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:16:10,172 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:16:10,172 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:16:10,173 - main.py - INFO - 上次修改时间2024-05-03 07:15:43
2024-05-03 07:16:10,173 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:16:35,106 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:16:36,081 - master_control.py - INFO - 继电器主控板收到返回结果b'h\x08\x00\x02\x01\x00\x03\x16\x07\x04\x04\x00\xfe\x02\xb1=`'
2024-05-03 07:16:43,698 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:20:57,775 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:20:57,779 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:20:57,780 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:20:57,780 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:20:57,781 - main.py - INFO - 上次修改时间2024-05-03 07:20:51
2024-05-03 07:20:57,781 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:21:11,433 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:22:59,744 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:22:59,747 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:22:59,747 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:22:59,748 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:22:59,748 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:22:59,749 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:23:05,736 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:23:44,890 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:23:44,893 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:23:44,894 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:23:44,894 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:23:44,895 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:23:44,895 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:23:50,638 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:23:57,071 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:24:47,501 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:24:47,504 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:24:47,505 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:24:47,505 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:24:47,506 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:24:47,506 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:24:53,264 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:26:26,329 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:26:26,332 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:26:26,333 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:26:26,333 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:26:26,334 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:26:26,334 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:26:34,777 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:27:49,641 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:27:49,644 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:27:49,644 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:27:49,645 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:27:49,645 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:27:49,645 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:27:58,298 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:28:55,071 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:28:55,074 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:28:55,075 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:28:55,075 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:28:55,076 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:28:55,076 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:29:10,173 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:29:24,865 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:30:52,070 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:30:52,073 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:30:52,074 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:30:52,074 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:30:52,075 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:30:52,075 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:30:58,679 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:31:09,701 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:31:13,434 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:31:34,656 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:31:43,118 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:31:52,401 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:31:56,214 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:32:24,951 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:32:24,954 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:32:24,955 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:32:24,955 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:32:24,956 - main.py - INFO - 上次修改时间2024-05-03 07:22:09
2024-05-03 07:32:24,956 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 07:32:31,037 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:32:38,160 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:33:15,461 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:33:21,414 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:35:58,731 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 07:41:28,733 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:41:35,915 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 07:59:36,063 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 07:59:36,066 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 07:59:36,067 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 07:59:36,067 - main.py - INFO - 项目版本1.0.0
2024-05-03 07:59:36,068 - main.py - INFO - 上次修改时间2024-05-03 07:59:04
2024-05-03 07:59:36,069 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 08:03:42,229 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 08:03:42,233 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 08:03:42,233 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 08:03:42,234 - main.py - INFO - 项目版本1.0.0
2024-05-03 08:03:42,234 - main.py - INFO - 上次修改时间2024-05-03 07:59:04
2024-05-03 08:03:42,235 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 08:05:17,712 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 08:05:17,715 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 08:05:17,715 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 08:05:17,716 - main.py - INFO - 项目版本1.0.0
2024-05-03 08:05:17,716 - main.py - INFO - 上次修改时间2024-05-03 07:59:04
2024-05-03 08:05:17,717 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 08:05:36,938 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 08:05:40,371 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 08:06:49,822 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 08:06:59,615 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 08:09:19,956 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-03 08:09:19,960 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-03 08:09:19,961 - main.py - INFO - 智能家居系统即将启动......
2024-05-03 08:09:19,961 - main.py - INFO - 项目版本1.0.0
2024-05-03 08:09:19,962 - main.py - INFO - 上次修改时间2024-05-03 08:09:14
2024-05-03 08:09:19,962 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-03 08:09:26,455 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 08:09:26,457 - master_control.py - INFO - 红外指令发送处理完成
2024-05-03 08:09:26,458 - main.py - INFO - 已关灯
2024-05-03 08:09:44,557 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 08:09:44,558 - master_control.py - INFO - 红外指令发送处理完成
2024-05-03 08:09:44,559 - main.py - INFO - 已开灯
2024-05-03 08:10:10,571 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-03 08:10:10,572 - master_control.py - INFO - 红外指令发送处理完成
2024-05-03 08:10:10,573 - main.py - INFO - 已关灯
2024-05-03 19:26:14,500 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-03 19:26:14,501 - master_control.py - INFO - 红外指令发送处理完成
2024-05-03 19:26:14,502 - main.py - INFO - 已开灯
2024-05-04 00:29:33,558 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-04 00:29:33,562 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-04 00:29:33,563 - main.py - INFO - 智能家居系统即将启动......
2024-05-04 00:29:33,563 - main.py - INFO - 项目版本1.0.0
2024-05-04 00:29:33,563 - main.py - INFO - 上次修改时间2024-05-03 08:09:14
2024-05-04 00:29:33,564 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-04 01:57:17,884 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-04 01:57:17,888 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-04 01:57:17,888 - main.py - INFO - 智能家居系统即将启动......
2024-05-04 01:57:17,889 - main.py - INFO - 项目版本1.0.0
2024-05-04 01:57:17,889 - main.py - INFO - 上次修改时间2024-05-03 08:09:14
2024-05-04 01:57:17,890 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-04 03:39:50,694 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-04 03:39:50,695 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 03:39:50,696 - main.py - INFO - 已关灯
2024-05-04 13:42:52,989 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-04 13:42:52,996 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 13:42:52,998 - main.py - INFO - 已开灯
2024-05-04 13:42:58,912 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-04 13:42:58,913 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 13:42:58,913 - main.py - INFO - 已关灯
2024-05-04 13:43:04,145 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-04 13:43:04,146 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 13:43:04,148 - main.py - INFO - 已开灯
2024-05-04 13:45:33,014 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-04 13:45:33,016 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 13:45:33,017 - main.py - INFO - 已关灯
2024-05-04 13:45:35,596 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-04 13:45:35,597 - master_control.py - INFO - 红外指令发送处理完成
2024-05-04 13:45:35,599 - main.py - INFO - 已开灯
2024-05-05 01:01:34,178 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-05 01:01:34,182 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-05 01:01:34,182 - main.py - INFO - 智能家居系统即将启动......
2024-05-05 01:01:34,183 - main.py - INFO - 项目版本1.0.0
2024-05-05 01:01:34,183 - main.py - INFO - 上次修改时间2024-05-03 08:09:14
2024-05-05 01:01:34,184 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-04 17:04:57,701 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-04 17:04:57,706 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-04 17:04:57,707 - main.py - INFO - 智能家居系统即将启动......
2024-05-04 17:04:57,707 - main.py - INFO - 项目版本1.0.0
2024-05-04 17:04:57,708 - main.py - INFO - 上次修改时间2024-05-03 00:09:14
2024-05-04 17:04:57,708 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-05 01:06:21,106 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-05 01:06:21,109 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-05 01:06:21,110 - main.py - INFO - 智能家居系统即将启动......
2024-05-05 01:06:21,110 - main.py - INFO - 项目版本1.0.0
2024-05-05 01:06:21,111 - main.py - INFO - 上次修改时间2024-05-03 08:09:14
2024-05-05 01:06:21,111 - main.py - INFO - 修改说明v1.0.0: 初始版本
2024-05-05 01:06:47,607 - voice_processing.py - INFO - 关灯指令处理完返回,command:a488
2024-05-05 01:06:47,608 - master_control.py - INFO - 红外指令发送处理完成
2024-05-05 01:06:47,609 - main.py - INFO - 已关灯
2024-05-05 01:06:52,140 - voice_processing.py - INFO - 开灯指令处理完返回,command:a487
2024-05-05 01:06:52,141 - master_control.py - INFO - 红外指令发送处理完成
2024-05-05 01:06:52,142 - main.py - INFO - 已开灯
2024-05-04 17:07:43,374 - master_control.py - INFO - /dev/vice_usb0 Port is open
2024-05-04 17:07:43,378 - master_control.py - INFO - /dev/control_usb1 Port is open
2024-05-04 17:07:43,379 - main.py - INFO - 智能家居系统即将启动......
2024-05-04 17:07:43,380 - main.py - INFO - 项目版本1.0.0
2024-05-04 17:07:43,380 - main.py - INFO - 上次修改时间2024-05-03 00:09:14
2024-05-04 17:07:43,380 - main.py - INFO - 修改说明v1.0.0: 初始版本

View File

@ -1,21 +0,0 @@
2024-05-03 07:15:47,945 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:16:10,191 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:20:57,800 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:22:59,762 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:23:44,911 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:24:47,519 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:26:26,348 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:27:49,660 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:28:55,090 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:30:52,089 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:32:24,969 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 07:59:36,085 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 08:03:42,255 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 08:05:17,731 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-03 08:09:19,978 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-04 00:29:33,583 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-04 01:57:17,905 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-05 01:01:34,214 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-04 17:04:57,725 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-05 01:06:21,125 - python_mqtt.py - INFO - Connected to MQTT Broker!
2024-05-04 17:07:43,401 - python_mqtt.py - INFO - Connected to MQTT Broker!

File diff suppressed because it is too large Load Diff

18
main.py
View File

@ -54,6 +54,10 @@ def run_start_sensor(mqtt_client):
ser2 = master_control.equipment_temperature(control, humiture, mqtt_client)
def on_message(client, userdata, msg):
print(f"Received `{msg.payload.decode()}` from `{msg.topic}` topic")
if __name__ == '__main__':
save_log.info("智能家居系统即将启动......")
save_log.info(f"项目版本:{__version__}")
@ -73,17 +77,19 @@ if __name__ == '__main__':
while True:
ser_cmd = voice_processing.get_voice_data(voice)
# print(ser_cmd)
client.subscribe(Config.VOICE_CMD_SUB)
if not ser_cmd:
pass
# if not ser_cmd:
# pass
# 开灯
elif ser_cmd == 'a487':
if (ser_cmd == 'a487') or (client.callback_result == 'a487'):
master_control.infrared_sensor(control, infrared_control_on)
save_log.info('已开灯')
elif ser_cmd == 'a488':
client.callback_result = 'xxx'
elif (ser_cmd == 'a488') or (client.callback_result == 'a488'):
master_control.infrared_sensor(control, infrared_control_off)
save_log.info('已关灯')
client.callback_result = 'xxx'
# 暖色
elif ser_cmd == 'd366':
master_control.infrared_sensor(control, infrared_control_on)
@ -93,3 +99,5 @@ if __name__ == '__main__':
master_control.infrared_sensor(control, infrared_control_on)
elif ser_cmd == 'd388':
master_control.infrared_sensor(control, infrared_control_off)
time.sleep(0.1)

View File

@ -1,2 +1,3 @@
-i https://pypi.tuna.tsinghua.edu.cn/simple
pyserial~=3.5
pyserial~=3.5
paho-mqtt

View File

@ -24,6 +24,7 @@ class MQTTClient:
self.topic = topic
self.client_id = client_id
self.client = None
self.callback_result = 'xxx' # 用于存储回调函数的返回值
def connect(self):
def on_connect(def_client, userdata, flags, rc):
@ -43,3 +44,12 @@ class MQTTClient:
def publish(self, topic, sed_msg):
self.client.publish(topic, sed_msg)
# print(f"Send{sed_msg} to topic{topic}")
def subscribe(self, topic):
def on_message(client, userdata, message):
data_cmd = str(message.payload.decode("utf-8"))
save_log.info(f"MQTT Received message: {data_cmd}")
self.callback_result = data_cmd # 将回调函数的返回值存储在类的成员变量中
self.client.subscribe(topic)
self.client.on_message = on_message

View File

@ -9,53 +9,172 @@
# version python 3.8
# Description
"""
from paho.mqtt import client as mqtt_client
from paho.mqtt import client as mqtt
import json
import random
import time
from threading import Thread
broker = '10.168.1.103'
port = 1883
topic = "/python/mqtt"
client_id = 'python_mqtt_001'
class MqttRoad():
def __init__(self, mqtt_host, mqtt_port, mqtt_keepalive, client_id, protocol=mqtt.MQTTv31):
self.myClient = mqtt.Client(client_id, protocol=protocol)
self.myClient.on_connect = self.on_connect
self.myClient.on_message = self.on_message
self.myClient.on_publish = self.on_publish
# self.myClient.connect_async(mqtt_host, mqtt_port, mqtt_keepalive) # 异步数据发送
self.myClient.connect(mqtt_host, mqtt_port, mqtt_keepalive) # 同步数据发送
# self.myClient.loop_forever() # 保持连接
def on_connect(self, client, userdata, flags, rc):
"""
连接回调 连接主题(成功,失败)都会调用此函数
:param client: 此回调的客户机实例
:param userData:在Client或userdata_set设置的私有用户用户数据
:param flags:代理发送的响应标志
:param rc:连接结果, 0:连接成功 1:连接被拒绝-协议版本不正确 2:连接被拒绝-客户端标识符无效 3:连接被拒绝-服务器不可用
4:连接被拒绝-用户名或密码错误 5:连接被拒绝-未授权 6-255:当前未使用
:param reasonCode:mqttv5.0原因码reasonCode类的实例
:param properties:从代理返回的mqttv5.0属性,对于MQTT v3.1和v3.1.1未提供属性但用于兼容性 对于mqttv5.0官方建议添加properties=None
:return:
"""
print("Connected with result code: " + str(rc))
class MQTTClient:
def __init__(self, broker, port, topic, client_id):
self.broker = broker
self.port = port
self.topic = topic
self.client_id = client_id
self.client = None
def on_message(self, client, userdata, msg):
"""
消息回调
message: MQTTMessage的实例这是一个包含成员主题负载qos和保留的类
:return:
"""
print("接收来自主体:" + msg.topic + " 的消息内容:" + str(msg.payload.decode('utf-8')))
def connect(self):
def on_connect(def_client, userdata, flags, rc):
if rc == 0:
print("Connected to MQTT Broker!")
else:
print("Failed to connect, return code:", rc)
def on_subscribe(self, client, userdata, mid, granted_qos):
"""
订阅回调
:param mid:匹配从相应的subscribe调用
:param grated_qos:给出代理的qos级别的整数列表,为每个不同的订阅请求授予
:return:
"""
print("On Subscribed: qos = %d" % granted_qos)
pass
self.client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION1, self.client_id)
self.client.username_pw_set('admin', password='admin')
self.client.on_connect = on_connect
self.client.connect(self.broker, self.port)
def on_unsubscribe(self, client, userdata, mid):
"""
取消订阅
:param mid:匹配从相应的unsubscribe调用
:return:
"""
print("On unSubscribed: qos = %d" % mid)
pass
def loop_start(self):
self.client.loop_start()
def on_publish(self, client, userdata, mid):
"""
消息发布回调
对于QoS级别为1和2的消息这意味着握手已完成对于QoS 0这意味着消息已经离开了客户
这个回调很重要因为即使publish调用返回成功并不总是意味着消息已发送
:param mid:匹配从相应的publish调用以允许跟踪传出消息
:return:
"""
print("On onPublish: qos = %d" % mid)
pass
def publish(self, sed_msg):
self.client.publish(self.topic, sed_msg)
print(f"Send `{sed_msg}` to topic `{self.topic}`")
def on_disconnect(self, client, userdata, rc):
"""
断开连接
:param rc:断开连接的结果
:return:
"""
print("Unexpected disconnection rc = " + str(rc))
pass
def publishMes(self, topic, qos=2):
"""
向指定主体发布消息内容
:param topic: 主体名称
:param msg: 消息内容
:param qos: 发送方式
:return:
"""
while True:
msg = input("请输入发送信息:")
self.myClient.publish(topic, msg, qos=qos)
def subscribeMes(self, topic):
"""
接收指定主体发布的消息
:param topic:主体名称
:return:
"""
self.myClient.subscribe(topic)
self.myClient.loop_forever()
if __name__ == '__main__':
topic = "/test/mqtt"
pub_client_id = f'python-mqtt-{random.randint(0, 1000)}' # 发布客户端ID
sub_client_id = f'python-mqtt-{random.randint(0, 1000)}' # 订阅客户端ID
pub_myclien = MqttRoad("127.0.0.1", 1883, 600, pub_client_id) # 生成发布客户端ID
sub_myclien = MqttRoad("127.0.0.1", 1883, 600, sub_client_id) # 生成接收客户端ID 客户端id不能重复
pub_thread = Thread(target=pub_myclien.publishMes, name='pub', kwargs={'topic': topic}) # 创建线程进行消息发布
sub_thread = Thread(target=sub_myclien.subscribeMes, name='sub', kwargs={'topic': topic}) # 创建线程进行消息接收
sub_thread.start() # 启动消息接收的线程
pub_thread.start() # 启动消息发布的线程
pub_thread.join() # 等待线程结束进行回收
sub_thread.join() # 等待线程结束进行回收
client = MQTTClient(broker, port, topic, client_id)
client.connect()
client.loop_start()
while True:
client.publish('hello,world')
time.sleep(3)
# from paho.mqtt import client as mqtt_client
# import random
# import time
#
# broker = '10.168.1.103'
# port = 1883
# topic = "/python/mqtt"
# client_id = 'python_mqtt_001'
#
#
# class MQTTClient:
# def __init__(self, broker, port, topic, client_id):
# self.broker = broker
# self.port = port
# self.topic = topic
# self.client_id = client_id
# self.client = None
#
# def connect(self):
# def on_connect(def_client, userdata, flags, rc):
# if rc == 0:
# print("Connected to MQTT Broker!")
# else:
# print("Failed to connect, return code:", rc)
#
# self.client = mqtt_client.Client(mqtt_client.CallbackAPIVersion.VERSION1, self.client_id)
# self.client.username_pw_set('admin', password='admin')
# self.client.on_connect = on_connect
# self.client.connect(self.broker, self.port)
#
# def loop_start(self):
# self.client.loop_start()
#
# def publish(self, sed_msg):
# self.client.publish(self.topic, sed_msg)
# print(f"Send `{sed_msg}` to topic `{self.topic}`")
#
#
#
# client = MQTTClient(broker, port, topic, client_id)
# client.connect()
# client.loop_start()
#
#
# while True:
# client.publish('hello,world')
# time.sleep(3)