作ってみました
具体的なニーズがあり「電池不要の漏水センサ」を使ったゲートウェイを作成しました。この試作機は LTE-M通信を使用して漏水警報を LINEでリアルタイムに受け取ることができます。試作機の状態や各種の設定は BLEを使用してスマートフォンで行えるようにしてみました。

ゲートウエイなので各種通信の結節点になります。それぞれの通信を確実に行うことが作成上の課題です。今回は複数の漏水センサに対応できるようにしましたので各センサの状態を保持することも求められます。
ゲートウエイ自身に状態を表示する OLEDディスプレイを設けました。詳細な設定はスマートフォンの画面で行います。こちらは Web Bluetooth APIを使用しました。これによりWebベースで簡単に接続することを目指しました。
仕 様
• 漏水センサが漏水の検知信号の受信、複数個のセンサに対応( Beacon )
• クラウドへのデータ送信( LTE-M )
• クラウド側は漏水が発生したことをスマートフォンに通知( LINE )
• ゲートウエイの状態表示と設定操作( BLE )
漏水センサ
エイブリック株式会社が開発・製造している「バッテリレス漏水センサ」を使用しました。 なんと!電池が不要の漏水センサです。
リボン状(写真では巻いてある)で両端に赤いコネクタが付いているものがセンサリボンです。ここで漏水を検知します。漏水検知の範囲の大小により検知部の長さが異なるセンサが複数あります。
右下の棒みたいなものにコネクタがひとつ付いているものが無線タグです。ここに電子回路が収められています。センサリボンと無線タグをコネクタ接続して使用します。
詳細な情報は、エイブリック株式会社・「バッテリレス漏水センサ」のホームページをご参照ください。
● 動作原理
① 漏水が発生します
② センサリボンが漏水を吸収します
③ 吸水した水分で発電します
④ 発電した電気を無線タグ部で蓄電します
⑤ 必要な電気を蓄電したら発信回路が起動します
⑥ BLE で複数回の発信をします
※ 写真と動作原理の図はエイブリック株式会社様のご厚意で使用しました。
構成と機能の概要

左図は構成の概要です。機能の概要は下部の表をご覧ください。
使ったリーフ( ボード )
AI01 4 Sensors 温湿度などの検出
AP03 STM32 MCU CPU基板
AZ01 USB 開発時にPCと接続
AC02 BLE Suger GWと接続
AZ02 RTCµSD 状態記録
AX02 29pin ベース基板と接続
LTE-M モジュール
クラウドに接続してデータを送受信するためにLTE-M ボードを使用しました。
マイクロテクニカ
LTE-M簡単通信ボード LTE-STICK
ublox社 SARA-R410M-02
機 能 | 部 品 | 内 容 |
---|---|---|
クラウド通信機能 | LTE-STICK | LTE-Mにより3G通信をおこなう |
クラウド連携機能 | プログラム | LTE-Mを介してクラウドにつながりデータの送受信をおこなう |
漏水センサ通信機能 | BLE Suger リーフ | 複数の漏水センサから BLE(Beacon)で漏水検知信号を受信する |
漏水センサ連携機能 | プログラム | 複数の漏水センサの漏水検知信号を収集する |
温度・湿度・照度計測機能 | 4-Sensors リーフ | 本デバイスの周辺温度、湿度、照度を計測 |
リモート設定機能 | BLE Suger リーフ | スマートフォンでゲートウエイの状態表示と設定操作を行う |
LED 出⼒機能 | LED | 漏水の検知表⽰などの多⽬的に利⽤ |
表⽰機能 | OLED | 各種情報の表⽰。 RGB 96 X 64 pixcel |
電源電圧測定機能 | ADC | 電源電圧の測定 |
漏水センサとの通信
漏水センサが漏水を検知すると、BLEビーコンを発します。ゲートウエイは常にビーコンの受信モードで、漏水センサが発するビーコンの待ち受け状態になっています。
ビーコンとは?
受信相手を決めずに情報を発信するしくみです。
Bluetooth( BLE )を使用したビーコンは「BLE ビーコン」と言います。
スマートフォンとの相性が良く、観光案内やクーポン発行、来店ポイントの付与などに使われることがあります。
漏水センサはこのしくみを使用して、漏水を検知すると情報を発信します。( 誰でも受信できてしまいます。)
アドバタイジングとは?
BLEデバイスが周囲に向けて短いデータパケットを定期的に送信するしくみです。
アドバタイジングは大きく2種類あります。
・ブロードキャスト:送信しっぱなし
・コネクタブル:通信したい相手が接続要求を出して1対1で通信するきっかけにする
漏水センサはブロードキャストです。そのため相互に情報を交換する交信は行いません。
漏水センサからのデータ
漏水センサは BLEアドバタイジングを使用しています。アドバタイジングは決まられた構造があります。右表が漏水センサのアドバタイジングデータの構造です。
AD構造
BLEのアドバタイジングパケットの中には、「AD構造(Advertising Data Structure)」という小さなまとまりが複数入っています。今回の構造では2つです。
・AD1:Flags / BLEモードの基本構造
・AD2:Complete Local Name / 完全なデバイス名
各ADの内部構造は以下のとおりです。
・1byte目:ADの長さ(2byte目以降のバイト数)
・2byte目:ADのタイプ
・3byte目以降:データ(ADのタイプにより異なる)
AD1( 図中 1 ~ 8 )
ADタイプ:0x01 BLEデバイスの基本設定
LE General Discoverable Mode + BR/EDR not supported(LEモード専用、BR/EDRをサポートしない)
AD2( 図中 4 ~ 30 )
ADタイプ:0xFF メーカー独自のデータ
Manufacturer Specific Data
このADタイプの構造は以下のとおりです。
・最初の2byte(図中6,7):会社識別子
・3byte目以降(図中9~):任意の構造
UUID 部で個々のセンサを識別します。
・Proximity UUID(128bit):
漏水センサの固有ID
・MajorとMinor(16+16bit):
個々のセンサに付けられた番号
個々のセンサのラベルに記載された番号
● Advertising Data
漏水センサからの受信プログラム(実装)
ビーコンの受信処理
実装のポイントは以下のとおりです。
・漏水センサからのビーコンである
・漏水センサの固有番号を取得する
AC02 BLE Suger リーフの BLEモジュール( BGM11S22F256GA-V2 )に対応したライブラリ( TBGLib )を使用します。
ビーコンのスキャン
BLE をディスカバリモードに設定して、ビーコンの受信を待ちます。 具体的にはビーコンの受信(アドバタイジングの受信)があると以下のコールバック関数が呼び出されます。
・my_evt_le_gap_scan_response()
送信元が漏水センサであることの確認
あらかじめ定義してある漏水センサの固有ID( Proximity UUID )の一致で確認します。同IDはコールバック関数の引数である msg内の data.data[9]~に入っています。
漏水センサの固有番号の取得
漏水センサの固有番号は Minor Numberです。msg内の data.data[27]と[28]に入っています。この値を int型に変換して保存します。
・key_uuid[]: プログラム内であらかじめ定義した漏水センサの固有ID( Proximity UUID )
・sendMessageLTEM(): LTE-M通信を介して LINEにメッセージを送信する下位関数です。
・setSens(): 漏水センサから漏水があったことを記録する下位関数です。
クラウドとの通信
漏水が発生した場合は多くの場合、急いで対処することが求められます。今回は漏水を検知したときに LINEにメッセージを送ることにしました。
LINEにメッセージを送信するために LINE Notifyを使用します。接続方法は少し複雑なので ThingSpeak(シングスピーク)を経由した方法です。
LINE Notify とは?
外部システムからLINEにメッセージを送るための LINEヤフー株式会社の公式サービスです。
LINE Notifyを使用することにより、Webサービスや IoT機器からメッセージや画像などを個人の LINE アカウントや LINE グループに送信できます。
※ LINE Notifyは 2025年3月1日にサービスを停止しています。
同社からは Messaging APIを案内しています。
LTE-M とは?
LTEは、Long Term Evolutionの略で、3G(3世代携帯電話)と4G(4世代携帯電話)の中間に位置する携帯電話の通信規格です。LTE-Mとは、IoT機器向けに最適化された、低消費電力で広域な通信ができる通信方式です。LTEの一部周波数帯域のみを利用し、モジュールの低価格化と省電力化を実現しています。
ThingSpeak とは?
IoT向けのデータ収集・可視化・分析を目的としたプラットフォームです。
以下の機能があります。
・トリガーの実行
・センサーデータやデバイス情報をアップロード
・保存(ストレージ)
・グラフ表示(可視化)
・分析
ここでは ThingSpeakの中の ThingHTTPサービス(トリガーの実行 )を使用します。
クラウドとの通信プログラム(実装)
インターネットとつなぐ
最初にクラウドに接続することが必要です。接続は LTE-Mを使用しますがゲートウエイでは LTE-Mモジュールを使用しました。
詳細は過去の試作機と同じですので、以下をご参照ください。
・センサからクラウドまで ~ なぜインターネットにつなげると良いのか
インターネットの接続と送信内容
LTE-Mモジュールを制御して以下を行います。
・インターネットに接続する
・ThingSpeak の ThingHTTPサービスを起動する
LTE-M モジュールの通信
UART(シリアル通信)で通信を行います。
電子回路の注意点はモジュール自体の電源電圧が +5Vなのですが信号線(TXD, RXD)が 1.8Vです。そのため電圧変換を行っています。(NXP Semiconductors NTB0104)
Leafony Bus を介して STM32 Leaf に接続しています。Leafony から見ると UARTに文字列を送出することにより、モジュールの制御とクラウド側にデータを送出することになります。モジュールの制御は ATコマンドで行います。「ATコマンド」はアナログ回線用モデムの時代からある伝統的?な通信機器を制御するために用いられるコマンドの体系です。まだ、電話回線を通じて通信をしていたころからあります。(懐かしい)
LTE-M に送信するデータ
プログラムと独立して設定できるようにしました。あらかじめ送信したいデータ(文字列)を順番に記述した配列を用意します。個々のデータは最大100byteです。同時に待ち時間(秒単位)を設定できます。LTE-Mで回線やインターネットに接続するときは、応答時間(ゲートウエイ側としては待ち時間)が必要となるためです。ひとつのデータと送信後の待ち時間を CMD_LTEMという構造体にしました。その配列が一連の送信データです。( 例:struct CMD_LTEM alert_detected[] )
さらに複数の送信データを用意できるように messageListTLEM[]という配列を作りました。送信を行う場合は messageListTLEM[x]と指定するだけです。
以下は LINEにメッセージを投稿するための、モジュール側の制御です。
1)通信回線に接続
AT+UMNOPROF=20
"20"は NTT DoCoMo を選択しています。
2)動作モードの設定
AT+CFUN=15
MTを機能レベル15(機内モード)に設定
3)ネットワークオペレーターを選択
AT+COPS=2
GSM / LTEネットワークオペレーターを選択して登録する試みを強制
4)接続パラメータの定義
AT+CGDCONT=1,"IP","aaaaaaaa"
ローカルコンテキスト識別パラメータによって識別される、PDPコンテキストの接続パラメータを定義
"1"は以降使われるIDとして設定、"IP"はPDPタイプ、"aaaaaaaa"(仮)には APN(携帯電話回線から他のネットワークへの接続窓口となるゲートウェイ)を指定
5)認証パラメータを設定
AT+UAUTHREQ=1,1,"bbbbbbbb","cccccccc"
定義されたPDP/EPSベアラの認証パラメータを設定
"1"は前項で設定したID、次の"1"は Authenticationタイプ、"bbbbbbbb"(仮)は Username、"cccccccc"はPassword
6)ネットワークオペレーターを選択
AT+COPS=0
前項3)と同様ですが、ここでは自動を指定
以上で通信回線を開き、インターネットプロバイダを介してインターネットと接続できました。
AT+UHTTP 以降は、接続したいWebを指定してメッセージを送信しています。
・送信するデータに”(ダブルクォーテーション)が含まれる場合はエスケープシーケンスに
しています。
上記では \" です。(処理系により \ でなくバックスラッシュ表記になります。)
センサからクラウドまで ~ いろいろな通信とプログラムを使う
接続する相手によりいろいろな種類の接続(通信)手段を使用します。使用している通信とその種類です。
使用している通信 | 種 類 | 実際のポート |
---|---|---|
環境を知るセンサ(温度等) 4-Sens. Leaf |
I2C | PB9, PB8 |
漏水センサ、スマートフォン BLE Leaf |
UART | PA0, PA1 |
インターネット接続、LINE LTE-Mボード |
UART | PA9, PA10 |
USB(デバッグ) | USB | PA3, PA2 |
OLED(オプション) | SPI | PA8, PB6, PA7, PA5, PB5 |
デバイスやシステムによりいろいろな種類のプログラムやクラウドサービスを使用します。使用しているプログラムやサービスとその種類です。
使用しているプログラム等 | 対 象 | 備 考 |
---|---|---|
Arduino | Leafony | 組み込み系プログラミング |
JavaScript | SmartPhone | Web プログラミング |
html / css | Web | Web ページ記述 |
bootstrap | Web | Web ページ記述 |
JavaScript, PHP | Server | サーバサイドプログラミング |
ThingSpeak | サービス | ThingHTTP サービス |
LINE Notify | サービス | メッセージ送信サービス |
設計する
ソフトウエアまで含めたブロック図
全体の構成をブロック図で検討しました。
組み込み系はハードウエアとプログラムが密接な関係にあるため、両面から全体の構成がイメージできるようにブロック図を書きました。
Arduinoを使用しました。ライブラリで対応できるところはライブラリで対応して、なるべくシンプルになるように構成しました。4-Sensors などは Leafonyサイトで公開されている作例や、当社で過去に制作した試作機の回路とコードなど実績のあるものを流用しました。
ピン(ポート)配置表
MCUのピン(ポート)アサインをおこないます。
最初に使用するMCUにより利用できるポートが決まります。以下の図では左端の AP03(STM32)です。
次に接続するリーフ接続ポートを並べます。今回は USB リーフ(AZ01)、BLE Sugerリーフ(AC02)、4-Sensorsリーフ(AI01)、RTC&maicroSDリーフ( Z02)です。これらのリーフの使用ポートは事前に決まっていますので、そのポートは優先的に決まります。外部に接続する周辺部品を接続するポートは、リーフで使用していないポートになります。
今回は、LTE-Mボード、OLED(表示器)、RGB-LED、その他(スイッチや電源電圧監視)です。
それぞれのポートは、ADCやUART、I2C,SPIなどMCUの内部と関連深い(得意とする)ポートがあります。(変更できる場合もあります。)ポートの特徴も考慮しながら個々のポートの特徴も配慮して決めていきます。
(ご参考)ポートを決めるときに便利な表を用意しました。こちらです。
プログラムの設計
今回のプログラムの特徴である、漏水センサ( BLEのアドバタイジング受信 )と、LTE-Mを介したクラウドへの送信の要点は前記のとおりです。
アプリケーション部分も仕様(ソフトウエア)を機能に分けて、機能ブロック間の関係を明確にします。私はデータを軸に考えますのでデータの構造と流れを中心に設計していきます。以下の図は各周辺デバイスとデータの流れを中心にした機能ブロック図です。
このアプリケーションの主要機能はゲートウエイです。受信したデータを送信する中継機能です。
下図の青色の処理は、複数の漏水センサからのデータを受信して状態を保存する主要部です。赤色の処理は LTE-Mを介してクラウド経由で LINEメッセージを発する機能です。緑色の部分はスマートフォンと Web Bluetooth APIで接続して状態を表示したり、設定値を操作する機能です。
デバッグから組み立て
回路図はシンプルです。機能の多くがほぼモジュールのため相互に接続することと、電源がメインになります。Leafonyを使用すると簡単に実現できます。
ユニバーサル基板で試作しました。なるべく系統別に配線して、グランド線も一点アースに近い形にしてみました。
高さ方向にも重なる部分があるため、各部品が干渉しないことを 3D CADで簡単に確認をしました。
ブレッドボード上で回路構成に問題がないか、確認しているところです。一応、波形も確認して極端に相違(崩れやなまり)がないことも見ています。
プログラムのデバッグ中です。リーフブロックが安定して置けるように単3電池ケースを利用しています。ケーブルが結構重いので不意の移動を防ぎます。
便利グッズ / ブレッドボードに USBから +3.3Vまたは +5Vを給電できるモジュールです。ブレッドボード用USB電源ボード(SBM-007・サンハヤト製)です。
ケースは「密検出ゲートウエイ」を試作したときに作成したアクリルケースを流用しました。不要な丸穴がありましたが、ぴったりの丸穴カバーがありました。
ユニバーサル基板をぴったりの寸法に切ってサイズの確認です。右上と左下のねじ部に小さな四角のアクリル板があります。これでがたつきをなくしています。
部品配置の検討段階。各部品を仮配置して干渉しないこと、配線が可能なことを確認します。ユニバーサル基板は配線にも制約があり試行錯誤します。(結構、楽しい)
部品配置でコネクタや操作用のスイッチなどの場所は、ケースの穴位置とサイズに影響を受けます。操作性を確認しながら位置決めします。
主要部品(主にモジュール類)の配置の検討をしています。グランド(Gnd)の取り回しも性能に影響する場合がありますので、慎重に行います。
すべての部品を実装したところです。
ケース止めビスのところに仮足を付けました。これでデバッグが可能になります。
完 成!
右が今回作成したゲートウエイ、左がバッテリレス漏水センサです。

