設定の流れ

myThingsをはじめよう:サーバーの準備・認証

使用したキット

スイッチサイエンス社

スイッチサイエンス社のWebサイト 新規ウィンドウを開きます で購入できます。

IDCFチャンネル公式サポート窓口

GitHub IDCFChannel 新規ウィンドウを開きます にログイン後、各リポジトリ画面右側の「Issues」からお問い合わせください。

Part1 サーバーの準備 「IDCF」チャンネルでオープンソースのIoTをはじめよう

myThingsに自分のデバイスを接続することができる「IDCF」チャンネルは、Meshblu IoT Platform を採用しています。またDocker Composeを使い複数のサービスを構成管理しています。はじめてIDCFクラウドを使う方を対象に「IDCF」チャンネル用の仮想マシンをセットアップする手順をまとめます。

クラウドに仮想マシンを作成する

WebブラウザからIDCFクラウドの クラウドコンソールにログインして作業します。左上の「仮想マシンを作成」ボタンをクリックします。

マシンタイプとイメージ

最初にUbuntu 14.04の仮想マシンを新規作成します。

  • マシンタイプ: light.S1
  • イメージ: Ubuntu Server 14.04 LTS 64-bit

idcfcloud-type-image.png

SSH Key

SSH Keyは「おすすめTemplate」から選択したイメージはSSHのパスワードログインができません。まだSSH Keyを登録していない場合は、クラウドコンソール上で作成、またはローカルにあるRSA公開鍵をアップロードしてから選択します。

  • ボリューム: デフォルト (なし)
  • SSH Key: 選択
  • 仮想マシン台数: デフォルト (1)
  • ネットワークインタフェース: デフォルト

idcfcloud-ssh.png

詳細情報

マシン名1に任意の名前を付けたあと、「確認画面へ」ボタンをクリックします。

  • 詳細情報 -> マシン名1: 任意の名前

idcfcloud-hostname.png

仮想マシン作成確認

最後に作成する仮想マシンの情報を確認します。間違いが無ければ「作成」ボタンをクリックして仮想マシンを作成します。

idcfcloud-create.png

仮想マシンの一覧画面に戻り、しばらくすると作成した仮想マシンのステータスが「Running」になります。

idcfcloud-vmlist.png

IPアドレス

メニューから「IPアドレス」を選択します。はじめての場合は「NAT」列が「ソース」と表示されたIPアドレスが1つ表示されています。「IPアドレス名」をクリックして設定画面を開きます。

IPアドレス > ファイアウォール

「ファイアウォール」は4つ登録します。HTTPSはmyThingsサーバーから接続するため「ソースCIDR」は「Any(0.0.0.0/0)」を選択します。

HTTP、MQTTはデバイスが「IDCF」チャンネルに接続できるように設定します。今回は2つともすべて「Any(0.0.0.0/0)」にしました。

SSHは作業マシンから「IDCF」チャンネルの仮想マシンにSSH接続できるように設定します。ここでは「My IP」を選択して、現在「クラウドコンソール」を開いている作業マシンの「ソースCIDR」を選択します。

  • HTTP: 80 port, ANY
  • HTTPS: 443 port, ANY
  • MQTT: 1883 port, ANY
  • SSH: 22 port, SSHクライアントの「ソースCIDR」(“My IP”を選択すると自動設定されます)

idcfcloud-firewall.png

IPアドレス > ポートフォワード

「ポートフォワード」も同様に4つ登録します。先ほど作成した仮想マシン名を選択して登録していきます。

  • HTTP: 80 port
  • HTTPS: 443 port
  • MQTT: 1883 port
  • SSH: 22 port

idcfcloud-portforward.png

以上でクラウドコンソール画面から仮想マシンの作成とIPアドレスの設定作業は終了です。

SSH接続する

「IPアドレス > ファイアウォール」画面でSSHの接続を登録した作業マシンから前述の画面でメモをしたIPアドレスむけにSSH接続します。
(この例では210.140.162.58向けに接続しています)。
ユーザーは「root」、クラウドコンソール画面で選択した秘密鍵を指定します。

$ ssh root@210.140.162.58 -i ~/.ssh/id_rsa
root@mythings:~#

「IDCF」チャンネルをインストールする

シェルスクリプトの実行

「IDCF」チャンネルはGitHubのリポジトリからcloneしてインストールします。最初にGitをインストールします。

