✅ このハンズオンで学べること
- WioBG770Aを使った開発手法
- WioBG770Aを使って、セルラー通信でSORACOMを連携できる
🎯ゴール
- WioBG770Aの使い方が分かる
- WioBG770Aを使って、セルラー通信でSORACOMと連携が出来る
🗺全体の流れ
-
💻環境構築
ArduinoIDEのインストールやライブラリなどのインストールを行います。 -
🎛 WioBG770A編
ボタン/ブザー/加速度センサーなどをWioBG770Aで試します。 -
☁️SORACOM設定編
SORACOMのサービスを使うのに必要な事前設定をします。 -
☁️SORACOM連携編
サンプルコードを使って、データが送信されることを試します。 -
☁️データの収集・蓄積・可視化編(SORACOM Harvest Data)
ソラコムのサービス上で、データの収集・蓄積・可視化されることを確認します。 -
プロトタイプ開発編(地すべり検知デバイスのプロトタイピング)
いままでのハンズオンを組み合わせて、プロトタイプ開発を行います。
環境構築編
ここでは、ArduinoIDEを使ってWio BG770Aの開発環境を構築します。
ArduinoIDEやライブラリのインストールを行って下さい。
以下のサイトを参考に『2-2. スケッチを書き込む』まで作業を進めて下さい。
LEDが点滅することが確認出来たら、開発環境の構築は完了です。
WioBG770A編
ここでは、Wio BG770AにGroveセンサを接続して、開発を体験します。
サンプルスケッチを参考にしながら、ボタンやブザーなどの基本的な入出力を試し、Wio BG770Aの使い方に慣れていきます。
さらに、加速度センサは必須で試してもらいます。センサの値をシリアルモニタで確認しながら、コードを少しずつ改造して動作を理解しましょう。
✅ サンプルスケッチの場所
Arduino IDE上で以下の手順でサンプルスケッチを開くことが出来ます。
いろいろなセンサを試してみて下さい。
❗ grove-accelerometer.inoは、以降のハンズオンで使用するので、確認しておいてください。
[File] → [Examples] → [WioCellular]
また、以下のリンクからも、Grove対応のサンプルスケッチを確認できます。
『Grove』と書かれたサンプルスケッチを使用してください。
サンプルスケッチがどのようなものか内容が記載されています。
Groveインターフェイス
✅ シリアルモニタでログ確認
Arduino IDEのシリアルモニタ機能を使って、センサの値やログを確認します。
[Tools] → [Serial Monitor] で開けます。
シリアルモニタの改行コードはCRのみを選択してください。
参考:Wio BG770Aのサンプルスケッチぶらり旅
サンプルスケッチのちら見の順序を紹介!
どんなサンプルがあるかが分かる!
参考:Wio BG770Aの研究10:サンプルコードで実現する省電力化による長期駆動
SORACOM設定編
Wio BG770AのデータをSORACOMのサービスで収集・可視化するには、いくつかの事前設定が必要だ。SORACOMのコンソール画面にログインして、下記の手順を進めよう。アカウントがない場合は、事前にアカウントを作成する。
SIMの登録
コンソール左側のメニューから「SORACOM Air for セルラー」→「SIMグループ」を選び、適当なグループ名で新しいグループを作成する。その後「SIM管理」画面から、今回使うSIMカードを、作成したグループに割り当てる。
SIMグループの作成
コンソール左側のメニューから「SORACOM Air for セルラー」→「SIMグループ」を選び、適当なグループ名で新しいグループを作成する。
作成したSIMグループを選択して、「基本設定」→「SORACOM Harvest Data 設定」より、機能を有効化する。これにより、データの収集・蓄積・可視化が可能となる。
その後「SIM管理」画面から、今回使うSIMカードを、作成したグループに割り当てる。
・SORACOMコンソールでSIMを登録
・グループ作成 → Harvest Data有効化
以上で、SORACOMの設定は完了です。
SORACOM連携編
サンプルコードでの通信確認
SORACOM側の設定が完了したので、実際にSORACOMにデータを送って通信を確認します。
まずはサンプルコード soracom-uptime-off を使用します。
このサンプルは 「稼働時間(uptime)を Unified Endpoint に送信し、送信後にセルラーモジュール電源をオフして省電力化」 する動作です。
サンプルコードは以下です。
動作確認:シリアルモニタでログ確認
ArduinoIDEのシリアルモニタ機能を使って、ログを確認します。
[Tools]→[Serial Monitor]でシリアルモニタを開くことができます。
以下のようなログが表示されたら正常に通信が出来ています。
今回のサンプルコードでは、通信していないときは省電力化のため、LEDも光りません。
ポイント
今回のサンプルコードは、15分間隔でデータを送信するようになっています。
ハンズオンの都合上、15分間隔では長すぎるので、3分などに修正して下さい
static constexpr int INTERVAL = 1000 * 60 * 15; // [ms] ←15分間隔
static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms]
static constexpr int NETWORK_TIMEOUT = 1000 * 60 * 2; // [ms]
static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms]
static constexpr int POWER_OFF_DELAY_TIME = 1000 * 3; // [ms]
修正後
static constexpr int INTERVAL = 1000 * 60 * 3; // [ms]
static constexpr int POWER_ON_TIMEOUT = 1000 * 20; // [ms]
static constexpr int NETWORK_TIMEOUT = 1000 * 60 * 2; // [ms]
static constexpr int RECEIVE_TIMEOUT = 1000 * 10; // [ms]
static constexpr int POWER_OFF_DELAY_TIME = 1000 * 3; // [ms]
データの収集・蓄積・可視化編(SORACOM Harvest Data)
SORACOMコンソールから送信されたデータを確認します。
送信したデータは、SORACOM Harvest Dataで確認することができます。
SORACOMコンソールから、「データ収集・蓄積・可視化」を選択します。
「リソース」より今回使用しているSIMを選択します。
データが受信出来ていることが確認できます。
表示方法を切り替えることで、簡単なグラフとして可視化することが出来ます。
プロトタイプ開発編(地すべり検知デバイスのプロトタイピング)
ここでは、Wio BG770Aにセンサを接続し、センサ情報をソラコムに送信する制御を行います。
今回は、地すべり検知デバイスを想定してプロトタイピングを行います。
地すべりが発生する可能性のある山などは、電源・通信の確保が課題となることが多いです。今回のハンズオンで使用したWio BG770Aは省電力セルラー通信デバイスであるので、その特徴を存分に活かすことが出来ます。
使用するデバイス
- Wio BG770A v1.0
- Grove 三軸デジタル加速度計
- SORACOM Air for セルラー
サンプルコード
サンプルコードは以下を使用して下さい。
以下のサンプルは加速度センサからセンサ値を取得して、ソラコムに送信する動作になります。
今までのハンズオンで使用した以下のソースコードを組み合わせて、作成してあります。
・grove-accelerometer
・soracom-uptime-off
SORACOM Harvest Data Intelligence
時系列データをワンクリックでAIを用いて分析し、結果を自然言語で受け取ることができる新機能です。試してみて下さい。
❓ Q&A
Q:SIMを挿したのに通信できません
A:SIMが有効化されているか(SORACOMコンソールでステータス確認)
A:アンテナが正しく接続されているか
⚠️ よくあるハマりどころ
-
データが Harvest に出ない
→ SIM の グループ設定で Harvest Data(または他サービス)を有効化しているか確認。Unified Endpoint は入口であり、転送先の有効化が必要です。 -
待ち時間が長い
→ 既定の INTERVAL が 15分 のため、ハンズオンでは 1分程度 に変更して試すのがおすすめ。
参考リンク
以下が参考リンクです。
