スマートフォン側の機能
画面構成と機能
ゲートウエイをスマートフォン連携モードにすると、スマートフォンで以下ができます。
・ゲートウエイの情報を表示
・各漏水センサの状況表示
・各漏水センサの設定
画面A. メインページ
ゲートウエイの情報を以下のとおりに表示します。
・デバイス名
・BLE上の名称
・漏水検知の有無
・周囲温度、湿度、明るさ
・電源電圧
画面B. センサリスト・ページ
複数の漏水センサを登録することができます。同時に使用の可否の登録もできます。以下のとおりです。
・Alarm:漏水検知の有無
漏水検知でチェック、復旧後にチェックを外す
・Keepalive:使用の有無
使用の有無(登録して使用停止もあり)
・No.:センサ番号
・ID:漏水センサの固有番号
試験発信した情報から IDを抜き出して表示
・Record:センサの登録
登録対象とするセンサを選択
画面A. メインページ
画面B. センサリスト・ページ
試験用センサ・エミュレータ
Leafonyの構成
以下の構成で作りました。
・AP01 AVR MCU MCU基板
・AZ01 USB 開発時にPCと接続
・AC02 BLE Suger GWと接続
・AI04 LCD 操作用(ID選択と発信)
・AV03 AA BAT 電源基板と電池ケース
センサ・エミュレータの必要性
漏水センサの動きをまねるエミュレータを作りました。
今回使用した漏水センサは、センサに実際に水をかけないと信号( BLE アドバタイジング )を発しません。その動作も、水をかけてから信号の送信まで数分間かかります。また、1回しか使用できません。( 最近、複数回使用できるタイプが発売されています。)
デバッグ時は頻繁に動作確認の試験を行います。実際の漏水センサを使用することはかなり難しい状況です。このときに、漏水センサの信号を発信するエミュレータがあると便利です。大幅に時短ができます。
センサ・エミュレータの作成
実際の漏水センサと同じ信号( BLE アドバタイジング )を発するエミュレータです。ゲートウエイは複数のセンサに対応しますので、ひとつのエミュレータで複数の IDに切換えができるようにしました。
Leafony が便利
機器の設計開発では、このように設計開発の対象となる機器以外にも動作確認試験用の機器や治具が必要になります。この様なときに Leafonyは簡単に機器や治具を作ることができます。
小さなプログラムなので AVR を搭載した AP01リーフを使用しました。
操作部分は AI04リーフを使用しています。キャラクタLCDとプッシュボタンが二つ搭載されています。複数のセンサを疑似するために IDの選択と、信号発信を行うためのスイッチが必要です。このスイッチに割り当てました。
電池は単3乾電池が使える AV03リーフ(電池ボックス)を使用しました。電池が入ることによりある程度の重さがあり安定します。( コイン型では LCDリーフなど上部が重たくなり安定しずらいこと、単3乾電池の方が長持ちするからです。)
※ エイブリック株式会社様から「死活監視タイマ」が発売されています。こちらも漏水に代えて発報する機能があります。
IoTを作る 驚きのバッテリーレス
今回使用した「バッテリーレス漏水センサ」は文字通り電池が不要です。
電池をはじめ外部電源が不要というのは、大きな利便性の向上です。同時に技術者(の端くれ)としては何とも不思議でとても興味深く、試作機の作成以前にそちらの方に気を取られてしまいました。
情報を読み進めていくと基本仕様で、検知水量が最小 150μl と言うことでこれもまた驚きました。確かに2種類の金属と電解液を組み合わせればイオン化傾向により電池(起電力)になりますが、そのときの水量が 150μl( 単位が ml ですらない )というごく少量です。
しかも、省電力である BLEと言いながらそれなりに電波を発することができる電気を蓄電できるというのも驚きです。発電量(蓄電量)と必要な電力量のバランスを編み出すのにただならないご努力があったのかなと思いました。
日ごろ電子回路やプログラムなどに触れていても、隣接する電気化学はちょっと異なる世界です。IoTは Edgeでありその環境は多様で厳しい場合も少なくありません。その電源も常に課題になります。センサも同様ですが、電子電機の世界からリアルの世界に一歩踏み出すには、多くの知見が必要なことをあらためて感じました。
-・-
「バッテリーレス漏水センサ」で使用されている「CLEAN-Boost技術」( センシング機能付き間欠電源変換回路技術 )は、エイブリック株式会社と、立命館大学 理工学部 電子情報工学科 マイクロパワーシステム研究室の道関隆国教授と田中亜実講師の共同研究開発によるものとのことです。
この技術は、 2019年10月14~17日にアメリカ カリフォルニア州サンノゼで開催された国際会議 S3S ( IEEE SOI - 3D - SUBTHRESHOLD MICROELECTORONICS TECHNOLOGY UNIFIED CONFERENCE )2019 において、「Best Paper Award」に選ばれました。受賞対象の論文は「150-nW FD-SOI Intermittent Startup Circuit for Micropower Energy Harvesting Sensor」とのことです。
最後までご覧いただきありがとうございました!
製作記の記載内容は制作者の意見です。大和無線電機株式会社の公式な見解ではありません。本記事には各企業や組織の登録商標、商標が含まれています。
●
●
●
●
●
( 次回予告 )教材ロボット / 組み込み用教材として考える
Leafony は教材としても優れた面を持ちます。次回は Leafonyを教材として考えた場合の試作検証を行います。
ロボットは小中学校向けとして発売されている既存の教材を使用します。ゼロから作るのではなく、既存の製品を組み合わせることで開発時間とコストを低減します。
また、既存の教材としても使用できるため、多彩な学習に活用できます。
近日中に公開します。
●
●
●
PR
この製作記で登場した OMRON D6Tをはじめ、IoT向けのセンサや半導体、各種電子部品を多数用意しています。左はセンサの例です。ぜひ、ご活用ください。
IoTサイト IoT向け電子部品専用サイト https://daiwa-iot.jp/
通販サイト 試作・小ロットから量産まで https://sample-box.jp/