ブログパーツ レンタルCGI
TAKAさんの毎日が発見・ブログ
アマチュア無線の機器製作を中心にした日常の活動記録です (by Taka JA2GRC、このブログはFC2_BLOGを使わせていただいてます。)
≪07月   2017年08月   09月≫
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  
ESP8266でHTTP通信を試す・その6
 パソコンでのテストは大体理解できてきたので、いよいよターゲットとなるESP8266で試してみます。
 昨日はローカル局と飲み会で楽しい一時を過ごしました。 若干、アルコールが残っていて、ボーッとしていますが、引き続きHTTP通信を試してみたいと思います。

 さて、クライアント側をパソコンからESP8266に切り替えて、今まで試したHTTP通信の確認を続けます。 サーバー側はパソコンのままで、Bash on Ubuntu on Windows で今まで通り実行を続けます。 クライアント側のスケッチは標準サンプルで付いていたBasciHttpClientと言うスケッチを走らせます。

 まずは、サーバー側でncコマンドを使い、ポート8080を監視した状態で、クライアントのESP8266を走らせます。 しかし、このままでは、上手く接続してくれません。 ああだこうだと調べたあげく、どうもサーバー側のパソコンのファイヤウォールが悪さをしている模様。 今までは、パソコンの身の内、すなわちLoaclhost内でやりとりしていた訳で、ファイヤウォールは無関係だったのですが、ここに来て、ESP8266からパソコンにアクセスするとなると、小さいとは言え、一応違うIPアドレスを持った機器ですから、家庭内LANの違ったIPアドレスにアクセスするにはファイヤウォールが邪魔するみたいです。

170329_esp8266_http_21.jpg

 と言う事で、色々設定するのは面倒なので、一時的にファイヤウォールを無効にして試してみました。

170329_esp8266_http_22.jpg

 ファイヤウォールを無効にする事で、やっと、クライアント(ESP8266)側からのGETリクエストがサーバー側に届く様になりました。 ただ、このncコマンドによるポートの監視だけでは、一つのメッセージやりとりで一つのセッションは終了してしまうみたいなので、次のコマンドが出ません。 それで、クライアント側はタイムアウトになってしまう見たいです。 クライアント側のESP8266のスケッチはESP8266HTTPClient.hというライブラリを使って居るみたいで、HTTP通信の細かいステップの制御は出来ず、GETならGETのセッションでひとまとまりになって居るみたいです。

170329_esp8266_http_23.jpg

と言う事で、ncコマンドの使い方を調べていたら、繰り返し応答する様な実例が出ていましたので、これで試してみる事にします。 応答のhtml文の本体は別ファイルに記述するようです。 これで、試してみたら、タイムアウトはなくなり、少しは前進して、send header failed と言う所まで進んで来ました。

170329_esp8266_http_24.jpg

 で、この状態で、しばらく動かしていたら、時々成功する時があります。 これは、何なんでしょうかね? 上手く行く時と失敗する時の違いは何だろう? まあ、取り敢えず、クライアント側をESP8266に替えても、上手く行きそうな事までは分かりました。 後はじっくり眺めてみて、こうしたバラックでも安定して動作する仕組みを調べてみます。

170329_esp8266_http_25.jpg
コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by まとめ .