ブログ
ESP32 と ESP8266:どちらを選ぶべき?
同じメーカー、同じ Wi-Fi の血統、でも中身は別のチップ。安価な IoT を現実にしたのが ESP8266 で、それを快適にしたのが ESP32 です。特定メーカーびいきのノイズを除いた、聞かれ続けている比較をここにまとめました。
ESP32 は ESP8266 より優れていますか?
スペック上は、はい、その通りです。240 MHz のデュアルコアに対して 80〜160 MHz のシングルコア、約 520 KB の RAM に対して実用 80 KB 程度、ESP8266 にはそもそもない Bluetooth LE、より大きなフラッシュ、精度の高い ADC チャンネル。ただし「優れている」には代償が付きものです。ESP32 は値段も高く、消費電流も多く、複雑さも増します。拡張の余地がない静的な Wi-Fi リレーなら、今でも ESP8266 が正解です。BLE、オーディオ、TLS 通信が絡むなら、本気で選ぶなら ESP32 しかありません。もっと深い話は内部構造 FAQでどうぞ。
ESP32 と ESP8266、どちらの方がいいですか?
用途が決めます。BLE、大きなバッファ、OTA、たくさんの GPIO、ヒープが機能する TLS が必要なら ESP32。センサー 1 個、リレー 1 個、コスト上限が厳しいなら ESP8266。どちらも良いチップです。ミスマッチが起きるのは、ESP8266 を買ってから Bluetooth が必要だと気づいたときです。
8266 と ESP32 ではどちらが速いですか?
スペック上は ESP32 で、おおよそ 3 倍です。240 MHz コアが 2 つに対して 80〜160 MHz コアが 1 つ。実感ではその差はさらに大きく感じます。ESP32 は RAM が多く Wi-Fi スタックも大きいため、待たされる場面が少ないからです。チップ自体が速くても、数秒おきにメモリが尽きるのでは遅く感じるものです。
ESP32 と ESP8266 は同じものですか?
いいえ。同じファミリーですが別のチップです。「ESP32 と ESP8266 は同じか」と検索しても、語順をひっくり返して「ESP8266 と ESP32 は同じか」と検索しても、答えは同じ。いとこ同士であって、双子ではありません。ESP8266 は Bluetooth のないシングルコアの Wi-Fi チップ。ESP32 は 2 つ目のコアと BLE、そして数倍の RAM を備えています。開発基板のピンヘッダーがそっくりなのも、混同が絶えない理由です。
ESP8266 用のスケッチは ESP32 で動きますか?
ほとんど動きます。2 つの Arduino コアは API の大半を共有しているので、ピン名の書き換えと数個のライブラリの差し替えで移植できます。よくある落とし穴は、analogRead の戻り値が 0〜1023 ではなく 0〜4095 になること、両チップに存在しないピン番号があること、一部ライブラリに ESP32 専用フォークがあることです。1 プロジェクトあたり半日分の移植作業を見積もってください。8266 専用ライブラリに頼っていたなら、丸 1 日かかると思っておきましょう。両ターゲットをきれいに管理する方法はPlatformIO FAQにまとめてあります。
ESP8266 は今でも買う価値がありますか?
はい、適材適所なら。私は今でも Wi-Fi ブリッジやガレージドアのトリガーといった単純作業用に、約 1.5 ドルの ESP-01S モジュールを買っています。仕事は 1 つ、BLE なし、OTA なし、それで完了。でも、今後拡張するかもしれないものには、技術的には ESP8266 で足りる場合でも ESP32 を選びます。追加の RAM が、原因不明のクラッシュの類をまるごと消してくれるからです。量産で価格を詰めているなら、ESP8266 はまだまだ現役です。
Wi-Fi 性能がいいのはどちらですか?
どちらも 2.4 GHz の b/g/n で、実測の通信範囲も似たようなものです。ESP32 は Wi-Fi と Bluetooth を同時に動かしてもパケットが落ちません。ESP8266 には Bluetooth がそもそもないので、共存させたい相手がいません。
メモリの差はどのくらい大きいですか?
ESP8266 は実用 SRAM が約 80 KB、フラッシュは 1〜4 MB。ESP32 は SRAM が 320〜520 KB、フラッシュが 4〜16 MB で、WROVER モジュールならフレームバッファやオーディオバッファ用に最大 8 MB の PSRAM が追加されます。この差が、どのプロジェクトがそもそも可能かという境界線を決めます。CPU 速度よりも、こちらが本当の乗り換え理由です。両者の消費電力のデータは電力 FAQにあります。
既存の ESP8266 プロジェクトを移行すべきですか?
機能を追加する予定がある場合だけです。設置済みで安定していて、変わることのない ESP8266 プロジェクトは、10 年動き続けることもあります。動いているシステムの穏やかな余生を、移行リスクで壊すのは避けたいものです。BLE や大型の OTA イメージ、まともなヒープでの TLS を追加するなら移行しましょう。ただし本番機ではなく、先にシミュレーターで移植してください。
買う前に両方を試せますか?
できます。ブラウザーシミュレーターは実際にコンパイルした ESP32 ファームウェアを実行します。Wi-Fi もセンサーもシリアルも全部動きますし、同じコードは後で実機にも書き込めます。どちらのチップを注文する前に、無料で試してみてください。
この記事のテーマのプロジェクトは、sensbench の無料シミュレーターでそのまま実行できます。回路は配線済み、ファームウェア同梱、アカウントもインストールも不要です。