我需要代码来从此代码发送的bluemix中获取数据
import RPi.GPIO as GPIO
import dht11
import time
import datetime
import ibmiotf.device
# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()
1
client.connect()
# read data using pin GPIO4
instance = dht11.DHT11(pin=4)
while True:
result = instance.read()
if result.is_valid():
print("Last valid input: " + str(datetime.datetime.now()))
temp=(" %d C" % result.temperature)
print("temperature:" +temp)
humid=("%d %%" % result.humidity)
print("Humidity:" +humid)
# print("Temperature: %d C" % result.temperature)
# print("Humidity: %d %%" % result.humidity)
print("Data is published into the cloued")
Data={'Temperature' :temp, 'Humidity' :humid }
client.publishEvent("status", "json", Data)
time.sleep(1)
答案 0 :(得分:0)
您可以使用NodeRed添加一些节点(插入,函数,iotout)以将数据发布到iot平台(将其作为设备类型发布)到主题中,然后在PI中使用pyhton订阅该主题作为应用程序。那应该工作得很好。所有连接/发布/订阅/主题详细信息都可以在这里找到: https://console.ng.bluemix.net/docs/services/IoT/index.html
答案 1 :(得分:0)
您作为设备连接 - > import ibmiotf.device
。设备可以发送事件并接收命令。它无法接收事件。为此,您需要连接为应用程序。您将import ibmiotf.application
并拥有类似的内容:
options = ibmiotf.application.ParseConfigFile(configFilePath)
appClient = ibmiotf.application.Client(options)
appClient.connect()
appClient.subscribeToDeviceEvents()
配置文件应该是:
[application]
org=orgId
id=myApplication
auth-method=apikey
auth-key=key
auth-token=token
auth-key / auth-token来自平台的Apps部分。您必须生成一个要作为应用程序连接的集合。 auth方法应保留为apikey。
这将列出到达您平台的所有事件。你可以使它更精细。请参阅api guide,该github也会引用http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException上的示例应用。