在树莓派上安装Python库paho-mqtt和Flask,使用paho-mqtt订阅MQTT主题,并将收到的消息通过Flask路由发送到Web页面。
解决方法:
-
在树莓派上安装Python库paho-mqtt和Flask
sudo pip3 install paho-mqtt
sudo pip3 install flask
-
编写Python脚本来订阅MQTT主题并发送到Flask服务器
import paho.mqtt.client as mqtt
import requests
订阅MQTT主题的回调函数,将收到的消息通过POST方法发送到Flask服务器
def on_message(client, userdata, message):
requests.post("http://<flask服务器的IP地址>:<端口号>/<路由>", data=message.payload)
client = mqtt.Client()
client.connect("<MQTT服务器的IP地址>", 1883, 60)
client.subscribe("<MQTT主题>")
client.on_message = on_message
client.loop_forever()
-
在Flask中编写路由来处理接收到的消息并在Web页面上显示
from flask import Flask, request, render_template
app = Flask(name)
接收POST请求中的消息并渲染到Web页面上
@app.route("/<路由>", methods=["POST"])
def handle_mqtt_message():
message = request.form["message"]
return render_template("index.html", message=message)
Web页面
@app.route("/")
def index():
return render_template("index.html")
if name == 'main':
app.run(debug=True, host='0.0.0.0', port=5000)
代码示例并不完整,需要根据具体的应用场景进行修改和补充。