初めてWatson IoT Platformを使ってみよう、というかたのためのガイドです。
Watson IoT Platformを使ってみるでIoTアプリを準備しました。
セットアップ
- デバイスを登録してセンサーデータを送信するを参照し、IoT Platformサービスを新たに作成してIoTアプリに接続し、デバイスを登録し、IoTデータを送信できるようにします
- アプリを登録してセンサーデータを受信するを参照し、APIキーを取得して、アプリケーションからpub/sub可能にします (アプリはこのサンプルでは当面使用しませんが、用意しておくと確認作業などでなにかと便利です)
- ここでは、サンプルとして下記のクライアント(デバイス側)アプリを使用します
devicePub.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import paho.mqtt.client as mqtt
import threading
import random
#Set the variables for connecting to the iot service
broker = ""
username = "use-token-auth"
password = "123456789012345678" #auth-token
organization = "123456" #org_id
deviceType = "device_type_xxx"
deviceSerial = "deviceIdxxx"
topic = "iot-2/evt/status/fmt/json"
#Creating the client connection, set clientID and broker
clientID = "d:" + organization + ":" + deviceType + ":" + deviceSerial
broker = organization + ".messaging.internetofthings.ibmcloud.com"
mqttc = mqtt.Client(clientID)
#Set authentication values, if connecting to registered service
if username is not "":
mqttc.username_pw_set(username, password=password)
mqttc.connect(host=broker, port=1883, keepalive=60)
#Publishing to IBM Watson IoT Platform
mqttc.loop_start()
while mqttc.loop() == 0:
temp = random.randrange(-10,40)
depth = random.randrange(-3,50)
print "temp = " + str(temp) + ", depth = " + str(depth)
msg = " {\"d\": {\"temperature\": " + str(temp) +",\"depth\": " + str(depth) + "} }";
mqttc.publish(topic, payload=msg, qos=0, retain=False)
print "message published"
time.sleep(5)
pass
デバイスのプロパティの準備
-
後述のボードやルールで参照するため、デバイスからのデータをプロパティとして登録しておきます
-
Watson IoT Platformの画面左側のメニューから「デバイス」を開き、右端の「スキーマの管理」メニューを選択します
-
画面右上の「+スキーマの追加」を選択します
-
「デバイスタイプ」として前項で作成したデバイスタイプを選択します
-
「プロパティ」を選択し、「接続先から」タブを開いたまま、前項のクライアントアプリを稼働させると、Watson IoT Platformへ到達しているデータがプロパティ選択の候補として表示されます
ボードを使ってリアルタイムのグラフを表示
-
画面右上の「+新しいカードの追加」メニューを選択します
-
適宜「折れ線グラフ」などを選択します
-
「データセットの接続」で前項で準備した
temperature
などを選択します -
「次へ」を押して、グラフのサイズ(あとから変更可能です)、グラフの色、などを選択していきます
-
カードの配置はドラッグ&ドロップで変更可能です