ChatGPT是时下火热的AI自然语言引擎,啥都知道啥都会,今天咱们就使用ChatGPT来写一段python代码,模拟一个温湿度传感器,持续的给服务器发数据,并在物联网管理软件ThingsPanel上显示数据。
我们的工作分为两个部分,首先要写一段代码发数据,然后要配置服务端软件来接收数据,并监控设备数据
。
-
生成代码
-
服务端软件上配置设备
-
修改代码参数
-
执行代码
-
查看数据。
ChatGPT:要注册并可以登录。
Python:安装好Python,缺乏的库可以在过程中安装。
ThingsPanel:开源物联网平台,用来接收数据,查看数据。
1、生成代码,模拟传感器首先要登录到https://chat.openai.com/chat,并使用如下的描述来生成代码:
生成一段python代码,模拟一个温度传感器,持续的给MQTT
broker发温湿度数据,需要带上用户名和密码校验,发送到device/attributes这个主题,上报数据格式为json,数据精确到小数点后两位。
具体的代码复制如下:
import random
import time
import json
import paho.mqtt.client as mqtt
# MQTT broker的地址和端口
MQTT_BROKER = "localhost"
MQTT_PORT = 1883
# MQTT用户名和密码
MQTT_USERNAME = "your-username"
MQTT_PASSWORD = "your-password"
# MQTT client
client = mqtt.Client()
# 设置MQTT用户名和密码
client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD)
# 连接MQTT broker
client.connect(MQTT_BROKER, MQTT_PORT)
# 循环不断地发送温湿度数据
while True:
temperature = round(random.uniform(20, 30), 2)
humidity = round(random.uniform(50, 60), 2)
data = {
"temperature": temperature,
"humidity": humidity
}
data_json = json.dumps(data)
client.publish("device/attributes", data_json)
print(data_json)
time.sleep(1)
创建一个名为temperatureHumidity.py文件,并粘贴代码到这个文件中。
2、服务端软件上配置设备打开网址 dev.thingspanel.cn,使用如下帐号登录:
测试帐号admin@thingspanel.cn 密码 123456
在设备接入页面中创建项目 。
点击设备管理进入设备管理页面
-
输入设备名:温湿度传感器
-
选择默认分组
-
选择设备
-
绑定插件选择【温湿度传感器插件】
-
点击【编辑参数】获得设备的推送参数。
在编辑参数页面中,我们获得如下信息。
-
是dev.thingspanel.cn(ThingsPanel的官方演示服务器),端口1883。
-
记下来粘贴到代码对应的位置。
-
复制下来,作为用户名,粘贴到刚复制的代码对应的位置。
-
报文格式,一定要按照这个格式发数据,temp和hum不能变。
修改后的代码如下:
import random
import time
import json
import paho.mqtt.client as mqtt
# MQTT broker的地址和端口
MQTT_BROKER = "dev.thingspanel.cn"
MQTT_PORT = 1883
# MQTT用户名和密码
MQTT_USERNAME = "202e0140-dbac-0052-933d-7fc094b842cd"
MQTT_PASSWORD = ""
# MQTT client
client = mqtt.Client()
# 设置MQTT用户名和密码
client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD)
# 连接MQTT broker
client.connect(MQTT_BROKER, MQTT_PORT)
# 循环不断地发送温湿度数据
while True:
temperature = round(random.uniform(20, 30), 1)
humidity = round(random.uniform(50, 60), 1)
data = {
"temp": temperature,
"hum": humidity
}
data_json = json.dumps(data)
client.publish("device/attributes", data_json)
print(data_json)
time.sleep(1)
4、执行代码
执行时,如果遇到问题"No module named
‘paho’",可以把这个问题扔给ChatGPT,它 会告诉你怎么做:
完毕后继续执行"python3 temperatureHumidity.py"命令。
5、查看数据只要推送数据,在服务端软件上立即看到在线状态,并看到上次消息推送的时间
。
在数据管理菜单中,也可以查看刚刚推送的数据
在设备监控中,可以看到刚刚推送的数据的可视化 :