NゲージポイントをWi-Fiでリモート制御する(KATO/TOMIX対応)ソースコード解説

こちらのエントリで作成したNゲージポイント駆動回路の、ESP-WROOM-02(ESPr Developer)用ソースコードの解説になります。
(ブログの文字数制限のためエントリを分けました)

ESP-WROOM-02はWebサーバとして動作し、デフォルトのhtmlファイルとJavascriptファイルをクライアントに返します。クライアントに表示するボタン用の画像は、容量削減のためSVGで作成し、BASE64変換してhtml・Javascriptに埋め込んでいます。cssも今回は量が少ないのでhtmlに埋め込んでいます。

クライアントからのGPIO制御命令は、JavascriptのAJAXでWebサーバにリクエストを行っています。このときのポイントとしてはHTTPリクエストヘッダにてキャッシュを行わないための値を設定しておくことです。これを行わないと、ブラウザがキャッシュ済みと判断してリクエストが行われない場合がある為です。また今回の実装では特に返り値がありませんので空のレスポンスを行っています。

GPIO処理部では、今回2巻線ラッチングリレーを利用し、リレー駆動時以外は電流を流さない設計としています。通常はLOW状態で、リレーを駆動する(コンデンサの回路を切り替える)時だけ、必要な時間(余裕をみて100ms)HIGHにしています。

ESP-WROOM-02のArduino IDEでのプログラミングでは、今回のようにレスポンスに文字を多用する場合は特に、変数領域の不足が問題になります。そのものずばりのエラーが起きるのではなく、リセットがかかったりWi-Fiが接続できなくなったりといった不安定な動作になるので原因究明に時間がかかることがあります(´・ω・`)。

なお、Arduino IDEにて以下のエラーが発生してESPr Developerにソースコードが書き込めない場合は、こちらで設定値を確認してみてください。

ブログ気持玉

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

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

→ログインへ

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

気持玉数 : 0

この記事へのコメント

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