初めてWatson IoT Platformを使ってみよう、というかたのためのガイドです。
Watson IoT Platformを使ってみるでIoTアプリを準備しました。
Internet of Things Platformにアプリを登録してデバイスからのデータを送信します。
#アプリで使用するAPIキーを取得します
-
Internet of Things Platformサービスの「ダッシュボード」を起動します
-
「APIキーの生成」画面に表示される「APIキー」と18桁の英数字の「認証トークン」をコピペして保存します。この「認証トークン」はこの画面でしか見られず、後から再度表示したり確認したりすることはできないので注意します。万が一この「認証トークン」を無くしてしまった場合、「APIキー」の再生成からやり直す事になります。(「APIキーの生成」の画面は省略)
-
「×」印を押して「APIキーの生成」画面を閉じます。IoT Platformの「アクセス」のページに生成されたAPIキー値(認証トークンはのぞく)が表示されます。
-
下記のようなプログラムを用意し、デバイスからInternet of Things Platformへアクセスできる事を確認します。
applSub.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import logging
import os
import os.path
import sys
import codecs
import time
import paho.mqtt.client as mqtt
import json
import threading
import random
broker = ""
organization = "xxxxxx" # 6桁の「組織ID」を指定します
applId = "appSubSample"
username = "a-xxxxxx-xxxxxxxxxx" #APIキーを指定します。
password = "xxxxxxxxxxxxxxxxxx" # 英数字18桁の「認証トークン」を指定します
topic = "iot-2/type/device_type_001/id/+/evt/status/fmt/json" # /type/の次にデバイスタイプを指定します。
def on_connect(client, userdata, flags, rc):
print("connected")
client.subscribe(topic)
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
clientID = "a:" + organization + ":" + applId
broker = organization + ".messaging.internetofthings.ibmcloud.com"
mqttc = mqtt.Client(clientID)
if username is not "":
mqttc.username_pw_set(username, password=password)
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.connect(host=broker, port=1883, keepalive=60)
mqttc.loop_forever()
- 上記のpythonでは、
organization
に6桁の「組織ID」を、username
に「a-組織ID-10桁のきー」の「APIキー」を、password
に英数字18桁の「認証トークン」を指定します。 -
applId
は適当に指定します。 - Subscribeするトピック名として、
iot-2/type/デバイス・タイプ/id/+/evt/status/fmt/json
を指定することで、デバイスを登録してデータ送信するで作成したデバイスアプリからpublishされたセンサーデータを受信することができます。/id/+/
の指定はデバイスIDが何でも構わない(ワイルド・カード)ことを表します。