From 9f585d6bb67eff6d96aa0d3c82c62f117fdf75aa Mon Sep 17 00:00:00 2001 From: zart Date: Wed, 26 Jun 2024 10:20:33 +0800 Subject: [PATCH] msg MQTT message --- publish_img.py | 14 +++++ sub_img.py | 18 +++++++ 换源.md | 139 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 publish_img.py create mode 100644 sub_img.py diff --git a/publish_img.py b/publish_img.py new file mode 100644 index 0000000..c2dc025 --- /dev/null +++ b/publish_img.py @@ -0,0 +1,14 @@ +import paho.mqtt.client as mqtt + +def publish_image(mqtt_client, topic, image_path): + with open(image_path, "rb") as image_file: + image_data = image_file.read() + mqtt_client.publish(topic, image_data) + +client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2,) +client.connect("121.40.129.71", 48835, 60) # 连接到 MQTT 代理 + +client.loop_start() +img_path = input("Enter the path of the image: ") +publish_image(client, "test/image", img_path) +client.loop_stop() diff --git a/sub_img.py b/sub_img.py new file mode 100644 index 0000000..fe749e0 --- /dev/null +++ b/sub_img.py @@ -0,0 +1,18 @@ +import paho.mqtt.client as mqtt + +def on_connect(client, userdata, flags, rc,properties): + print("Connected with result code " + str(rc)) + client.subscribe("test/image") + +def on_message(client, userdata, msg): + with open("received_image.jpg", "wb") as image_file: + image_file.write(msg.payload) + print("Image received and saved") + +client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, ) +client.on_connect = on_connect +client.on_message = on_message + +client.connect("121.40.129.71", 48835, 60) # 连接到 MQTT 代理 + +client.loop_forever() diff --git a/换源.md b/换源.md index 8a73f87..d6b7e06 100644 --- a/换源.md +++ b/换源.md @@ -90,4 +90,141 @@ sudo apt-get upgrade sudo apt-get install ``` -通过这些步骤,你可以使用国内镜像源加快软件包的下载速度。 \ No newline at end of file +通过这些步骤,你可以使用国内镜像源加快软件包的下载速度。 + + +### PYTHON 虚拟环境 + + +您遇到了一个与环境管理相关的错误信息,这是因为您的系统被配置为限制在系统范围内安装 Python 包。为了避免破坏系统配置,建议使用虚拟环境来安装和管理 Python 包。以下是具体步骤: + +1. **创建虚拟环境**: + + 在您的项目目录下创建一个虚拟环境: + + ```shell + python3 -m venv venv + ``` + +2. **激活虚拟环境**: + + 激活刚刚创建的虚拟环境: + + ```shell + source venv/bin/activate + ``` + + 激活后,您会看到命令提示符前面多了 `(venv)`,表示您已经在虚拟环境中。 + +3. **安装 paho-mqtt**: + + 在激活的虚拟环境中,使用 `pip` 安装 `paho-mqtt` 库: + + ```shell + pip install paho-mqtt + ``` + +4. **验证安装**: + + 您可以通过运行一个简单的 Python 脚本来验证是否成功安装了 `paho-mqtt`: + + ```python + import paho.mqtt.client as mqtt + + def on_connect(client, userdata, flags, rc): + print("Connected with result code " + str(rc)) + + client = mqtt.Client() + client.on_connect = on_connect + + client.connect("mqtt.eclipse.org", 1883, 60) + + client.loop_forever() + ``` + + 将以上代码保存为一个 Python 文件(例如 `mqtt_test.py`),然后运行它: + + ```shell + python mqtt_test.py + ``` + + 如果成功连接到 MQTT 服务器,会看到输出类似于: + + ```shell + Connected with result code 0 + ``` + +这样,您就可以在虚拟环境中安装和使用 `paho-mqtt` 库,而不会影响系统的其他部分。 + + + +### redis 安装 + +在您的 Raspberry Pi 上安装 Redis,可以使用以下步骤: + +1. **更新系统包列表**: + + 首先,更新您的系统包列表: + + ```shell + sudo apt-get update + ``` + +2. **安装 Redis**: + + 使用 `apt-get` 安装 Redis: + + ```shell + sudo apt-get install redis-server + ``` + +3. **验证安装**: + + 安装完成后,您可以通过以下命令来检查 Redis 服务是否正在运行: + + ```shell + sudo systemctl status redis + ``` + + 如果 Redis 正在运行,您会看到类似以下的输出: + + ```shell + ● redis-server.service - Advanced key-value store + Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled) + Active: active (running) since [date and time] + Docs: http://redis.io/documentation, + man:redis-server(1) + ``` + +4. **测试 Redis**: + + 您可以通过 `redis-cli` 命令行工具来测试 Redis: + + ```shell + redis-cli + ``` + + 在 Redis 命令行中,输入以下命令进行测试: + + ```shell + set test "Hello, Redis!" + get test + ``` + + 如果安装成功,您会看到: + + ```shell + "Hello, Redis!" + ``` + +5. **设置 Redis 开机自启动**: + + Redis 通常默认设置为开机自启动,如果没有,可以使用以下命令设置: + + ```shell + sudo systemctl enable redis + ``` + +这将确保 Redis 在系统启动时自动运行。 + +通过这些步骤,您应该能够在您的 Raspberry Pi 上成功安装并运行 Redis。 \ No newline at end of file