主要内容

在树莓派上用Python发布WebSockets

这个例子展示了如何使用端口80上的WebSockets,使用运行Python的Raspberry Pi板发布到ThingSpeak频道。如果您有多个想要发送到ThingSpeak的传感器值,您可以将多个值发布到一个频道提要。在本例中,树莓Pi板的CPU和RAM使用数据每20秒收集一次,并将这些值发布到信道馈电中。或者,如果只有一个值要更新,则可以将单个值发布到通道字段。

设置

创建一个新的通道,如图所示在新通道中收集数据

2)单击,创建MQTT设备设备>MQTT然后在ThingSpeak页面的顶部添加设备.在设置设备并将新通道添加到其授权列表时,单击下载证书>纯文本.有关详细信息,请参见创建ThingSpeak MQTT设备.使用下面Code部分中保存的凭据。

3)下载泛美卫生组织MQTTPython的客户端库。您可以使用命令行安装库。如果你正在使用python2,请使用以下代码:

Sudo PIP install psutil

如果你使用Python 3,请使用以下代码:

Sudo pip3 install psutil

代码

1)包括图书馆paho.mqtt.publish作为发布psutil,字符串在你的Python代码中。

将paho.mqtt.publish导入为publish Import psutil导入字符串

2)定义与ThingSpeak交流的变量。编辑通道ID和MQTT设备凭据。

# ThingSpeak频道ID。#将< your - channel -ID>替换为你的频道ID。channel_ID = "" # ThingSpeak MQTT代理的主机名。mqtt_host = "mqtt3.thingspeak.com" #您的设备mqtt_client_ID = "< Your - client - id >" mqtt_username = "< Your - username >" mqtt_password = "< Your - mqtt-password >"

定义连接类型为,并将端口设置为80

T_transport = "websockets

创建一个主题字符串,如图所示发布到频道提要同时更新指定通道的字段1和字段2。

#创建主题字符串。topic = "channels/" + channel_ID + "/publish"

5)循环运行,每20秒计算一次系统内存和CPU性能,并发布计算值。使用WebSockets同时发布到指定通道的字段1和字段2。

while (True): #获取超过20秒的系统性能数据。Cpu_percent = psutil.cpu_percent(interval=20) ram_percent = psutil.virtual_memory()。% #构建有效负载字符串。Payload =" field1=" + str(cpu_percent) + "&field2=" + str(ram_percent) #尝试将该数据发布到主题。try: print ("Writing Payload = ", Payload," to host: ", mqtt_host, " clientID= ", mqtt_client_ID, " User ", mqtt_username, " PWD ", mqtt_password) publish。单个(topic, payload, hostname=mqtt_host, transport=t_transport, port=t_port, client_id=mqtt_client_ID, auth={'username':mqtt_username,'password':mqtt_password}) except (keyboardInterrupt) break except Exception as e: print (e)

运行该程序并观看频道,定期从您的设备更新。

另请参阅

|

相关的例子

更多关于