ottijp blog

TWELITE PALとMONOSTICKを接続する

2021-11-18TWELITERaspberryPi

TWELITE PALを使い,自家IoTの一部にしようと思っています. アプリケーションID,デバイスID,暗号化キーなどを設定して使おうと思ったので, 設定の仕方や,親機として使うMONOSTICKとの接続についてメモします.

環境

ホスト(TWELITE PAL設定用)

  • mac mini 2018
  • macOS 11.6 (Big Sur)

ホスト(MONOSTICK接続用)

  • Raspberry Pi 3 model B
  • Raspberry Pi OS (buster)

TWELITE PAL

TWELITE PALは,TWELITEにコイン型電池用の電源回路が付いたもので,拡張モジュールを組み合わせることができる製品です. 拡張モジュールには温湿度センサや開閉検知(マグネット検知)センサなどがあります.

cf. モノの無線タグシステム TWELITE PAL|MONO-WIRELESS.COM

TWELITEを電源のないところで使おうとすると,電池などで動かす必要があります. そこそこコンパクトなサイズに収めて,間欠通信で数年動作できるような電源回路の設計と実装は素人には難しく, こういう製品が発売されるのを心待ちにしてました. 発売された当初からずっと気になっていたのですが,今回やっと買いました.

TWELITE PALの設定

TWELITE Rがあれば,ホストと接続できます.

cf. USBアダプター TWELITE R2-トワイライター2 - MONO-WIRELESS.COM

ただし,私はTWELITE Rを持っておらず,以前作った自作のアダプタがあるので,これを使いました.

cf. TWE-LITE用USBシリアル通信アダプタの自作 | ottijp blog

ホストとの接続

TWELITE PALは拡張モジュールと専用ケースのセットで買ったため,拡張モジュールがすでに接続された状態でした. ピンが壊れやすくあまり抜き差ししたくなかったので,拡張モジュールにあるシリアル接続用のピンヘッダに,自作アダプタを接続しました. (TWELITE Rもここに挿すようですね.)

serial adapter

TWELITE PALはデフォルトでは間欠動作するモードで起動しますが, 拡張モジュールのスイッチ(写真右手前に半分ほど見えている白いスイッチ)を押しながら起動(通電)すると連続動作するモードで起動します. そこで,このスイッチを押した状態でUSBケーブルをホストに接続し,接続したらスイッチを離します.

FTDIのVPCドライバ

自作アダプタにはFTDIのFT234Xを利用しているので,FTDIが提供するVPCドライバをmacにインストールしました.

cf. VCP Drivers - FTDI

“Mac OS X10.15 and macOS 11”の1.4.7を使いました. インストーラの画面にも注意が表示されますが,このドライバはベータ版で,インストーラを/Applicationsディレクトリに置いて実行する必要がありました. また,インストール途中にセキュリティ承認が必要になるので,OS設定の”Security & Privary”から許可します.

インタラクティブモードで設定

他のTWELITEと同様に,USBシリアルデバイスにつないで,+++と送信するとインタラクティブモードになり設定ができます.

$ screen /dev/cu.usbserial-<your_id> 115200
+++

その後,以下の項目の値を変更しました.

  • ApplicationID(全TWELITE PALで同じ値)
  • EncKey(全TWELITE PALで同じ値)
  • DeviceID(それぞれのTWELITE PALで異なる値)

Raspberry PiとMONOSTICKの設定

接続

Raspberry Pi OSには特にFTDIのドライバがデフォルトで入っているようで,MONOSTICKをUSBポートに挿せば認識してくれました. 接続後,次のようなログが出力されます.(シリアル番号は伏せています.)

$ dmesg
[54667.215564] usb 1-1.4: USB disconnect, device number 4
[54667.535075] usb 1-1.5: USB disconnect, device number 5
[54667.535108] usb 1-1.5.1: USB disconnect, device number 6
[155786.963639] usb 1-1.2: new full-speed USB device number 7 using dwc_otg
[155787.121230] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6001, bcdDevice= 6.00
[155787.121252] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[155787.121267] usb 1-1.2: Product: MONOSTICK
[155787.121282] usb 1-1.2: Manufacturer: MONOWIRELESS
[155787.121296] usb 1-1.2: SerialNumber: xxxxxxxx
[155787.179938] usbcore: registered new interface driver usbserial_generic
[155787.180019] usbserial: USB Serial support registered for generic
[155787.193966] usbcore: registered new interface driver ftdi_sio
[155787.194050] usbserial: USB Serial support registered for FTDI USB Serial Device
[155787.194345] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
[155787.194516] usb 1-1.2: Detected FT232RL
[155787.198045] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0

最終行にあるttyUSB0がデバイスです.(/dev/ttyUSB0

インタラクティブモードで設定

screenコマンドは入ってなかったので,インストールして接続しました.

$ sudo apt install screen
$ screen /dev/ttyUSB0 115200
+++

その後,TWELITE PALと設定を合わせるように,以下の項目の値を変更しました.

  • ApplicationID
  • EncKey
  • Channels Set(うろ覚えですが,デフォルトがTWELITE PALと違ったので,合わせるようにセットしたような気がします)

接続

TWELITE PALにCR2032コイン電池を入れます. (上側(基板と反対側)が+極になるように入れます.詳しくは公式サイト参照)

デフォルトは1分間隔の間欠通信で,電池を入れて1分後から送信が始まりました. 受信したデータは,Raspberry Piでシリアルコンソールにつないでいれば観られます(screen /dev/ttyUSB0 115200). 環境センサからは,こんな感じのデータが受信されました.(シリアル番号は伏せています.)

:80000000660002xxxxxxxx028082051130080209791130010202C7050100020AD301020002125602030004000000016198
:80000000690003xxxxxxxx0280820511300802097E1130010202D3050100020A9501020002136D0203000400000001B258
:80000000600004xxxxxxxx028082051130080209881130010202D3050100020A800102000213DC0203000400000001F5B9
:800000005A0005xxxxxxxx028082051130080209831130010202D1050100020A6401020002141F0203000400000001E8AA
:800000005A0006xxxxxxxx0280820511300802097E1130010202D6050100020A5001020002143902030004000000013C4F

部屋にある他の温度計(ガスファンヒーター付属のものや,単体の室温計)と温度が4-5℃くらい違うのがちょっと気になります・・・.

データフォーマットはこちらのページに載っています.

cf. 親機・中継機アプリ(App_Wings) 親機の使用方法 | MONO-WIRELESS.COM

受信データの表示やファームウェアの書き換えなどは,公式のTWELITE STAGEというツールがあるみたいですね.

cf. TWELITE STAGE APP - TWELITE STAGE

ただ,なにやらデバイスドライバのアンロードなど変更が必要なようで若干面倒そうだったのと, 今回はNode.jsでデータを読んでパージングしようと思っているので,試しませんでした.


ottijp
Satoshi SAKAO (@ottijp)

都内でアプリケーションエンジニアをしています

...