目次


楽しい、シンプルな IoT 加速度計ゲームを作成する

Watson IoT Platform を利用してセンサー・データを収集してクラウドに送信し、そのデータを Watson Studio を利用して分析する方法を学ぶ

Comments

: IBM Data Science Experience (DSX) は現在、IBM Watson Studio という名前に変更されています。いくつかの図には以前の名前がそのまま示されていますが、このチュートリアルで説明する手順とプロセスは引き続き有効です。

このチュートリアルに従うことで、友達や同僚と一緒に楽しめる、小さなゲームを作成できます。スマートフォンを持っている相手なら誰とでもプレイできるこのゲームに、私は「Harlem Shake」という名前を付けました。(このリンク先の動画で、最近開催された DeepLearning ミートアップでこのゲームを楽しんでいる様子を見てください)

このゲームのプレイ方法は簡単です。プレイヤーが渡された URL に各自のスマートフォンからアクセスして、思いっきりスマートフォンをシェイクします。そして最もエネルギーを使ったプレイヤーが優勝するという仕組みです。

舞台裏の仕組みも、かなり基本的なものです。具体的には、加速度計データがスマートフォンからクラウドにストリーム配信されて、クラウド内のデータベースに取り込まれた後、スクリプトがゲームの優勝者を計算します。シンプルかつ楽しいゲームのように聞こえますが、このゲームを楽しむには、皆さんがこれを作成する必要があります。ゲームを作成する過程で、MQTT、NodeRED、ApacheCouchDB、ApacheSpark について多くのことを学ぶことができます。

あらゆる IoT アプリケーションと同様に、この IoT ゲームが動作するには完全なシステムが必要です。そのために、このチュートリアルではIBM Cloud と IBM Watson IoT Platform の以下のサービスを利用します。

  • Node-RED。このサービスを使用して、センサーからデータベースにデータをストリーム配信するために使用する IoT アプリケーションを作成します。
  • IBM Watson IoT Platform。システムのすべての構成部分をまとめる MQTT メッセージ・ブローカーとして使用します。
  • Cloudant。この NoSQL データベース・システムを使用して、データを保管します。
  • ApacheSpark SQL スクリプト。このスクリプトを IBM Watson Studio 内で実行してゲームの優勝者を決定します。

当然、データを IoT アプリケーションにストリーム配信するすべてのスマートフォンが、センサーとしての役割を果たします。

このゲームは 6 つのステップで作成できます。

  • ワンクリックのデプロイメント機能を使って、ゲーム・アプリケーションをデプロイします。
  • Internet of Things Platform サービスを置き換えます。
  • MQTT メッセージ・ブローカーがデータを受信できるようにします。
  • データを保管する NoSQL データベースをセットアップします。
  • Node-RED を使用してデータを Cloudant にストリーム配信します。
  • データ・サイエンス・ノートブック内でデータを分析します。

アプリを作成するために必要なもの

  • IBM Cloud アカウント (有効期限のない、無料の IBM Cloud Lite アカウントに登録できます)。
  • スマートフォン。または、一緒にゲームをプレイしてくれる、スマートフォンを持っている 1 人以上の友達。
  • IBM Watson Studio アカウント。IBM Cloud アカウントの登録時に作成した IBM ID を使用できます。
  • IBM Watson Studio を使い始めるには、アカウントの登録方法をはじめ、このリンク先の IBM Developer TV ページ上に揃っている一連の動画を見てください。
1

ワンクリックのデプロイメント機能を使用してゲーム・アプリケーションをデプロイする

IBM Cloud アカウントを用意した後は、1 回クリックするだけでアプリケーションをデプロイできます。デプロイメントは手作業でセットアップしなければならないので、サンプル IoT ゲーム・アプリケーションを作成しておきました。このサンプルは、皆さんがダウンロードできるように GitHub 上に置いてあります。

