主要内容

在树莓派上使用Python中的WebSockets发布

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

设置

1)新建通道,如图所示在新通道中收集数据

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

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

Sudo PIP install paho-mqtt Sudo PIP install psutil

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

Sudo pip3 install paho-mqtt Sudo pip3 install psutil

代码

1)包括图书馆Paho.mqtt.publish作为publishpsutil,字符串在Python代码中。

导入paho.mqtt.publish为publish Import psutil Import string

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

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

3)定义连接类型为,端口设置为80

T_transport = "websockets" t_port = 80

4)按所示的形式创建主题字符串发布到频道提要同时更新指定通道的字段1和字段2。

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

5)运行一个循环,每20秒计算一次系统RAM和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。single(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)

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

另请参阅

|

相关的例子

更多关于