デバイス開発において、産業用とホビー用の距離が近づいている。FabSceneでは以前、産業向けRaspberry Pi端末「reComputer R1100」を取り上げ、RS-485経由で現場のセンサーと接続する事例を紹介した。堅牢な筐体と産業用インターフェースを備えつつ、Raspberry Piの扱いやすさが保たれ、現場で使えるコンピューティングのリアリティを感じさせるものだった。
同様に重要なのが、現場そのものを計測するセンサーだ。屋外や自然環境、農地、インフラ設備など、人の目が常に届かない場所でのセンシングには、耐久性・信頼性・低消費電力といった条件を満たす「産業グレード」の設計が欠かせない。
Seeed StudioのSenseCAPは、そうした現場向けセンシングを支えるエコシステムだ。センサー、データロガー、ゲートウェイ、アプリケーションまでを一気通貫で構成し、主な通信には低消費電力広域ネットワークであるLoRaWANも採用している。
本記事ではSenseCAPを使い、Groveセンサーを組み合わせたセンシング環境を構築していく。産業グレードのIoTをどこまで自分の手で作れるのか、その過程を追っていこう。
SenseCAPは、Seeed Studioが展開する産業向けIoTセンシングプラットフォームだ。
自然環境や農地、インフラ設備などにセンサーネットワークを展開し、リアルタイムで環境データを収集・可視化する「Wild IoT」というコンセプトのもと、センサーからアプリケーションまでを一気通貫で構成できるエコシステムを提供している。
最大の特徴は、現場で使い続けることを前提とした産業グレード設計にある。屋外環境は気温差や湿度、雨風、粉塵など条件が厳しく、電源の確保も容易ではない。SenseCAPのセンサー群は、そうした環境を前提に、高い耐久性と信頼性、低消費電力設計、長期バッテリー駆動を備えている。設置して終わりではなく、「長期間、そのままでも動き続ける」ことが求められる用途に向けた設計思想だ。
なかでもSenseCAP S210Xシリーズは、LoRaWAN通信に対応したワイヤレス産業用センサーとして設計されている。カタログスペックでは都市部で約2km、見通しの良い環境では最大10kmの通信距離を持ち、IP66の防塵防水性能と交換可能なバッテリーにより、最大10年の長期運用も視野に入る。遠隔地や農地のように、安定性と低消費電力が強く求められる環境において、既存の開発リソースの上に組み合わせて使えるオープンプラットフォームとしての魅力を備えた製品群と言えるだろう。
IoTシステムは、センサー、制御部、ゲートウェイ、アプリケーションと階層が分かれ、それぞれの設定が必要になる。結果として、ソフト・ハード・クラウドをまたぐ橋渡しが、最初のハードルになりがちだ。SenseCAPは、これらを横断する製品とサービスがそろっているため、現場センシングの入口として扱いやすい。
さらにGroveモジュールにも対応しており、趣味の電子工作の延長で試しながら、産業用途につながる感覚も掴みやすい。そこで今回は、Groveセンサーを入力装置として、SenseCAPのエコシステムを使ってセンシングから可視化までの一連の流れを構築した。
今回のシステム構成は下記の通り。
順を追って確認していこう。
SenseCAP M2 Gateway(以下Gateway)は、LoRaWANで受信したセンサーデータをインターネットへ中継する役割を担う装置だ。LoRaWANは自由に使える無線ネットワークだが、データの送り先は個別に指定する必要がある。そのため、クラウド上でデータを可視化するには、GatewayがWi-Fi(もしくはEthernet)でインターネットへ接続されている必要がある。LoRaWANとインターネットの橋渡し役として、システムに不可欠な存在だ。
まずはアンテナと本体を接続し、12VのDC電源を接続して起動する。今回はWi-Fi接続でセットアップを行った。
Gateway本体には設定用のWi-Fiアクセスポイントが内蔵されている。Ethernetコネクタ横のボタンを5秒ほど長押しすると、内蔵Wi-Fiが起動し、インジケータが青色でゆっくり点滅する。PCから「SenseCAP_xxx」というSSIDに接続し、ブラウザで 192.168.168.1 にアクセスすると、LuCI(Lua Configuration Interface)の管理画面が表示される。ログイン情報は本体ラベルに記載されている。
LuCIの上部メニューから「Network → Wireless」を開き、radio0のScanボタンをクリック。接続したいWi-Fiアクセスポイントを選択してJoin Networkを押し、パスワードを入力すればインターネット接続が完了する。
続いてLoRaWANの設定を行う。「LoRa → LoRa Network」からModeを「SenseCAP」に、「LoRa → Channel Plan」から「Region:AS923」「Frequency Plan:Asia 920–923 MHz with LBT」を設定する。これでGateway側の通信設定は完了だ。
参考記事:SenseCAP M2 Gatewayのセットアップ(Seeed K.K. エンジニアブログ)
SenseCAPには、もともと専用のモバイルアプリとして「SenseCAP Mate App」が存在していたが、現在は「SenseCraft」へと統合されている。本記事執筆時点では公式Wikiの更新が追いついておらず、画面構成や名称に一部差分があるものの、基本的な登録フローは共通だ。
まずはSenseCraftアプリをインストールし、アカウントを作成する。ログイン後、「Device」タブを開くと初期状態では何も表示されないので、右上のプラスアイコンをタップしてデバイスを追加する。スマートフォンのカメラが起動するので、Gateway背面のQRコードを読み取ろう。
QRコードを読み込むと、デバイスのIDとロケーション情報が表示される。「Add to account」をタップすれば登録は完了だ。
登録後はデバイス一覧にGatewayが表示され、ネットワークの状態も確認できる。SenseCAPの関連機器は、いずれもこのSenseCraftアプリからQRコードを読み取って登録するという共通の流れになっている。
続いて、Gatewayへセンサーデータを送信する装置として、SenseCAP S2100 Data Logger(以下、Data Logger)とSenseCAP S2110 Sensor Builder(以下、Sensor Builder)をセットアップしていく。Data Loggerがデータの集積とLoRaWAN通信を担当し、Sensor BuilderがGroveセンサーの制御と変換を受け持つ構成だ。
SenseCAP S2100 Data Loggerは、RS-485(Modbus-RTU)、アナログ入力、GPIOセンサーなどに対応した産業向けデータロガーだ。接続したセンサーの値を取得し、LoRaWANネットワーク経由でGatewayへと送信する役割を担う。
IP66の防塵防水設計と低消費電力設計により、屋外環境での長期運用を前提としている。電源は内蔵バッテリー駆動に加え、12V外部電源にも対応しており、外部電源接続時には内蔵バッテリーがバックアップ電源として機能する。
筐体を開けると、大容量バッテリーとターミナルブロックを備えた基板が現れる。ケーブルの引き込み部は防水・防塵仕様のキャップ構造になっており、屋外設置を強く意識した作りであることが伝わってくる。
Sensor BuilderはGroveセンサーを産業用RS-485(Modbus)通信へ変換するためのコンバータ兼制御ボードだ。
内部にはSeeed Studio XIAO RP2040(以下、XIAO RP2040)をベースにした制御基板が搭載されており、右側にはGroveセンサーを取り付けるためのスペースが用意されている。今回はここにGrove Light Sensor v1.2を取り付けた。
Sensor BuilderとData Logger間の通信は、RS-485(Modbus)で行われる。公式マニュアルに従い、両者のターミナルブロックを「RS-485 A」「RS-485 B」「電源」「GND」の4本で配線して接続した。
Sensor Builderの中核となるのが、内部に搭載されたXIAO RP2040だ。 Sensor BuilderでGroveモジュールを扱うには、公式リポジトリの手順に沿って、XIAO RP2040のセットアップを進めていく必要がある。
なお、標準で対応しているGroveモジュール以外にも、自分でライブラリを追加することができる。用途に応じて使い分けよう。
参考記事:LoRaWANセンサーのSenseCAPを設置してみました(Seeed K.K. エンジニアブログ)
基本的な流れは以下の通り。
セットアップが完了したら、同リポジトリをローカル環境に構築した上で、Arduino IDEからの example / sensorBuilder / sensorBuilder.ino をXIAO RP2040に書き込む。各センサーが初期化され、RP2040が起動すると、Data Logger側にセンサー値が届くようになる。
実際に試してみると、いくつかつまづくポイントがあった。
公式リポジトリに含まれている各種センサーのコードは3年ほど前のものとなっており、ライブラリのバージョンによってエラーが出る場合がある。
筆者の環境では、以下の修正が必要だった。
具体的には以下のファイル周辺を修正している。
環境によっては同様の修正が必要になる可能性があるので、エラーメッセージを見ながら適宜調整したい。
sensorBuilder.ino 内には、コメントアウトされた状態で、以下のコードが含まれている。
// while (!Serial); コメントアウトを解除すればPC接続時のデバッグに役立つが、独立したセンサーノードとして運用する場合には再びコメントアウトしておく必要がある。この行が有効だと、PCとのシリアル通信が開始されるまで処理が進まず、Groveセンサーが初期化されない。その結果、センサー値が正常に読み取れなくなる。
ここまでで、Data LoggerとSensor Builderが接続され、Groveセンサーの値を読み取れる状態になった。あとはSenseCraftアプリから各種設定を行っていこう。
まずは、Gatewayと同様にData Logger本体側面に印字されたQRコードをSenseCraftアプリで読み取ってデバイスを登録する。「Device」タブ右上のプラスアイコンから追加を選び、QRコードを読み込めば登録は完了だ。
登録後、デバイスの設定画面から「Device Bluetooth Configuration」を選択すると、Bluetooth経由でData Loggerと接続して詳細設定を行える。本体下部のボタンを長押ししてIDが表示されたらタップし、「Advanced Configuration」を開こう。
Informationタブではデバイス情報を確認でき、Settingsタブでは通信方式や周波数帯、アップロード間隔などを設定する。各項目の詳細は公式Wikiを参照しつつ、今回は以下のように設定した。
Basic Settings
Sensor Settings
Measurement Settingsの内容も、基本的にはデフォルトのままで問題ない。Register Addressは利用するセンサーごとに異なるため、Wikiの表記を参考に適切な値を設定しよう。Light Sensor v1.2の場合は「10」に設定した。
設定を反映したら、Informationタブ最下部にある「Measure」をタップする。ここでセンサーの値が表示されれば、Data LoggerとSensor Builderの連携は成功だ。
動作が確認できたところで、実際にデバイスを設置する。屋外での利用を想定しているため、Data Logger、Sensor Builderともに取り付け用のプレートが同梱されている。ビス留めを想定した設計だが、筆者は自宅まわりの配管に結束バンドやワイヤーで固定した。いざ屋外に設置してみると、自作のセンサーとは違う「堅牢さ」が伝わってくる。
これで必要なハードウェアの設定はすべて整った。GatewayとData LoggerはいずれもSenseCraftアプリ上に登録済みだ。Gatewayの電源をONにしてWi-Fi接続を開通させると、GatewayのステータスがOnlineになり、それにあわせてData LoggerもOnline表示へと切り替わった。もしData Loggerの通信が途切れた場合は、再度Bluetooth経由で接続し直すとよい。
集めたデータは、SenseCraft Data Platform(旧SenseCAP Portal)から確認できる。SenseCraftと同じアカウントでログインすると、ダッシュボード上にGatewayとSensor Nodeがそれぞれ1台ずつ認識されていることが確認できた。
メニューの「Sensor Node」からData Loggerのデータをチェックすると、時間の経過に応じて明るさの値が変化している様子が可視化されている。これで、LoRaWAN経由で取得した屋外センシングのデータが、クラウド上でリアルタイムに確認できるようになった。
本記事では、SenseCAPエコシステムを用いて、Groveセンサーで取得した環境データをLoRaWAN通信で送信し、クラウド上で可視化するまでの一連の流れを構築した。
Gateway、Data Logger、Sensor Builder、SenseCraftアプリを組み合わせることで、屋外センシングのシステムを自分の手で組み上げられることを確認できた。
バッテリーの持続時間や遠距離通信の限界までの検証は行えなかったものの、SenseCAPを使った産業グレードIoTの基本構成と運用イメージをしっかりと体感できた。
運用にあたっては、クラウドサービスの利用料についても確認しておきたい。SenseCraft Data Platformは、デバイスをプラットフォームに登録した時点から課金が開始される仕組みだ。ただし、初回登録時には182日間の無料期間が提供されており、約半年間は費用をかけずに動作確認や運用テストを行える。無料期間終了後は、30日で0.99ドル(約140円)、90日で2.97ドル(約420円)、365日で11.88ドル(約1680円)の料金プランから選択する形になる。年間でも1台あたり1680円程度と、長期運用を前提としたセンシングシステムとしては妥当なコストと言えるだろう。料金の詳細や支払い方法については、公式Wikiのサービス料金ページで確認できる。
公式ドキュメントは充実している一方で、アプリの更新が反映されていないなど、やや手探りになる部分もある。ただ、一度フローを体験してしまえば、つまずくことなく拡張していけるだろう。ハードウェアのラインナップも豊富で、堅牢なセンシングネットワークの構築を検討している場合には、とても有力な選択肢になるはずだ。
本記事はSponsored記事です。
提供:Seeed Studio / Seeed 株式会社