NゲージポイントをWi-Fiで遠隔制御する(ESPr Developer 32 利用)

現在作成進行中の900mm×450mmレイアウトの中には、TOMIXのポイントが14個載っています。(^^;

画像

画像


ポイントコントロールボックスを14個並べると場所を取るというのもありますが、配線が複雑になってくると、例えばある番線に通したいと思ったときに複数のポイントを順序よく操作する必要があり、どのときにどのポイントを操作するのかだんだん分からなくなってきます。そこでどうせならと無線(Wi-Fi)でリモート制御できる方法を検討しました。


TOMIXのポイントは、純正パワーパックを含めてコンデンサによる駆動方式が使われることが多いようですが、手動で行う際にトグルスイッチを使う部分に、リレーを利用することにしました。

リレーを駆動するモジュールには、Wi-Fi内蔵でArduino IDEで簡単に開発でき、GPIOピンの数が多い ESP-WROOM32 を利用することにしました。(GPIOだけで使うのはもったいない感じもしますが)

実際のモジュールについては、ねむいさんのブログなどによると、ESP-WROOM32 は結構な大電流が必要とのことで(特に電源オン時の突入電流)私は突入電流対策が行われているスイッチサイエンス社の ESPr(R) Developer 32 を利用することにしました。ESP-WROOM-32のセットアップについて(ArduinoIDEを用いた開発のセットアップ手順)が日本語でWebサイトに公開されているのもメリットです。

画像

画像



ESP-WROOM32 の GPIO(3.3V) の出力電流は12mA説と40mA説と80mA説があり、80mAであれば3V品のリレーを直接駆動できますが、どれが正しいか(購入したものがどれに当てはまるか)判断できなかったため、トランジスタ(2SC1815)を使ってスイッチング回路を組んで駆動することにしました。


コンデンサ駆動方式の電源電圧やコンデンサ容量などについては露太本線さんの情報を参考にさせていただきました。

ただし、電源電圧については、コンデンサ複数個充電に対応するため(基本的には複数同時に充電する形にならないようにソフトウェア側で制御予定ですが)電流制限抵抗を置くことにしており(10W 18Ωを2本並列)、ポリスイッチによる電圧低下も含めて問題なく動作するか確認するため、12Vで設定しました。(実際には最初は露太本線さん推奨回路の13.5Vから検討を始めており、以下の回路はそのまま13.5Vに昇圧しても問題無い筈です)おまけでコンデンサ充放電のLEDインジケータを追加しています。

リレーの選定については、c接点、また切り替え状態保持のために電流を流し続ける必要がないようにしたいため、2巻線ラッチング形を採用。電流容量は、露太本線さんのブログの情報から2Aが流せるものが必要(1Aでは不足)となります。

今回はG6AK-274P DC12Vを使用しましたが、より安価に入手できそうなものとして
・G6SK-2 12VDC
・EC2-12TNU
があることが分かり、本番ではEC2-12TNUを使用する予定です

リレーの耐久性を向上させるためのサージキラーに使用するダイオードは、耐圧が電源電圧の10倍以上のものを選択する必要があるとのことです。今回は0R8DU41を使用しました。本番実装時は実装面積削減のため表面実装型を使うかもしれません。

コンデンサはとりあえず手持ちのもの(耐圧16V 2200μF)を使用しましたが、本番では耐久性を考慮して別途検討が必要かと思います。(というか電源電圧をどうするかもまだ決めかねており)

ブレッドボードにて動作確認を行いました。
なお、ESPr(R) Developer 32 の配線の引き出しには、サンハヤトのSAD-101を使用するのが6ピンあって引き出しが容易で、端子の固さも適度に柔らかくモジュールの抜き差しに良さそう、というのもどこかのサイトで拝見しました。

画像

画像

画像


一応上記の配線で動作しました。
最初は2SC1815の端子の向きを反対に取り違えていて、動かないと嘆いておりました orz

数回とか試したレベルでは不転換はありませんでしたが、レイアウトに配置したポイントの場合には摩擦抵抗が増えて不転換が起こる可能性もあり、今後要確認です。

なお、上記配線の電源にさらにダイオード(IN5402)を追加して降圧した場合は、全く転換しませんでした。

スイッチング回路で使用している抵抗(10KΩ)については、トランジスタ増幅後の電流がリレーのコイル駆動に必要な量すれすれに近そうなので、もし動かない場合は5kΩなどに変更します。

また、USB接続を外し、5VのACアダプタから ESPr Developer 32 のVINとGNDに給電した状態でも動作することが確認できました。(PCとモジュールが物理的につながっていない)

画像



リレーのGND側の切り替え箇所は直結でも問題ないでしょうか?変なところに電流が流れないか心配になったのですが・・・



Arduino IDEのソースは、スケッチ例 SimpleWiFiServer をベースにして作成しました。

画像


スケッチ例 SimpleWiFiServer では、Wi-FiルータにDHCPにて接続し、外から
http://(ESPr Developer 32 に割り当てられたIPアドレス)/
にアクセスすると簡単なメニュー画面が表示され、その中のリンクの
http://(ESPr Developer 32 に割り当てられたIPアドレス)/H
にアクセスするとGPIOピンをオンする、といった動作がプログラムされています。
/H などの条件判定部分は自由に変更できますが、Web画面の同じ場所をトグル動作させたり、画像で表示させるなど、どこまで作りこめるかは今後の調査課題です。(最悪、PCかスマホ上に別にWebサーバを立てればなんとかなるとは踏んでいますが)

画像

画像

画像


ちなみに、今回の利用においては、ESPr Developer 32 を2個利用予定であることもあり、そのIPアドレスを固定したいのですが、スケッチ例の WiFiClientStaticIP では私の環境ではなぜかうまく動作しなかったので、ルータ側でMACアドレスに対してIPアドレスを割り当てる機能を使いました。私の環境ではこれで充分です。

続きはこちら

KATO/TOMIX対応版はこちら

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック