WiFiルータに割り当てられたM5StackのローカルIPアドレスを取得し、M5StackのLCD画面に表示するプログラムを作成します。
M5StackのローカルIPアドレス
M5Stackに内蔵されているマイコンESP32はWiFiの機能を持っています。M5StackをWiFiに接続しWebサーバーとして使うことができます。M5Stackが取得したセンサ値をPCやスマホのWebブラウザに表示させたり、WebブラウザからM5Stackのスピーカを鳴らすなどのリモートコントロールすることが考えられます。
WebブラウザからM5Stackへのアクセスは、ブラウザのアドレスバーにM5StackのローカルIPアドレスを指定します。ローカルIPアドレスは接続しているWiFiルータによって自動的に割り当てられます。この割り当てられたローカルIPアドレスを事前に調べておく必要があります。
IPアドレス取得関数
WIFIライブラリのIPAddressクラスのWiFi.localIP()という関数を使ってLCD画面にローカルIPアドレスを表示します。
https://www.arduino.cc/en/Reference/WiFi
IPアドレス表示プログラム
以前作成したWiFi接続のプログラムにIPアドレスを返す関数を追加しました。7, 31, 32行目に追加しています。また、気分を変えて、画面背景を白、文字を黒に設定してみました。
#include <M5Unified.h>
#include <WiFi.h>
const char *ssid = "************"; //WiFi SSID
const char *password = "*************"; //WiFi password
IPAddress ip; //IP address
void setup() {
auto cfg = M5.config();
M5.begin(cfg);
M5.Display.fillScreen(TFT_WHITE);
M5.Display.setTextColor(TFT_BLACK, TFT_WHITE);
M5.Display.setTextSize(2);
M5.Display.print("--- WiFi & IP address ---\n\n");
M5.Display.print("Connecting");
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
M5.Display.print(".");
}
M5.Display.print("\n\n");
M5.Display.print("WiFi connected!\n\n");
M5.Display.print("IP address: ");
ip = WiFi.localIP(); //IP address取得
M5.Display.print(ip); //IP address表示
}
void loop() {
}プログラム実行結果
LCD画面表示の4行目ですが、IPアドレスは「192.168.1.25」と表示されました。

まとめ
WiFiルータに割り当てられたローカルIPアドレスを知りたいときはWiFi.localIP()関数を使って取得することができます。取得したIPアドレスをWebブラウザのアドレスバーに打ち込めばWiFi経由でM5Stackにアクセスすることができるようになります。今後はWebブラウザからM5Stackにアクセスするプログラムを作成してみようと思います。

