使用Thonny将传感器的数据传入MQTT后怎么将MQTT中的数据发送到Orcale数据库中,在输出给vscode通过html页面画出折线图
时间: 2025-02-16 13:13:29 浏览: 39
Thonny是一款Python集成开发环境,它主要用于教育和快速原型开发。如果你想从传感器收集数据并通过MQTT传输,然后存入Oracle数据库,并最终在VSCode环境中显示折线图,可以按照以下步骤操作:
1. **数据采集和MQTT发布**:
- 首先,使用Python的`paho-mqtt`库连接到MQTT服务器。编写代码读取传感器数据,如Paho MQTT的`Client()`函数订阅主题并处理接收到的消息。
```python
import paho.mqtt.client as mqtt
def on_message(client, userdata, msg):
# 解析接收到的MQTT消息并将数据存储在一个列表或数据库表中
sensor_data = process_mqtt_message(msg.payload)
save_to_oracle(sensor_data)
client = mqtt.Client()
client.on_message = on_message
client.connect("your_mqtt_broker", port=1883)
client.subscribe("sensor/topic")
```
2. **将数据保存到Oracle数据库**:
- 对于Python和Oracle的交互,可以使用`cx_Oracle`库。在`save_to_oracle`函数中,创建SQL插入语句并执行。
```python
import cx_Oracle
def save_to_oracle(data):
connection = cx_Oracle.connect("username", "password", "database_url")
cursor = connection.cursor()
query = "INSERT INTO sensor_table (data) VALUES (:data)"
cursor.execute(query, {"data": data})
connection.commit()
cursor.close()
connection.close()
```
3. **数据可视化与VSCode展示**:
- 在VSCode中,你可以选择安装`Jupyter Notebook`或者`Pandas DataFrame`扩展,结合`matplotlib`或`plotly`库绘制折线图。首先,你需要定期从数据库查询最新的传感器数据,例如每分钟或每小时一次。
```python
import pandas as pd
import matplotlib.pyplot as plt
def fetch_from_oracle():
# 从Oracle数据库获取最新数据
data = fetch_latest_data_from_database()
df = pd.DataFrame(data, columns=["timestamp", "value"])
return df
df = fetch_from_oracle()
plt.plot(df['timestamp'], df['value'])
plt.show()
```
4. **将HTML嵌入VSCode**:
- 如果你想在VSCode内显示HTML,可以利用Webview API或者使用VSCode插件如"Live Share HTML Preview"。
记得替换上述代码中的`your_mqtt_broker`, "username", "password", 和 "database_url"等为实际值。此外,确保已经安装了所需的库,并配置好数据库连接。实施以上步骤后,你就可以实时监控数据并在VSCode中看到折线图了。
阅读全文
相关推荐

















