戸締り確認&通知センサーをマイコンで自作 part2 TWELITEとは?使い方を解説
戸締り確認&通知センサーをマイコンで自作 part2では、扉 窓の開閉状態を検知する為、TWELITEを用いて開閉通知システムを検証します。
システムの概要は第1回で解説していますので、下記リンクをご覧ください。
TWELITEとは
電子工作を行っていく上で高いハードルとなってくるのが、無線通信機能を実装することかと思います。
センサーデータをただ送りたいだけの場合、Rasberry piやESP32を準備するのはコストがかかり過ぎですし、少しオーバースペックな感じがします。そこで今回利用するTWELITEの登場です。
TWELITEはMONOWIRELESSが販売しているIoT製品群で、主機種のTWILITE DIPは各種TWELITE製品群と設定のみで通信できるのみならず、親機はSPIやI2C、UARTつまりシリアル通信の実装が可能です。
今回のシステムではこのシリアル通信を用いてArduinoと通信を行い、開閉通知LEDの制御を行います。
部材一覧
親機(基本1セット)
- トワイライトワイヤレスモジュール TWE-Lite-Dip-WA 参考価格 : 1980円
- トワイライターR2 TWELITE R2 DIP 参考価格:1500円
- USB typeA – USB typeC ケーブル
子機(検知したい対象ごとに1セット)
- トワイライトブルーパル TWELITE BLUE PAL 参考価格 : 1900円
- 開閉センサーパル OPEN-CLOSE SENSE PAL 参考価格:1400円
- PAL専用ケース PAL CASES 参考価格:550円
TWE-Lite-Dip-WAのセットアップ
TWELITEには標準出力のBLUEと高出力のREDがありますが、一般的な一軒家ではBLUEで十分でしょう。電波は出力をむやみに上げるのではなく、受送信アンテナを工夫するほうがよっぽど通信環境改善に効果があります。
親機のセットが準備できたら、まずTWELITE BLUE DIPをPCと接続し、初期セットアップを行います。
PCとの接続にはトワイライターR2を用い接続します。
詳しくは同梱の説明書をご覧ください。
接続が完了したら、PCの方でTWELITE STAGE SDKをインストールします。下記リンクのTWELITE STAGE SDKダウンロードからファイルをダウンロードし、PCにて圧縮を解凍してください。
TWELITE STAGE-トワイライトステージ – MONO-WIRELESS.COM
解凍したらフォルダー内の「TWELITE_Stage.exe」を起動します。問題なければ下記画像のようにTWELITEが認識されるはずです。
デバック用アプリのビルド&配置
PGM上でTWELITE BLUE DIPが認識出来たら、ひとまずデバック用に「親機・中継機アプリ」をインストールします。
上記画像からインストールしTWELITE BLUE DIPを選択し、
「アプリ書換」⇒「TWELITE APPSビルド&書換」⇒「App_Wings」⇒「App_Wings」
を選択し「親機・中継機アプリ」をTWELITE BLUE DIPにインストールします。
書換に成功すると、インタラクティブモード(設定)に自動的に切り替わります。
周波数CHとアプリケーションIDについて
インタラクティブモードでは、通信を行う対象(今回はOPEN-CLOSE SENSE PAL)と周波数CH、アプリケーションIDを合わせる必要があります。
今回は子機SENSE PAL側に設定を合わせるので、アプリケーションIDは「0x67726305」を周波数CHは「15」を書き込みます。
変更が終わったら、大文字の「S」を入力し設定を保存します。その後「!」を入力してTWELITE BLUE DIPを再起動します。
詳しい仕様に関しては下記をご覧ください。
TWELITE APPS – インタラクティブモード – MONO-WIRELESS.COM
動作確認
上記セットアップ完了後、子機OPEN-CLOSE SENSE PALを組み立てて電池を入れてください。
組み立てが正しくできていれば、子機の押しボタン付近に磁石を近づけるとLEDが点灯するはずです。
LEDが点灯した時には2.4GHzの無線電波が飛んでますので、これを先ほどの親機側で受信してあげれば磁石の離れ具合、つまり窓、扉の開閉が分かる仕組みになってます。
親機で受信したデータを閲覧する時は先ほど使ったTWELITE_Stage.exeから
「ビューア」⇒「ターミナル」
を選択するとつないでいる端末情報が表示された後、受信データが画面上に出力されます。
送られてくるコマンドに関して
OPEN-CLOSE SENSE PALから送られてくるデータですが、16進数のデータです。
書式は以下の通りになります。例として受信データ3パターン用意しました。
:80000000 8A E94D 810C5777 01 80 81 03 11 30 08 02 09EC 11 30 01 02 0167 00 00 00 01 02 5E 13
:80000000 96 E94E 810C5777 01 80 81 03 11 30 08 02 09F1 11 30 01 02 0171 00 00 00 01 00 A0 B7
:80000000 A8 001C 82012B1E 01 80 81 03 11 30 08 02 0D0C 11 30 01 02 03E4 00 00 00 01 01 EC 6E
^^^^^^^1 ^2 ^^^3 ^^^^^^^4 ^5 ^6 ^7 ^8 ^9 ^a ^b ^c ^^^d ^e ^f ^g ^h ^^^i ^j ^k ^l ^m ^n ^o ^p
各コードの説明は下記リンクの「パルアプリ」⇒「開閉センサーパル」からリファレンスを確認してください。
親機・中継機アプリ(App_Wings) 親機の使用方法 | MONO-WIRELESS.COM
今回必要となるのは、後ろから6文字目と7文字目の「n」のデータでこれが「01」と「02」の時、磁石が近くにあることを表します。「00」の時はセンサー近くに磁石が無いことを表し、「80」の時は生存確認の為の定期通信であることを示します。
また「i」のデータはボタン電池の電圧を示しており、新品の電池を使用している時は10進数で3000あたりを示しております。これは3000mVを指しています。2500mV付近になったら電池を交換したほうがいいといった判断材料になります。
まとめ
TWELITE BLUE DIPを用いてセンサーと親機が通信できることが確認できました。
次回はこのデータをArduinoに取り込む、シリアル通信を実装したいと思います。
-
前の記事
BMW F20 1シリーズに国産社外サブウーファーを増設 2021.06.27
-
次の記事
戸締り確認&通知センサーをマイコンで自作 part3 通知LED点灯 2021.07.30