$ sudo apt-get update && sudo apt-get install -y git

適当なディレクトリを作成して、「IDCF」チャンネルの リポジトリから git cloneします。

$ mkdir ~/iot_apps && cd ~/iot_apps
$ git clone https://github.com/IDCFChannel/meshblu-compose

cloneしたディレクトリに移動してbootstrapのシェルスクリプトを実行してインストールします。

$ cd meshblu-compose
$ ./bootstrap.sh

インストールの確認

「IDCF」チャンネルはMeshbluとデータベース、コマンドラインツールなどのDockerイメージを使い、Docker Composeによって構成されています。インストールが成功すると、 docker-compose psコマンドの結果が表示されます。コンテナが4つ起動しました。

$ docker-compose ps
      Name             Command             State              Ports
-------------------------------------------------------------------------
meshblucompose_m   npm start          Up                 0.0.0.0:1883->18
eshblu_1                                                 83/tcp, 80/tcp
meshblucompose_m   /entrypoint.sh     Up                 27017/tcp
ongo_1             mongod
meshblucompose_o   nginx -c /etc/ng   Up                 0.0.0.0:443->443
penresty_1         inx/nginx.conf                        /tcp, 0.0.0.0:80
                                                         ->80/tcp
meshblucompose_r   /entrypoint.sh     Up                 6379/tcp
edis_1             redis-server

curlコマンドを実行してMesubluサーバーが起動していることを確認します。

$ curl http://localhost/status
{"meshblu":"online"}

サービスの起動と再起動

停止状態からサービスを起動するときはOpenRestyサービスを upコマンドから起動します。

$ docker-compose up -d openresty

サービスを再起動するときは restartコマンドを実行します。

$ docker-compose restart

デバイスの準備

「デバイス」について

MeshbluではHTTP、MQTT、WebSoketを使いメッセージを送受信するクライアントを「デバイス」として管理します。Raspberry PiやWebサービス、コマンドなどがこの「デバイス」に該当します。

デバイスの登録

インストール直後はデバイスは登録されていません。最初にdocker-compose.ymlに付属しているコマンドラインツールを使いデバイスを登録します。

$ cd ~/iot_apps/meshblu-compose
$ docker-compose run --rm iotutil register

> iotutil@0.0.1 start /app
> node app.js "register"

┌─────────┬────────────────────┬──────────────────────────────────────┐
│ keyword │ meshblu_auth_token │ meshblu_auth_uuid                    │
├─────────┼────────────────────┼──────────────────────────────────────┤
│ owner   │ 12749000           │ 847cda3d-7999-4b95-b8ec-af07652cb842 │
└─────────┴────────────────────┴──────────────────────────────────────┘

コマンドを実行すると、 trigger-[1-5]action-[1-5]とownerをあわせて合計11個のデバイスが登録されます。標準出力されるownerのデバイスは作成した11個のデバイスすべてにメッセージを送信することができます。デフォルトでは、 trigger-[1-5]から action-[1-5]へ末尾が同じ数字の組み合わせのメッセージ送信を許可しています。

デバイス情報の取得

登録したデバイスは listコマンドで確認することができます。

$ docker-compose run --rm iotutil list

> iotutil@0.0.1 start /app
> node app.js "list"

┌───────────┬──────────┬──────────────────────────────────────┐
│ keyword   │ token    │ uuid                                 │
├───────────┼──────────┼──────────────────────────────────────┤
│ trigger-1 │ d286ba8d │ ffa6934d-f1b3-467f-98b3-766b330d436d │
├───────────┼──────────┼──────────────────────────────────────┤
│ trigger-2 │ 77eecd8e │ 5ebfd5bb-4f51-45a7-a66d-12037352d0c7 │
├───────────┼──────────┼──────────────────────────────────────┤
│ trigger-3 │ 933f5a29 │ f1c63bf4-905f-4065-afbe-ac152fa76806 │
├───────────┼──────────┼──────────────────────────────────────┤
│ trigger-4 │ bc4510e7 │ 75498ace-32eb-4b94-971c-5812db48633d │
├───────────┼──────────┼──────────────────────────────────────┤
│ trigger-5 │ 0d0ba029 │ 4c6a9051-790a-4f3d-8cdf-2b8faf34e21c │
├───────────┼──────────┼──────────────────────────────────────┤
│ action-1  │ 8a83d71f │ b61d3398-ac99-4694-9dc4-dd632faf6f6a │
├───────────┼──────────┼──────────────────────────────────────┤
│ action-2  │ 042bef69 │ 16d59d34-a4e0-482d-a96f-ecba3a3ac87a │
├───────────┼──────────┼──────────────────────────────────────┤
│ action-3  │ ec4e5652 │ 9824ee09-7f0f-4fdb-b0e7-13146272056b │
├───────────┼──────────┼──────────────────────────────────────┤
│ action-4  │ db92042d │ eea855c7-0a06-4789-b0b1-4a0f661c34b3 │
├───────────┼──────────┼──────────────────────────────────────┤
│ action-5  │ 0338410c │ e40d6036-a326-4b3c-bffc-bc91b1365470 │
└───────────┴──────────┴──────────────────────────────────────┘

