前から出かけるときに窓の鍵が閉まってるか確認するのが面倒だなと思ってて、IoT機器で簡単に確認できるようにしたいと思っていて、製品が出てるのは知ってるのですが、結構値段が高いので自分で作れないかと思っていました。
そんなある日、たまたま郵便がポストに届いたらLINEで通知がくるようにしたという記事を見てTWELITEを知って、これ使えばやりたいことができると思いました。
これ誰かやってるんじゃないか?と思ったら、案の定すでにやってる人がいました。
TWELITE PALを使って窓の施錠確認システムを電子工作なしで作る
基本はこれの通りにやったのですが、最初にセットアップする部分がTWELITEのバージョン?によって違ったりWindows向けの情報はすぐ見つかるけどMac向けが見当たらなかったり、親機子機の設定方法がもっと簡単な方法があったので備忘録として残しておきます。ここではPythonでセンサーの変化を読み取るところをゴールとします。
結果
こんな感じで動きます。
手に磁石を持っていて、近づけるとセンサーが感知します。
見づらいですがターミナル上で出力が変わっていて、手を近づけたときにOpen、離すとCloseと出てます。磁石を窓の鍵に付ければ開いてるか閉まってるかわかりますね。
動作環境
macOS Catalina 10.15.7
MacBook Air
Python 3.8.6
セットアップ
親機をMacにUSB接続して認識されているかlsコマンドで確認する。
ls -l /dev/tty.*
正常に認識されてると
/dev/tty.usbserial-XXXXXX
みたいな結果があるはずです。あとでPythonのスクリプトからセンサー読み取るときに使います。
必要なライブラリをインストールする。(公式を参考に)
brew install libusb
pip install pyserial
pip install pyftdi
TWELITE STAGE APPのバイナリで親機の設定を行う。
githubに販売元が公開しているバイナリを使う。(ここがソースコードからインストールしている説明がたくさんあって迷ってしまったところ。バイナリを使うのが一番簡単)
https://github.com/monowireless/TWELITE_Stage_BIN_macOS
ダウンロードして解凍したら、解凍したディレクトリ直下にある「TWELITE_Stage.command」がアプリです。これに実行権限をつけます。ターミナルで以下を実行。
chmod +x TWELITE_Stage.command
あとは、公式ページにある通りに以下の設定していく。
https://www.mono-wireless.com/jp/products/twelite-pal/sense/pal-usage.html
- 親機・中継機アプリ(App_Wings)に書換える。
- アプリケーションIDを子機と同じにする。
- 周波数チャネルを子機と同じにする。
- 親機か中継機を選択する(親機モード0に設定する)
- [ビューア]>[PALビューア]で動作確認する。
最後に、Pythonからセンサーの状態を読み取るプログラムについて。
公式ページにある下記のスクリプトでできます。
TWELITE PALシリーズのデータを受信したときに出力されたシリアルデータを解釈するためのPythonのサンプルスクリプトです。
https://mono-wireless.com/jp/products/TWE-APPS/App_pal/palscript.html
引数にUSBが認識されて出力されたIDを指定して実行
python PAL_Script.py -t /dev/tty.usbserial-XXXXXX
これで最初に紹介した動画のようにセンサーの変化を検知して出力できます。
TWELITEは電子工作なしでもセンサーでいろいろ遊べそうです。
参考にした記事たち
郵便がポストに届いたら LINE で通知がくるようにした
https://qiita.com/task_jp/items/85ccc04a00982569f6c5
TWELITEの無線タグアプリを試す
https://qiita.com/miminashi/items/453f7f3e31c8c009e486
無線通信機能付き磁力センサ「OPEN-CLOSE SENSE PAL」を使ってみた
https://qiita.com/RyoOkaya/items/660ceb91d2b4e0378a8d
TWELITE STAGE を試す
https://qiita.com/nanbuwks/items/bb07970d5339177aa7a0
TWELITE PALを使って窓の施錠確認システムを電子工作なしで作る
https://zlog.hateblo.jp/entry/2019/08/18/Twelite-pal-window-monitor
TWELITE STAGE APP macOS向けのバイナリ
https://github.com/monowireless/TWELITE_Stage_BIN_macOS