
「IoT(Internet of Things)」という言葉はすっかりお馴染みになり、近年ではあらゆるものがインターネットにつながる「IoE(Internet of Everything)」という概念も耳にするようになった。生活や産業のさまざまな場面で、通信端末の重要性はますます高まっている。
個人の趣味から業務用途まで、IoT機器の通信にはまずWi-Fiが選ばれることが多い。しかし特定のアクセスポイントに依存したり、ルーターの設置が必要といった制約も存在する。そこで注目されるのが、LTEや5Gといったモバイルネットワークを利用した「セルラー通信」だ。
Seeed Studioが開発した「Wio BG770A v1.0(以下、Wio BG770Aと呼称)」は、セルラー通信に対応した省電力設計のプロトタイピング用開発ボードである。この記事では、Lチカからデータ通信、センサーとの連携までを通じて、Wio BG770Aの使い勝手や性能、そしてセルラー通信を活用した開発の魅力を紹介する。
セルラー通信対応&省電力のプロトタイピングボード

Wio BG770Aは、LTE-M(LTE Cat.M1)とNB-IoTのセルラー通信に対応した開発ボードだ。LTE通信の省電力機能(PSM/eDRX)やセンサー電源制御への対応、電源OFF時でもデータを保持できる不揮発性メモリ(FeRAM)の搭載などにより、省電力で長期間稼働するIoTデバイスを想定して設計されている。
日本国内では2024年12月に発売され、2025年7月現在はSORACOM IoTストアで販売中だ(税込・送料別1万4850円、1000円分のソラコムクーポン付き)。

WioシリーズはArduino IDEで開発可能なボードとして展開されているが、Wio 3G SORACOM EditionやWio LTE M1/NB1(BG96)などの過去機種は、現在では入手しにくい状況にある。Wio BG770Aは、現行のWio LTE JP Versionと並ぶセルラー通信対応モデルであり、従来のLTEよりも低消費電力かつ広いエリアでの通信が可能なLTE-Mに対応。省電力性や電源制御機能など、用途や運用スタイルに応じた選択肢のひとつとして位置付けられる。
ボードには4つのGroveコネクタが搭載されており、さまざまなセンサーやアクチュエーターを簡単に接続できる。また、セルラー通信にシールドやモジュールの追加は必要ない。Seeed StudioのGroveエコシステムという豊富な資産を活用でき、単体でセルラー通信が行えるボードとして、手軽で実用的な選択肢と言えるだろう。
開発環境構築からLチカまで

今回はSeeed Studioの協力により、Wio BG770Aの実機を用いてハンズオンを行っていく。本体は49×55×13mmと手のひらに余裕で収まるサイズで、写真右上のセルラー用アンテナを取り付けて利用する。
ボードとライブラリの追加
Wio BG770Aの開発はArduino IDEで行う。Arduino公式サイトから自身の開発環境に合ったIDEをダウンロードし、Wio BG770A用のボードやライブラリを追加していこう。
※以下の手順はSeeed 日本法人による解説サイトを参照している。

まずはArduinoの基本設定から「追加のボードマネージャのURL」「https://www.seeed.co.jp/package_SeeedJP_index.json」を追記。

続いて、ボードマネージャで「wio bg770a」を検索して「SeeedJP nRF52 Boards by Seeed K.K.(1.5.0)」をインストール。さらにライブラリマネージャから「wiocellular」を検索し、「WioCellular by Seeed K.K.」も追加しておく。
ボードの設定とサンプルスケッチ書き込み

Wio BG770Aと書き込み用PCはUSB Type-Cケーブル(別売)で接続する。ボード追加が正しくできていれば、書き込み先のボードとして「SeeedJP nRF52 Boards」>「Seeed Wio BG770A」が現れるので選択する。「ツール」内の設定は以下のように揃えておこう。
- Board Version = “1.0”
- Print Port = “None”
- SoftDevice = “S140 7.3.0”

「ファイル > スケッチ例 > WioCellular > basic > blink」を選択しサンプルスケッチを開く。Wio BG770A中央のLEDが1秒周期で点滅するシンプルなプログラムだ。

最後に、COMポートを確認してプログラムをアップロードする。うまくいかない場合は、写真の赤丸で示した「RESET」ボタンを2度押して書き込みモード(DFUモード)にした上でアップロードすると良い。

SIMカードの調達と取り付け

