esp-wroom-02 に 秋月電子のGPS みちびき(AE-GYSFDMAXB) を繋げて、
GPS データを、表示する Wi-Fi Httpd Server を作ってみた。
単純に、esp-wroom-02 と GPS みちびき(AE-GYSFDMAXB) を Uart(Serial 通信) で繋げて、
定期的に上がって来る、GPS データを esp-wroom-02 で読み取って、
その生データを、ESP8266WebServer で公開して、WiFi LAN でつなっがている
PCのブラウザーからでも見れると言うプログラムですが、
おまけの機能で、もう一個 UART を使って、PC に USB-Serial で繋げて、GPSの生データを
PCでもシリアル・ターミナルでも見れるようにしました。
これで、秋月電子から出ているフリーのプログラム、MiniGPS_V1.7.1.exe でも同時に見れます。
MiniGPS_V1.7.1.exe からの送信データも経由できるので、AE-GYSFDMAXB の設定もできます。
一応、ブラウザーからWi-Fi Lan 経由でアクセスして見れる状態まで作ってみました。
USB-Serial で、PCにも生のGPSデターを送るのを止めて、WiFi LAN経由で、PCのブラウザーから
普通にGPSデターを表示するだけであれば、問題なく動作しています。
その後、どの位動作は安定しているか確認のため、負荷試験のつもりで、
ブラウザーの再表示を何回も連続してやっていると、Wi-Fi Lan が良く切断する現象が
でました。
esp-wroom-02 で、Serial通信で PC にもGPSデータを流すなどの負荷を同時に掛けると、
良く Wi-Fi Lan が突然切れて、ブラウザーへの応答がなくなります。
注) Serial通信で PC にGPSデータを流すのを止めれば、結構、負荷が掛かっても問題は出ません。
その間も、Serial通信でPCへのGPSの生データは、送れていますので、
esp-wroom-02 のプログラム自体は動作しています。ですので、 WiFi Lan が不通になっている
だけの様です。
長いことそのままにしておくと、 watch dogs が働いて、最終的に wdt reset で
リスタートが掛かって、WiFi Lan が回復したりしますが、リスタートが掛からない場合もあります。
仕方がないので、WiFi.status()を loop() の中で、チェックして、最終的にリスタートする関数を作ってみました。
上記関数を、loop() の中からコールします。
WiFi.status() != WL_CONNECTED になる迄、
結構な時間がかかるので、Wi-Fi Lan が回復するまでには、
結構な時間がかかりますが、永久にだんまりになる事は、
回避できるようになりました。
WiFi.status() != WL_CONNECTED になる迄の時間を自分で、
短くできれば、よいのだが?
ちなみに、本プログラムの全コードですが、
piece ピース へでもそのうち、出してみようかなと考えちょります。
その後、プログラムを見直して、GPS みちびき(AE-GYSFDMAXB) との Uart通信、
PC との Uart通信の箇所を、1文字だけ読み込みして制御を loop()に返して、制御をなるだけ WiFi.disconnect(); へ渡すようにしたら、Wi-F Lan接続が安定するようです。
まだ、長期的にチェックしていませんが、?