从ibm bluemix获取数据到python代码

时间:2017-02-03 15:25:02

标签: python node.js ibm-cloud device iot

我需要代码来从此代码发送的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)

2 个答案:

答案 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上的示例应用。