出于测试的目的,我尝试在普通计算机上从python脚本将MQTT消息(上行链路)发布到TTN(物联网)。这应该模拟一个节点的上行链路。在
根据我在stackoverflow和blog上找到的示例,我编写了以下代码:
#!/usr/bin/env python3
import paho.mqtt.client as paho
#settings
app_id = "<Application ID from the TTN console>"
access_key = "ttn-account-v2.etcetcetcetcetc.."
broker="eu.thethings.network"
port=1883
def on_publish(client,userdata,result):
print("data published \n")
print(client,userdata,result)
pass
def on_log(mqttc, obj, level, string):
print(string)
#setup
client = paho.Client()
client.username_pw_set(app_id,access_key)
#callbacks
client.on_publish = on_publish
client.on_log = on_log
#establish connection
client.connect(broker,port)
client.loop_start()
#publish
ret= client.publish("applicationID/bulb1","on",qos=1)
ret.wait_for_publish()
运行时输出
^{pr2}$但是,当我检查应用程序的TTN页面时,我没有看到数据。在
有什么建议吗?在
我不知道两个月后你是否还会有这个问题,但是我刚刚遇到了一个类似的问题并找到了答案。在
首先,您希望使用“ttn”python库而不是MQTT paho库,因为它使连接更加容易。您可以在以下链接中找到:
https://www.thethingsnetwork.org/docs/applications/python/api-reference.html#mqttclient
如果你按照他们的指南来做,你首先也会遇到同样的问题,因为他们没有解释如何正确地发送下行链路消息,也没有提供示例。在
要在使用ttn库时发送消息,请执行以下操作:
相关问题 更多 >
编程相关推荐