ESP-IDFを使ってみる

ESP-IoT-Bridge


こちら
にESP-IDFを使ったRouterアプリ(esp32_nat_router)が公開されています。
esp32_nat_routerはWiFi-Stationを外部へのInterface、WiFi-SoftAPを内部への Interfaceとして使いますが、
こ ちらに複数の組み 合わせが可能なブリッジコンポーネントと、このコンポーネントを使ったサンプルプロジェクトが公開されています。


こ ちらにはEthernetを外部へのInterface、USB/SPI/SDIOを内部へのInterfaceとして使うサンプル プロジェクトが公開されています。
内部InterfaceにSPIを使う場合、ESP32はSPI周辺機器(SPI-Slave)として動作します。
RaspberryPiをSPI-Masterとしたアプリケーションの作り方がこ ちらに公開されています。
内部InterfaceにSDIOを使う場合、ESP32はSDIO周辺機器(SDIO-Slave)として動作します。
RaspberryPiをSDIO-Masterとしたアプリケーションの作り方がこ ちらに公開されています。
Ethernet/WiFi機能のないMCUに対して、Ethenetの機能を提供することができます。


ESP-IoT-Bridgeコンポーネントでは、外部Interfaceとして4Gモデムを使うことができます。





ESP-IoT-Bridgeコンポーネントの詳細はこ ちらに公開されています。
こ ちらのWiFiルーターのサンプルで、WiFi-Stationを外部へのInterface、WiFi-SoftAPを内部への Interfaceとして使って見ました。




ここで外部Interfaceを選択します。


外部Interfaceにはstation interfaceを使います。


ここで内部Interfaceを選択します。


内部InterfaceにはSoftAP Interfaceを使います。


内部InterfaceとしてSoftAPを選択した場合、これがAPの情報になります。


ファームウェアをビルドしてESP32に書き込むとESP_Bridge_XXXXXのAPが出現します。
XXXXXXの部分はESP32のMACアドレスの一部が使われます。
また、WebServerが起動していることが分かります。


このAPに接続して、ブラウザのアドレスに192.168.5.1を指定すると、WebServerは以下の画面を表示します。


WiFiルータへの接続情報を指定します。


WiFiルーターへの接続が完了すると、ルーターから払い出されたIPアドレスを表示し、外部との接続が完了します。


もう一台、ESP32を用意し接続先にESP_Bridge_XXXXXを指定します。
今回は、こ ちらのSNTPサンプルを使いました、


ビルドするとESP-IoT-Bridgeを経由して、SNTPサーバーへ接続し、サーバーからの応答を表示します。


外部へのInterfaceをWiFi-StationからW5500 SPI Ethernetに変えてみました。


ここでSPIで使用するGPIOの設定を行います。


但し、このままビルドして実行するとエラーが多数表示されます。
ESP-IDFで利用可能なSPI PHYが全て有効になっているのが理由です。
#
# Ethernet
#
CONFIG_ETH_ENABLED=y
CONFIG_ETH_USE_SPI_ETHERNET=y
CONFIG_ETH_SPI_ETHERNET_DM9051=y
CONFIG_ETH_SPI_ETHERNET_W5500=y
CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL=y

今回使用するのはW5500なので、これ以外は無効にします。
これでエラーは無くなります。
#
# Ethernet
#
CONFIG_ETH_ENABLED=y
CONFIG_ETH_USE_SPI_ETHERNET=y
CONFIG_ETH_SPI_ETHERNET_DM9051=n
CONFIG_ETH_SPI_ETHERNET_W5500=y
CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL=n



これがESP-IoT-Bridgeの基本形です。


STAインタフェースとSoftAPインタフェースを使ってESP-IoT-Bridgeを多段連結して、
接続先APの検知機能と、ノードの管理機能を追加したものが、こちらのESP- Mesh-Liteになります。



続く...