【发布时间】:2016-12-01 00:52:09
【问题描述】:
我试图在我的树莓派上运行 python 脚本。而且我的设备也已经连接到了 bluemix。起初,我可以运行脚本,但现在出现以下错误。
2016-11-14 06:46:30,490 ibmiotf.application.Client 警告无法加密消息,因为 TLSv1.2 不可用(基于 SSL 的 MQTT 至少需要 Python v2.7.9 或 3.4 和 openssl v1.0.1) 2016-11-14 06:46:40,571 ibmiotf.application.Client 关键操作超时未连接到 IBM 物联网服务:1tlj3z.messaging.internetof things.ibmcloud.com 连接到 IBM 物联网服务的操作超时:1tlj3z.mes saging.internetofthings.ibmcloud.com
PIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(17, GPIO.OUT)
client = None
def myCommandCallback(cmd):
if cmd.event == "light":
有效载荷 = json.loads(cmd.payload)
command = payload["command"]
print command
if command == "on":
GPIO.output(17, True)
elif 命令 == “关闭”:
GPIO.output(17, False)
try:
options = ibmiotf.application.ParseConfigFile("/home/pi/device.cfg")
options["deviceId"] = options["id"]
options["id"] = "aaa" + options["id"]
client = ibmiotf.application.Client(options)
client.connect()
client.deviceEventCallback = myCommandCallback
client.subscribeToDeviceEvents(event="light")
while True:
GPIO.wait_for_edge(18, GPIO.FALLING)
print "Button Pushed"
myData = {'buttonPushed' : True}
client.publishEvent("raspberrypi", options["deviceId"], "input", "json", myData)
time.sleep(0.2)
除了 ibmiotf.ConnectionException 作为 e: 打印e
【问题讨论】:
-
你能添加你的代码和python版本吗?你检查过 Pi 的防火墙/互联网连接吗?
-
我可以通过 ssh 连接到我的 pi。
-
ssh 到 pi 仅表示 pi 在您的子网上。在 pi 上时,确保它可以 ping 1tlj3z.messaging.internetofthings.ibmcloud.com。但是 Valerie 可能是对的,你应该升级 python。
标签: python raspberry-pi ibm-cloud raspbian iot