自宅のESP32機器を外から操作、難しい設定なしでつなぐ無料ライブラリ

ESP32で作った機器を、外出先からスマホで操作したい。だが、自宅のESP32に外から直接つなぐのは、案外面倒だ。ルーターのポート開放が必要だったり、別途ngrokのようなサービスや、隣に置いたパソコンが要ったりする。Hamza Yesilmen氏が公開したArduino用ライブラリ「esp32-tunnel」は、その手間を肩代わりしてくれる。

このライブラリの狙いは単純だ。ESP32でいつもどおりWebサーバーを動かし、tunnelSetup()という命令を1つ呼ぶ。すると、外からアクセスできる公開URLが手に入る。ルーターの設定も、ポート開放も、ESP32の隣に置く中継役の機器もいらない。

仕組みのカギは「トンネル」だ。家庭のルーターの内側にある機器は、外から直接たどり着けないことが多い。そこでESP32の側から外のサーバーへ接続を張り、その通り道を使って、外部からの要求をESP32へ届ける。利用者はふつうのURLを開くだけで、ルーターの内側にある機器の画面にアクセスできる。

中継のやり方は3通りから選べる。1つめは「セルフホスト」で、自前のサーバーを中継役にする方式だ。既定ではこの方式で、ESP32側は暗号化を省いた軽い接続にして、メモリを約40KB節約する。2つめは「localtunnel」で、無料の暗号化付きURLが手に入る。3つめは「bore」で、ログインもアカウントも不要の無料サービス経由でつなぐ。用途や好みに応じて使い分けられる。

ESP32の負荷にも配慮されている。ESP32は2つのコアを持つが、片方のコアでトンネルの維持を担い、もう片方で本来のWeb処理を受け持つ。これにより、トンネルがメインの処理を圧迫しにくい。WiFiが切れたり接続が切れたりしても自動でつなぎ直し、アクセスキーやルートごとの認証、リクエストの記録にも対応する。

自前のサーバーは、Render.comに手早くデプロイできる。試すだけなら、製作者が用意した無料の公開サーバーも使える。ライセンスはMITで、誰でも自由に使える。設計はGitHubで公開されている。

関連情報

Dark web UI for esp32-tunnel with Device tab selected, showing user field 'p2ptest', masked password, Online status, and a P2P/WS panel with GET /status and a Send button.

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次