Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
さくらの IoT Platform
β版ハンズオン
2017/1/12
(C) Copyright 1996-2017 SAKURA Internet Inc
さくらインターネット株式会社 IoT Platform Team 西田 有騎
2
はじめに
本ワークショップの目的
3
1. 本ワークショップはさくらのIoT Platformを使用し、
組込み系およびWeb/アプリ開発系のエンジニアが
ご自身のスキルセットを大きく超えることなく、
Internet of Things(IoT)に挑戦...
今回のハンズオンの流れ
4
さくらのIoT
Platform
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
Webサービス連携
(Arukas)
マイコン
(Arduino Uno)
温湿度センサ
(HDC1000...
Agenda
5
1. マイコンおよびプログラムの構築
₋ マイコン(Arduino)による開発環境の準備
₋ 温湿度センサおよびさくらの通信モジュールの繋ぎ込み
₋ 試験用プログラムの流し込み
2. さくらのIoT Platformの設定
₋...
6
マイコンおよび
プログラムの構築
今回のハンズオンの流れ
7
さくらのIoT
Platform
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
Webサービス連携
(Arukas)
マイコン
(Arduino Uno)
温湿度センサ
(HDC1000...
今回のワークショップでご提供するもの
8
Arduino Uno
Rev3
ジャンパーコード 人感センサ
(SB412A)
照度センサ
(GL5537-2)
温湿度センサ
(HDC1000)
各種抵抗
※必要に応じてご提供
さくらの通信モジュー...
Arduino IDEのセットアップ
9
https://www.arduino.cc/en/Main/Software から開発環境(Arduino IDE)を入手します。
2017/1/12時点での最新版は【1.8.1】となります。
Win...
Arduino IDEのセットアップ
10
該当の金額選択する(寄付する場合)、もしくは【JUST DOWNLOAD】にてダウンロードします。
Arduino IDEのセットアップ
11
インストールはデフォルト推奨、ドライバーについても全てインストールします。
#本スライド記載の画像はWindowsの場合になります。
Arduino IDEのセットアップ
12
Arduino IDEが起動したら、Arduino本体をPCに接続します。
ボードは【Arduino/Genuino Uno】、シリアルポートは出てきたCOMポートを選択します。
Macの場合はシリア...
マイコン(Arduino)の準備
13
[ファイル]→[新規ファイル]→【→】ボタンクリックでArduinoに書き込まれている
内容がクリアされます。該当箇所のLEDが点灯状態になることを確認します
マイコン(Arduino)の準備
14
[ファイル]→[スケッチの例]→[01.Basics]→[Blink]→【→】ボタンクリックで
該当箇所のLEDが点滅状態になることを確認します
さくらの通信モジュールの取り付け
15
まずUSBケーブルを本体から取り外した後、マイコン側のジャンパーコードを抜き去り、
図に示すようにシールドとArduinoのピン穴と合致するようにはめ込みます。
併せてアンテナケーブルと棒アンテナを接続し...
温湿度センサの繋ぎ込み
16
結線を行うため、再度ArduinoをPCから外します。その後図に従い、ジャンパーコードを接続します。
ピンアサインはマイコンと同一ですが、シールドにはピンソケットの表記がないため、
マイコン側の表記を参考にします。...
ライブラリの取得(HDC1000)
17
[スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、
右上検索窓から【hdc1000】を検索すると、[HDC1000 by Yuichi Tateno]がヒットします。...
温湿度センサの動作確認
18
[ファイル]→[スケッチの例]→[HDC1000]→[hdc1000]→【→】ボタンをクリックします。
[ツール]→[シリアルモニタ]よりTemperature&Humidity情報が取得されることを確認します。
...
ライブラリの取得(SakuraIO)
19
[スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、
右上検索窓から【sakuraio】を検索すると、[SakuraIO by SAKURA Internet Inc...
試験用プログラムの流し込み
20
[スケッチの例]→[SakuraIO]→[HDC1000] →【→】ボタンをクリックします。
[ツール]→[シリアルモニタ]より「Waiting to come online」表記の後、カウント値、
Tempe...
【参考】AlphaCompat.ino
21
さくらのIoT Platformαにて提供していたスケッチ(SakuraAlpha_I2C.ino)を置き換えた
プログラムです。一定間隔でカウント値を0,1,2のチャンネルに書き込み、送信します。
【参考】FirmwareUpdate.ino
22
さくらの通信モジュールのファームウェアアップデートを実行します。
現在のVersion情報を元にプラットフォームへ問い合わせ、新しいファームウェアが提供されている
場合にアップデートを実行しま...
【参考】Shell.ino
23
シリアルモニタからのコマンド操作を提供します。改行を[CRのみ]とした後、
提供されているコマンドを手入力で確認することができます。
【参考】Shell.ino
24
構文
【version】現在のファームウェアバージョンを表示する
出力結果
version
>version
v1.0.0-161109-c566dba
備考
【参考】Shell.ino
25
構文
【serial】通信モジュールのシリアル番号を表示する
出力結果
serial
>serial
16A0100134
備考
【参考】Shell.ino
26
構文
【status】通信モジュールの通信状態を確認する
出力結果
status
>status
Online
Last Error Code: 0
備考
【参考】Shell.ino
27
構文
【sqi】通信モジュールの電波強度を確認する
出力結果
sqi
>sqi
5
備考
電波強度は5を最大として強度に伴い数値が下がり、0は圏外であることを示します。
【参考】Shell.ino
28
構文
【unixtime】UTC形式の現在時刻を表示する
出力結果
unixtime
>unixtime
1480497574
備考
【参考】Shell.ino
29
構文
【update】ファームウェアのアップデートを実行する
出力結果
update
>update
Current Version: v1.0.0-161109-c566dba
Unlock
Starting...
【参考】Shell.ino
30
構文
【reset】通信モジュールのソフトウェアリセットを実行する
出力結果
reset
>reset
>
備考
シリアルモニタに実行結果は表示されません。
ソフトウェアリセットを実行すると通信モジュールが再起...
【参考】Shell.ino
31
構文
【enqueue】送信キューにデータを格納する
出力結果
enqueue <ch> <type> <value>
>enqueue 0 i 123
>
備考
シリアルモニタに実行結果は表示されません。
e...
【参考】Shell.ino
32
構文
【send】送信キューに貯められたデータを送信する
出力結果
send
>send
>
備考
シリアルモニタに実行結果は表示されません。
sendコマンドを実行すると、貯められたデータは16個分を1つのR...
【参考】Shell.ino
33
構文
【size】送信/受信キューに貯められたデータ数を確認する
出力結果
size
>size
Tx Queue
Avail: 32
Queued: 0
Rx Queue
Avail: 32
Queued: ...
【参考】Shell.ino
34
構文
【cleartx】送信キューに貯められたデータをすべて消去する
出力結果
cleartx
>cleartx
>
備考
シリアルモニタに実行結果は表示されません。
送信キューに貯められたデータの一部だけを削...
【参考】Shell.ino
35
構文
【clearrx】受信キューに貯められたデータをすべて消去する
出力結果
clearrx
>clearrx
>
備考
シリアルモニタに実行結果は表示されません。
受信キューに貯められたデータの一部だけを削...
【参考】Shell.ino
36
構文
【dequeue】受信キューに貯められたデータをすべて受信する
出力結果
dequeue
>dequeue
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能な...
【参考】Shell.ino
37
構文
【peek】受信キューに貯められたデータを閲覧する
出力結果
peek
>peek
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能なデータが存在しない場合は...
【参考】Standard.ino
38
保持している情報をすべて書き出すプログラムです。シリアルモニタに以下の情報を出力しながら
カウント値を0チャンネルに書き込み、キューが一定量貯まると送信します。
39
さくらのIoT Platform
の設定
今回のハンズオンの流れ
40
さくらのIoT
Platform
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
Webサービス連携
(Arukas)
マイコン
(Arduino Uno)
温湿度センサ
(HDC100...
コントロールパネルへのログイン
41
Googleにて「さくらインターネット iot 開発者」を検索し、開発者向けページから
コントロールパネル(https://secure.sakura.ad.jp/iot-alpha/)にログインします。
...
コントロールパネルへのログイン
42
既にログイン済みのセッションがない場合、以下画面にて会員認証を求められます。
会員ID、パスワードを利用してログインします。
プロジェクトの作成
43
さくらのIoT Platformでは【プロジェクト】という単位で大枠を構成し、
プロジェクト内にさくらの通信モジュールや連携先サービスを複数所属させていきます。
ハンズオンでは、まず[新規プロジェクト]をクリックし、新...
プロジェクトの作成
44
新規プロジェクトの作成画面に遷移します。
[名称]欄に任意の名前を入力し、[作成する]をクリックします。
通信モジュールの登録
45
プロジェクトが作成されました。次に通信モジュールの登録を行います。
[モジュール登録]のボタンをクリックします。
通信モジュールの登録
46
モジュールの追加画面に遷移します。用意されている登録用ID、登録用パスワード、
および任意の名称を入力して、[追加する]ボタンをクリックします。
連携サービスの設定
47
通信モジュールが登録されました。最後に外部への連携サービスを設定します。
[サービス追加]のボタンをクリックします。
連携サービスの設定(WebSocket)
48
追加サービスの選択画面に遷移します。今回はWebSocketを作成しますので、
[WebSocket]をクリックします。
連携サービスの設定(WebSocket)
49
WebSocketの作成には特に設定事項はありません。
[名前]欄に任意の名前を入力し、[作成する]ボタンをクリックします。
連携サービスの設定(WebSocket)
50
WebSocketを設定しました、これでコントロールパネルでの準備は完了です。
ここで表示されるWebSocketのURLはハンズオンの後半で使用しますので書き留めておいてください。
動作確認(WebSocket)
51
作成した連携サービスで、シリアルポートで表示される情報(温度/湿度/シリアル値)と
同様の情報が画面上で受信データとして表示されていることを確認します。
データを送信した
通信モジュールのID
データが格納...
【参考】連携サービスの設定(DataStore (β))
52
さくらのIoT Platformでは、新たに蓄積データの活用として【DataStore】を提供します。※β版
追加サービスの選択画面で[DataStore (β)]をクリックします。
【参考】連携サービスの設定(DataStore (β))
53
追加サービスの選択画面で[DataStore (β)]をクリックします。
[名前]は任意の名称を入力し、[作成する]をクリックします。
【参考】連携サービスの設定(DataStore (β))
54
追加サービスの選択画面で[DataStore (β)]をクリックします。[名前]は任意の名称を入力し、
[作成する]をクリックすると、TokenおよびAPIドキュメントのURLが生...
【参考】連携サービスの設定(DataStore (β)) /channels の取得
55
[ /channels ]は蓄積されたデータをチャンネル単位で取得します。単体のデータを複数の形式
(入力時の形式[value]、数値[value_nu...
【参考】連携サービスの設定(DataStore (β)) /channels の取得
56
{
"meta": {
“count”: <取得した件数>,
“cursor”: “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するため...
【type】:取得するRMのtype指定
【参考】連携サービスの設定(DataStore (β)) /messages の取得
57
[ /messages ]は蓄積されたデータをRM単位で取得します。RMに含まれる複数チャンネルの
データの関...
【参考】連携サービスの設定(DataStore (β)) /messages の取得
58
{
"meta": {
"count": <取得した件数>,
"cursor": “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するため...
59
Webへのデータ連携
(さくらのクラウド)
今回のハンズオンの流れ
60
さくらのIoT
Platform
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
Webサービス連携
(Arukas)
マイコン
(Arduino Uno)
温湿度センサ
(HDC100...
さくらのクラウド コントロールパネル ログイン
61
本ワークショップでは既にさくらのクラウドのユーザを作成済みとなります。
以下URLより、「さくらのクラウドユーザとしてログイン:」に前述のユーザコード、会員ID、
パスワードを入力します。 ...
さくらのクラウド コントロールパネル ログイン
62
ユーザでログインができたら[さくらのクラウド(IaaS)]をクリックします。
Node-REDサーバの作成 スタートアップスクリプトの用意
63
本ワークショップではNode-REDの構築を簡単にするため、さくらのクラウドの機能である
「スタートアップスクリプト」を作成します。右上の【設定】をクリックします。
Node-REDサーバの作成 スタートアップスクリプトの用意
64
新しく現れたメニューから【スクリプト】をクリックします。
その後【プライベート】タブをクリックし、右上の【追加】を選択します。
Node-REDサーバの作成 スタートアップスクリプトの用意
65
以下の内容をコピー&ペーストします。必要に応じてエラー処理やログ用の記述を追加します。
#!/bin/sh
# @sacloud-once
# @sacloud-desc Gi...
Node-REDサーバの作成 スタートアップスクリプトの用意
66
【名前】は任意の値を入力し、スクリプトを【内容】に入力します。
【作成】をクリックするとスタートアップスクリプトが作成されます。
Node-REDサーバの作成
67
左側のペインのサーバを選択し、右上の【追加】ボタンをクリックします。
はじめはサーバ追加の案内が出る場合があります。
Node-REDサーバの作成
68
デフォルトではサーバの作成は細かい設定が不要な「シンプルモード」で作成できます。
スタートアップスクリプトを利用する場合は右上の【シンプルモード】のチェックを外します。
Node-REDサーバの作成【シンプルモード】
69
ディスクイメージはUnix/LinuxタブからCentOSの【6.x 64bit】を選択します。
Node-REDサーバの作成【シンプルモード】
70
サーバプランは【1GB/1仮想コア】を、ディスクプランは【20GB SSDプラン】を、
それぞれ選択します。(デフォルトで選択されています。)
Node-REDサーバの作成【シンプルモード】
71
管理ユーザのパスワードについてはパスワード強度が[普通]以上になるよう任意の値を入力します。
接続先のネットワークは【インターネット】、公開鍵は【なし】を選択します。
Node-REDサーバの作成【シンプルモード】
72
ホスト名は任意の値を入力します。作成数はデフォルトのまま【作成】をクリックします。
Node-REDサーバの作成【シンプルモード不使用】
73
サーバプランでは仮想サーバに割り当てるCPUとメモリの量を指定します。
仮想コアは【1】を、メモリは【1GB】を、それぞれ選択します。
Node-REDサーバの作成【シンプルモード不使用】
74
2.ディスクでは使用するディスクの種類やサイズ、インストールイメージを選択します。
アーカイブ選択のみ【CentOS 6.x 64bit #xxxxxxxxxxxx】を選択し、後はデフ...
Node-REDサーバの作成【シンプルモード不使用】
75
3.NICではネットワークに関する設定を指定します。
今回はすべてデフォルトの値を使用しますので変更は不要です。
Node-REDサーバの作成【シンプルモード不使用】
76
4.ディスクの修正ではOSに関する設定値を指定します。
管理ユーザのパスワードおよびホスト名は任意の値を入力します。
公開鍵は今回のハンズオンでは使用しないためデフォルトの【なし】を使...
Node-REDサーバの作成【シンプルモード不使用】
77
先程作成したスタートアップスクリプトについては[配置するスタートアップスクリプト]で
選択することができます。
今回は自動でNode-REDの構築を行うため、作成した名称のスクリプトを...
Node-REDサーバの作成【シンプルモード不使用】
78
5.シンプル監視はさくらのクラウドで提供する死活監視のサービスとなります。
本件では使用しないため、デフォルトのチェックなしで進めます。
Node-REDサーバの作成【シンプルモード不使用】
79
6.サーバの情報はコントロールパネル上で管理するための情報を記述する項目となります。
本件では名前に判別がつくような任意の値を入力します。
Node-REDサーバの作成【シンプルモード不使用】
80
7.その他のオプションおよび作成数はすべてデフォルトの値を使用します。
内容を確認し、問題がなければ【作成】をクリックします。
Node-REDサーバの作成
81
操作確認のダイアログにて、作成しても良いか改めて確認されますので、
問題がなければ【作成】をクリックすると指定したサーバやディスクの作成を開始します。
ステータスが全て成功になればサーバの作成が完了となります。
Node-REDサーバの作成
82
サーバが作成されました。次はターミナルソフトを使用して構築を行います。
Windows(Teraterm等)、Mac(ターミナル)を起動します。
コンソールでの環境のセットアップ
83
ここからはターミナルソフトで操作することを前提に進めます。Windowsの場合、TeraTermで
さくらのクラウドのコンパネ記載のIPアドレスへ接続します。
初めてアクセスするサーバの場合、セキュリティ...
コンソールでの環境のセットアップ(スタートアップスクリプト利用時)
84
ログインが完了したら以下コマンドを実行するとWebブラウザから該当サーバのIPアドレスに
アクセスできるようになります。実行が成功しない場合nvmのパス等確認のうえ、実施...
Node-RED 初期画面
85
Node-REDは「ノード」と呼ばれる機能の固まりをシート上で組み合わせ、
ひとつの「フロー」にすることで、ほとんどプログラミングを知らない人でも
プログラムを構築することができるツールとなります。
ノード
パ...
Node-RED WebSocketノードの作成
86
まずはWebSocketからのデータを受け取るノードを追加します。
ノードパレットから「websocket」ノードをシートにドラッグ&ドロップします。
Node-RED WebSocketノードの作成
87
ドラッグ&ドロップされたWebSocketノードをWクリックし、設定画面に移ります。
Typeは「Connect to」、Nameは「任意の名称」を入力のうえ、URLの行にある鉛筆マークを...
Node-RED WebSocketノードの作成
88
指定するPathの値は、コンパネの連携サービスで確認できる赤枠部分となります。
赤枠部分の情報をコピーして、WebSocketノードのPath部分にペーストします。
Node-RED WebSocketノードの作成
89
Path部分はコンパネからのペーストを行い、ドロップダウンの項目については
「Send/Receive payload」を選択し、【Add】をクリックします。
Node-RED WebSocketノードの作成
90
【Done】をクリックするとwebsocketノードへの設定が反映されます。
設定内容に不備がない場合はノード右上の三角マークが表示から消えます。
Node-RED WebSocketノードの作成
91
WebSocketノードへの設定が反映されましたが、この時点ではさくらのIoT Platformから
データは入ってきていません。続いてはデータを表示するためのDebugノードを作成します。
Node-RED Debugノードの作成
92
次に、ノードパレットから「debug」ノードをシートにドラッグ&ドロップします。
Debugノードは自動で「msg.payload」に名前が変わります。特に設定は不要です。
Node-RED ノード間の接続
93
各ノードでの動作を処理として繋げるために、WebSocketノードの右端とDebugノードの左端を
ドラッグ&ドロップで線を繋ぎます。
Node-RED フローのデプロイ
94
各ノードを接続し、準備が完了したら、右上部の【Deploy】をクリックします。
デプロイが完了するとDeployボタンがグレーアウトされ、設定した内容を元に処理が開始されます。
動作確認
95
フローに問題がない場合、Websocketノード下部に「connected」と表示され、
コンソールのdebug内にプラットフォームから取得したJSONデータを確認できます。
Debugノード右端の緑マークをクリックするとdeb...
96
Webへのデータ連携
(コンテナホスティング Arukas)
今回のハンズオンの流れ
97
さくらのIoT
Platform
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
Webサービス連携
(Arukas)
マイコン
(Arduino Uno)
温湿度センサ
(HDC100...
コンテナホスティングサービス Arukasとは
98
さくらのクラウド Arukas
コア技術
提供単位 仮想マシン/OS コンテナ
メリット
・従来のOSと同様に扱える
・既存環境の拡張ができる
・その他機能と併用ができる
・展開が高速
・オ...
コンテナホスティングサービス Arukas
99
「https://arukas.io/」にアクセスするとArukasのサービスページに飛びます。
Arukasは通常のメールアドレス/パスワード、およびGithubのアカウントのいずれかで
ログ...
コンテナホスティングサービス Arukas ログイン画面
100
登録が終わっている場合、以下のいずれかを使用してログインします。
メールアドレス&
パスワード
Githubアカウント
新しいアプリケーション(コンテナ)の作成
101
ログインすると、初めにダッシュボード画面に遷移します。
新しいコンテナ(アプリケーション)を立ち上げる場合は【新しいアプリケーションを作成】を
クリックします。
新しいアプリケーション(コンテナ)の作成
102
今回のハンズオンでは、予め用意されているイメージを使用してNode-REDコンテナを立ち上げます。
Image【chibiegg/node-red:0.14】、Port【1880/TCP】を入力...
新しいアプリケーション(コンテナ)の作成
103
作成が完了したら、ダッシュボード画面もしくはコンテナの名称をクリックしたDetail画面から
【起動】ボタンをクリックします。起動処理が始まり、数十秒~数分程度でコンテナが
利用可能となります。
新しいアプリケーション(コンテナ)の作成
104
コンテナのデプロイ中はオレンジ色で表記されます。
新しいアプリケーション(コンテナ)の作成
105
アプリが起動状態になると緑色で表示され、EndpointもしくはPort部分記載のリンクから
環境にアクセスできるようになります。
Node-RED ログイン画面
106
URLにアクセスするとNode-REDのログイン画面に遷移します。
記載のUsernameとPasswordでログインします。
Username : node
Password : r3d
Node-RED 初期画面
107
Node-REDは「ノード」と呼ばれる機能の固まりをシート上で組み合わせ、
ひとつの「フロー」にすることで、ほとんどプログラミングを知らない人でも
プログラムを構築することができるツールとなります。
ノード
...
Node-RED WebSocketノードの作成
108
まずはWebSocketからのデータを受け取るノードを追加します。
ノードパレットから「websocket」ノードをシートにドラッグ&ドロップします。
Node-RED WebSocketノードの作成
109
ドラッグ&ドロップされたWebSocketノードをWクリックし、設定画面に移ります。
Typeは「Connect to」、Nameは「任意の名称」を入力のうえ、URLの行にある鉛筆マーク...
Node-RED WebSocketノードの作成
110
指定するPathの値は、コンパネの連携サービスで確認できる赤枠部分となります。
赤枠部分の情報をコピーして、WebSocketノードのPath部分にペーストします。
Node-RED WebSocketノードの作成
111
Path部分はコンパネからのペーストを行い、ドロップダウンの項目については
「Send/Receive payload」を選択し、【Add】をクリックします。
Node-RED WebSocketノードの作成
112
【Done】をクリックするとwebsocketノードへの設定が反映されます。
設定内容に不備がない場合はノード右上の三角マークが表示から消えます。
Node-RED WebSocketノードの作成
113
WebSocketノードへの設定が反映されましたが、この時点ではさくらのIoT Platformから
データは入ってきていません。続いてはデータを表示するためのDebugノードを作成しま...
Node-RED Debugノードの作成
114
次に、ノードパレットから「debug」ノードをシートにドラッグ&ドロップします。
Debugノードは自動で「msg.payload」に名前が変わります。特に設定は不要です。
Node-RED ノード間の接続
115
各ノードでの動作を処理として繋げるために、WebSocketノードの右端とDebugノードの左端を
ドラッグ&ドロップで線を繋ぎます。
Node-RED フローのデプロイ
116
各ノードを接続し、準備が完了したら、右上部の【Deploy】をクリックします。
デプロイが完了するとDeployボタンがグレーアウトされ、設定した内容を元に処理が開始されます。
動作確認
117
フローに問題がない場合、Websocketノード下部に「connected」と表示され、
コンソールのdebug内にプラットフォームから取得したJSONデータを確認できます。
Debugノード右端の緑マークをクリックするとde...
11
8
最後に
最後に ~さくらのIoT Platform~
11
9
ハンズオンに使用したさくらの通信モジュールは必要に応じて登録を解除します。
接続ステータス横の歯車マークをクリックします。
最後に ~さくらのIoT Platform~
12
0
モジュールの設定画面に遷移します。
下部[削除する]ボタンをクリックします。
最後に ~さくらのIoT Platform~
12
1
削除してよいか確認されます。
問題ない場合は再度[削除する]ボタンをクリックします。
最後に ~さくらのIoT Platform~
12
2
モジュールの登録が解除され、表示から削除されました。
次は連携サービスとともにプロジェクトを削除します。
プロジェクト右上のゴミ箱マークをクリックします。
最後に ~さくらのIoT Platform~
12
3
プロジェクトを削除してよいか確認されます。
問題ない場合は再度[削除する]ボタンをクリックします。
最後に ~さくらのクラウド~
12
4
グローバルIPアドレスを持つサーバは攻撃対象になりますので、作成いただいたサーバは削除します。サー
バがまだ起動している場合、さくらのクラウドで対象サーバのチェックを入れ、
[電源操作]から【シャットダウ...
最後に ~さくらのクラウド~
12
5
シャットダウン対象を確認のうえ【シャットダウン】をクリックします。
再度ダイアログにて確認が表示されますので【実行】をクリックします。
最後に ~さくらのクラウド~
12
6
シャットダウンが正常に実行されると、チェックボックス横のラインが
「緑→赤→灰」と遷移します。ラインが灰色に変化したら、再度対象となる
サーバにチェックを入れ、【削除】をクリックします。
最後に ~さくらのクラウド~
12
7
今回は[接続されたディスク]についても削除しますのでチェックを入れ、【削除】をクリックします。
ダイアログが表示されますので【実行】をクリックします。
最後に ~さくらのクラウド~
12
8
削除の工程が表示されます。全てのステータスが成功となれば削除は完了です。
最後に ~Arukas~
12
9
Arukasで作成されたコンテナはインターネット上に公開されているため削除しておきましょう。
Actionの「■」ボタンをクリックしてサービスを停止します。
最後に ~Arukas~
13
0
停止に関するダイアログが表示されますので、【OK】をクリックします。
最後に ~Arukas~
13
1
該当サービスの色が変わり、停止されたことを確認したら、
ゴミ箱ボタンをクリックします。
最後に ~Arukas~
13
2
こちらも同様のダイアログが表示されますので、「OK」をクリックします。
最後に ~Arukas~
13
3
以上で作成したサービスは全て削除されました。
最後に
13
4
以上でハンズオンにおける作業は全て終了となります。
お疲れ様でした!
135
そこに、さくら
Upcoming SlideShare
Loading in …5
×

さくらのIoT Platform β版ハンズオン

3,528 views

Published on

※現在サービスはsakura.ioと名称変更されています。
※最新の資料は以下をご覧ください。
Sakura.io handson (https://www.slideshare.net/sakura_pr/sakuraio-handson)
Sakura.io handson with microsoft azure (https://www.slideshare.net/sakura_pr/sakuraio-handson-with-microsoft-azure)

各地で開催されているさくらのIoT Platform ハンズオンでの資料となります。
本資料ではIoTデバイスのプロトタイピングを想定した「マイコンおよびプログラムの構築」
「さくらのIoT Platformの設定」「Webサービス連携」の手順をスライドでご覧いただけます。
なお、本資料で使用されているさくらの通信モジュールはβ版となります。
Webサービス連携で使用されているさくらのクラウドおよびArukasはいずれか任意のものを
利用いただけます。
サービス詳細は以下をご確認ください。
https://iot.sakura.ad.jp/

Published in: Services
  • Be the first to comment

さくらのIoT Platform β版ハンズオン

  1. 1. さくらの IoT Platform β版ハンズオン 2017/1/12 (C) Copyright 1996-2017 SAKURA Internet Inc さくらインターネット株式会社 IoT Platform Team 西田 有騎
  2. 2. 2 はじめに
  3. 3. 本ワークショップの目的 3 1. 本ワークショップはさくらのIoT Platformを使用し、 組込み系およびWeb/アプリ開発系のエンジニアが ご自身のスキルセットを大きく超えることなく、 Internet of Things(IoT)に挑戦できることを 体験いただくものです。 2. そのため各章内で技術的な詳細は極力省略しております。 3. 今回は1人1つワークショップキットをご用意して おりますが、組込みやWeb/アプリ開発に詳しい方が いらっしゃいましたら、ご不明点を積極的にフォロー しあって進めていただければと思います。
  4. 4. 今回のハンズオンの流れ 4 さくらのIoT Platform マイコンおよび プログラムの構築 Webサービス連携 (さくらのクラウド) Webサービス連携 (Arukas) マイコン (Arduino Uno) 温湿度センサ (HDC1000) さくらの通信 モジュール さくらのIoT Platformの設定 仮想サーバ コンテナ
  5. 5. Agenda 5 1. マイコンおよびプログラムの構築 ₋ マイコン(Arduino)による開発環境の準備 ₋ 温湿度センサおよびさくらの通信モジュールの繋ぎ込み ₋ 試験用プログラムの流し込み 2. さくらのIoT Platformの設定 ₋ プロジェクトの作成 ₋ さくらの通信モジュールの登録 ₋ 連携サービスの設定 3. Webへのデータ連携(さくらのクラウド) ₋ Node-REDサーバ用インスタンスの作成 ₋ コンソールでの環境のセットアップ ₋ WebSocketを利用したデータ連携フロー作成 4. Webへのデータ連携(コンテナホスティングサービス Arukas) ₋ Node-REDコンテナの立ち上げ ₋ WebSocketを利用したデータ連携フロー作成
  6. 6. 6 マイコンおよび プログラムの構築
  7. 7. 今回のハンズオンの流れ 7 さくらのIoT Platform マイコンおよび プログラムの構築 Webサービス連携 (さくらのクラウド) Webサービス連携 (Arukas) マイコン (Arduino Uno) 温湿度センサ (HDC1000) さくらの通信 モジュール さくらのIoT Platformの設定 仮想サーバ コンテナ
  8. 8. 今回のワークショップでご提供するもの 8 Arduino Uno Rev3 ジャンパーコード 人感センサ (SB412A) 照度センサ (GL5537-2) 温湿度センサ (HDC1000) 各種抵抗 ※必要に応じてご提供 さくらの通信モジュール +Arduino用シールド USB2.0 ケーブル(A-B) 棒アンテナ x2本 本日は使用しません ブレッドボード
  9. 9. Arduino IDEのセットアップ 9 https://www.arduino.cc/en/Main/Software から開発環境(Arduino IDE)を入手します。 2017/1/12時点での最新版は【1.8.1】となります。 Windowsは【Windows Installer】、Macは【 Mac OS X 10.7 Lion or newer】を選択します。
  10. 10. Arduino IDEのセットアップ 10 該当の金額選択する(寄付する場合)、もしくは【JUST DOWNLOAD】にてダウンロードします。
  11. 11. Arduino IDEのセットアップ 11 インストールはデフォルト推奨、ドライバーについても全てインストールします。 #本スライド記載の画像はWindowsの場合になります。
  12. 12. Arduino IDEのセットアップ 12 Arduino IDEが起動したら、Arduino本体をPCに接続します。 ボードは【Arduino/Genuino Uno】、シリアルポートは出てきたCOMポートを選択します。 Macの場合はシリアルポート内の「~~~(Arduino/Genuino Uno)」となるものを選択します。 ボードの選択 シリアルポートの選択
  13. 13. マイコン(Arduino)の準備 13 [ファイル]→[新規ファイル]→【→】ボタンクリックでArduinoに書き込まれている 内容がクリアされます。該当箇所のLEDが点灯状態になることを確認します
  14. 14. マイコン(Arduino)の準備 14 [ファイル]→[スケッチの例]→[01.Basics]→[Blink]→【→】ボタンクリックで 該当箇所のLEDが点滅状態になることを確認します
  15. 15. さくらの通信モジュールの取り付け 15 まずUSBケーブルを本体から取り外した後、マイコン側のジャンパーコードを抜き去り、 図に示すようにシールドとArduinoのピン穴と合致するようにはめ込みます。 併せてアンテナケーブルと棒アンテナを接続します。
  16. 16. 温湿度センサの繋ぎ込み 16 結線を行うため、再度ArduinoをPCから外します。その後図に従い、ジャンパーコードを接続します。 ピンアサインはマイコンと同一ですが、シールドにはピンソケットの表記がないため、 マイコン側の表記を参考にします。 +V SDA SCL GND 3.3V GND SDA SCL
  17. 17. ライブラリの取得(HDC1000) 17 [スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、 右上検索窓から【hdc1000】を検索すると、[HDC1000 by Yuichi Tateno]がヒットします。 インストールをクリックすると自動的に該当ライブラリが格納され、[INSTALLED]が表示されます。
  18. 18. 温湿度センサの動作確認 18 [ファイル]→[スケッチの例]→[HDC1000]→[hdc1000]→【→】ボタンをクリックします。 [ツール]→[シリアルモニタ]よりTemperature&Humidity情報が取得されることを確認します。 何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。
  19. 19. ライブラリの取得(SakuraIO) 19 [スケッチ]→[ライブラリをインクルード]→ [ライブラリを管理...]をクリックし、 右上検索窓から【sakuraio】を検索すると、[SakuraIO by SAKURA Internet Inc.]がヒットします。 インストールをクリックすると自動的に該当ライブラリが格納され、[INSTALLED]が表示されます。
  20. 20. 試験用プログラムの流し込み 20 [スケッチの例]→[SakuraIO]→[HDC1000] →【→】ボタンをクリックします。 [ツール]→[シリアルモニタ]より「Waiting to come online」表記の後、カウント値、 Temperature、Humidityに加え、Available(キューイング可能なチャンネル数)と Queued(キューで送信待ちになっているチャンネル数)が表示されることを確認します。
  21. 21. 【参考】AlphaCompat.ino 21 さくらのIoT Platformαにて提供していたスケッチ(SakuraAlpha_I2C.ino)を置き換えた プログラムです。一定間隔でカウント値を0,1,2のチャンネルに書き込み、送信します。
  22. 22. 【参考】FirmwareUpdate.ino 22 さくらの通信モジュールのファームウェアアップデートを実行します。 現在のVersion情報を元にプラットフォームへ問い合わせ、新しいファームウェアが提供されている 場合にアップデートを実行します。 新しいファームウェアが存在する場合 最新のファームウェアが適用されている場合
  23. 23. 【参考】Shell.ino 23 シリアルモニタからのコマンド操作を提供します。改行を[CRのみ]とした後、 提供されているコマンドを手入力で確認することができます。
  24. 24. 【参考】Shell.ino 24 構文 【version】現在のファームウェアバージョンを表示する 出力結果 version >version v1.0.0-161109-c566dba 備考
  25. 25. 【参考】Shell.ino 25 構文 【serial】通信モジュールのシリアル番号を表示する 出力結果 serial >serial 16A0100134 備考
  26. 26. 【参考】Shell.ino 26 構文 【status】通信モジュールの通信状態を確認する 出力結果 status >status Online Last Error Code: 0 備考
  27. 27. 【参考】Shell.ino 27 構文 【sqi】通信モジュールの電波強度を確認する 出力結果 sqi >sqi 5 備考 電波強度は5を最大として強度に伴い数値が下がり、0は圏外であることを示します。
  28. 28. 【参考】Shell.ino 28 構文 【unixtime】UTC形式の現在時刻を表示する 出力結果 unixtime >unixtime 1480497574 備考
  29. 29. 【参考】Shell.ino 29 構文 【update】ファームウェアのアップデートを実行する 出力結果 update >update Current Version: v1.0.0-161109-c566dba Unlock Starting update Waiting for update . 備考
  30. 30. 【参考】Shell.ino 30 構文 【reset】通信モジュールのソフトウェアリセットを実行する 出力結果 reset >reset > 備考 シリアルモニタに実行結果は表示されません。 ソフトウェアリセットを実行すると通信モジュールが再起動を行います。 モデムの起動、および通信確立までにおおよそ1分程度を要します。
  31. 31. 【参考】Shell.ino 31 構文 【enqueue】送信キューにデータを格納する 出力結果 enqueue <ch> <type> <value> >enqueue 0 i 123 > 備考 シリアルモニタに実行結果は表示されません。 enqueueコマンドを実行すると登録したデータは送信キューに貯められます。 送信キューは最大で32個まで蓄積され、超過したキューは貯められず破棄されます。
  32. 32. 【参考】Shell.ino 32 構文 【send】送信キューに貯められたデータを送信する 出力結果 send >send > 備考 シリアルモニタに実行結果は表示されません。 sendコマンドを実行すると、貯められたデータは16個分を1つのRMとして送信します。 送信キューが17個以上存在する場合、2つ目のRMも送信され、キューから自動的に削除されます。
  33. 33. 【参考】Shell.ino 33 構文 【size】送信/受信キューに貯められたデータ数を確認する 出力結果 size >size Tx Queue Avail: 32 Queued: 0 Rx Queue Avail: 32 Queued: 0 備考 Tx Queue は送信キュー、Rx Queue は受信キューを表します。 Availは利用可能数、Queuedは貯められているキューの数を表します。
  34. 34. 【参考】Shell.ino 34 構文 【cleartx】送信キューに貯められたデータをすべて消去する 出力結果 cleartx >cleartx > 備考 シリアルモニタに実行結果は表示されません。 送信キューに貯められたデータの一部だけを削除することはできません。
  35. 35. 【参考】Shell.ino 35 構文 【clearrx】受信キューに貯められたデータをすべて消去する 出力結果 clearrx >clearrx > 備考 シリアルモニタに実行結果は表示されません。 受信キューに貯められたデータの一部だけを削除することはできません。
  36. 36. 【参考】Shell.ino 36 構文 【dequeue】受信キューに貯められたデータをすべて受信する 出力結果 dequeue >dequeue empty 備考 受信キューに貯められたデータの一部だけを受信することはできません。 受信可能なデータが存在しない場合はemptyを返します。 受信されたデータはキューから自動的に削除されます。
  37. 37. 【参考】Shell.ino 37 構文 【peek】受信キューに貯められたデータを閲覧する 出力結果 peek >peek empty 備考 受信キューに貯められたデータの一部だけを受信することはできません。 受信可能なデータが存在しない場合はemptyを返します。 閲覧したデータは削除されずキューに残されます。
  38. 38. 【参考】Standard.ino 38 保持している情報をすべて書き出すプログラムです。シリアルモニタに以下の情報を出力しながら カウント値を0チャンネルに書き込み、キューが一定量貯まると送信します。
  39. 39. 39 さくらのIoT Platform の設定
  40. 40. 今回のハンズオンの流れ 40 さくらのIoT Platform マイコンおよび プログラムの構築 Webサービス連携 (さくらのクラウド) Webサービス連携 (Arukas) マイコン (Arduino Uno) 温湿度センサ (HDC1000) さくらの通信 モジュール さくらのIoT Platformの設定 仮想サーバ コンテナ
  41. 41. コントロールパネルへのログイン 41 Googleにて「さくらインターネット iot 開発者」を検索し、開発者向けページから コントロールパネル(https://secure.sakura.ad.jp/iot-alpha/)にログインします。 下記ボタンよりアクセスします。
  42. 42. コントロールパネルへのログイン 42 既にログイン済みのセッションがない場合、以下画面にて会員認証を求められます。 会員ID、パスワードを利用してログインします。
  43. 43. プロジェクトの作成 43 さくらのIoT Platformでは【プロジェクト】という単位で大枠を構成し、 プロジェクト内にさくらの通信モジュールや連携先サービスを複数所属させていきます。 ハンズオンでは、まず[新規プロジェクト]をクリックし、新規にプロジェクトを作成します。
  44. 44. プロジェクトの作成 44 新規プロジェクトの作成画面に遷移します。 [名称]欄に任意の名前を入力し、[作成する]をクリックします。
  45. 45. 通信モジュールの登録 45 プロジェクトが作成されました。次に通信モジュールの登録を行います。 [モジュール登録]のボタンをクリックします。
  46. 46. 通信モジュールの登録 46 モジュールの追加画面に遷移します。用意されている登録用ID、登録用パスワード、 および任意の名称を入力して、[追加する]ボタンをクリックします。
  47. 47. 連携サービスの設定 47 通信モジュールが登録されました。最後に外部への連携サービスを設定します。 [サービス追加]のボタンをクリックします。
  48. 48. 連携サービスの設定(WebSocket) 48 追加サービスの選択画面に遷移します。今回はWebSocketを作成しますので、 [WebSocket]をクリックします。
  49. 49. 連携サービスの設定(WebSocket) 49 WebSocketの作成には特に設定事項はありません。 [名前]欄に任意の名前を入力し、[作成する]ボタンをクリックします。
  50. 50. 連携サービスの設定(WebSocket) 50 WebSocketを設定しました、これでコントロールパネルでの準備は完了です。 ここで表示されるWebSocketのURLはハンズオンの後半で使用しますので書き留めておいてください。
  51. 51. 動作確認(WebSocket) 51 作成した連携サービスで、シリアルポートで表示される情報(温度/湿度/シリアル値)と 同様の情報が画面上で受信データとして表示されていることを確認します。 データを送信した 通信モジュールのID データが格納された チャンネル番号 →カウント値 →湿度 →温度 送信されたデータの タイムスタンプ 送信された値データの型 単一メッセージで 送信された値は 同一時刻で表示
  52. 52. 【参考】連携サービスの設定(DataStore (β)) 52 さくらのIoT Platformでは、新たに蓄積データの活用として【DataStore】を提供します。※β版 追加サービスの選択画面で[DataStore (β)]をクリックします。
  53. 53. 【参考】連携サービスの設定(DataStore (β)) 53 追加サービスの選択画面で[DataStore (β)]をクリックします。 [名前]は任意の名称を入力し、[作成する]をクリックします。
  54. 54. 【参考】連携サービスの設定(DataStore (β)) 54 追加サービスの選択画面で[DataStore (β)]をクリックします。[名前]は任意の名称を入力し、 [作成する]をクリックすると、TokenおよびAPIドキュメントのURLが生成されます。
  55. 55. 【参考】連携サービスの設定(DataStore (β)) /channels の取得 55 [ /channels ]は蓄積されたデータをチャンネル単位で取得します。単体のデータを複数の形式 (入力時の形式[value]、数値[value_num]、文字列[value_str])で格納しているため、 単体でも価値のあるデータが活用しやすい形式となっています。 [ /channels ]は該当URL(https://api.sakura.io/datastore/v1/docs/)にて 前述の【Token】情報、および以下のパラメータを指定することで任意の情報を取得できます。 【module】:通信モジュールのモジュールID 【size】:一度に取得するデータの数 【order】:昇順(ASC)と降順(DESC)指定 【cursor】:※後述※ 【after/before】:指定日時の以前と以後指定 【channel】:取得するチャンネル指定
  56. 56. 【参考】連携サービスの設定(DataStore (β)) /channels の取得 56 { "meta": { “count”: <取得した件数>, “cursor”: “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”, “match”: <ヒットした件数> }, "results": [ { “channel”: <データが格納されているチャンネル>, “datetime”: “<データが通信モジュールのキューに格納された時間>”, “id”: “<送信されたデータのID>", “module”: “<データが送信された通信モジュールのID>", “type”: “<送信されたデータの型式>", “value”: <typeで指定された型式でのデータ>, “value_num”: <number形式でのデータ>, “value_str”: “<string形式でのデータ>" }, { "channel": … #以下[channel]単位のデータがcount数分列挙 指定された条件を元に【Try it out!】をクリックすると、[Response Body]欄に条件に応じた データが返されます。またクリック後に返される[Request URL]から同様のデータを取得できます。
  57. 57. 【type】:取得するRMのtype指定 【参考】連携サービスの設定(DataStore (β)) /messages の取得 57 [ /messages ]は蓄積されたデータをRM単位で取得します。RMに含まれる複数チャンネルの データの関係性が重要な場合に活用しやすい形式です。(鍵の「解錠者ID」と「入退室フラグ」等) また、 [ /messages ]には通信モジュールの接続および切断の情報も含まれています。 [ /messages ]は該当URL(https://api.sakura.io/datastore/v1/docs/)にて 以下のパラメータを指定することで任意の情報を取得できます。 【module】:通信モジュールのモジュールID 【size】:一度に取得するデータの数 【order】:昇順(ASC)と降順(DESC)指定 【cursor】:※後述※ 【after/before】:指定日時の以前と以後指定
  58. 58. 【参考】連携サービスの設定(DataStore (β)) /messages の取得 58 { "meta": { "count": <取得した件数>, "cursor": “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”, "match": <ヒットした件数> }, "results": [ { “datetime”: “<対象のRMをプラットフォーム側で受信した時間>”, "id": “<格納されたRMのID>", "module": “<データが送信された通信モジュールのID>", "payload": { "channels": [ { "channel": <データが格納されているチャンネル>, "type": “<送信されたデータの型式>", "value": <typeで指定された型式でのデータ> } ] }, "type": "channels" }, { “datetime”: … #以下[message]単位のデータ 指定された条件を元に【Try it out!】をクリックすると、[Response Body]欄に条件に応じた データが返されます。またクリック後に返される[Request URL]から同様のデータを取得できます。
  59. 59. 59 Webへのデータ連携 (さくらのクラウド)
  60. 60. 今回のハンズオンの流れ 60 さくらのIoT Platform マイコンおよび プログラムの構築 Webサービス連携 (さくらのクラウド) Webサービス連携 (Arukas) マイコン (Arduino Uno) 温湿度センサ (HDC1000) さくらの通信 モジュール さくらのIoT Platformの設定 仮想サーバ コンテナ
  61. 61. さくらのクラウド コントロールパネル ログイン 61 本ワークショップでは既にさくらのクラウドのユーザを作成済みとなります。 以下URLより、「さくらのクラウドユーザとしてログイン:」に前述のユーザコード、会員ID、 パスワードを入力します。 「https://secure.sakura.ad.jp/cloud/」
  62. 62. さくらのクラウド コントロールパネル ログイン 62 ユーザでログインができたら[さくらのクラウド(IaaS)]をクリックします。
  63. 63. Node-REDサーバの作成 スタートアップスクリプトの用意 63 本ワークショップではNode-REDの構築を簡単にするため、さくらのクラウドの機能である 「スタートアップスクリプト」を作成します。右上の【設定】をクリックします。
  64. 64. Node-REDサーバの作成 スタートアップスクリプトの用意 64 新しく現れたメニューから【スクリプト】をクリックします。 その後【プライベート】タブをクリックし、右上の【追加】を選択します。
  65. 65. Node-REDサーバの作成 スタートアップスクリプトの用意 65 以下の内容をコピー&ペーストします。必要に応じてエラー処理やログ用の記述を追加します。 #!/bin/sh # @sacloud-once # @sacloud-desc Git/NVM/Node.js/Node-REDのインストールを実行します。 # @sacloud-desc このスクリプトは、CentOS6.xでのみ動作し、完了後自動再起動します。 # @sacloud-desc 起動後、「#node-red」を実行すると、該当IPアドレスにWebブラウザにてアクセスできます。 # @sacloud-require-archive distro-centos distro-ver-6.* #Gitの入手 yum -y install git #NVMの入手 git clone https://github.com/creationix/nvm.git /root/.nvm #NVMの一時的なPATH設定 source /root/.nvm/nvm.sh #NVMの恒久的なPATH設定 sed -i '12i if [ -s /root/.nvm/nvm.sh ]; then' /root/.bash_profile sed -i '13i source /root/.nvm/nvm.sh' /root/.bash_profile sed -i '14i fi' /root/.bash_profile #Node.jsの入手 nvm install v6.2.2 #Node-REDの入手 npm install -g node-red #Node-REDの編集済みコンフィグファイル(.node-red以下)を入手 git clone https://github.com/Nyuuki0224/node-red-init.git cp -rfv /root/node-red-init/.node-red/ /root/ exit 0
  66. 66. Node-REDサーバの作成 スタートアップスクリプトの用意 66 【名前】は任意の値を入力し、スクリプトを【内容】に入力します。 【作成】をクリックするとスタートアップスクリプトが作成されます。
  67. 67. Node-REDサーバの作成 67 左側のペインのサーバを選択し、右上の【追加】ボタンをクリックします。 はじめはサーバ追加の案内が出る場合があります。
  68. 68. Node-REDサーバの作成 68 デフォルトではサーバの作成は細かい設定が不要な「シンプルモード」で作成できます。 スタートアップスクリプトを利用する場合は右上の【シンプルモード】のチェックを外します。
  69. 69. Node-REDサーバの作成【シンプルモード】 69 ディスクイメージはUnix/LinuxタブからCentOSの【6.x 64bit】を選択します。
  70. 70. Node-REDサーバの作成【シンプルモード】 70 サーバプランは【1GB/1仮想コア】を、ディスクプランは【20GB SSDプラン】を、 それぞれ選択します。(デフォルトで選択されています。)
  71. 71. Node-REDサーバの作成【シンプルモード】 71 管理ユーザのパスワードについてはパスワード強度が[普通]以上になるよう任意の値を入力します。 接続先のネットワークは【インターネット】、公開鍵は【なし】を選択します。
  72. 72. Node-REDサーバの作成【シンプルモード】 72 ホスト名は任意の値を入力します。作成数はデフォルトのまま【作成】をクリックします。
  73. 73. Node-REDサーバの作成【シンプルモード不使用】 73 サーバプランでは仮想サーバに割り当てるCPUとメモリの量を指定します。 仮想コアは【1】を、メモリは【1GB】を、それぞれ選択します。
  74. 74. Node-REDサーバの作成【シンプルモード不使用】 74 2.ディスクでは使用するディスクの種類やサイズ、インストールイメージを選択します。 アーカイブ選択のみ【CentOS 6.x 64bit #xxxxxxxxxxxx】を選択し、後はデフォルトとします。
  75. 75. Node-REDサーバの作成【シンプルモード不使用】 75 3.NICではネットワークに関する設定を指定します。 今回はすべてデフォルトの値を使用しますので変更は不要です。
  76. 76. Node-REDサーバの作成【シンプルモード不使用】 76 4.ディスクの修正ではOSに関する設定値を指定します。 管理ユーザのパスワードおよびホスト名は任意の値を入力します。 公開鍵は今回のハンズオンでは使用しないためデフォルトの【なし】を使用します。
  77. 77. Node-REDサーバの作成【シンプルモード不使用】 77 先程作成したスタートアップスクリプトについては[配置するスタートアップスクリプト]で 選択することができます。 今回は自動でNode-REDの構築を行うため、作成した名称のスクリプトを選択します。
  78. 78. Node-REDサーバの作成【シンプルモード不使用】 78 5.シンプル監視はさくらのクラウドで提供する死活監視のサービスとなります。 本件では使用しないため、デフォルトのチェックなしで進めます。
  79. 79. Node-REDサーバの作成【シンプルモード不使用】 79 6.サーバの情報はコントロールパネル上で管理するための情報を記述する項目となります。 本件では名前に判別がつくような任意の値を入力します。
  80. 80. Node-REDサーバの作成【シンプルモード不使用】 80 7.その他のオプションおよび作成数はすべてデフォルトの値を使用します。 内容を確認し、問題がなければ【作成】をクリックします。
  81. 81. Node-REDサーバの作成 81 操作確認のダイアログにて、作成しても良いか改めて確認されますので、 問題がなければ【作成】をクリックすると指定したサーバやディスクの作成を開始します。 ステータスが全て成功になればサーバの作成が完了となります。
  82. 82. Node-REDサーバの作成 82 サーバが作成されました。次はターミナルソフトを使用して構築を行います。 Windows(Teraterm等)、Mac(ターミナル)を起動します。
  83. 83. コンソールでの環境のセットアップ 83 ここからはターミナルソフトで操作することを前提に進めます。Windowsの場合、TeraTermで さくらのクラウドのコンパネ記載のIPアドレスへ接続します。 初めてアクセスするサーバの場合、セキュリティ警告が表示されますが、[続行]をクリックします。 Macの場合はターミナルから【ssh -p 22 root@<サーバのIPアドレス>】でアクセスします。
  84. 84. コンソールでの環境のセットアップ(スタートアップスクリプト利用時) 84 ログインが完了したら以下コマンドを実行するとWebブラウザから該当サーバのIPアドレスに アクセスできるようになります。実行が成功しない場合nvmのパス等確認のうえ、実施します。 (# source ~/.nvm/nvm.sh 等) [root@test ~]# node-red Welcome to Node-RED =================== 22 Nov 10:00:29 - [info] Node-RED version: v0.15.2 22 Nov 10:00:29 - [info] Node.js version: v6.2.2 22 Nov 10:00:29 - [info] Linux 2.6.32-642.6.2.el6.x86_64 x64 LE 22 Nov 10:00:29 - [info] Loading palette nodes 22 Nov 10:00:29 - [warn] ------------------------------------------------------ 22 Nov 10:00:29 - [warn] [rpi-gpio] Info : Ignoring Raspberry Pi specific node 22 Nov 10:00:29 - [warn] ------------------------------------------------------ 22 Nov 10:00:29 - [info] Settings file : /root/.node-red/settings.js 22 Nov 10:00:29 - [info] User directory : /root/.node-red 22 Nov 10:00:29 - [info] Flows file : /root/.node-red/flows_test-01.json 22 Nov 10:00:29 - [info] Server now running at http://127.0.0.1:80/ 22 Nov 10:00:29 - [info] Starting flows 22 Nov 10:00:30 - [info] Started flows
  85. 85. Node-RED 初期画面 85 Node-REDは「ノード」と呼ばれる機能の固まりをシート上で組み合わせ、 ひとつの「フロー」にすることで、ほとんどプログラミングを知らない人でも プログラムを構築することができるツールとなります。 ノード パレット シート Info/Debug コンソール デプロイ
  86. 86. Node-RED WebSocketノードの作成 86 まずはWebSocketからのデータを受け取るノードを追加します。 ノードパレットから「websocket」ノードをシートにドラッグ&ドロップします。
  87. 87. Node-RED WebSocketノードの作成 87 ドラッグ&ドロップされたWebSocketノードをWクリックし、設定画面に移ります。 Typeは「Connect to」、Nameは「任意の名称」を入力のうえ、URLの行にある鉛筆マークをクリックします。
  88. 88. Node-RED WebSocketノードの作成 88 指定するPathの値は、コンパネの連携サービスで確認できる赤枠部分となります。 赤枠部分の情報をコピーして、WebSocketノードのPath部分にペーストします。
  89. 89. Node-RED WebSocketノードの作成 89 Path部分はコンパネからのペーストを行い、ドロップダウンの項目については 「Send/Receive payload」を選択し、【Add】をクリックします。
  90. 90. Node-RED WebSocketノードの作成 90 【Done】をクリックするとwebsocketノードへの設定が反映されます。 設定内容に不備がない場合はノード右上の三角マークが表示から消えます。
  91. 91. Node-RED WebSocketノードの作成 91 WebSocketノードへの設定が反映されましたが、この時点ではさくらのIoT Platformから データは入ってきていません。続いてはデータを表示するためのDebugノードを作成します。
  92. 92. Node-RED Debugノードの作成 92 次に、ノードパレットから「debug」ノードをシートにドラッグ&ドロップします。 Debugノードは自動で「msg.payload」に名前が変わります。特に設定は不要です。
  93. 93. Node-RED ノード間の接続 93 各ノードでの動作を処理として繋げるために、WebSocketノードの右端とDebugノードの左端を ドラッグ&ドロップで線を繋ぎます。
  94. 94. Node-RED フローのデプロイ 94 各ノードを接続し、準備が完了したら、右上部の【Deploy】をクリックします。 デプロイが完了するとDeployボタンがグレーアウトされ、設定した内容を元に処理が開始されます。
  95. 95. 動作確認 95 フローに問題がない場合、Websocketノード下部に「connected」と表示され、 コンソールのdebug内にプラットフォームから取得したJSONデータを確認できます。 Debugノード右端の緑マークをクリックするとdebugへの表示が停止されます。
  96. 96. 96 Webへのデータ連携 (コンテナホスティング Arukas)
  97. 97. 今回のハンズオンの流れ 97 さくらのIoT Platform マイコンおよび プログラムの構築 Webサービス連携 (さくらのクラウド) Webサービス連携 (Arukas) マイコン (Arduino Uno) 温湿度センサ (HDC1000) さくらの通信 モジュール さくらのIoT Platformの設定 仮想サーバ コンテナ
  98. 98. コンテナホスティングサービス Arukasとは 98 さくらのクラウド Arukas コア技術 提供単位 仮想マシン/OS コンテナ メリット ・従来のOSと同様に扱える ・既存環境の拡張ができる ・その他機能と併用ができる ・展開が高速 ・オーバーヘッドが少ない ・同一環境をPCでも再現可能 Server Server Host OS Host OS Hypervisor Docker Engine Bins/Libs Bins/Libs App A App A Guest OS Bins/Libs App A Guest OS Bins/Libs App B Guest OS Bins/Libs App A’ App A’ App B App B’ 仮想マシン コンテナ
  99. 99. コンテナホスティングサービス Arukas 99 「https://arukas.io/」にアクセスするとArukasのサービスページに飛びます。 Arukasは通常のメールアドレス/パスワード、およびGithubのアカウントのいずれかで ログインすることができます。
  100. 100. コンテナホスティングサービス Arukas ログイン画面 100 登録が終わっている場合、以下のいずれかを使用してログインします。 メールアドレス& パスワード Githubアカウント
  101. 101. 新しいアプリケーション(コンテナ)の作成 101 ログインすると、初めにダッシュボード画面に遷移します。 新しいコンテナ(アプリケーション)を立ち上げる場合は【新しいアプリケーションを作成】を クリックします。
  102. 102. 新しいアプリケーション(コンテナ)の作成 102 今回のハンズオンでは、予め用意されているイメージを使用してNode-REDコンテナを立ち上げます。 Image【chibiegg/node-red:0.14】、Port【1880/TCP】を入力して【アプリケーションの作成】をクリックします。 AppNameは任意の名称を入力します。
  103. 103. 新しいアプリケーション(コンテナ)の作成 103 作成が完了したら、ダッシュボード画面もしくはコンテナの名称をクリックしたDetail画面から 【起動】ボタンをクリックします。起動処理が始まり、数十秒~数分程度でコンテナが 利用可能となります。
  104. 104. 新しいアプリケーション(コンテナ)の作成 104 コンテナのデプロイ中はオレンジ色で表記されます。
  105. 105. 新しいアプリケーション(コンテナ)の作成 105 アプリが起動状態になると緑色で表示され、EndpointもしくはPort部分記載のリンクから 環境にアクセスできるようになります。
  106. 106. Node-RED ログイン画面 106 URLにアクセスするとNode-REDのログイン画面に遷移します。 記載のUsernameとPasswordでログインします。 Username : node Password : r3d
  107. 107. Node-RED 初期画面 107 Node-REDは「ノード」と呼ばれる機能の固まりをシート上で組み合わせ、 ひとつの「フロー」にすることで、ほとんどプログラミングを知らない人でも プログラムを構築することができるツールとなります。 ノード パレット シート Info/Debug コンソール デプロイ
  108. 108. Node-RED WebSocketノードの作成 108 まずはWebSocketからのデータを受け取るノードを追加します。 ノードパレットから「websocket」ノードをシートにドラッグ&ドロップします。
  109. 109. Node-RED WebSocketノードの作成 109 ドラッグ&ドロップされたWebSocketノードをWクリックし、設定画面に移ります。 Typeは「Connect to」、Nameは「任意の名称」を入力のうえ、URLの行にある鉛筆マークをクリックします。
  110. 110. Node-RED WebSocketノードの作成 110 指定するPathの値は、コンパネの連携サービスで確認できる赤枠部分となります。 赤枠部分の情報をコピーして、WebSocketノードのPath部分にペーストします。
  111. 111. Node-RED WebSocketノードの作成 111 Path部分はコンパネからのペーストを行い、ドロップダウンの項目については 「Send/Receive payload」を選択し、【Add】をクリックします。
  112. 112. Node-RED WebSocketノードの作成 112 【Done】をクリックするとwebsocketノードへの設定が反映されます。 設定内容に不備がない場合はノード右上の三角マークが表示から消えます。
  113. 113. Node-RED WebSocketノードの作成 113 WebSocketノードへの設定が反映されましたが、この時点ではさくらのIoT Platformから データは入ってきていません。続いてはデータを表示するためのDebugノードを作成します。
  114. 114. Node-RED Debugノードの作成 114 次に、ノードパレットから「debug」ノードをシートにドラッグ&ドロップします。 Debugノードは自動で「msg.payload」に名前が変わります。特に設定は不要です。
  115. 115. Node-RED ノード間の接続 115 各ノードでの動作を処理として繋げるために、WebSocketノードの右端とDebugノードの左端を ドラッグ&ドロップで線を繋ぎます。
  116. 116. Node-RED フローのデプロイ 116 各ノードを接続し、準備が完了したら、右上部の【Deploy】をクリックします。 デプロイが完了するとDeployボタンがグレーアウトされ、設定した内容を元に処理が開始されます。
  117. 117. 動作確認 117 フローに問題がない場合、Websocketノード下部に「connected」と表示され、 コンソールのdebug内にプラットフォームから取得したJSONデータを確認できます。 Debugノード右端の緑マークをクリックするとdebugへの表示が停止されます。
  118. 118. 11 8 最後に
  119. 119. 最後に ~さくらのIoT Platform~ 11 9 ハンズオンに使用したさくらの通信モジュールは必要に応じて登録を解除します。 接続ステータス横の歯車マークをクリックします。
  120. 120. 最後に ~さくらのIoT Platform~ 12 0 モジュールの設定画面に遷移します。 下部[削除する]ボタンをクリックします。
  121. 121. 最後に ~さくらのIoT Platform~ 12 1 削除してよいか確認されます。 問題ない場合は再度[削除する]ボタンをクリックします。
  122. 122. 最後に ~さくらのIoT Platform~ 12 2 モジュールの登録が解除され、表示から削除されました。 次は連携サービスとともにプロジェクトを削除します。 プロジェクト右上のゴミ箱マークをクリックします。
  123. 123. 最後に ~さくらのIoT Platform~ 12 3 プロジェクトを削除してよいか確認されます。 問題ない場合は再度[削除する]ボタンをクリックします。
  124. 124. 最後に ~さくらのクラウド~ 12 4 グローバルIPアドレスを持つサーバは攻撃対象になりますので、作成いただいたサーバは削除します。サー バがまだ起動している場合、さくらのクラウドで対象サーバのチェックを入れ、 [電源操作]から【シャットダウン】をクリックします。
  125. 125. 最後に ~さくらのクラウド~ 12 5 シャットダウン対象を確認のうえ【シャットダウン】をクリックします。 再度ダイアログにて確認が表示されますので【実行】をクリックします。
  126. 126. 最後に ~さくらのクラウド~ 12 6 シャットダウンが正常に実行されると、チェックボックス横のラインが 「緑→赤→灰」と遷移します。ラインが灰色に変化したら、再度対象となる サーバにチェックを入れ、【削除】をクリックします。
  127. 127. 最後に ~さくらのクラウド~ 12 7 今回は[接続されたディスク]についても削除しますのでチェックを入れ、【削除】をクリックします。 ダイアログが表示されますので【実行】をクリックします。
  128. 128. 最後に ~さくらのクラウド~ 12 8 削除の工程が表示されます。全てのステータスが成功となれば削除は完了です。
  129. 129. 最後に ~Arukas~ 12 9 Arukasで作成されたコンテナはインターネット上に公開されているため削除しておきましょう。 Actionの「■」ボタンをクリックしてサービスを停止します。
  130. 130. 最後に ~Arukas~ 13 0 停止に関するダイアログが表示されますので、【OK】をクリックします。
  131. 131. 最後に ~Arukas~ 13 1 該当サービスの色が変わり、停止されたことを確認したら、 ゴミ箱ボタンをクリックします。
  132. 132. 最後に ~Arukas~ 13 2 こちらも同様のダイアログが表示されますので、「OK」をクリックします。
  133. 133. 最後に ~Arukas~ 13 3 以上で作成したサービスは全て削除されました。
  134. 134. 最後に 13 4 以上でハンズオンにおける作業は全て終了となります。 お疲れ様でした!
  135. 135. 135 そこに、さくら

×