さくらのIoT

「さくらのIoT」のエンジニアが取り組んでいる事例をご紹介します。電池で動作する低消費電力の水位計測器を作成しました。計測した水位を携帯電話回線を通してクラウドサーバーに送信します。弊社は2018年にLoRa通信方式の河川水位計測システムを構築し運用を開始しました。
北海道石狩市とさくらインターネット、IoTなどの情報技術を活用した地域活性化に関する包括連携協定を締結〜4月よりLoRaを利用した河川水位計測システムの試行運用開始〜

当時は弊社が提供していた別のプラットフォームサービス「sakura.io」により実現していましたが、まだLTEの通信規格(Cat.1)の都合上消費電力が大きく、1年に1回の電池交換作業が必要でした。今回は機材の劣化による故障も増えてきたことから置き換えを行いました。

また、既存のLoRa変調を利用した通信はLTE-LoRaゲートウェイが必要で、水位計単体では通信が成り立ちません。設置当時のLTE通信モジュールは消費電力が大きかったため、電源が確保できる箇所にLTE-LoRaゲートウェイを設置して、消費電力の小さなLoRa通信モジュールで電池動作する水位計を運用していました。LoRaは数キロメートルの通信が可能ですが、北海道という広大な土地では1台の水位計に1台のLTE-LoRaゲートウェイが必要となり、電源が確保できない地域では設置を断念した場所もあります。また、当時はLTE通信のキャリアが選択できず、電波状況から設置が困難と判断する場面もありました。

今回、LTEにcat.M1という消費電力が小さい規格が登場したことで、携帯電話回線を直接扱える電池動作の水位計が実現できました。そして弊社が提供するセキュアモバイルコネクトはひとつのSIMで国内の3つの通信事業者を自由に選択できることから、現地の電波状況からもっとも都合の良い通信キャリアを選択することができます。

今回開発するLTE通信方式の水位計は次のような機能を提供します。

  • 水位計単体でLTE通信できて電池で動作する。
  • 電池寿命は5年程度を想定する。
  • 現地の電波状況から適切な通信キャリアを選択できる。
  • 水位計測値をグラフ化した画面で提供する。
  • 異常な値を排除して安定した測定結果を提供する。
  • 事前に設定した警戒水位を超えたときアラートメールを送信する。
  • 機器の故障や通信障害を検知してアラートメールを送信する。

構成

ハードウェア

プリント基板

Githubでガーバーデータを公開しています。
https://github.com/sakura-internet/smc_sco-ltem1wlm_nrf9160/tree/main/PCB

電池

塩化チオニルリチウム電池という一次電池を使用します。この電池は自己放電が非常に少なく、動作温度範囲が広いことが特徴です。欠点として内部抵抗が高く大きな電流を取り出すのが苦手です。火災報知器など高い信頼性と長い電池寿命が求められる装置に使われています。

塩化チオニルリチウム電池 EEMB ER34615 3.6V/19000mAh 単一サイズ
販売サイト
https://www.amazon.co.jp/gp/product/B075ZPXG6M/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&th=1

4並列の組電池にして使用します。ニッケル板をスポット溶接、電線をはんだづけして絶縁処理、アクリル板に載せて収縮チューブでシュリンク加工してあります。

超音波測距センサー

装置から水面までの距離は超音波測距センサーで計測しています。距離や水面の状態に応じて2種類のセンサーを使い分けます。超音波センサーは光センサーよりも対象の色や透明度左右されず、粉塵や汚れなどに強いため水面や雪、粉体などの計測で多用されています。
製造メーカー:MaxBotix Inc.
MB7389:測定可能距離 0.3mから5m ショートホーンタイプ
MB7051:測定可能距離 0.5mから10m ロングホーンタイプ
販売サイト
https://akizukidenshi.com/catalog/g/gM-14708/
https://akizukidenshi.com/catalog/g/gM-16343/

筐体