: 標準的なフリーミアム・アカウントではビルド・パイプライン・サービスにアクセスできないため、自動デプロイメントという方法を選択することはできません。

  1. Log in to your IBM Cloud account.
  2. Go to my discover-iot-sample repo in GitHub, and in the README instructions, click the Deploy to IBM Cloud button. screen capture of the github readme deploy to bluemix button
    screen capture of the github readme deploy to bluemix button
  3. In IBM Cloud, click Deploy. screen capture of the deploy button
    screen capture of the deploy button
  4. Click the Deliver Pipeline tile. screen capture deliver pipeline tile
    screen capture deliver pipeline tile
  5. In the Deploy Stage tile, click the gear icon, and then select Configure Stage. screen capture of the deploy stage and gear icon menu
    screen capture of the deploy stage and gear icon menu
  6. Select the Input tab, change the Input Type to Git Repository, and then click Save. screen capture of the input tab on the deploy stage dialog
    screen capture of the input tab on the deploy stage dialog
  7. In the Build Stage tile, click the Run icon (next to the gear icon). screen capture of the build stage tile (next to the deploy stage tile
    screen capture of the build stage tile (next to the deploy stage tile
  8. After awhile, in the Deploy Stage tile, you should see the URL of your application in the Last Execution Result section. Click the URL. The URL that you need to play the game on a smartphone is displayed.
  9. Copy the URL (and either create a short URL or a QR code for the URL), and email it to yourself. You’ll use this link later to play the game. screen capture of the build stage tile (next to the deploy stage tile
    screen capture of the build stage tile (next to the deploy stage tile

これで、加速度計データをクラウドに送信できるようになりましたが、送信されたデータは保管されません。そこで、次はデータ・ストレージをセットアップします。

2

Internet of Things Platform サービスを交換する

ゲーム・アプリケーションをデプロイした後は、加速度計データをクラウドに到達させる手段が必要です。データをクラウドに到達させる手段として、ここでは Node-RED というオープンソースのグラフィカル・フロー・エディターを使用します。Node-RED を使用して、スマートフォンから送信される MQTT データをサブスクライブし、データがクラウド内のデータベースに保管されるようにします。ただし、Node-RED をセットアップする作業に取り掛かるには、その前に、デフォルトのプラットフォーム・サービスを、先ほどデプロイしたアプリケーションの一部として組み込まれているサービスで置き換える必要があります。

2a

デフォルトの IoT Platform サービスを削除する

Internet of Things Platform Starter ボイラープレートには、IoT メッセージを処理するために使用する、Node-RED エンジンが含まれています。まず、デフォルトの IoT サービスをスターターから削除する必要があります。

  1. 現時点で IBM Cloud アカウントにログインしている状態になっているはずですが、そうでなければログインしてください。
  2. このリンク先のページにアクセスして、IBM Cloud カタログ内の Internet of Things Platform Starter を選択します (または、「Catalog (カタログ)」 > 「Boilerplates (ボイラープレート)」 > 「Internet of Things Platform Starter」の順に選択するという方法もあります)。
  3. 「App name (アプリケーション名)」フィールドに、作成するアプリケーションの一意の名前を入力して (例えば、myharlemshake)、「Create (作成)」をクリックします。
  4. ステータスが「Starting (開始中)」から「Running (実行中)」に変わるまで待ちます。 「Starting (開始中)」ステータスを示す画面のスクリーン・キャプチャー
    「Starting (開始中)」ステータスを示す画面のスクリーン・キャプチャー
    「Running (実行中)」ステータスを示す画面のスクリーン・キャプチャー
    「Running (実行中)」ステータスを示す画面のスクリーン・キャプチャー
  5. 左側のメニューで、「Connections (接続)」をクリックします。 「Connections (接続)」メニューを示すスクリーン・キャプチャー
    「Connections (接続)」メニューを示すスクリーン・キャプチャー
  6. デフォルトの Internet of Things Platform サービスの右上隅にあるメニューをクリックしてから、「Unbind service (サービスをアンバインド)」をクリックします。
  7. 表示されるポップアップ・メッセージで、「Delete this service instance (このサービス・インスタンスを削除する)」を選択してから「OK」をクリックします。
  8. アプリケーションを再ステージングするよう求められたら、「Cancel (キャンセル)」をクリックします。
2b

デプロイ済みゲーム・アプリケーションの IoT サービスに接続する

デフォルトの iotf-service-free サービスが削除されたので、次はデプロイ済みゲーム・アプリケーションの IoT サービスとの接続を作成して、適切なセキュリティー・レベルを設定します。

  1. 「Connect existing (既存のサービスの接続)」ボタンをクリックします。
  2. 「discover-iot-try-service」を選択してから、「Connect (接続)」をクリックします。
  3. アプリケーションを再ステージングするよう求められたら、「Restage (再ステージ)」をクリックします。
  4. ステータスが「Running (実行中)」に変わるまで待ちます。
  5. 「discover-iot-try-service」をクリックし、「Launch (起動)」をクリックします。これにより、IBM クラウド内で IBM Watson IoT Platform が起動します。
  6. 左側のアイコンの列にマウスのポインターを合わせます。左側のメニューから「Security (セキュリティー)」を選択します。
  7. 「Connection Security (接続のセキュリティー)」を編集します。
  8. 「Default Rule (デフォルト・ルール)」セクションの「Security Level (セキュリティー・レベル)」「TLS Optional (TLS オプション)」を選択してから、「Refresh compliance (コンプライアンスを更新)」をクリックします。
  9. ウィンドウの右上部にある「Save (保存)」をクリックします。
3

MQTT メッセージ・ブローカーがデータを受信できるようにする

これで、ゲーム・アプリケーション内に用意した IoT サービスに接続されました。次は、Node-RED を使用して、センサー (加速度計) データがクラウド内に保管されるようにする必要があります。

3a

Node-RED フロー・エディターを保護する

Node-RED を開くには、その前に、アプリケーション内で Node-RED フローにアクセスするためのユーザー名とパスワードを構成する必要があります。

  1. ゲーム・アプリケーションの「Cloud Foundry Apps (Cloud Foundry アプリケーション)」ページに戻ります。それには、ブラウザーでサービスの詳細タブを表示して、ハンバーガー・メニューから「Cloud Foundry Apps (Cloud Foundry アプリケーション)」を選択します。
  2. テーブルから、ゲーム・アプリケーションの名前を選択します。
  3. 左側のメニューから「Connections (接続)」を選択します。 左側のメニューを示す画面のスクリーン・キャプチャー
    左側のメニューを示す画面のスクリーン・キャプチャー
  4. ステータスの右側にある「Visit App URL (アプリケーションの URL にアクセス)」をクリックします。URL は、アプリケーションの名前の後に mybluemix.net が続いた形になっているはずです (例えば、https://myharlemshake.mybluemix.net)。

    : Node-RED インスタンスを開くときに使えるよう、この URL をメモしておいてください。

  5. Node-RED インスタンスを保護するために、「Next (次へ)」をクリックします。
  6. ユーザー名とパスワードを選んで、それらの値をメモしておきます。「Next (次へ)」をクリックします。
  7. 「Finish (完了)」をクリックします。
  8. Go to your Node-RED flow editor (Node-RED フロー・エディターを表示)」をクリックします。 「Go to your Node-RED flow editor (Node-RED フロー・エディターを表示)」を示す画面のスクリーン・キャプチャー
    「Go to your Node-RED flow editor (Node-RED フロー・エディターを表示)」を示す画面のスクリーン・キャプチャー
  9. ユーザー名とパスワードを入力して Node-RED にログインします。

これで、データを取り込んで保管するためのお膳立てが整いました。ゲーム・アプリケーションはデプロイされていて、ゲーム・アプリケーションとメッセージ・ブローカーとの間の接続も作成されています。現在、この通信チャネルは機能していますが、送信するデータを保管する場所が必要です。

3b

データ・ストリームにサブスクライブする

Node-RED にアクセスできるようになったので、スマートフォンからのデータがクラウド内に到着するかどうかをダブルクリックして確かめましょう (MQTT メッセージ・ブローカーは、IBM Watson IoT Platform に組み込まれているサービスです)。

データ・ストリームにサブスクライブするには、Node-RED を使用する必要があります。サービスをデバッグするには常に、Node-RED のデバッグ・パネルを使用します。

  1. 前のセクションで Node-RED インスタンスを開いたので、インスタンスは開いている状態になっているはずです。そうでなければ、セクション 3a で Node-RED エンジンを起動するときにメモした URL を使って、「Visit App URL (アプリケーションの URL にアクセス)」から Node-RED インスタンスを開いてください。そして自分に割り当てたユーザー名とパスワードを使用して、ゲーム・アプリケーションの Node-RED インスタンスにログインします。 ログイン後の Node-RED 画面のスクリーン・キャプチャー
    ログイン後の Node-RED 画面のスクリーン・キャプチャー
  2. デフォルト・フローに含まれる既存のノードをすべて削除するために、それらすべてのノードを選択してから Backspace キーまたは Delete キーを押します。(: キーボード・ショートカットの CTRL-A キーを使用してすべてのノードを選択することはできません)。これで、空白のキャンバスが表示された状態になります。
  3. 左側のパレットから、「IBM IoT」入力ノードを選択して (出力ノードは使用しないでください) 右側のペインにドラッグし、その右側に「debug (デバッグ)」出力ノードをドラッグします。一方のノード上に示されている接続用の円を選択し、もう一方のノードにある接続用の円にドラッグします。これで、2 つのノードが接続された状態になります。 ノード間の接続を示すスクリーン・キャプチャー
    ノード間の接続を示すスクリーン・キャプチャー
  4. 「IBM IoT」ノードをダブルクリックします。
  5. 「Authentication (認証)」「IBM Cloud Service (IBM Cloud サービス)」を選択し、「Done (完了)」をクリックします。この設定により、ノードは Cloud Foundry の資格情報注入機能を使用して、MQTT ブローカーに接続するための資格情報を取得するようになります。IBM Cloud 内では、デプロイ済みアプリケーションが MQTT ブローカー (つまり、Watson IoT Platform サービス) に接続されるため、資格情報注入機能は非常に重宝な機能です。
  6. 「Deploy (デプロイ)」ボタンをクリックします。
  7. パネルの右側で、「Deploy (デプロイ)」ボタンの下にある「debug (デバッグ)」タブを選択します。
  8. スマートフォン上で、セクション 1 で作成したアプリケーション名を使ってゲーム・アプリケーションを開きます。私の場合、discover-iot-sample-romeokienzler-1412.mybluemix.net/iot-phone を使用します。
  9. 8 文字の英数字からなるデバイス名を入力します (例えば、qwer1234)。
  10. a から z までの英字だけからなる 8 文字のパスワードを入力します。 接続状態のスマートフォン・デバイスを示す画面のスクリーン・キャプチャー

    Node-RED の「debug (デバッグ)」タブに、デバッグ出力が表示されるはずです。 「debug (デバッグ)」タブのスクリーン・キャプチャー

3c

IBM Watson IoT Platform ダッシュボードでセンサー・データを確認する

加速度計データを確認するには、すべてのゲーム・プレイヤーのリストを表示するという方法もあります。

  1. IBM Watson IoT Platform を開きます。「Cloud Foundry Apps (Cloud Foundry アプリケーション)」ビューで、「discover-iot-try-service」をクリックしてから「Launch (起動)」をクリックします。 「Cloud Foundry Apps (Cloud Foundry アプリケーション)」ビューのスクリーン・キャプチャー
    「Cloud Foundry Apps (Cloud Foundry アプリケーション)」ビューのスクリーン・キャプチャー
  2. 左側のメニューから「Devices (デバイス)」を選択します。 「Devices (デバイス)」ビューのスクリーン・キャプチャー
    「Devices (デバイス)」ビューのスクリーン・キャプチャー
  3. 任意のデバイスをクリックしてから、「sensorData」イベントをダブルクリックして詳細を表示します。 センサー・データの例を示す画面のスクリーン・キャプチャー
    センサー・データの例を示す画面のスクリーン・キャプチャー

ついに、ゲームの完成まで、あと少しのところまで来ました。これまでの作業で、Watson IoT Platform 内の MQTT メッセージ・ブローカーを使用してスマートフォンからのデータを Node-RED アプリケーションにストリーム配信できることを確認しました。次のステップは、このデータをデータベースにストリーム配信して分析することです。

4

データを保管する NoSQL データベースをセットアップする

Harlem Shake ゲームをプレイしている最中は、IoT センサー・データがクラウド内の MQTT メッセージ・ブローカーを介して送信されます。このデータの送信先を NoSQL データベースにする必要があります。以下の手順に従って、データベース関数を追加しましょう。

  1. Node-RED インスタンスはすでに開いた状態になっているはずです。そうでなければ、セクション 3a で Node-RED エンジンを起動するときにメモした URL を使って、「Visit App URL (アプリケーションの URL にアクセス)」から Node-RED インスタンスを開いてください。そして自分に割り当てたユーザー名とパスワードを使用して、ゲーム・アプリケーションの Node-RED インスタンスにログインします。
  2. 左側のパネルにある「function (関数)」ノードを、2 つのノードの間にドラッグします。これにより、このノードが自動的に 2 つのノードに接続されます。 「IBM IoT」ノードと「msg.payload」ノードの間にある「function (関数)」ノードを示す画面のスクリーン・キャプチャー
    「IBM IoT」ノードと「msg.payload」ノードの間にある「function (関数)」ノードを示す画面のスクリーン・キャプチャー
  3. まず、階層型の JSON メッセージをリレーショナル・スキームにフラット化する必要があります。「function (関数)」ノードをダブルクリックして、以下の JavaScript コードを貼り付けます。
    msg.payload =
    {
    X : msg.payload.d.ax,
    Y : msg.payload.d.ax,
    Z : msg.payload.d.ax,
    SENSORID : msg.payload.d.id
    }
    return msg;

    コードを貼り付けた後は、以下のようになります。 関数コードの挿入を示す画面のスクリーン・キャプチャー
    関数コードの挿入を示す画面のスクリーン・キャプチャー
  4. 「Done (完了)」をクリックします。
  5. 「Deploy (デプロイ)」をクリックします。「debug (デバッグ)」タブに、以下のような出力が表示されるはずです。 デバッグ結果の例を示す画面のスクリーン・キャプチャー
    デバッグ結果の例を示す画面のスクリーン・キャプチャー

NoSQL 関数が追加されて、Cloudant 内にデータを保管する準備が整いました。

5

Node-RED を使用してデータを Cloudant にストリーム配信する

前のセクションで作成した NoSQL データベース関数にデータをストリーム配信するために、IBM Cloudant によって駆動される ApacheCouchDB を使用します。Cloudant はオープンソースの ApacheCouchDB をベースとしているので、ApacheCouchDB を使用して中間センサー・データを保管します。

  1. 左側のパネルで、「storage (ストレージ)」エリアから「cloudant out (cloudant 出力)」ストレージ・コネクター (右側に雲の形をしたアイコンがあるノード) を選択し、このコネクターを「function (関数)」ノードの出力に接続します。 「function (関数)」ノードに追加された Cloudant ノードを示す画面のスクリーン・キャプチャー
    「function (関数)」ノードに追加された Cloudant ノードを示す画面のスクリーン・キャプチャー
  2. 「cloudant out (cloudant 出力)」ノードをダブルクリックし、「Service (サービス)」でデータベース・サービスを選択します。

    : IBM Cloud コンソールでこのアプリケーションに複数の Cloudant データベースを接続したのでない限り、データベース・サービスは 1 つしかないはずです (ここでも、IBM クラウドは Cloud Foundry の資格情報注入機能を利用して、基本的にデータベース・エンドポイントを構成するというジョブを自動的に行っています)。

  3. データベースに「harlemshake」という名前を付けます。
  4. 「Only store msg.payload object (msg.payload オブジェクトのみを保管する)」を選択します。 「cloudant out (cloudant 出力)」ノードの編集内容を示すスクリーン・キャプチャー
    「cloudant out (cloudant 出力)」ノードの編集内容を示すスクリーン・キャプチャー
  5. 「Done (完了)」をクリックします。
  6. 「Deploy (デプロイ)」をクリックします。

次は、テーブル内にデータが到着しているかどうかを確認します。Node-RED 内の「debug (デバッグ)」ペインを表示して、スマートフォン上のゲーム・アプリケーションが引き続きデータを送信していることを確認してください。

6

データ・サイエンス・ノートブック内でデータを分析する

すべて順調な様子のはずです。スマートフォンをシェイクしている間、データがストリーム配信されてクラウドに届き、クラウド内のデータベースにデータが保管されていきます。けれども誰がスコアを記録するのでしょうか?何らかの機能によって、データを分析してゲームの優勝者を発表しなければゲームになりません。ここではそのための機能として、IBM Watson Studio を使用します。

  1. datascience.ibm.com にログインします。
  2. ダッシュボードの右上で、「Create new (新規作成)」 > 「Notebook (ノートブック)」の順にクリックします。 Data Science Experience ダッシュボードのスクリーン・キャプチャー
    Data Science Experience ダッシュボードのスクリーン・キャプチャー
  3. 「From URL (送信元 URL)」をクリックして、「Name (名前)」フィールドにノードブックの名前を入力し、「Notebook URL (ノートブック URL)」フィールドに以下の URL を貼り付けます。
    https://raw.githubusercontent.com/romeokienzler/developerWorks/master/boomboomshakeshakesparkv2.ipynb
  4. 「Create Notebook (ノートブックの作成)」をクリックします。
  5. 新しいデータ・ソースの接続を作成するために、「Find and Add Data (データを検索して追加)」アイコンをクリックし、「Connections (接続)」 > 「project page (プロジェクト・ページ)」の順にクリックします。 リンクがある場所を示した画面のスクリーン・キャプチャー
    リンクがある場所を示した画面のスクリーン・キャプチャー
  6. 「Connections (接続)」 > 「Create Connection (接続の作成)」の順にクリックします。
  7. 「Name (名前)」フィールドに接続の名前を指定してから、「Service Instance (サービス・インスタンス)」の下でデータベースを選択します。「Create (作成)」をクリックします。

    : 「Service Instance (サービス・インスタンス)」の下に一覧表示されるインスタンスは、前にインストールした Node-RED ボイラープレートに含まれる Cloudant データベースだけのはずです。

  8. ノートブックに戻り、リロードします。これで、作成した接続が表示されるようになりました。ノートブック内で最初の空のセルを選択してから、「Insert to code (コードに挿入)」をクリックします。これで、資格情報が作成されるので、ノートブックの実行を開始できます。 作成された資格情報を示す画面のスクリーン・キャプチャー
    作成された資格情報を示す画面のスクリーン・キャプチャー
  9. 「Cell (セル)」 > 「Run All (すべて実行)」をクリックします。

あなたと友達がゲームをプレイした後、誰が勝ったのかを確認できます。ノートブック内で、spark.sql ステートメントを探します。以下に示す例では、「Seb」が最もエネルギーを注いでゲームに勝ったようです。

ゲームの結果を示す画面のスクリーン・キャプチャー

ゲームの結果を示す画面のスクリーン・キャプチャー

結果の背後にあるデータ・サイエンスについて

spark.sql ステートメントの役割は、加速度計データの 3 つの次元のすべてでエネルギーの合計を計算し、ゲームの実行中にプレイヤーが生み出したエネルギーを概算することです。

単一の軸上では、振動データの時系列が以下のグラフのように示されます。

単一の振動データ軸のグラフ

単一の振動データ軸のグラフ

この時系列によって表されるエネルギーを把握するには、関数の積分によって、この値を概算することができます。

関数を積分して概算した場合のグラフ

関数を積分して概算した場合のグラフ

負の値を取り除いて正の値に変えていることに注意してください。積分を概算するには、個々の正の値を合計するだけです。

負の値を除外した結果を示すグラフ

負の値を除外した結果を示すグラフ

時系列の積分を概算する方法がわかったところで、次は3 つの次元すべてのエネルギーを計算しましょう (振動の次元ごとに 3 つの個別の信号があることに注意してください)。それには、以下の式を使用します。

各測定値を合計して平方根を計算する式

各測定値を合計して平方根を計算する式

この式では、各測定値の二乗を合計し、平方根を計算しています。

: 実際のエネルギー値を算出するには、デバイスの質量も含める必要があります。

SQL を使用してこの計算を表現すると、以下のステートメントになります。

select 
	id, // select ID of the device because we need to know who the winner is
	sqrt(sum(ax*ax+ay*ay+az*az)) //calculate energy
	as energy  // give this new feature a name
	from unconfshake // specify temporary query table of ApachSparkSQL
	group by id // calculate on a per device basis
	order by energy desc // make top performers appear on top

まとめ

皆さんは自分の務めを果たし、ゲームを完成させました。早速、ゲームを楽しんでください。

  1. スマートフォンを持っている友達や同僚を見つけて、ゲーム・アプリケーションの URL を伝えます。
  2. プレイヤーはそれぞれに、8 文字の英数字からなる固有の ID と、8 文字の英字 (a ~ z) からなる固有のパスワードを入力する必要があります。
  3. 友達に、スマートフォンを前後左右にシェイクしてもらいます。これにより、データがクラウドに送信されます。これを確認するには、Node-RED 内および Watson Studio 内で、インポートしたノートブック内に用意されている SQL クエリーを使用します。SQL ステートメントが含まれているセルを、ときどき再実行するだけで、優勝者のリストが変化していく様子を確認できます。
  4. データ・サイエンス・ノートブック内で「Cell (セル)」 > 「Run All (すべて実行)」をクリックすると、誰がゲームに勝ったのかを確認できます。

もう一度プレイするには、以下の手順を実行する必要があります。

  1. Node-RED 内で宛先データベースの名前 (harlemshake) を変更した後、ノートブック内で名前を更新します。
  2. IBM Watson IoT Platform をもう一度開き、すべてのデバイスを選択してから「Delete devices (デバイスを削除)」を選択します。 すべてのデバイスを選択して削除する画面のスクリーン・キャプチャー
    すべてのデバイスを選択して削除する画面のスクリーン・キャプチャー

: もう一度プレイするには、データベース内の結果を削除するという方法もありますが、データベース名を変更して接続をリセットするほうが簡単です。

このゲームは実行中の状態のままにしておけるので、重いランチを食べた後、休憩時間にプレイすれば、眠気覚ましになります。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Internet of Things, ビジネス・アナリティクス
ArticleID=1059019
ArticleTitle=楽しい、シンプルな IoT 加速度計ゲームを作成する
publish-date=12262018