ESPresso Lite V2のIPアドレスを固定にする


ESPertで用意されているクラウドサービスを利用することにより、温度・湿度の送信を行うことができます。しかし、クラウドサービスを利用すると全世界に温度・湿度を公開することになり、プライバシーの侵害になってしまいます。プライバシーの問題は別として、LAN内で使う分には、インターネットに公開する必要もないでしょう。

そこで、ESPertのサンプルスケッチを見ると、
_0090_Ajax
というのがありました。
これは、
ESPresso Lite V2がHTTPサーバー(Webサーバー)になり、ブラウザーソフトに対して、Ajaxでデータを送信します。

IPアドレスは、ルーターのDHCPにより、取得し、設定されます。しかし、電源を入れ直すたびにIPアドレスが変わってしまう可能性があり、不便ですので、IPアドレスを固定にしたほうが使い勝手がいいでしょう。ESPertのライブラリーには、IPアドレスを固定にする関数が用意されていませんので、Arduinoのwifiライブラリーに含まれている関数を利用します。

下記のサイトを参考にしました。
https://github.com/esp8266/Arduino/issues/1959
このサイトでは、ESP8266の例ですが、ESPresso もESP8266を使用しているため同様です。

下記の部分で無線LANルーター(アクセスポイント)のSSID、パスワードを設定します。

const char* ssid = “SSID”;
const char* password = “1234567890123”;

下記の部分でIPアドレスを設定します。ルーターが割り当てるIPアドレスと同じ体系にします。若いアドレスは、ルーターがDHCPで割り当てるアドレスに使用することが多いので200前後の大きい値にしたほうがいいでしょう。gateway にルーターのIPアドレスを設定します。

IPAddress ip(192, 168, 1, 190); //任意のIPアドレス
IPAddress gateway(192, 168, 1, 1); //ルーターのIPアドレス
IPAddress subnet(255, 255, 255, 0);

ポート番号は、下記のところで設定しています。通常、HTTPサーバーは、80ですが、変更することもできます。一つのグローバル固定IPアドレスで複数のESPresso Lite (Webサーバー)をインターネットに公開したい場合は、これを変えることにより対応できます。

server = new ESP8266WebServer(80); //ポート番号

パソコンのブラウザーソフトを使って、設定したIPアドレス、上記の例で
http://192.168.1.190
にアクセスすると、下記のように表示されます。

ESPresso_Ajax.pn

 

もとのサンプルスケッチでは、温度のみの表示でしたので湿度も追加しました。単位の℃がうまく表示されないので、C のみに変更しました。
初めの
String indexPage =
に代入する部分でページに表示される内容を変更することができます。