タカチ電機工業 防水・防塵アルミダイキャストボックス:BDN-11-16-6G

アンテナ

防水タイプのSMA接続のアンテナを採用しています。
アスニクス社 W2L-1775W1850-S200-SMP

設置

石狩市内の7カ所の河川と水路に水位計を設置しました。LoRa式水位計の設置が電波状況的に厳しく断念した箇所にも新たに設置しています。

運用

石狩市と連携して、過去氾濫を経験した河川などを優先的に設置しています。また弊社は石狩市とIoT技術を軸とした防災や地域活性化に向けての包括協定を結び取り組んでいます。過去に発生した北海道胆振東部地震のときに大停電になった際、LPWAの取り組みから見えてきたモノのデータの有用性について記載してますのでご覧ください。

ファームウェア

概要

2分毎に超音波センサー、温度センサー、電池電圧の計測を行い、UDPでサーバーに計測データを送信します。センサー以外の数値として、時刻情報、ICCID、連続送信回数、LTE通信パラメータなどを含めます。遠方の野外に設置するため、絶対にフリーズせず安定して動作することが求められます。

ファームウェア公開

Githubでファームウェアを公開しています。
https://github.com/sakura-internet/smc_sco-ltem1wlm_nrf9160

デッドロック防止と再接続制御

ウォッチドッグタイマーによる死活監視と、基地局への接続状況を確認して不通時はリセットを行うことでデッドロックを防いでいます。リセット回数に応じて再接続までの時間が延びるように制御して、nRF9160のリセットループ機能にかからないように、また過度の接続リクエストを防ぎネットワークへの負荷軽減と消費電流の低減を図っています。

  • ウォッチドッグタイマーの設定時間は計測データ送信の周期120秒+30秒です。データ送信完了時にwdt_feed()を呼び出してタイマークリア。何らかの理由でタイマークリアできなかった場合は強制的にシステムリセットされます。(ウォッチドッグタイマーはnRF9160にハードウェアとして組み込まれているのでソフトウェア要因で機能が停止することはありません)
  • データ送信時にAT+COPS?を実行して切断されていた場合はシステムリセットします。
  • 起動時の基地局接続が30秒以内に完了しなかった場合はシステムリセットされます。
  • リセット回数を記録し、リセット回数に応じたペナルティータイムを設けています。(1分、2分、4分、8分)
  • 正常に接続できた、もしくは定期送信が正常に実行された場合にはリセット回数は0になります。

超音波センサー測定値の処理

計測対処が水の流れる河川ということもあり数値にばらつきが発生します。また、反射が消失して頻繁にエラー値が出力されます。そのため次のような処理を行っています。

  • 13個の計測値を得て最後の5個をサーバーに送信する。
  • 最後の5個の数値のうち3個以上のエラーが発生した場合は再計測を行う。
  • 再計測は10回まで行う。10回の再計測でもエラーが出た場合は最後の値を採用する。
  • 5個のデータの外れ値の排除や平均化の処理はサーバー側で行う。

消費電流について

電池機器は消費電流の計測がとても重要です。高精度のデジタルマルチメーターを用意するのは価格などが問題になりますが、Nordic社のPower Profiler Kit II (PPK2)を使うことで、安く簡単に消費電流を計測することができます。

ハードウェアの設計ポイント

  • 自己消費電流が非常に低い昇降圧DCDCコンバータを使用する。(TPS63802など)
  • プルアップダウンの抵抗は出来るだけ大きくして無駄な電流を減らす。
  • 消費電流を下げられないデバイスはロードSWで電源をカットする。

ファームウェアの設計ポイント

  • パワーセービングモード(PSM)とUDP送信でLTE通信の電流を大きく下げられます。
  • ペリフェラルは必要な時以外は無効にする。(UARTの消費電流が大きいです)
  • AT%XDATAPRFL=0 のコマンドで消費電力モードをUltra-low powerにセットする。
  • Zephyrのスレッドで周期的な処理を実行完了させることで、OS側が良い感じに無用な処理を止めて消費電力を下げてくれます。

