2021/06/15

nRF5x 同士の通信

 しばらく試行錯誤したので、多少は nRF5x の扱いが分かってきた。やはり、Arduino IDE での開発は邪道気味なよう。それでも、出来ないわけでもない。

 仕様的に、BLE デバイスをつくるべきなんだろうけど、作りたいものが思いつかない。とりあえず、BLE じゃない、2つの nRF5x を使った通信を調べてみた。
参考リンク
 RadioHead nRF5x 同士で通信できるシンプルなライブラリ
 mysensors nRF24 へも接続できる! でも高機能すぎて使いづらい
 nRF24 の代わりも出来る、というかプログラムも出来るから、nRF24 + マイコンの置き換えだね。BLE のように余計な通信はしないから、省電力なのは間違いなし。

 例えば、無線のキーボードを作るとすると、↑のような構成で、受信側は、マイコン2つとか贅沢なことになる。BLEキーボードとするのなら、右側の送信部だけで完結する。残念ながら、Arduino でのBLEキーボードは、Windowsでは使えない。修正される気配も無い。というか、Windows の場合、Bluetooth 自体が、かなり怪しい。なので、レシーバを挟むのも有りかと。

 nRF52840 のドングルでプログラムできるなら、受信側もシンプルになるんだが、結局、僕のような素人にはライブラリがないと現実的に使えないわけで、んー、悩ましい。


 USB-HID のための、32u4 は、場合によっては、Digispark でも、Raspberry Pi Pico でもかまわないが、安定度という点では、32u4 がずば抜けている。半導体不足かなんか知らないが、マイコンの値段が倍ぐらいになっているので、データを渡す用途だけなら、安い USB-Serial と組み合わせてもいい気がする。
※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。

2021/06/02

ESP8266 + nRF24 で WOL


 ESP8266 の D1 mini もどきに、nRF24 モジュールつけたもの。最近使っているPCは、3台共、サーバっぽいのばかりで、USBデバイスで、電源復帰できない。毎回、本体の電源ボタンを押すのも面倒になってきたので、WOL(Wake On LAN)デバイスをでっち上げた。5Vの電源があれば、単独で動くので、部屋に転がしておけばいい。

 HTPC のリモコンから、2.4G 信号を受け取って、無線ルータ(WIFI)経由で、マジックパケットを送信する。ハード側が対応していれば、スリープどころか、電源オフからも起動できる。

 最初、電源スイッチの無線化をすればいいかと思ったが、それだと必要PC分だけ作業を繰り返さなくちゃいけないわけで、WOLなら、これ1台で済むんだわ。
参考リンク
 a7md0/WakeOnLan WOL ライブラリ
 dparson55/NRFLite nRF24L01+ ライブラリ


追記 2021-06-07
 接続したままにしてたら、やたら熱くなっていたので、常時接続は諦めて、その都度ルータに接続することに。10秒くらい待たないといけないが、頻繁に使うものでもないし。ただ、動いているのか分かりづらいので、ブザーを付けて確認音を鳴らすようにした。

 WOL だけじゃ芸がないので、電源が入っているときには、逆にシャットダウンするよう、Windows のサービスプログラムを追加した。サービスプログラムは、Delphi に雛形があるので簡単につくれる。

※ 技適マーク無しの無線デバイスの実験は、日本国外で行いましょう。