続いて、Wio BG770Aでのセルラー通信にチャレンジする。Wio BG770Aは「SORACOM IoT SIM(plan01s、plan01s-LDV、planX3)」や「特定地域向け IoT SIM(plan-D、plan-KM1)」などに対応している。今回は通信量が増えても料金に変動の少ない「plan-D」を利用するため、SORACOMのWebサイトから対応する製品を注文した。SIMカードのサイズは「ナノ」であり、「マイクロ」や「標準」と間違えないよう注意しよう。
SIMカードは注文から数日で届いた。筆者はIoT用SIMの注文が初めてだったが、Wi-Fi契約の手続きや配線工事に比べると、とてもスピーディーで手軽に感じられる。すでに全国に普及しているセルラーネットワークをそのまま利用できる、この手軽さは大きな強みだろう。

取り付けも簡単で、Wio BG770Aの背面にあるSIMスロットの金属カバーを開け、SIMカードをセットして再びロックするだけ。LTEアンテナの取り付け方法も含め、詳細は公式のガイドを参照してほしい。
SORACOM Harvest Data でデータを受け取る
Wio BG770AのデータをSORACOMのサービスで収集・可視化するには、いくつかの事前設定が必要だ。SORACOMのコンソール画面にログインして、下記の手順を進めよう。
SIMグループの作成
まずはコンソール左側のメニューから「SORACOM Air for セルラー」→「SIMグループ」を選び、適当なグループ名で新しいグループを作成する。その後「SIM管理」画面から、今回使うSIMカードを、作成したグループに割り当てる。


Harvest Dataの有効化

続いて「SIMグループ」画面で、該当グループを選択し、「SORACOM Harvest Data 設定」を開く。一番上のトグル(Harvest Data利用可否)をONにするだけで、基本的な設定は完了だ。他の項目はデフォルトのままで問題ない。
Unified Endpointの設定

同じ設定画面で「Unified Endpoint 設定」を開き、「フォーマット」を「SORACOM Harvest Data」に変更する。
「TCPエントリポイント設定」欄には「SORACOM Binary Format v1 形式のデータを受け取る」というチェックボックスがあるが、今回のプログラムではそのままにしておく。
サンプルスケッチからデータを送信
Arduino IDEを起動し「ファイル > スケッチ例 > Wio Cellular > soracom > soracom-uptime」を開く。このサンプルプログラムは、起動からの経過時間を5分ごとにアップロードするものだ。特別な設定や調整は必要なく、そのままWio BG770Aに書き込めばOK。Wi-FiのSSIDやパスワード入力が不要なのも、セルラー通信ならではの手軽さといえる。

Wio BG770Aにプログラムを書き込むと通信が始まり、Arduino IDEのシリアルモニタで状況を確認できる。
アップロードされたデータを確認するには、SORACOMコンソールのメニューから「データ収集・蓄積・可視化」→「SORACOM Harvest Data」を選択する。画面上部の「リソース」で「SIM」を選び、利用しているSIM IDを指定しよう。通信が正常に行われていれば、アップロードされ整理されたデータが表示されているはずだ。


Wio BG770AでGroveセンサーを利用する

さて、これで電源さえあればセルラーネットワークのつながる場所からデータをアップすることが可能になった。暑さ極まる昨今、移動中の温度変化を可視化できる「携帯式温度湿度センサー」を作ってみよう。
4種類のGroveモジュールが利用可能

利用するのはSeeed Studioの「Grove – SCD30搭載 CO2・温湿度センサ(Arduino用)」。Arduino用とあるが、Wio BG770Aでも問題なく利用できる。

Wio BG770AにはGroveコネクタが4つあり、それぞれDigital、Analog、I2C、UARTに振り分けられている。今回のセンサーはI2C通信を使うため、I2Cと書かれたコネクタのキャップを外して接続しよう。他にもGroveモジュールを併用したい場合は、事前にどのコネクタに何を挿すかを検討しておくとスムーズだ。
省電力ゆえに必要な立ち上げ操作
まずはローカルでセンサーを動作させるため、Grove-SCD30のサンプルスケッチを書き込んでみたところ、センサーと通信できないエラーが発生。調べてみると、Wio BG770Aは省電力設計のためデフォルトでGroveコネクタの電源がOFFになっているようだ。そのため、利用時にはプログラム内でGroveの電源をONにする必要がある。
#include "SCD30.h"
#include <WioCellular.h>
#include <Adafruit_TinyUSB.h>
#define SERIAL Serial
void setup() {
WioCellular.begin(); // セルラーモジュールを初期化
digitalWrite(PIN_VGROVE_ENABLE, VGROVE_ENABLE_ON); // Groveの電源を入れる
Wire.begin();
SERIAL.begin(115200);
SERIAL.println("SCD30 Raw Data");
scd30.initialize();
}
void loop() {
float result[3] = {0};
if (scd30.isAvailable()) {
scd30.getCarbonDioxideConcentration(result);
SERIAL.print("Carbon Dioxide Concentration is: ");
SERIAL.print(result[0]);
SERIAL.println(" ppm\n");
SERIAL.print("Temperature = ");
SERIAL.print(result[1]);
SERIAL.println(" ℃\n");
SERIAL.print("Humidity = ");
SERIAL.print(result[2]);
SERIAL.println(" %\n");
SERIAL.println(" ");
}
delay(2000);
}
サンプルスケッチを調整したもの。太字部分が主な変更箇所。