消費電流の測定例

3.6V供給 2分周期送信時
平均消費電流:約369uA
電池容量:19Ah x4本 = 76Ah(3.6V)
供給可能時間:76Ah / 369uA = 205962時間(約23.5年)
理論上は20年を超えていますが、通信状況や気候などで電流値は変化します。電池を含めたハードウェアの寿命は5年程度を見込んでいます。

無通信時の消費電流は約31.7uAです。できれば10uA以下に抑えたいところです。

送信データフォーマット

UDP送信パケット IPヘッダー20byte + UDPヘッダー8byte + データ136byte = 164byte
各要素カンマ区切り
2分に1回送信すると、1日720回、30日21600回、1年262800回
1ヶ月あたり約3.4MByte
1年で約41.1MByte

データ例
23/01/27,10:31:15+36,8981040000011214100,3678,+20.81,1833,1833,1834,1832,1833,0000000001,8,"44020","185C","008AAA5C",6,36,11,23,0,00
名前 日付 時間 ICCID 電源電圧 温度 距離1回目 距離2回目 距離3回目 距離4回目 距離5回目 送信回数
単位 文字 文字 文字 mV mm mm mm mm mm 回(max 2^32)
範囲 特になし 特になし 特になし 1800~4200 -20.00~+40.00 5m 300~4999
10m 500~9998
5m 300~4999
10m 500~9998
5m 300~4999
10m 500~9998
5m 300~4999
10m 500~9998
5m 300~4999
10m 500~9998
1~4294967295
エラー -1 -1 -1 -1 99.00 -1 -1 -1 -1 -1 なし
最大文字数 8文字 11文字 19文字 4文字 6文字 4文字 4文字 4文字 4文字 4文字 10文字
実データ例1 23/01/13 05:42:09+36 8981040000011214100 3611 +24.62 0300 0300 0300 0300 0300 0000000002
実データ例2 23/01/13 06:17:17+36 8981040000011214100 3600 -12.55 0611 0612 0612 0612 0612 0000000003
名前 バンド番号 PLMN TACコード セルID エネルギー効率 RSRP RSRQ SNR センサー種別 測定リトライ
単位 数値 数値 16進数値 16進数値 数値 数値 数値 数値 数値 数値
範囲 1〜68 "44010","44020","44051" "0000"~"FFFF" "00000000"~"FFFFFFFF" 5~9 -17~97 -30~46 0~49 0:5m
1:10m
0~10
エラー 空白 空白 空白 空白 0 255 255 127 0 0
最大文字数 2文字 7文字 6文字 10文字 1文字 3文字 3文字 3文字 1文字 2文字
実データ例1 1 "44020" "185C" "008AAA5C" 8 10 5 10 0 0
実データ例2 1 "44020" "185C" "008AAA5C" 7 12 10 20 0 1

グラフ化

Grafanaを利用して水位をグラフ化します。Grafanaはデータベースに格納したデータをグラフ化する仕組みです。GUIで設定するだけできれいなグラフを作成できます。サーバー設定とグラフ表示は次のページをご覧下さい。

まとめ

ここまで、従来の水位計と新たに設置したLTE通信方式の水位計の違いや、構成、ハードウェア、設置、ファームフェアについて説明しました。システム設計だけでなく、設置作業も石狩市の皆様と連携しながら、さくらインターネットのエンジニアが石狩市に足を運んで作業を行っています。次のページでは、サーバー設定からグラフ表示の内容を詳しく説明しております。

構成・執筆・編集
IoTプラットフォーム事業部

IoTコラムでは、さくらのIoTに関係するビジネス向けの内容や身近な例、通信技術の説明や当社エンジニアが取り組んだ開発サンプルなどを掲載しています。

2023年5月公開