0

LEDで構成されるRaspberry Piを使用して小さなセットアップを構築しました。Pi と Bluemix の接続に成功しました。mybluemix.net Web ページ (関数 myCommandcallback) から LED をオン/オフする小さなコードを書きました。

import RPi.GPIO as GPIO
import time
import os, json
import ibmiotf.application
import uuid

GPIO.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":
        payload = json.loads(cmd.payload)
        command = payload["command"]
        print command
        if command == "on":
            GPIO.output(17, GPIO.HIGH)
        elif command == "off":
            GPIO.output(17, GPIO.LOW)

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)

except ibmiotf.ConnectionException  as e:
    print e

WebページでLEDを点灯させるボタンをクリックすると、IBM IoTプラットフォームのセンサー情報では「点灯」と表示されますが、実際にはLEDが点灯しません。情報が受信された場合、Pi を確認する方法はありますか?

4

0 に答える 0