ブログ
ESP32 を Mac と Linux で使う:ポート・ドライバー・MAC アドレス
ESP32 を Mac に接続する方法、Linux ではどのポートに認識されるか、フィルタリングのために ESP32 の MAC アドレスを調べたいときの方法——動いているのに OS まわりでつまずく質問をまとめました。
ESP32 を Mac に接続するには?
挿すだけで基板は /dev/cu.usbserial-XXXX として表示されます。唯一の難所はドライバーで、基板の USB チップ次第です。私の CP2102 基板は Silicon Labs の VCP ドライバーを入れるまでポートが現れませんでした。CH340 基板は代わりに WCH ドライバーが必要です。Windows での ESP32 への接続方法を知っている方なら、Mac もポート名が違うだけで流れは同じです。ドライバーの注意点はナレッジベースにまとめています。macOS Sequoia の kext 警告についてもそこで解説しています。
ESP32 は Linux でどのポートを使う?
CH340 や CP2102 基板なら /dev/ttyUSB0、ネイティブ USB チップなら /dev/ttyACM0 です。ACM はたいていドライバー不要を意味します。挿す前と挿した後で ls /dev/tty* を実行して、増えたポートを探すのが確実です。権限エラーが出る場合は dialout グループへの追加が必要です。sudo usermod -aG dialout $USER を実行してから、ログアウトして再ログインしてください。
ESP32 で Linux は動くの?
残念ながら実質無理です。ESP32 には Linux が必要とするメモリ管理ユニットがなく、どんなに願っても解決しません。代わりに動くのは FreeRTOS(デフォルト)、MicroPython、ESP-IDF アプリ、あるいはベアメタルの Rust です。Linux の環境を求めている方は多いのですが、実務上の答えは「あなたのコードこそがアプリケーションであり、FreeRTOS がスケジューリングする」ということです。どうしても Linux が必要なら、Raspberry Pi Pico W か Pi Zero に乗り換えるのが正直な道です。ただし、ほとんどのセンサー用途では ESP32 のサイズ感が勝ちます。
ESP32 の MAC アドレスを調べるには?
チップに直接聞くのが一番です。WiFi.macAddress() を 115200 でシリアルモニターに出力してください。それが STA MAC、つまりルーターが見ている MAC です。あるいはポートを指定して esptool.py read_mac を実行すると、eFuse からベース MAC を読み出せます。ESP32 の MAC アドレスの調べ方を検索する方の多くはルーターの MAC フィルタリング目的でしょう。その場合は STA の値をホワイトリストに入れてください。FAQ インデックスには配線の詳細もあります。
ESP32 の MAC アドレスを取得するには?
方法は 2 つあります。ファームウェア側では、ステーションインターフェースの WiFi.macAddress()、工場出荷値なら esp_read_mac(BASE_MAC) です。ホスト側では esptool.py --port /dev/ttyUSB0 read_mac を実行します。「ESP32 の MAC アドレスを取得する方法」で検索してここにたどり着いた方——答えはこれです。以上。
ESP32 の MAC アドレスを変更するには?
限定的ですが可能です。esp_wifi_set_mac(WIFI_IF_STA, mac) でインターフェース MAC を上書きできますが、ローカル管理ビットを立てないと Wi-Fi が受け付けません。しかも RAM 上の変更なので、再起動すれば工場出荷時の MAC に戻ります。MAC フィルタリング対策でやる方が多いですが、本番環境で永続化するのはまた別の話です。
ESP32 は Mac で動くの?
ツールチェーンは動きます。Arduino IDE も PlatformIO も esptool も、Apple Silicon を含めて macOS でネイティブ動作します。OS 固有なのは USB ドライバーだけです。
最近の ESP32 基板にドライバーは必要?
クラシックな基板だけです。ESP32-S3、C3、C6 は USB-Serial-JTAG を内蔵していて、macOS、Linux、Windows 10 以降ならドライバー不要です。CH340 や CP2102 を載せた WROOM 開発キットは今でもベンダーのドライバーが必要です。「Windows 10 で ESP32 にアクセスする方法」の質問は、結局このドライバー問題が本質です。
基板が届く前に開発を始められる?
できます。まずプロトタイプを作りましょう。ESP32 を使ったスマートコーヒーメーカーも温度ロガーもガレージのセンサーも、基板が届く前に ブラウザで動く無料シミュレーターで全部試せます。同じコンパイル済みファームウェアを後から実機に書き込めばいいだけです。「Mac で VSCode と ESP32 を使う方法」を探していた方は、PlatformIO 拡張機能と ライブサンドボックスが答えです。
Mac で Arduino に ESP32 をインストールするには?
「ESP32 を Mac の Arduino にインストールする方法」で検索してたどり着いた方へ:どこでも同じ、Preferences → Boards Manager の流れです。Additional Boards Manager URLs に Espressif の JSON URL を追加してください。macOS 特有の手順はありません。上のドライバーの話だけが Mac 固有の部分です。はじめての ESP32 ガイドで最初の 1 時間を丁寧に解説しています。