Wio BG770AをSORACOM Airでつないでみる
この記事は
本記事はSORACOM Advent Calendar 2024の1日目の記事です。
Seeed社から2024年12月に発売予定のWio BG770Aをお借りすることができたので、最初のセットアップからLチカ、SORACOM AirでのSORACOMへの接続、そしてGroveコネクタで接続したセンサーの利用まで試しました。その手順とファーストインプレッションをお届けしようと思います。
開封とセットアップ
開封すると中にカードが入っているので、そこのURLにアクセスします。
ユーザーマニュアルに従ってセットアップしていきます。なお、開発環境にはArduino IDEはv2.3.3を使用しました。
まず、File > Preferences > Additional boards manager URLsで追加のボードマネージャーのURLを追加します。
次に、Tools > Board > Boards ManagerでArduino IDEにSeeedJP nRF52 Boardsをインストールします。今回は2024/11/25現在の最新版v1.4.0を使用しました。
最後に、Tools > Manage LibrariesでWioCellularをインストールします。今回は2024/11/25現在の最新版v0.1.11を使用しました。
これでひとまず最初のセットアップは完了です。
まずはLチカ
何はともあれLチカをやってみます。
マニュアルに従ってPCとWio BG770AをUSBで接続します。端子がUSB-Cになったのが嬉しいですね。
リセットボタンをダブルクリックするとDFUモードになり、PCに「BOOT」というドライブがマウントされました。DFUモードへの移行も楽ちんですね。
File > Examples > Wio Cellular > basic > blinkを選択してサンプルコードを開きます。
/*
* blink.ino
* Copyright (C) Seeed K.K.
* MIT License
*/
#include <Adafruit_TinyUSB.h>
void setup(void) {
}
void loop(void) {
digitalWrite(LED_BUILTIN, HIGH);
delay(200);
digitalWrite(LED_BUILTIN, LOW);
delay(800);
}
いつもの感じですね。
ボードをBG770Aに変更して、ポートを選択して書き込んでみましょう。
Tools > Portを見てみると、DFUモードにしたところで私のPCにはCOM4が生えてきたのでそれを選択します。
ボードはボード選択メニューから選びます。
または Tools > Board > SeeedJP nRF52 Boards > Seeed Wio BG770Aを選択します。
書き込んでみると無事USER LEDが点滅しました。
SORACOM Airでつないでみる
それではSORACOM Air(LTE)で繋いで見ましょう。
SORACOM AirのSIMはどこのご家庭にも1枚はあるかと思いますが、とりあえず私は特定地域向けIoT SIM plan-Dを挿しました。
写真のように、金属カバーを起こしてSIMを挿します(挿す、よりは置く、というのが表現としては正解かも)。
挿入が完了したらスケッチを準備します。先ほどと同じく File > Examples > Wio Cellular > soracom > soracom-uptimeを選択してサンプルコードを開きます。
サンプルコードは行数が少し多めなので掲載はしませんが、こちらを参照ください。
TCPソケットでUnified endpointに向けてJSONデータを送信するコードになっています。規定ではインターバルが300秒となっていますので、これを5秒にしてみます。
また、 Tools > Manage Libraries からArduinojsonをインストールしておきます。
スケッチを書き込んでしばらくすると、SORACOMのコンソールのSIM管理で該当のSIMがオンラインになりました。
同じくコンソールのHarvest Dataで確認すると、データが無事送られてきてました。
センサーをつないでみる
最後に、Grove経由でセンサーを繋いで見ます。以前環境センサーを自作するときに使った、株式会社シードプラスさんのSCD40+BME680センサーボードを利用しました。
SORACOM UG夜のもくもく会に参加すると、シードプラスの前嶋さんも参加されていたので、このボードがBG770A(3.3V/I2CのGroveコネクタ)でも使えるか聞いてみたところ、使えるはずとのことでしたので早速接続してみました。
M5Stackで動作検証をしたときと同じくSeeed社さんのBME68xライブラリと、リポジトリに含まれるテストプログラムをそのまま動かしてみたのですが・・・これが動かない。
センサーのinitの段階でだんまりになってしまうので、はてこれはどうしたものかとあれこれ悩んでいたのですが、同じくその時にもくもく会に参加されていた須佐美さん(Wio BG770Aの研究の筆者)が「BG770Aのサンプルスケッチが参考になりますよ」と教えていただけたのでそちらを確認。
・・・・ありました。該当の箇所は以下になります。
WioCellular.begin();
WioCellular.enableGrovePower();
つまり、BG770Aは(恐らく省電力のために)デフォルトではGroveコネクタに通電されてないのですね。そういえば以前のWio LTE JP Versionでも同様のコードがあったことを後から確認しました(すっかり忘れてました・・)。
これを追加して再度書き込んでみると、無事センサーデータが取得できました。前嶋さん、須佐美さん本当にありがとうございました!
まとめ
マニュアルに沿ってセットアップを進めることで、簡単にWio BG770AをSORACOM Airで繋げました。また、Groveで接続したセンサーもこれまで通り利用することができました。
Lチカなどの基本的な動作も、SORACOM Airでの接続も全てサンプルコードが用意されているので、初めての方でも安心して試すことができると思います。
まだ触り始めたばかりではありますが、以前のWio LTE JP Versionと比較すると、DFUモードへの移行手順が簡単になったり、SIMの挿入がしやすかったり、USB端子がUSB-Cになったりと着実に使い勝手が向上していると感じました。
Wioの最大の特徴である省電力については、きっとアドベントカレンダーのどこかで誰かが書いてくれると思うので、そちらも楽しみです。
そして、今回はもくもく会で参加者との情報交換で無事問題を解決できました。
SORACOM UG夜のもくもく会は、第2・第4水曜日の夜に開催しています。SORACOM UGのconnpassページから参加申し込みできますので、皆さんも是非ご参加いただければ幸いです。
Discussion