SSブログ

DSmainR5 WifiOptionを試す その4 [DSmainR5]

 今日までにElecrowから「発送しました」メールが来ないかなあと待ってましたが、来ませんでした。春節明けで忙しかったのでしょうか?ということで、今週末に、S88の実験はできなさそうです。
 それで、題名のWifiOptionの続きの話ですが、今回は、2月中旬に秋月で買ってきたESP-WROOM-02です。ATコマンドを送ったら、下記のものが返ってました。これは、Flashに入っている単なるプログラムなのかファームなのかよくわかっていませんが、去年の8月のものです。(これより新しいのがあるかどうかすらわからない)
ATコマンド.png
 ATコマンドは以下の記事を見ながら確認しました。
+DEVICE PLUS
第33回 Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(Wifi通信テスト編)
そして、Arduinoのプログラムを入れるのは、
第34回 Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(Arduino利用編)
を参考に入れています。
なお、この基板はUART側にスイッチを入れて電源を入れるとプログラムを書き込めて、Flash側にして電源を入れると、動作モードになるようです。

また、フォルダをUploadするとき(DesktopStationのWebアプリのHTMLフォルダごと入れるとき)は、
・ArduinoのIDEのシリアルモニタを切る。
・ESP-WROOM-02の電源を切る。
・スイッチをUART側にする
・電源を入れる
・ArduinoIDEのツール→ESP8266SketchDataUploadを選んでDataフォルダ内のHTMLファイルをコピーします。
・ArduinoIDEの下のほうのメッセージがSPIFFS Image Uploading Imagesと表示されて
・メッセージがSPIFFS Image UploadedとなったらUploadが終了しています。
・ESP^WROOM-02の電源を切って、スイッチをFlash側にして
・電源を入れる
と、通常動作します。
スケッチを入れるときの設定は下記の通りにしています。
ESP-WROOM-02設定.png
 他のページと違うところは、FlashとCPUのクロックを倍にしているところでしょうか?
 そして、今回は、前回の問題点を取っていくようにしていますがもちろんいくつかはそのままです。
・STAモードでmDNSが使えない。→×:今回も使えないままです。192.168.2.100というところにアクセスしています。
・APモードは少々不安定。→×:今回も使えないままです。まずSTAモードで試すので、やっていません。
・STAモードでファイル転送が遅い→○WebServerクラスを改造して使って、gz圧縮とStream転送機能を使って、10秒ぐらいで操作画面が送れるようになりました。
・CallBackを使用してソースを美しくする。→WebServerクラスのヘッダのWaitを
以下のように変更しました。(なんでこのパラメータ可変じゃないんだろう?)
----------------
#define HTTP_MAX_DATA_WAIT 50 //ms to wait for the client to send the request
#define HTTP_MAX_CLOSE_WAIT 100 //ms to wait for the client to close the connection
----------------
もともとはそれぞれ1000,2000です。 Loopのところのserver.handleClient();で2秒に一回程度しか返信を返してくれないので、WebアプリのGetStatus(1秒間隔に要求)にすら半分しか返してくれません・・・。
もしかしたら上記のうち、どちらかのWaitだけを短くするのでも良いかもですが、試してません。
 ESP8266関連のライブラリのPC内格納場所ですが、ネットからインストールしたのですが、
「ファイル」-「環境設定」のダイアログで下のほうに
「以下のファイルを直接編集すれば、より多くの設定を行うことができます」の下の
リンクをクリックすると出てくるフォルダのPackagesフォルダの下あたりにあります。
なんで、こんなところにあるんだろう。
・SPIFFSが長いファイル名だと、エラーになって読めない。→×実験の結果、Stringで渡すのに32文字しか認識していないことが分かりました。(ファイルのリストなどで確認したところ)
\css\images\ui-bg_flat_0_aaaaaa_40x100.pngなどのファイルは名前が長すぎて、見つからずに送信できません。
 なので、フォルダ名も含めてWEBアプリのファイル名は32byte以下になるとうれしいなあと思います。(そのままコピーできるので)
 DesktopStationなりすましモードを作る→○それなりのものは作成しました。DesktopStationのコマンドを解析するのに、Yaasan様のDSGateway_dccスケッチ内の
boolean parse()
boolean dispatch()
辺りをそのままコピペして、命令を解析して、それをESP-WROOM-02内の構造体
--------------------------
struct Locomotive
{
unsigned int Address;
unsigned int Speed;
unsigned int SpeedStep;
unsigned long Function;
unsigned int Direction;
long SurviveCount;
};

struct DesktopStation
{
unsigned int Power;
struct Locomotive Loco[10];
unsigned int Acc[40];
};
DesktopStation DS;
--------------------------
にそのまま入れてやって、後はGetStatus(WebアプリがDesktopStationに状況を聞く命令)が来た時に、
--------------------------
POWER_ON,
LOC,49159,1,0,180,0
LOC,49155,1,0,180,0
LOC,49156,1,0,180,0
ACC,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
--------------------------
と状況を教えてあげます。
ただし、現在Versionは094fベースなので、レイアウトには対応していません。
(多分ファイル名の長さ的にもそのままでは無理そう)
あと、一番重要なところで、現状のものはデバッグ用にいっぱいシリアル通信しているため、おそらくDSmainR5に繋いでも動かないと思います。必要なものだけシリアルに載せる必要があり、それはまた追々やって行こうかと思います。
 ソースを見るとわかりますが、結構ボリュームありますが、まだまだESP-WROOM-02的には問題なく入るようです。つまりもっとデラックスなものが作れそうです。
 参考ソースはこちらです。
 あとは、mDNS、APモード、AP設定できるようにする、説明ぐらいやったら終わろうかと思います。
(いつになるんでしょう)


コメント(0)  トラックバック(0) 

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。