サンプルプログラムに変更を加えると、ローカル環境では問題なく温度・湿度・CO2濃度の3つの値を取得でき、Arduino IDEのシリアルモニタで確認できた。
最後に先述の「soracom-uptime」と組み合わせ、センサーで取得した値をSORACOMへアップロードする。プログラムは以下のポイントを中心に調整を行った。プログラムの詳細はこちらのリンク先を参照してほしい。
- センサー用ライブラリをインクルード(#include <SCD30.h> )
- Groveの電源をONにする(digitalWrite(PIN_VGROVE_ENABLE, VGROVE_ENABLE_ON); )
- measure関数内でSCD30の値を取得する、など

乾電池で持ち運び可能なセルラー通信デバイスができた!

最後に、Wi-Fi環境がなくても使えるセルラー通信の強みを活かし、持ち運びしやすいハードとして仕上げてみた。Wio BG770AにはType-C以外に電源供給用のコネクタが用意されており、3.4V〜17Vという広い入力電圧に対応している。今回は単3電池4本(6V)をケースに入れ給電した。


今回は5分に一度センシングしてアップロードする設定とし、一日目は自室に設置、二日目は外出時に持ち歩きながら計測を行った。

無事に動作し、SORACOM Harvest Dataに5分おきにデータが蓄積されていく。リアルタイムで見るも良し、後から眺めるも良しで活用のしがいがありそうだ。さらに、SORACOM Harvest Dataに集めたデータを表示できるダッシュボード「SORACOM Lagoon」を使うと、以下のようなグラフも簡単に制作できた。

計測結果を振り返ると、昼夜のリズムや持ち歩いていた時間帯、冷房の効いた場所にいたタイミングなどもグラフから読み取れる。7月24日の8:00にデバイスの電源を切り計測を一時的にストップしたが、乾電池の残量にはまだまだ余裕があった。
その後、7月24日の17時頃から計測を再開したところ、7月26日の6時頃までデータのアップロードを継続し、合計で1000件近くのデータを収集した時点で更新が途絶えていた。 今回は入門編として「soracom-uptime」を参照したが、より省電力にする場合はPSM(Power Saving Mode)を用いる「soracom-uptime-psm.ino」や、モジュール電源をオフして電力消費を抑止する「soracom-uptime-off.ino」などのサンプルスケッチをベースにすると良いだろう。
まとめ

Wio BG770Aを使ってまず感じたのは、ほぼArduino IDEだけで開発が完結する手軽さだ。ライブラリやボード設定も明快で、初心者でも迷いにくい構成になっている。Groveモジュールとの連携も簡単で、電子工作経験者ならスムーズに開発を進められるだろう。
SIMを使ったセルラー通信も、大きくつまずくことはなかった。Wi-Fiのようにアクセスポイントやインフラに縛られず、移動中でも安定してデータ通信ができるメリットを実感できた。SORACOM Harvest DataやSORACOM Lagoonと組み合わせれば、取得したデータの可視化も手軽に実現できる。ただし、Wio BG770Aの公式ドキュメントではSORACOMの設定に関する解説は少ないため、ある程度の前提知識は自力でのケアが必要だ。
今回のハンズオンでは省電力設計という記載にたがわず、乾電池で一週間ほど動くプロトタイプを制作できた。Wio BG770Aは発売からまだ1年経たない新しい製品だが、すでにさまざまなユーザーによる作例が公開されている。プログラムの最適化やノウハウの蓄積によって、さらなる長期運用の可能性が広がっていくだろう。気軽なプロトタイピングから業務での利用まで、セルラーIoTを活用したい人にはぜひ手に取ってほしい製品だ。
本記事はSponsored記事です。
提供:Seeed Studio / Seeed 株式会社