Upgrade to Pro — share decks privately, control downloads, hide ads and more …

sakura.io 体験ハンズオン(入門編 Part2)/sakuraio handson part2

sakura.io 体験ハンズオン(入門編 Part2)/sakuraio handson part2

各地で開催されているさくらインターネットが提供するIoTプラットフォーム「sakura.io」のハンズオンでの資料となります。

本資料ではIoTデバイスのプロトタイピングを想定し「Arduino+sakura.ioモジュールを用いたマイコンおよびプログラムの構築」から「Node-REDを用いたWebサービス連携」までの手順をスライドでご覧いただけます。
また、ハードウェア構成を共通のコネクタ規格で接続可能なGroveに置き換えることで、より簡単に環境を立ち上げられるようになっています。

サービス詳細は以下をご確認ください。
https://sakura.io/

More Decks by さくらインターネット(IoTプラットフォーム事業)

Other Decks in Technology

Transcript

  1. sakura.io体験ハンズオン 入門編 Part2 Groveでさらに簡単にIoTサービスを実現しよう 2019/7/24 (C) Copyright 1996-2018 SAKURA Internet

    Inc. さくらインターネット株式会社 IoTチーム 西田 有騎 だれもが、データを活かせる世の中へ。
  2. 本ハンズオンの目的とお願い ⚫ 本ハンズオンは sakura.io を使用し、組込み、Web/アプリ開発、それぞれのスキルセッ トを大きく超えることなく、Internet of Things(IoT) に携わることができることをご体験 いただくものです。

    ⚫ そのため、組み込み系またはWeb/アプリ系のどちらか、または両方わからないという方に もご参加いただくことができます。 ⚫ 今回は1人に1つのキットをご用意しています。もしもご自身の知識分野で、近くの方の フォローができそうだなと思われましたら、積極的にサポートしあって進めていただければと 思います。 5
  3. Webサービス連携 ① 今回のハンズオンの流れ 6 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ 前編 後編:全ての設定が完了後 ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 ダッシュボード表示 ボタンでのデバイス制御 プロジェクト LED
  4. 今回のワークショップでご提供するもの 7 組み上げ済みキット USB2.0 ケーブル(A-B) 12W級 9V-1.3A ACアダプタ Grove Temperature

    Sensor Grove Variable Color LED x 3個 Grove Cable x 4本 下記3つの組み合わせ Arduino Uno Rev3 sakura.io シールド for Arduino Grove ベースシールド sakura.ioモジュール (アンテナ取付済み)
  5. アジェンダ 1. Webサービス連携(さくらのクラウド 前編) ₋ Node-REDサーバ用 仮想サーバ の作成 2. sakura.ioの設定

    ₋ プロジェクトの作成 ₋ sakura.ioモジュールの登録 ₋ 連携サービスの設定 3. マイコンおよびプログラムの構築 ₋ マイコン(Arduino)による開発環境の準備 ₋ 温湿度センサおよびsakura.ioモジュールの繋ぎ込み ₋ 試験用プログラムの流し込み ₋ デバイスから送信されたデータの確認 4. Webサービス連携(さくらのクラウド 後編) ₋ Node-REDでWebSocketを利用したデータ連携フロー作成(グラフ表示) ₋ Node-REDでWebSocketを利用したデータ連携フロー作成(ボタンでのデバイス制御) 8
  6. 後編:全ての設定が完了後 ダッシュボード表示 ボタンでのデバイス制御 今回のハンズオンの流れ 10 ② マイコンおよび プログラムの構築 温度センサ sakura.io

    モジュール Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Webサービス連携 ① 前編
  7. さくらインターネット 会員ID作成 ⚫ 会員IDをお持ちでない場合、さくらイン ターネット会員登録から作成します。 ⚫ 登録が完了すると、指定したメールアド レスに [email protected] より

    会員IDが記載されたメールが送信され ます。 会員IDおよびパスワードは重要な情報となりま すので、漏れないよう大事に保管ください。 11 Title:会員登録完了のお知らせ [XXX00000] ─────────────────────────────────── このメッセージはさくらインターネット会員登録フォームより 自動送信されています。このメールに心当たりのない場合は [email protected]までご連絡ください。 ─────────────────────────────────── さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) この度は、さくらインターネットに会員登録いただきまして誠に ありがとうございます。 以下の通り会員登録を受付ましたので、ご連絡させていただきます。 ============================================ ◎ 会員登録情報 会員ID : XXX00000 ご契約者名 : さくらインターネット株式会社 様 (ご担当者: さくら 太郎 様) 電子メール : [email protected] ============================================ ~~~以下省略~~~ https://secure.sakura.ad.jp/signup3/member-register/input.html
  8. Node-REDサーバの作成 ⚫ サーバ作成のステータスが成功に遷移した時点でサーバのIPアドレスを確認できます。 コントロールパネル左側の【 サーバ 】をクリックすると作成済みサーバの一覧が表示されます。 ⚫ 最右部【 ▼ 】をクリックし、【

    IPアドレスをコピー 】をクリックすることで、該当サーバのIPア ドレスをコピーすることができます。 Node-REDサーバのIPアドレスは後ほど使いますのでメモしてください。 25 ***.*** メモ情報あり
  9. Webサービス連携 ① 今回のハンズオンの流れ 28 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ 前編 後編:全ての設定が完了後 ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 ダッシュボード表示 ボタンでのデバイス制御 プロジェクト LED
  10. sakura.io コントロールパネルの考え方 29 プロジェクトC プロジェクトB プロジェクト モジュール3 ☑ データストアプラン 有償版/無償版

    ☑ 簡易位置情報提供 利用する/しない ☑ ファイル配信 ファイル1、ファイル2... 連携サービス3 モジュール / 連携サービス プロジェクトに対して複数登録可能 オプションサービス プロジェクトに対して1つ/1セット設定可能 モジュール2 連携サービス2 モジュール1 uAAAAAAAAAA 連携サービス1 WebSocket ⚫ sakura.ioは【 プロジェクト 】という単位で管理します。 ⚫ プロジェクトには【 モジュール 】【 連携サービス 】を複数紐付けることができます。 ⚫ 各種【 オプションサービス 】はプロジェクトに対して1つもしくは1セット設定できます。
  11. モジュール登録(単品) ⚫ モジュール追加に成功すると[ モジュールを追加しました ]ダイアログが表示されるので、 【 モジュール一覧へ戻る 】ボタンをクリックしてプロジェクト詳細画面に戻ります。 ※ID/PASSが正しくない、もしくは登録済モジュールを追加しようとした場合は下記ダイアログが表示されます 38

    登録が成功した場合 登録が失敗した場合 invalid は 登録用ID / 登録用パスワード のいずれかに誤りがあります、再度ご確認ください already registered は別の会員IDで登録されています、まず過去に登録した 会員IDでログインのうえ、該当モジュールの登録を解除ください
  12. Webサービス連携 ① 今回のハンズオンの流れ 47 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ 前編 後編:全ての設定が完了後 ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 ダッシュボード表示 ボタンでのデバイス制御 プロジェクト LED
  13. Arduino IDEのセットアップ ⚫ Webサイトから開発環境(Arduino IDE)を入手します。 2019/07/19時点の最新バージョンは[ 1.8.9 ]です。 ⚫ 環境がWindowsの場合は【

    Windows Installer, for Windows XP and up 】 Macの場合は【 Mac OS X 10.8 Mountain Lion or newer 】を選択します。 49 https://www.arduino.cc/en/Main/Software
  14. Arduino IDEのセットアップ ⚫ インストールはデフォルト推奨、ドライバーについても全てインストールします。 ※本スライド記載の画像はWindowsの場合です。 51 License Agreement Installation Options

    Installation Folder ドライバインストール [ I Agree ] をクリック [ Next > ] をクリック [ Install ] をクリック ドライバインストールを要求された場合、 すべて [ インストール ] をクリック
  15. Arduino IDEのセットアップ ⚫ 上部メニューバーからボードと、シリアルポートを設定します。 ボード:[ ツール ]→[ ボード:”XXX” ]から【 Arduino/Genuino

    Uno 】を選択 シリアルポート:[ ツール ]→[ シリアルポート ]から【 COMx (Arduino/Genuino Uno) 】を選択 ※Mac環境の場合はCOMポートではなく、【 /dev/… (Arduino/Genuino Uno) 】を選択ください ※うまく認識しない場合は、USBを挿し直し、Arduino IDEを再起動を試してください 54 ボードの選択 シリアルポートの選択
  16. マイコン(Arduino)の準備 ⚫ [ ファイル ]→[ スケッチ例 ]→[ 01.Basics ]→ 【

    Blink 】を選択し、 Blinkスケッチを表示します。 ⚫ 【 】をクリックしてスケッチを書き込み、該当のLEDが点滅状態になることを確認します。 何らかの問題があった場合、スケッチ下部にオレンジ色のエラーが表示されます。 55
  17. ライブラリの取得(SakuraIO) ⚫ [ スケッチ ]→[ ライブラリをインクルード ]→ 【 ライブラリを管理... 】をクリックし、

    右上検索窓から【 sakuraio 】を検索すると、[ SakuraIO by SAKURA Internet Inc. ]がヒットします。 ⚫ 最新のVer.を選択のうえ【 インストール 】をクリックすると該当ライブラリが取り込まれ、 [ INSTALLED ]が表示されます。 56
  18. FirmwareUpdate.ino ⚫ [ ファイル ]→[ スケッチ例 ]→[ SakuraIO ]→ 【

    FirmwareUpdate 】を 選択し、【 】クリックでスケッチを書き込みます。[ ツール ]→ 【 シリアルモニタ 】 もしくは【 】クリックでアップデート状況を確認します。 ⚫ 現在のバージョン情報と比較し、新しいファームウェアが存在する場合はアップデートします。 ※PCからの給電が不安定/不足している場合は [ Update Failure ] と表示され、 アップデートに失敗する場合があります。その場合、電源アダプタを接続し、再度スケッチを書き込みます。 57 旧いファームウェアが 適用されている場合 最新のファームウェアが 適用されている場合 FW更新処理実施 完了次第再起動 更新処理不要なので ログのみ表示
  19. 試験用プログラムの流し込み ⚫ Githubの該当サンプルスケッチページで【 Raw 】をクリックし、キーボードで【 Ctrl + A 】 ですべてを選択して、【

    Ctrl +C 】でコピーします。 62 https://github.com/sakuraio/handson-sample/blob/reform/firststep/part2/arduino-firststep-part2.ino // ヘッダファイル指定 Including header files #include <SakuraIO.h> // LEDの定義 Definition of LED #define LED_1 7 #define LED_2 6 #define LED_3 5 // 変数の定義 Definition of variables SakuraIO_I2C sakuraio; const int B = 4250; // B value of the thermistor const int R0 = 100000; // R0 = 100k const int pinTempSensor = A0; // Grove - Temperature Sensor connect to A0 uint32_t cnt = 0; // 起動時に1回だけ実行 Run once at startup void setup() { Serial.begin(9600); Serial.print("Waiting to come online"); for (;;) { キーボードで【 Ctrl + A 】ですべてを選択 →【 Ctrl +C 】でコピーします
  20. 試験用プログラムの流し込み ⚫ [ ファイル ]→ 【 新規ファイル 】で新しいスケッチを表示し、以下URLの内容をスケッチ にコピー&ペーストします。 【

    】をクリックし、書き込みが終わったら【 】クリックでシリアル 値、Temperature情報に加え、送信キュー情報が取得できていることを確認します。 ※書き込み時に内容を保存していない場合、スケッチを保存するか確認されますがどちらでも構いません。 63 ※問題があった場合、オレンジ色のエラーが表示されます。 https://github.com/sakuraio/handson-sample/blob/reform/firststep/part2/arduino-firststep-part2.ino
  21. デバイスから送信されたデータの確認 ⚫ サービス連携の編集画面下部に、デバイスから送信したデータがリアルタイムに表示されます ⚫ 最終到着データ (50件) ではモジュールから受け取ったデータを以下のように確認できます タイプ: プラットフォームからの内容に応じて、いくつかの種類に分かれる ・channels

    :モジュールからのデータ ・connection :接続の開始/終了 ・location :簡易位置情報 ・keepalive :WebSocketセッション確認 ペイロード: 受け取ったデータの payload部が表示される 時刻: プラットフォームで該当のメッセージ を受け取ったタイムスタンプ 65 モジュール: データを送信した モジュールのID
  22. 前編 ボタンでのデバイス制御 今回のハンズオンの流れ 68 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Webサービス連携 ① 後編:全ての設定が完了後 ダッシュボード表示
  23. Node-RED サーバへのログイン ⚫ Node-REDのアクセス画面では、[ Username ]と[ Password ]欄に 指定した【 Node-REDのログインID

    】と【 Node-REDのログインパスワード 】を 入力し、【 ログイン 】をクリックします。 70
  24. Node-RED WebSocketノードの作成 ⚫ [ URL ]欄には、sakura.ioのWebSocketのURL情報をペーストします。 ⚫ [ TLS設定 ]はデフォルトの【

    新規にtls-configを追加... 】のまま、[ 送信/受 信 ]もデフォルトの【 ペイロードを送信/受信 】を選択し、【 追加 】をクリックします。 75
  25. 動作確認 ⚫ 不備がなければwebsocket inノード下部に[ ]が表示されます。 ※2018/10/10現在、日本語表示の場合 と誤訳されて表示されます。 ⚫ 【 デバッグ(

    ))】タブをクリックするとsakura.ioからのJSONデータを確認できます。 ※debugノード右端の緑マークをクリックするとコンソールへの出力が停止されます。 81
  26. ⚫ 次に追加するフローの動作を阻害しないよう[ フロー1 ]を以下手順で無効にします。 フローの無効化 82 1. [ フロー1 ]タブをダブルクリックする

    2. フローを編集画面で[ 状態 ]が【 有効 】に なっていることを確認してクリックする 3. [ 状態 ]が【 無効 】になったことを確認できたら、 【 完了 】をクリックする 4. [ フロー1 ]タブが点線表記になり【】マークが 付いていることを確認する
  27. Node-RED フローサンプルの紹介 ⚫ 次にサンプルのフローを利用するために必要なノードをNode-REDサーバに追加します。 ⚫ 右上部の[ メニュー( )]から【 パレットの管理 】をクリックし、【

    ノードを追加 】タブ の検索窓から【 node-red-dashboard 】を検索します。 ⚫ ノードがヒットしたら【 ノードを追加 】をクリックします。 83
  28. Node-RED フローサンプルの紹介 ⚫ Githubの該当するサンプルフローページで【 Raw 】をクリックし、キーボードで【 Ctrl + A 】ですべてを選択して、【

    Ctrl +C 】でコピーします。 85 https://github.com/sakuraio/handson-sample/blob/reform/firststep/part2/nodered-firststep-part2.json [ { "id": "a4ba57e6.f91cc8", "type": "tab", "label": "グラフ表示と制御", "disabled": false, "info": "本フローはsakura.ioハンズオンで利用する、Arduino UnoとGrove温度センサ&LEDを用いたグラフ表示と制御を試すもので す。¥n¥n▪グラフ表示¥n¥nsakura.ioのWebSocket (`wss://api.sakura.io/ws/v1/.....`)サービスから送信された JSONデータを用いてダッシュボード上にグラフを描画します。¥nまた、グラ フは`http://<IPアドレス>:<指定したWeb UIポート番号>/ui/`で 確認することができます。¥n¥nオプションとして、Twittter IDを設定す ることで温度情報(Channel1)を取り出し、Twitterにメッセージを投 稿します。¥n¥n以下2点を設定しデプロイすることで動作します。 ¥n¥n1. sakuraio_in(WebSocket-inノード)¥n¥n sakura.io コンパネで確認できるWebSocketのURL (`wss://api.sakura.io/ws/v1/.....`)を設定します。¥n¥n2. Tweet(Twitterノード) ※オプション¥n¥n Ch1(temp)_parseと trigger 1hrをドラッグアンドドロップで接続します。¥n¥n 認証を行い Twitterのアカウントを連携します。(鍵アカウントでの動作は確認して キーボードで【 Ctrl + A 】ですべてを選択 →【 Ctrl +C 】でコピーします
  29. Node-RED フローサンプルの紹介 ⚫ Node-RED右上の[ メニュー( )]から [ 読み込み ]→【 クリップボード

    】を クリックし、上記URLでコピーした内容をペーストのうえ、【 読み込み 】 をクリックします。 ⚫ 記載されたJSONの内容に基づき、シートに新たにフローが作成されます。 86 コピーしたJSONをペースト https://github.com/sakuraio/handson-sample/blob/reform/firststep/part2/nodered-firststep-part2.json
  30. ⚫ [ ダッシュボード画面でのグラフ表示 ]フローでは、sakura.ioから受け取った JSONデータから温度の値を抽出し、現在値と一定間隔での推移を可視化します。 ⚫ sakuraio_inノード(websocket in)を設定することで動作します。 Node-RED フローサンプルの紹介

    88 文字列として受け取った JSONデータの変換 sakura.ioのWebSocket から情報を取得 モジュールからのデータのみを通過 (type == channels) ../ui/ にグラフとして可視化 温度(ch0)データだけを抽出
  31. Node-RED フローサンプルの紹介(GUI表示 - WebSocket設定) ⚫ 作成された【 WebSocket inノード(sakuraio_in) 】をダブルクリックし、先程の手順と 同様、種類は【

    接続 】、URLは先程指定したもの、名前は任意の名称を入力します。 ※URLは過去設定したものがある場合、ドロップダウンで指定できます ⚫ 全て設定したら【 完了 】をクリックします。 89 先ほど設定したものを選択します
  32. 前編 ダッシュボード表示 今回のハンズオンの流れ 92 ② マイコンおよび プログラムの構築 温度センサ sakura.io モジュール

    Arduino Uno ③ ハンズオン キット WebSocket 連携 サービス モジュール sakura.ioの設定 プロジェクト LED Webサービス連携 ① 後編:全ての設定が完了後 ボタンでのデバイス制御
  33. 今回のハンズオンの流れ 93 温度センサ sakura.io モジュール Arduino Uno 前編 後編:全ての設定が完了後 ハンズオン

    キット WebSocket 連携 サービス モジュール ダッシュボード表示 ボタンでのデバイス制御 プロジェクト LED 一定間隔で温度と湿度 カウント値データを送信 WebSocketにより、 リアルタイムで連携 モジュールIDとWebSocketURLが 指定されていないため動作しない 受信したJSONデータを ダッシュボードに反映 フロー内でモジュールIDと WebSocketURLを指定する ⚫ 現時点の設定ではボタンでのデバイス制御は正しく動作しません。これは制御対象となる モジュールIDと、クラウドの受け口となるWebSocketのURLを指定できていないためです。 ⚫ そのため、最後にNode-REDにて、上記2つのパラメータを指定します。
  34. Node-RED フローサンプルの紹介(デバイス制御 – モジュールIDの指定) ⚫ [ デバイス制御(モジュール...) ]フローでは、指定したモジュールIDを元に制御用の JSONデータを8個生成し、それらを変数にセットします。 ⚫

    moduleID_setノード(Function)にモジュールIDを追記することで動作します。 ⚫ このフローはデプロイされた時に1回だけ動作します。 94 JSONデータに埋め込む モジュールIDを定義 デプロイ時に自動実行 制御用JSONデータ生成 (変数context.global.xxxにセット)
  35. Node-RED フローサンプルの紹介(デバイス制御 – モジュールIDの指定) ⚫ 【 functionノード(moduleID_set) 】をダブルクリックし、設定画面を開きます。 ⚫ コード2行目の【

    %%moduleID%% 】をsakura.ioのコントロールパネルで確認でき るモジュールID(uから始まる12桁の文字列)に変更し、【 完了 】をクリックします。 95
  36. Node-RED フローサンプルの紹介(デバイス制御 – WebSocketURLの指定) ⚫ [ デバイス制御(動作部分) ]フローでは、ダッシュボード画面でクリックするボタンの 表示を行います。 ⚫

    sakuraio_outノード(websocket out)を設定することで動作します。 ⚫ ダッシュボードでボタンが押下されるたび、JSONデータを指定のWebSocketに送信します。 97 指定したWebSocketのURL にJSONデータを送信 ../ui/ でボタンとして表示 クリックされると制御用JSONデータを送出
  37. Node-RED フローサンプルの紹介(デバイス制御 – WebSocketURLの指定) ⚫ 作成された【 WebSocket out(sakuraio_out) 】ノードをダブルクリックし、設定画面 を開きます。先程の手順と同様、種類は【

    接続 】、名前は【 任意の名称 】を入力します。 ⚫ URLは過去設定したものがある場合、ドロップダウンで指定できます。 ⚫ 全て設定したら【 完了 】をクリックします。 98
  38. 今回のハンズオンの流れ 100 温度センサ sakura.io モジュール Arduino Uno 前編 後編:全ての設定が完了後 ハンズオン

    キット WebSocket 連携 サービス モジュール ダッシュボード表示 ボタンでのデバイス制御 プロジェクト LED ⚫ 以上で設定は完了です。温度センサを指で押さえ、一定間隔でグラフが変化(設定して いればツイートも)すること、ボタン操作により生成されたJSONデータにより、LEDが制御 されるまでを確認しましょう。 一定間隔でカウント値と 温度データを送信 WebSocketにより、 リアルタイムで連携 moduleで指定された モジュールにデータを送信 ボタン操作で指定した内容 に基づきJSONデータ送信 受信したJSONデータを ダッシュボードに反映 JSONは電気信号に変換され 定義したLEDの操作を実行
  39. 結局どのくらいかかったか 101 分類 名称 固定費用 変動費用 備考 購入先URL アプリケーション さくらのクラウド

    (1Core/1GB+20GB) - ¥27 3時間分 Node-RED稼働 - プラットフォーム &ネットワーク sakura.io基本料 - ¥60 1ヶ月分 10,000回の送受信 - 端末 sakura.ioモジュール ¥8,000 - https://sakura.io/product/module_l te.html sakura.io シールド for Arduino ¥5,000 - https://sakura.io/product/arduino.h tml Arduino Uno Rev3 ¥3,000 - http://akizukidenshi.com/catalog/g/ gM-07385/ USBケーブル Aオス-Bオス ¥130 - スケッチ書込用 http://akizukidenshi.com/catalog/g/ gC-07605/ ACアダプター ¥620 - 給電用 http://akizukidenshi.com/catalog/g/ gM-07772/ Grove ベースシールド ¥490 - 1ドル=110円時 https://www.seeedstudio.com/Base -Shield-V2-p-1378.html Grove 温度センサ ¥319 - 1ドル=110円時 https://www.seeedstudio.com/Grov e-Temperature-Sensor-p-774.html Grove Variable Color LED ¥1,287 - 3個、1ドル=110円時 http://wiki.seeedstudio.com/Grove- Variable_Color_LED/ 合計(税抜) ¥18,846 ¥87
  40. 【参考】連携サービスの設定(DataStore API) /channels の取得 ⚫ [ /channels ]は蓄積されたデータをチャンネル単位で取得します。単体のデータを複数の形式(入力時の形式 [ value

    ]、数値[ value_num ]、文字列[ value_str ])で格納しているため、単体でも価値のある データが活用しやすい形式となっています。 ⚫ [ /channels ]は該当UR( https://api.sakura.io/datastore/v1/docs/ )にて、前述の【 Token 】 情報、および以下のパラメータを指定することで任意の情報を取得できます。 107 【module】:モジュールのモジュールID 【size】:一度に取得するデータの数 【order】:昇順(ASC)と降順(DESC)指定 【cursor】:※後述※ 【after/before】:指定日時の以前と以後指定 【channel】:取得するチャンネル指定
  41. 【参考】連携サービスの設定(DataStore API) /channels の取得 ⚫ 指定された条件を元に【 Try it out! 】をクリックすると、[

    Response Body ]欄に 条件に応じたデータを返します。またクリック後に返される[ Request URL ]から同様の データを取得できます。 108 { "meta": { “count”: <取得した件数>, “cursor”: “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”, “match”: <ヒットした件数> }, "results": [ { “channel”: <データが格納されているチャンネル>, “datetime”: “<データがモジュールのキューに格納された時間>”, “id”: “<送信されたデータのID>", “module”: “<データが送信されたモジュールのID>", “type”: “<送信されたデータの型式>", “value”: <typeで指定された型式でのデータ>, “value_num”: <number形式でのデータ>, “value_str”: “<string形式でのデータ>" }, { "channel": … #以下[channel]単位のデータがcount数分列挙
  42. 【参考】連携サービスの設定(DataStore API) /messages の取得 ⚫ [ /messages ]は蓄積されたデータをRM単位で取得します。RMに含まれる複数チャンネルのデータの関係性が 重要な場合に活用しやすい形式です。(鍵の「解錠者ID」と「入退室フラグ」等) ⚫

    また、[ /messages ]にはモジュールの接続および切断の情報も含まれています。 ⚫ [ /messages ]は該当URL( https://api.sakura.io/datastore/v1/docs/ )にて以下のパラメータを 指定することで任意の情報を取得できます。 109 【type】:取得するRMのtype指定 【module】:モジュールのモジュールID 【size】:一度に取得するデータの数 【order】:昇順(ASC)と降順(DESC)指定 【cursor】:※後述※ 【after/before】:指定日時の以前と以後指定
  43. 【参考】連携サービスの設定(DataStore API) /messages の取得 ⚫ 指定された条件を元に【 Try it out! 】をクリックすると、[

    Response Body ]欄に条件に応じ たデータを返します。またクリック後に返される[ Request URL ]から同様のデータを取得できます。 110 { "meta": { "count": <取得した件数>, "cursor": “<sizeで指定した件数を超えた場合に、次のレスポンスを取得するためのカーソル>”, "match": <ヒットした件数> }, "results": [ { “datetime”: “<対象のRMをプラットフォーム側で受信した時間>”, "id": “<格納されたRMのID>", "module": “<データが送信されたモジュールのID>", "payload": { "channels": [ { "channel": <データが格納されているチャンネル>, "type": “<送信されたデータの型式>", "value": <typeで指定された型式でのデータ> } ] }, "type": "channels" }, { “datetime”: … #以下[message]単位のデータ
  44. 【参考】Shell.ino 120 構文 【reset】モジュールのソフトウェアリセットを実行する 出力結果 reset >reset > 備考 シリアルモニタに実行結果は表示されません。

    ソフトウェアリセットを実行するとモジュールが再起動を行います。 モデムの起動、および通信確立までにおおよそ1分程度を要します。
  45. 【参考】Shell.ino 121 構文 【enqueue】送信キューにデータを格納する 出力結果 enqueue <ch> <type> <value> >enqueue

    0 i 123 > 備考 シリアルモニタに実行結果は表示されません。 enqueueコマンドを実行すると登録したデータは送信キューに貯められます。 送信キューは最大で32個まで蓄積され、超過したキューは貯められず破棄されます。
  46. 【参考】Shell.ino 122 構文 【send】送信キューに貯められたデータを送信する 出力結果 send >send > 備考 シリアルモニタに実行結果は表示されません。

    sendコマンドを実行すると、貯められたデータは16個分を1つのメッセージとして送信します。 キューが17個以上存在する場合、2つ目のメッセージも送信され、キューから削除されます。
  47. 【参考】Shell.ino 123 構文 【size】送信/受信キューに貯められたデータ数を確認する 出力結果 size >size Tx Queue Avail:

    32 Queued: 0 Rx Queue Avail: 32 Queued: 0 備考 Tx Queue は送信キュー、Rx Queue は受信キューを表します。 Availは利用可能数、Queuedは貯められているキューの数を表します。