showコマンドを実行すると個別のデバイスの情報を表示します。以下は --keywordフラグに action-1を指定した例です。

$ docker-compose run --rm iotutil show -- --keyword action-1

> iotutil@0.0.1 start /app
> node app.js "show" "--keyword" "action-3"

┌──────────┬──────────┬──────────────────────────────────────┐
│ keyword  │ token    │ uuid                                 │
├──────────┼──────────┼──────────────────────────────────────┤
│ action-1 │ b6716f76 │ 32d85553-b41d-4a62-8828-b5f1187768ee │
└──────────┴──────────┴──────────────────────────────────────┘

Part2 サーバーの認証 作成したサーバーをmyThingsで使えるように認証を行います

「IDCF」チャンネルの認証情報

myThingsアプリから「IDCF」を認証する場合、以下の2つの情報が必要になります。

  • IPアドレス: IDCFクラウドの仮想マシンのパブリックIPアドレス
  • 認証token: 「IDCF」チャンネルのownerのtoken

パブリックIPアドレス

IPアドレスは IDCFクラウドに「IDCF」チャンネルをセットアップしたとき、仮想マシンに割り当てたパブリックのIPアドレスを使います。この例ではインターネットからアクセス可能な 210.140.162.58です。

idcfcloud-firewall.png

ownerのtoken

認証tokenは「IDCF」チャンネルを仮想マシンにインストールしたあと、最初に実行する registerコマンドで表示されますが、あとから確認することもできます。インストールしたディレクトリに移動後 ownerコマンドを実行します。以下の場合は画面に出力された meshblu_auth_token18633a7cを使います。

$ docker-compose run --rm iotutil owner

> iotutil@0.0.1 start /app
> node app.js "owner"

┌─────────┬────────────────────┬──────────────────────────────────────┐
│ keyword │ meshblu_auth_token │ meshblu_auth_uuid                    │
├─────────┼────────────────────┼──────────────────────────────────────┤
│ owner   │ 18633a7c           │ 12a95246-f31e-4f0c-9678-2ae755e57b98 │
└─────────┴────────────────────┴──────────────────────────────────────┘

「IDCF」チャンネルを認証する

IDCFを選択する

myThingsアプリを開いてチャンネル一覧の一番下にある「開発向け」セクションから「IDCF」を選択します。

idcf-channel-list.png

「認証する」ボタンをタップするとIPアドレスと認証tokenを入力する画面が表示されます。

idcf-channel.png

利用を開始する

確認したIPアドレスと認証tokenをmyThingsアプリに入力して、「利用を開始する」ボタンをタップします。

idcf-channel-token.png

認証の確認

「IDCFは認証済みです」と表示されると、チャンネルの認証に成功です。

idcf-channel-activated.png

チャンネル一覧画面を表示すると、IDCFにチェックマークが入るのでここからも認証済を確認することができます。

idcf-channel-list-activated.png

IDCFチャンネル公式サポート窓口

GitHub IDCFChannel 新規ウィンドウを開きます にログイン後、各リポジトリ画面右側の「Issues」からお問い合わせください。

使用したキット

スイッチサイエンス社

myThingsをはじめようキット

スイッチサイエンス社のWebサイト 新規ウィンドウを開きます で購入できます。

3,000円分無料クーポン

[コード MYTG216A325]

対象:
IDCFクラウド新規お申し込みのお客さま

アカウント登録後に、上記コードを入力してください。

  • このエントリーをはてなブックマークに追加