sakura.io ハンズオン
2017/9/21
(C) Copyright 1996-2017 SAKURA Internet Inc
さくらインターネット株式会社 IoT Platform Team
2
はじめに
本ワークショップの目的
3
1. 本ハンズオンはsakura.ioを使用し、組込み系エンジニアおよび
Web/アプリ開発系のエンジニアがご自身のスキルセットを
大きく超えることなく、Internet of Things(IoT)に挑戦できることを
体験いただくものです。
2. そのため各章内で技術的な詳細は極力省略しております。
3. 今回は1人1つワークショップキットをご用意しておりますが、
組込みやWeb/アプリ開発に詳しい方がいらっしゃいましたら、
ご不明点を積極的にフォローしあって進めていただければと思います。
今回のハンズオンの流れ
4
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
マイコン(Arduino Uno)
温湿度センサ
(SHT31/HDC1000)
さくらの通信
モジュール
sakura.ioの設定
仮想サーバ
① ③②
Agenda
5
1. sakura.ioの設定
₋ プロジェクトの作成
₋ さくらの通信モジュールの登録
₋ 連携サービスの設定
2. マイコンおよびプログラムの構築
₋ マイコン(Arduino)による開発環境の準備
₋ 温湿度センサおよびさくらの通信モジュールの繋ぎ込み
₋ 試験用プログラムの流し込み
₋ 【参考】デバイスから送信されたデータの確認
3. Webへのデータ連携(さくらのクラウド)
₋ Node-REDサーバ用インスタンスの作成
₋ WebSocketを利用したデータ連携フロー作成
6
sakura.ioの設定
今回のハンズオンの流れ
7
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
マイコン(Arduino Uno)
温湿度センサ
(SHT31/HDC1000)
さくらの通信
モジュール
sakura.ioの設定
仮想サーバ
① ③②
sakura.io コントロールパネル ログイン
8
sakura.io コントロールパネル(https://secure.sakura.ad.jp/iot/)にログインします。
Googleにて「さくらインターネット iot 開発者」を検索し、開発者向けページの下記ボタンからもアクセスします。
コントロールパネルへのログイン
9
既にログイン済みのセッションがない場合、以下画面にて会員認証を求められます。
会員ID、パスワードを利用してログインします。
【参考】会員IDの作成
10
会員IDをお持ちでない場合はご契約のサービスがない場合でも、さくらインターネット会員登録
(https://secure.sakura.ad.jp/signup3/member-register/input.html)から作成いただくことができます。
会員登録が正常に完了すると、メールアドレスで指定したアドレスにsupport@sakura.ad.jpより以下のような
メールが送信されます。会員IDおよびパスワードは重要な情報となりますので、漏れないよう、大事に保管ください。
Title:会員登録完了のお知らせ [XXX00000]
───────────────────────────────────
このメッセージはさくらインターネット会員登録フォームより
自動送信されています。このメールに心当たりのない場合は
support@sakura.ad.jpまでご連絡ください。
───────────────────────────────────
さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様)
この度は、さくらインターネットに会員登録いただきまして誠に
ありがとうございます。
以下の通り会員登録を受付ましたので、ご連絡させていただきます。
=============================================================
◎ 会員登録情報
会員ID : XXX00000
ご契約者名 : さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様)
電子メール : XXX@XXX.XX.XX
=============================================================
~~~以下省略~~~
プロジェクトC
プロジェクトB
sakura.ioコントロールパネルにおける考え方
11
sakura.ioでは【プロジェクト】という単位で大枠を構成し、プロジェクト内に複数の【通信モジュール】、
【連携サービス】を紐付けていきます。 【データストア】や簡易位置情報、ファイル配信といった
【オプションサービス】はプロジェクトに対して一つもしくは1セット設定することができます。
プロジェクトA
通信モジュール1
uAAAAAAAAAA
通信モジュール2
uBBBBBBBBBB
通信モジュール3
uCCCCCCCCCC
データストア
Light/Standard/…
簡易位置情報
ON/OFF
連携サービス1
WebSocket
連携サービス2
Outgoing Webhook
ファイル配信
File1/File2/…
連携サービス3
AWS IoT
プロジェクトに対して
複数紐付け可能
プロジェクトに対して
単一(1セット)設定可能
プロジェクトに対して
複数紐付け可能
約款への同意
12
初めてコントロールパネルにログインした場合、各種約款への同意を求められます。
内容をご確認いただいたうえで、[✓同意する]をクリックするとコントロールパネルにアクセスできます。
プロジェクトの作成
13
初めはプロジェクトが無いため、新規にプロジェクトを作成する必要があります。
まずプロジェクトを作成するため、[+新規プロジェクト]をクリックします。
プロジェクトの作成
14
新規プロジェクトの作成画面に遷移します。
[名称]欄に任意の名前を入力し、[追加]をクリックします。
通信モジュールの登録
15
プロジェクトが作成されました。次に通信モジュールの登録を行います。
[モジュール登録]のボタンをクリックします。
通信モジュールの登録
16
モジュールの追加画面に遷移します。指定したプロジェクトが選択されていることを確認のうえ、
登録用ID、登録用パスワード、および任意の名称を入力して、[追加]ボタンをクリックします。
通信モジュールの登録
17
モジュールの追加に成功すると[モジュールを追加しました]というダイアログが表示されます。
[ホームへ戻る]ボタンをクリックしてホームに戻ります。
ID/PASSが正しくない、もしくは既に登録されている通信モジュールを追加しようとした場合は
内容とともに[モジュールの追加に失敗しました]というダイアログが表示されます。
登録が成功した場合 登録が失敗した場合
登録用ID / 登録用パスワードのいずれかに誤りがあります、再度ご確認ください
別の会員IDに登録されています、過去登録した会員IDにログインし、解除ください
連携サービスの設定
18
通信モジュールが登録されました。最後に外部への連携サービスを設定します。
[+サービス追加]のボタンをクリックします。
連携サービスの設定(WebSocket)
19
追加サービスの選択画面に遷移します。
今回はWebSocketを作成しますので、[WebSocket]をクリックします。
連携サービスの設定(WebSocket)
20
WebSocketの作成には特に設定事項はありません。
[名前]欄に任意の名前を入力し、[作成]ボタンをクリックします。
連携サービスの設定
21
連携サービスが登録されました。この後で使用するWebSocketのURLを確認します。
該当のプロジェクトにて作成された名称の連携サービスをクリックします。
連携サービスの設定(WebSocket)
22
WebSocketを設定しました、これでコントロールパネルでの準備は完了です。
ここで表示されるWebSocketのURLはハンズオンの後半で使用しますので書き留めておいてください。
23
マイコンおよび
プログラムの構築
今回のハンズオンの流れ
24
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
マイコン(Arduino Uno)
温湿度センサ
(SHT31/HDC1000)
さくらの通信
モジュール
sakura.ioの設定
仮想サーバ
① ③②
今回のワークショップでご提供するもの
25
ジャンパーコードさくらの通信モジュール(アンテナ付)
+Arduino用シールド&Arduino Uno Rev3
USB2.0
ケーブル(A-B)
12W級 9V-1.3A
DCアダプタ
ブレッドボード
人感センサ
(SB412A)
照度センサ
(GL5537-2)
温湿度センサ
(HDC1000 or SHT31)
各種抵抗
※必要に応じてご提供
タクトスイッチ
※必要に応じてご提供
抵抗入りLED
※必要に応じてご提供
本日は使用しません
Arduino IDEのセットアップ
26
https://www.arduino.cc/en/Main/Software から開発環境(Arduino IDE)を入手します。
2017/9/21時点での最新版は 【 1.8.4 】 となります。
ご利用環境がWindowsの場合は 【 Windows Installer 】 、Macの場合は 【 Mac OS X 10.7 Lion or newer 】 を選択します。
Arduino IDEのセットアップ
27
該当の金額を選択するか(寄付する場合)、もしくは 【 JUST DOWNLOAD 】 にてダウンロードします。
Arduino IDEのセットアップ
28
インストールはデフォルト推奨、ドライバーについても全てインストールします。
#本スライド記載の画像はWindowsの場合になります。
Arduino IDEのセットアップ
29
Arduino IDEが起動したら、Arduino本体をPCに接続します。 上部メニューバーから以下2つを設定します。
ボード: [ ツール ] → [ ボード:”XXX” ] から 【 Arduino/Genuino Uno 】 を選択します。
シリアルポート: [ ツール ] → [ シリアルポート ] から 【 COMx(Arduino/Genuino Uno) 】 となるものを選択します。
Mac環境の場合はCOMポートではなく、 【 /dev/~~~(Arduino/Genuino Uno) 】 となるものを選択します。
ボードの選択 シリアルポートの選択
マイコン(Arduino)の準備
30
[ ファイル ] → [ スケッチ例 ] → [ 01.Basics ] → [ Blink ] を選択し、Blinkスケッチを表示します。
【 → 】 をクリックしてスケッチをマイコンに書き込み、該当箇所のLEDが点滅状態になることを確認します。
何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。
さくらの通信モジュールの取り付け
31
ArduinoをPCから外し、図に示すようにシールドとArduinoのピン穴と合致するようにはめ込みます。
ライブラリの取得(温湿度センサ-HDC1000)
32
[ スケッチ ] → [ ライブラリをインクルード ] → [ ライブラリを管理... ] をクリックし、
右上検索窓から 【 hdc1000 】 を検索すると、 [ HDC1000 by Yuichi Tateno ] がヒットします。
インストールをクリックすると該当ライブラリが取り込まれ、 [ INSTALLED ] が表示されます。
ライブラリの取得(温湿度センサ-SHT31)
33
[ スケッチ ] → [ ライブラリをインクルード ] → [ ライブラリを管理... ] をクリックし、
右上検索窓から【SHT31】を検索すると、 [ Adafruit SHT31 Library by Adafruit ] がヒットします。
インストールをクリックすると該当ライブラリが取り込まれ、 [ INSTALLED ] が表示されます。
ライブラリの取得(SakuraIO)
34
[ スケッチ ] → [ ライブラリをインクルード ] → [ ライブラリを管理... ] をクリックし、
右上検索窓から 【 sakuraio 】 を検索すると、 [ SakuraIO by SAKURA Internet Inc. ] がヒットします。
最新のVer.を選択のうえインストールをクリックすると該当ライブラリが取り込まれ、 [ INSTALLED ] が表示されます。
FirmwareUpdate.ino
35
[ ファイル ] → [ スケッチ例 ] → [ SakuraIO ] → [ FirmwareUpdate ] を選択し、FirmwareUpdateスケッチを表示します。
【 → 】をクリックし、 [ ツール ] → [ シリアルモニタ ] よりモジュールのファームウェアアップデート状況を確認します。
現在のVersion情報と比較し、新しいファームウェアが提供されている場合にはアップデートを実行します。
新しいファームウェアが存在する場合 最新のファームウェアが適用されている場合
ブレッドボードについて
36
ブレッドボードは場所によって接続されている場所が異なります。
下記の繋がっている部分を意識して配線を行ってください。
RDY/ADR
温湿度センサ(HDC1000/SHT31)の繋ぎ込み
37
図に従い、温湿度センサの向きに注意しながら配線します。(実際にはArduinoシールドに対して配線します)
ブレッドボード側は色で明示された位置であれば、自由に接続しても問題ありません。
温湿度センサ側のRDY/ADRピンは今回は使用しないため、何も配線しません。
GND
SDA
SCL
3.3V
<凡例>
GND
SCL
SDA
3.3V
温湿度センサの動作確認
38
[ ファイル ] → [ スケッチ例 ] → [ HDC1000 ] → [ hdc1000 ] を選択し、hdc1000スケッチを表示します。
【 → 】 をクリックし、 [ ツール ] → [ シリアルモニタ ] よりTemperature&Humidity情報が取得できることを確認します。
何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。
試験用プログラムの流し込み
39
[ ファイル ] → [ スケッチ例 ] → [ SakuraIO ] → [ HDC1000 ] を選択し、HDC1000スケッチを表示します。
【 → 】をクリックし、 [ ツール ] → [ シリアルモニタ ] より「Waiting to come online」表記の後、
カウント値、Temperature、Humidityに加え、Available(キューイング可能なチャンネル数)と
Queued(キューで送信待ちになっているチャンネル数)が表示されることを確認します。
試験用プログラムの流し込み
40
[ ファイル ] → [ スケッチ例 ] → [ SakuraIO ] → [ SHT31 ] を選択し、SHT31スケッチを表示します。
【 → 】 をクリックし、 [ ツール ] → [ シリアルモニタ ] より「Waiting to come online」表記の後、
カウント値、Temperature、Humidityに加え、Available(キューイング可能なチャンネル数)と
Queued(キューで送信待ちになっているチャンネル数)が表示されることを確認します。
【参考】デバイスから送信されたデータの確認
41
sakura.ioでは連携サービスの一つであるWebSocketで、デバイスから送信されたデータを受信できているかを
確認することができます。該当のプロジェクトで作成した連携サービスからいずれかのWebSocketをクリックします。
【参考】デバイスから送信されたデータの確認
42
サービス連携の編集画面の下部にデバイスから送信されたデータがリアルタイムで表示されます。
簡易表示モードでは通信モジュールから受け取ったデータを以下のように確認できます。
→ 温度
→ 湿度
→ カウント値
モジュール:
データを送信した
通信モジュールのID
チャンネル
データが格納された
チャンネル番号
時刻:
データがモジュールのキューに
格納された時刻のタイムスタンプ
値:
送信された値
型:
データの型式
【参考】デバイスから送信されたデータの確認
43
[ 詳細表示モードに切り替え ] をクリックすると詳細表示モードに遷移します。
モジュールは同一ですが、データの内容によりタイプやペイロードが異なります。
複数チャンネルある場合、
それぞれの最終データを表
示
クリックでログ出力を
開始/停止
タイプ:
プラットフォームからの内容に応じて、
いくつかの種類に分かれる
・channels :通信モジュールからのデータ
・connection :接続の開始/終了
・location :簡易位置情報
・keepalive :WebSocketセッション確認
ペイロードには受け取った
データのpayload部が表示
時刻:
詳細表示モードではプラット
フォームで該当のメッセージ
を受け取ったタイムスタンプ
44
Webへのデータ連携
(さくらのクラウド)
今回のハンズオンの流れ
45
マイコンおよび
プログラムの構築
Webサービス連携
(さくらのクラウド)
マイコン(Arduino Uno)
温湿度センサ
(SHT31/HDC1000)
さくらの通信
モジュール
sakura.ioの設定
仮想サーバ
① ③②
さくらのクラウド コントロールパネル ログイン
46
さくらのクラウドコントロールパネル(https://secure.sakura.ad.jp/cloud/)にログインします。
「さくらインターネット会員としてログイン:」に会員ID、パスワードを入力してログインすることができます。
会員IDをお持ちでない場合はご契約のサービスがない場合でも、さくらインターネット会員登録
(https://secure.sakura.ad.jp/signup3/member-register/input.html)から作成いただくことができます。
さくらのクラウド コントロールパネル ログイン
47
さくらインターネット会員としてログインするとアカウントの選択を求められるため、利用するアカウントを選択します。
アカウントを作成していない場合は上記 [ アカウント ] タブからアカウントとユーザを作成する必要があります。
さくらのクラウド コントロールパネル ログイン
48
[ アカウント ] タブから 【 +アカウントの作成】 をクリックすると、アカウントの作成画面に遷移します。
各種同意、および必要な情報を入力いただいたうえで作成をクリックいただくと該当のアカウントおよび
ユーザーが作成されます。
さくらのクラウド コントロールパネル ログイン
49
ユーザでログインができたら[さくらのクラウド(IaaS)]をクリックします。
Node-REDサーバの作成
50
左側のペインのサーバを選択し、右上の【 追加 】ボタンをクリックします。
はじめはサーバ追加の案内が出る場合があります。
Node-REDサーバの作成
51
デフォルトではサーバの作成は細かい設定が不要な「シンプルモード」で作成できます。
スタートアップスクリプトを利用する場合は右上の 【 シンプルモード 】 のチェックを外します。
Node-REDサーバの作成
52
サーバプランでは仮想サーバに割り当てるCPUとメモリの量を指定します。
仮想コアは 【 1 】 を、メモリは 【 1GB 】 を、それぞれ選択します。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
53
2.ディスクでは使用するディスクの種類やサイズ、インストールイメージを選択します。
アーカイブ選択のみ 【 CentOS 7.x 64bit #xxxxxxxxxxxx 】 を選択し、後はデフォルトとします。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
54
3.NICではネットワークに関する設定を指定します。
今回はすべてデフォルトの値を使用しますので変更は不要です。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
55
4.ディスクの修正ではOSに関する設定値を指定します。
管理ユーザのパスワードを入力します。ホスト名は自動生成されますが、必要に応じて任意の値を入力します。
公開鍵は今回のハンズオンでは使用しないためデフォルトの 【 なし 】 を使用します。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
56
[スタートアップスクリプト] で 【 shell 】 を選択のうえ、 [配置するスタートアップスクリプト] で
【 [public] Node-RED #xxxxxxxxxxx 】 を選択します。オプションのWebUIポート番号には 【 80 】 を入力します。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
57
5.シンプル監視はさくらのクラウドで提供する死活監視のサービスとなります。
本件では使用しないため、デフォルトのチェックなしで進めます。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
58
6.サーバの情報はコントロールパネル上で管理するための情報を記述する項目となります。
必要に応じて名前に判別がつくような任意の値を入力します。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
59
7.その他のオプションおよび作成数はすべてデフォルトの値を使用します。
内容を確認し、問題がなければ【 作成 】をクリックします。
選択/入力 任意
選択/入力 必須
Node-REDサーバの作成
60
操作確認のダイアログにて、作成しても良いか改めて確認されますので、
問題がなければ 【 作成 】 をクリックすると指定したサーバやディスクの作成を開始します。
ステータスが全て成功になればサーバの作成が完了となります。
Node-REDサーバの作成
61
サーバが作成されました。 【 http://<IPアドレス>:<指定したWeb UIポート番号>/ 】 に
Webブラウザよりアクセスします。WebUIポートに80番ポートを指定した場合はポート番号を省略可能です。
ノード
パレット
シート
Info/Debug
コンソール
デプロイ
Node-RED 初期画面
62
Node-REDは「ノード」と呼ばれる機能の固まりをシート上で組み合わせ、
ひとつの「フロー」にすることで、ほとんどプログラミングを知らない人でも
プログラムを構築することができるツールとなります。
Node-RED WebSocketノードの作成
63
まずはWebSocketからのデータを受け取るノードを追加します。
ノードパレットの入力から「websocket」ノードをシートにドラッグ&ドロップします。
Node-RED WebSocketノードの作成
64
ドラッグ&ドロップされたWebSocketノードをWクリックし、設定画面に移ります。
種類は 【 接続 】 、名前は 【 任意の名称 】 を入力のうえ、URLの行にある鉛筆マークをクリックします。
Node-RED WebSocketノードの作成
65
URL部分はsakura.ioのコンパネからのペーストを行い、ドロップダウンの項目についてはデフォルトで定義されている
【 ペイロードを送信/受信 】 を選択し、 【 追加 】 をクリックします。
Node-RED WebSocketノードの作成
66
指定するURLの値は、コンパネの連携サービスで確認できる赤枠部分となります。
赤枠部分の情報をコピーして、WebSocketノードのURL部分にペーストします。
Node-RED WebSocketノードの作成
67
【 完了 】 をクリックするとwebsocketノードへ設定が反映され、不備がない場合はノードの三角マークが消えます。
WebSocketノードへの設定が反映されましたが、この時点ではsakura.ioからデータは入ってきていません。
続いてはデータを表示するためのDebugノードを作成します。
Node-RED Debugノードの作成
68
次に、ノードパレットの出力から「debug」ノードをシートにドラッグ&ドロップします。
Debugノードは自動で「msg.payload」に名前が変わります。特に設定は不要です。
Node-RED ノード間の接続
69
各ノードの動作を繋げるために、WebSocketノード右端とDebugノード左端をドラッグ&ドロップで繋ぎます。
Node-RED フローのデプロイ
70
各ノードを接続し、準備が完了したら、右上部の 【 デプロイ 】 をクリックします。
デプロイが完了するとデプロイボタンがグレーアウトされ、設定した内容を元に処理が開始されます。
併せて、debugノードからの情報を確認するため、コンソールの 【 デバッグ 】 タブをクリックします。
動作確認
71
フローに問題がない場合、Websocketノード下部に[connected]と表示され、
コンソールのdebug内にプラットフォームから取得したJSONデータを確認できます。
debugノード右端の緑マークをクリックするとコンソールへの出力が停止されます。
Node-RED フローサンプルの紹介
72
次にサンプルのフローを利用するために、必要なノードをサーバに追加します。
Node-RED右上の 【 メニュー(三) 】 から 【 パレットの管理 】 を選択し、 【 ノードを追加 】 タブの検索窓から
【 node-red-dashboard 】 でヒットしたノードを追加します。確認に対しては 【 追加 】 を選択します。
Node-RED フローサンプルの紹介
73
Node-RED右上の 【 メニュー( 三 ) 】 から 【 読み込み 】 → 【 クリップボード 】 を選択し、画面内のポップアップ
に下記テキストファイルをコピー&ペーストすることで、フローのサンプルを呼び出すことができます。
WebSocketノードおよびTwitterノードに必要事項だけ設定することで連携を体験いただけます。
https://github.com/sakuraio/handson-sample/blob/master/node-red/graph-display-and-temperature-tweet
文字列として受け取った
JSONデータの変換
通信モジュールからの
データのみを通過
温度(ch0)データだけを抽出
温度(ch1)データだけを抽出
/ui/ にグラフとして可視化
文章を生成(実行後10分待機)
/ui/ にグラフとして可視化
Twitterアカウント連携で投稿
Node-RED フローサンプルの紹介(グラフの確認)
74
【 http://<IPアドレス>:<指定したWeb UIポート番号>/ui/ 】 にアクセスすると、取得した情報に応じて
動的にグラフを生成することを確認できます。
サーバ作成時にWebUIポート番号を 【 80 】 に設定している場合は省略することが可能です。
Node-RED フローサンプルの紹介(Twitter連携)
75
TweetノードをWクリックし、 [ Twitter ID ] 行の鉛筆マークをクリックし、案内される
Twitterアカウント認証画面に進みます。
Node-RED フローサンプルの紹介(Twitter連携)
76
認証画面は利用しているブラウザでログインしているかどうかで画面遷移が異なります。
それぞれ必要な項目を入力or確認したうえで 【 連携アプリを認証 】 をクリックすると
[ Authorised] の表記とともに認証された旨表示されますので、案内に従いウィンドウを閉じます。
まだログインしていない場合 既にログインしている場合
Node-RED フローサンプルの紹介(Twitter連携)
77
認証が成功しているとTwitter ID欄に認証したアカウントのIDが入力されています。
問題なければ 【 追加 】 および 【 完了 】 をクリックし、設定を完了します。
Node-RED フローサンプルの紹介(Twitter連携)
78
フローをデプロイすると、その時取得した温度センサの情報が文中に埋め込まれた状態で
該当のTwitterアカウントにメッセージが投稿されます。
[ メッセージ化 ] ノードの内容を書き換えることで任意の文章に変更することができます。
79
最後に
最後に ~sakura.io~
80
ハンズオンに使用したさくらの通信モジュールは必要に応じて登録を解除します。
接続ステータス横の歯車マークをクリックします。
最後に ~sakura.io~
81
モジュールの設定画面に遷移します。下部の[登録解除]ボタンをクリックします。
最後に ~sakura.io~
82
通信モジュールの登録を解除してよいか確認されます。
問題ない場合は再度[登録解除]ボタンをクリックします。
最後に ~sakura.io~
83
モジュールの登録が解除され、表示から削除されました。
次は連携サービスとともにプロジェクトを削除します。
プロジェクト右上の[削除]マークをクリックします。
最後に ~sakura.io~
84
プロジェクトを削除してよいか確認されます。
問題ない場合は再度[削除]ボタンをクリックします。
最後に ~さくらのクラウド~
85
グローバルIPアドレスを持つサーバは攻撃対象になりますので、作成いただいたサーバは削除します。
サーバがまだ起動している場合、さくらのクラウドで対象サーバのチェックを入れ、
[電源操作]から【 シャットダウン 】をクリックします。
最後に ~さくらのクラウド~
86
シャットダウン対象を確認のうえ【 シャットダウン 】をクリックします。
再度ダイアログにて確認が表示されますので【 実行 】をクリックします。
最後に ~さくらのクラウド~
87
シャットダウンが正常に実行されると、チェックボックス横のラインが「緑→赤→灰」と遷移します。
ラインが灰色に変化したら、再度対象となるサーバにチェックを入れ、【 削除 】をクリックします。
最後に ~さくらのクラウド~
88
今回は[接続されたディスク]についても削除しますのでチェックを入れ、【 削除 】をクリックします。
ダイアログが表示されますので【 実行 】をクリックします。
最後に ~さくらのクラウド~
89
削除の工程が表示されます。全てのステータスが成功となれば削除は完了です。
最後に
90
以上でハンズオンにおける作業は全て終了となります。
お疲れ様でした!
最後に
91
さくらインターネットでは、「さくらクラブ」としてハンズオン等の
イベントをともに開催いただける仲間(部員)を募集しています。
(テーマはIoTに限らず、クラウドやVPS、スタートアップ系ネタでもOK!)
ご興味があれば、Come and join us & Feel free to contact me!
連絡先 :sakura-club@sakura.ad.jp
さくらクラブ :http://www.slideshare.net/MasayaHayashi/lt20151224
92
そこに、さくら
93
参考
サンプルスケッチ
【参考】AlphaCompat.ino
94
さくらのIoT Platform α にて提供していたスケッチ(SakuraAlpha_I2C.ino)を置き換えた
プログラムです。一定間隔でカウント値を0,1,2のチャンネルに書き込み、送信します。
【参考】Shell.ino
95
シリアルモニタからのコマンド操作を提供します。改行を[CRのみ]とした後、
提供されているコマンドを手入力で確認することができます。
【参考】Shell.ino
96
構文
【version】現在のファームウェアバージョンを表示する
出力結果
version
>version
v1.0.0-161109-c566dba
備考
【参考】Shell.ino
97
構文
【serial】通信モジュールのシリアル番号を表示する
出力結果
serial
>serial
16A0100134
備考
【参考】Shell.ino
98
構文
【status】通信モジュールの通信状態を確認する
出力結果
status
>status
Online
Last Error Code: 0
備考
【参考】Shell.ino
99
構文
【sqi】通信モジュールの電波強度を確認する
出力結果
sqi
>sqi
5
備考
電波強度は5を最大として強度に伴い数値が下がり、0は圏外であることを示します。
【参考】Shell.ino
100
構文
【unixtime】UTC形式の現在時刻を表示する
出力結果
unixtime
>unixtime
1480497574
備考
【参考】Shell.ino
101
構文
【update】ファームウェアのアップデートを実行する
出力結果
update
>update
Current Version: v1.0.0-161109-c566dba
Unlock
Starting update
Waiting for update
.
備考
【参考】Shell.ino
102
構文
【reset】通信モジュールのソフトウェアリセットを実行する
出力結果
reset
>reset
>
備考
シリアルモニタに実行結果は表示されません。
ソフトウェアリセットを実行すると通信モジュールが再起動を行います。
モデムの起動、および通信確立までにおおよそ1分程度を要します。
【参考】Shell.ino
103
構文
【enqueue】送信キューにデータを格納する
出力結果
enqueue <ch> <type> <value>
>enqueue 0 i 123
>
備考
シリアルモニタに実行結果は表示されません。
enqueueコマンドを実行すると登録したデータは送信キューに貯められます。
送信キューは最大で32個まで蓄積され、超過したキューは貯められず破棄されます。
【参考】Shell.ino
104
構文
【send】送信キューに貯められたデータを送信する
出力結果
send
>send
>
備考
シリアルモニタに実行結果は表示されません。
sendコマンドを実行すると、貯められたデータは16個分を1つのRMとして送信します。
送信キューが17個以上存在する場合、2つ目のRMも送信され、キューから自動的に削除されます。
【参考】Shell.ino
105
構文
【size】送信/受信キューに貯められたデータ数を確認する
出力結果
size
>size
Tx Queue
Avail: 32
Queued: 0
Rx Queue
Avail: 32
Queued: 0
備考
Tx Queue は送信キュー、Rx Queue は受信キューを表します。
Availは利用可能数、Queuedは貯められているキューの数を表します。
【参考】Shell.ino
106
構文
【cleartx】送信キューに貯められたデータをすべて消去する
出力結果
cleartx
>cleartx
>
備考
シリアルモニタに実行結果は表示されません。
送信キューに貯められたデータの一部だけを削除することはできません。
【参考】Shell.ino
107
構文
【clearrx】受信キューに貯められたデータをすべて消去する
出力結果
clearrx
>clearrx
>
備考
シリアルモニタに実行結果は表示されません。
受信キューに貯められたデータの一部だけを削除することはできません。
【参考】Shell.ino
108
構文
【dequeue】受信キューに貯められたデータをすべて受信する
出力結果
dequeue
>dequeue
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能なデータが存在しない場合はemptyを返します。
受信されたデータはキューから自動的に削除されます。
【参考】Shell.ino
109
構文
【peek】受信キューに貯められたデータを閲覧する
出力結果
peek
>peek
empty
備考
受信キューに貯められたデータの一部だけを受信することはできません。
受信可能なデータが存在しない場合はemptyを返します。
閲覧したデータは削除されずキューに残されます。
【参考】Standard.ino
110
保持している情報をすべて書き出すプログラムです。シリアルモニタに以下の情報を出力しながら
カウント値を0チャンネルに書き込み、キューが一定量貯まると送信します。
111
参考
DataStore API
【参考】連携サービスの設定(DataStore API)
112
sakura.ioでは、蓄積データの活用として 【 DataStore API 】 を提供します。
追加サービスの選択画面で [ DataStore API ] をクリックします。
【参考】連携サービスの設定(DataStore API)
113
追加サービスの選択画面で [ DataStore API ] をクリックします。
[名前]は任意の名称を入力し、 [ 作成 ] をクリックします。
【参考】連携サービスの設定(DataStore API)
114
作成した連携サービスをクリックすると 【 Token 】 を確認することができます。
Tokenをコピーし、コンパネ右上の [ DataStore v1 Document ] をクリックします。
【参考】連携サービスの設定(DataStore API) /channels の取得
115
[ /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】:取得するチャンネル指定
【参考】連携サービスの設定(DataStore API) /channels の取得
116
{
"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 ] から同様のデータを取得できます。
【type】:取得するRMのtype指定
【参考】連携サービスの設定(DataStore API) /messages の取得
117
[ /messages ] は蓄積されたデータをRM単位で取得します。RMに含まれる複数チャンネルの
データの関係性が重要な場合に活用しやすい形式です。(鍵の「解錠者ID」と「入退室フラグ」等)
また、 [ /messages ] には通信モジュールの接続および切断の情報も含まれています。
[ /messages ] は該当URL(https://api.sakura.io/datastore/v1/docs/)にて
以下のパラメータを指定することで任意の情報を取得できます。
【module】:通信モジュールのモジュールID
【size】:一度に取得するデータの数
【order】:昇順(ASC)と降順(DESC)指定
【cursor】:※後述※
【after/before】:指定日時の以前と以後指定
【参考】連携サービスの設定(DataStore API) /messages の取得
118
{
"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 ] から同様のデータを取得できます。

【最新版誘導用】sakura.io handson