明日はCIoTLTで発表するのでそのデモ装置を仕込んでいるのですが、久しぶりにEnOceanを使ったのでメモします。
EnOceanは電池レスの無線デバイスです。例えばロッカースイッチはクリックすることで微小な電力発生させその電力で無線通信を行います。
ブロードキャストするので、受信デバイスがあれば簡単にデータを受信できます。
市販されている EnOcean 受信用USBモジュールを使ってラズパイでデータを受信してみました。
ROHM EnOcean USB400J 受信用USBモジュール
接続
ラズパイ(RasPi3 Stretch使用)にUSB受信モジュールを接続すると自動でUSBシリアルデバイスとして認識されます。
$ lsusb Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
最初の FT232 USB-Serial (UART) IC とあるのがそれです。
$ ls /dev/ttyU* /dev/ttyUSB0
/dev/ttyUSB0 として認識されています。
受信
hexdumpを起動してロッカースイッチをクリックしてやると受信データが表示されます。
$ sudo chmod 666 /dev/ttyUSB0 $ stty -F /dev/ttyUSB0 57600 raw $ hexdump -v /dev/ttyUSB0 # ロッカースイッチ上クリック 0000000 0055 0207 0a0a 0020 a82d 85bb 0158 9934 0000010 0055 0207 0a0a 0020 a82d 00bb 01ca 8231 # ロッカースイッチ下クリック 0000020 0055 0207 0a0a 0020 a82d 8abb 0175 8b32 0000030 0055 0207 0a0a 0020 a82d 00bb 01ca 8231
クリックして押し込む際に1回、戻る際に1回送信されるので、スイッチクリック毎に2個のデータが送信されます。
使用したロッカースイッチは Model: PTM210J です。EEP(EnOcean Equipment Profile) F6-02-04 です。
EEPを確認すると、1方のスイッチを押し込む際に 133 (0x85) 戻る際に 0 が送信されています。もう1方はスイッチを押し込む際に 138 (0x8a) 戻る際に 0 が送信されています。