WiFiリモコンとは

モバイル端末を用いてESP32マイコンをリモート制御するには、赤外線、BlueTooth、WiFiなど幾つかの方法があります。
ここではWiFi通信を用いてモバイル端末からESP32マイコンをリモート制御するには方法を解説します。
この方法はマイコンをWEBサーバにし、モバイル端末からWiFiネットワークを用いてWEBサーバに接続し、モバイル端末とマイコンでテータの送受信を行うものです。

動作原理

ESP32マイコンをASyncWebServerライブラリを用いてWEBサーバーにします。

HTML、CSSおよび画像ファイルなどのWEBファイルは、SPIFFS (SPI Flash File System)を用いることで、ESP32のフラッシュメモリに置くことができます。

モバイル端末よりを用いてESP32マイコンをリモート制御するには、モバイル端末のブラウザよりWEBサーバーにアクセスします。

WEBサーバはSPIFFS内のWEBファイルをモバイル端末のブラウザに送り表示させます。

モバイル端末のブラウザに表示された画面からマイコンを制御することや、マイコンの状態を表示することができるようになります。

WiFiRemoteライブラリ

モバイル端末を用いてESP32マイコンをリモート制御する方法で、リモート制御用の画面をモバイル端末に表示するにはアクセスポイントの設定やWEBサーバへの接続などのプログラムが必要になりますが、これらは異なるモート制御でも同じような手続きとなります。
WiFiRemoteライブラリはリモート制御用の画面をモバイル端末に表示するまでの定型的な処理をライブラリ化したものです。アプリケーション作成時にWiFiRemoteライブラリを用いることにより、プログラムを簡素化し、マイコン制御動作に専念できるようにするものです。

特徴

スマートフォンやタブレットなどのモバイル端末でWiFi通信を用いてマイコンをリモートコントロールします。

WiFi関係の処理はライブラリが行い、arduinoプログラムではマイコンの入出力処理に専念できます。

既存のWiFiネットワークを用いた通信と、マイコンをアクセスポイントとする通信のどちらでも選べます。

モバイル端末のボタンなどの入力をマイコンに通知することができます。

モバイル端末よりマイコンの状態を問い合わせることができます。

使用ライブラリ

WiFiRemoteライブラリは内部でESPAsyncWebServerライブラリを使用しています。

SPIFFS (SPI Flash File System)

ESP32のフラッシュメモリはSPIFFSを用いることでWiFiRemoteライブラリで必要なファイルを格納することができます。
SPIFFSには次のようなWEBファイルを置きます。

・setting.txt 設定を格納する設定用ファイル(設定処理で作られます)
・setting.html モバイル端末のブラウザに表示する設定用画面のHTMLフアィル(ライブラリが提供します)
・index.html モバイル端末のブラウザに表示するリモートコントロール用画面のHTMLフアィル(開発者が作るアプリ特有のファイル)
・その他 リモートコントロール用画面から呼び出されるスタイルシート、アンコンファイル、画像ファイルなど(開発者が作るアプリ特有のファイル)

arudino IDEで開発する場合はプログラムフォルダ内にdataフォルダを作り、その中に必要なファイルを入れて、ESP32 Sketch Data Uploadツールを用いてdataフォルダをマイコンのSPIFFSにコピーできます。
setting.txtは設定処理で自動作成されるので用意する必要はありません。

処理の概要

  • 接続方法、SSID、パスワード、IPアドレス、ゲートウイアドレスが書かれた設定ファイルがSPIFFSに置かれます。
  • マイコンを起動すると最初に設定ファイルを読みます。設定ファイルが無ければアクセスポイントの設定を行い設定ファイルを作ります。
  • プログラムで初期化の指定があれば設定ファイルの有無にかかわらずアクセスポイントの設定を行います。
  • アクセスポイントの設定を行うにはプログラムで決められたSSIDとパスワードとIPアドレスでマイコンをWEBサーバーにします。
  • モバイル端末よりプログラムで決められたSSIDとパスワードとIPアドレスでWEBサーバーに接続し、ブラウザでプログラムで決められたIPアドレスにアクセスするとSPIFFSにあるsetting.htmlが設定画面として表示されます。
  • アクセスポイント設定画面より接続方法、SSID、パスワード、IPアドレス、ゲートウイアドレスを設定します。
  • 接続方法は既存のアクセスポイントに接続する方法と、マイコンをアクセスポイントにする方法の2つのタイプがあります。
  • 設定ボタンを押すと設定内容をSPIFFSの設定ファイルに書き込み、マイコンを再起動します。
  • SPIFFSにある設定ファイルを読み込めたら、接続方法ごとの処理を行います。
  • 接続方法が既存のアクセスポイントに接続する方法の場合は、マイコンのIPアドレスを設定ファイルの値に設定し、モバイル端末より設定ファイルのSSIDとパスワードで既存のアクセスポイントに接続します。
  • 接続方法がマイコンをアクセスポイントにする方法の場合は、マイコンのSSIDとパスワードとIPアドレスを設定ファイルの値に設定し、モバイル端末より設定ファイルのSSIDとパスワードでマイコンをアクセスポイントとして接続します。
  • 次にいずれの場合もモバイル端末のブラウザより、設定ファイルのIPアドレスでアクセスするとSPIFFSにあるindex.htmlがブラウザに表示されます。
  • 以後ブラウザで入力された値をマイコンに通知したり、マイコンの状態を問い合わせてブラウザに表示することが非同期通信を用いて行えます。

処理フロー

処理フロー