「ArduinoとESP32、どちらを買えばいい?」「ESP32はArduinoの上位互換?」「Arduino IDEで使える?」――この記事では、この3つの疑問に最初に答えたうえで、比較表・選び方・Wi-Fi接続までを順に説明します。
- 違い:ESP32はEspressif Systems社の「無線機能を内蔵したマイコン(SoC)」のシリーズです。Arduinoは「ボード製品群と開発環境を含むプラットフォーム」です。比べているものの種類がそもそも異なります。
- 選び方:Wi-FiやBluetoothを使うならESP32、5Vの部品やシールドで基礎を学ぶならArduino UNO R3、UNOの形のまま無線も使いたいならUNO R4 WiFiが候補です。
- 上位互換か:いいえ。ESP32は3.3Vで動き、ピンの制約やライブラリの違いがあるため、UNOの単純な置き換えにはなりません。
- Arduino IDE:使えます。Espressif公式のボードパッケージを追加すれば、同じ書き方でスケッチを書き込めます。
| 比較項目 | ESP32 | Arduino UNO R3 |
|---|---|---|
| Wi-Fi | 内蔵 | なし |
| Bluetooth | 内蔵 | なし |
| GPIO信号 | 3.3V | 5V |
| IDE | Arduino IDE対応 | Arduino IDE対応 |
| 向いている人 | IoT・無線工作 | 電子工作入門 |
※ESP32は初代ESP32搭載の代表的な開発ボードを想定しています。UNO R4 WiFiを含む詳しい比較は比較表で確認できます。

目次
01ESP32とは?Arduinoとの違いを初心者向けに解説
ESP32は、Wi-FiやBluetoothの無線機能を1つのチップにまとめたマイコンのシリーズです。開発元は中国・上海のEspressif Systems社で、Arduino社の製品ではありません。
ESP32とArduinoの関係
「Arduino」という言葉には、2つの意味があります。
- ボード製品:Arduino UNO R3、UNO R4 WiFiなど、Arduino社が設計した基板
- 開発環境:Arduino IDEと、
setup()・loop()・digitalWrite()などの共通の書き方
ESP32は、後者の「開発環境」に対応しています。Espressif社が「Arduino-ESP32」というボードパッケージを公開しているため、Arduino IDEからESP32にスケッチを書き込めます。
「無線内蔵のArduino」という言い方は、イメージをつかむ比喩としては便利です。ただし正確には「Arduinoの書き方で開発できる、別メーカーのマイコン」です。
チップ・モジュール・開発ボードの違い
「ESP32」と呼ばれるものには3つの階層があります。購入時に混同しやすいので整理しておきます。
| 階層 | 例 | 内容 |
|---|---|---|
| チップ(SoC) | ESP32、ESP32-S3、ESP32-C3 | CPUと無線回路を集約した半導体そのもの |
| モジュール | ESP32-WROOM-32E | チップにフラッシュメモリやアンテナを組み合わせた部品。無線の認証は主にこの単位で取得されます |
| 開発ボード | ESP32-DevKitC-32E | モジュールにUSB端子、電源回路、ピンヘッダを付けた基板。初心者が買うのはこれです |
ESP32が向いている用途
ESP32が得意なのは、ネットワークやスマートフォンとつながる作品です。センサー値をWi-Fiで送る、ブラウザから機器を操作する、BLEでスマートフォンと通信する、といった用途に向いています。
ESP32がArduinoの単純な上位互換ではない理由
処理速度やメモリではESP32がUNO R3を大きく上回ります。それでも「上位互換」と言えない理由は3つあります。
- 電圧が違う:ESP32の入出力は3.3Vです。5V前提の部品はそのまま接続できない場合があります。
- 形が違う:UNO用シールドはESP32開発ボードには挿せません。
- ピンとライブラリが違う:使えないピンや、AVRマイコン専用に書かれたライブラリがあります。
ESP32単体の基本をもう少し詳しく知りたい場合は、ESP32の基本と使い方をまとめた記事も参考にしてください。本記事は「Arduinoとの比較と選び方」に絞って説明します。
02ESP32とArduinoの違いを比較表で確認
最も大きな違いは「無線機能」「ロジック電圧」「処理性能」の3点です。ここでは、初代ESP32の代表的な開発ボードと、Arduino UNOの2世代を比べます。

※表は横にスクロールできます。
| 項目 | ESP32-DevKitC-32E (ESP32-WROOM-32E) |
Arduino UNO R3 | Arduino UNO R4 WiFi |
|---|---|---|---|
| 開発元 | Espressif Systems | Arduino | Arduino |
| CPU | Xtensa LX6 32bit デュアルコア |
ATmega328P 8bit AVR |
Renesas RA4M1 32bit Arm Cortex-M4 |
| クロック | 最大240MHz | 16MHz | 48MHz |
| メモリ | SRAM 520KB フラッシュ 4MB〜(モジュールによる) |
SRAM 2KB フラッシュ 32KB |
SRAM 32KB フラッシュ 256KB |
| GPIO | チップは最大34本。ESP32-WROOM-32Eモジュールで利用可能なのは26本で、開発ボードの端子構成やピンの用途によって制限がある | デジタル14本 (うちPWM 6本) |
デジタル14本 (うちPWM 6本) |
| ロジック電圧 | 3.3V | 5V | 5V |
| Wi-Fi | あり(2.4GHz、802.11 b/g/n) | なし | あり(搭載のESP32-S3モジュール経由) |
| Bluetooth | Classic(BR/EDR)とBLE | なし | BLE |
| アナログ入力 | 12bit(0〜4095)。Wi-Fi使用中はADC2系のピンが使えない | 6本・10bit(0〜1023) | 6本。初期設定は10bit(0〜1023)。analogReadResolution()で最大14bitに変更可能 |
| アナログ出力(DAC) | 8bit×2本(GPIO25・26) | なし(PWMで代用) | 12bit×1本(A0) |
| Arduino IDE対応 | 対応(Espressifのパッケージを追加) | 標準で対応 | 対応(UNO R4用パッケージを追加) |
| 初心者の使いやすさ | 配線前に電圧とピンの確認が必要 | 情報が最も多く、5V部品をそのまま使いやすい | UNOの形と5Vを保ったまま無線が使える |
| 主な用途 | IoT、無線通信、Webサーバー | 電子工作の入門、5V系回路 | UNO資産を活かした無線作品 |
| 主な注意点 | GPIOに5Vを入力しない。使えないピンがある | メモリが小さい。無線は外付け | 無線のライブラリがESP32用と異なる(WiFiS3) |
※仕様はEspressifのESP32データシートおよびArduino公式ドキュメント(2026年10月確認)に基づきます。「初心者の使いやすさ」「主な用途」は編集部の見解です。価格は変動が大きいため掲載していません。
「ArduinoにはWi-Fiがない」は正確ではない
UNO R3と、UNO R4 Minimaには無線機能がありません。一方、UNO R4 WiFiは無線用にESP32-S3モジュールを搭載しており、Wi-FiとBLEが使えます。
つまり「Arduinoか、ESP32か」という二択ではなく、Arduinoのボードの中にESP32が組み込まれている製品もある、という関係です。ArduinoのボードごとのちがいはArduino側の記事で整理しています。Arduinoメインボードの種類と選び方もあわせて確認してください。
03ESP32のメリット・デメリット
ESP32は無線と処理性能に強い一方で、電圧とピンの扱いに注意が必要です。良い面と難しい面を分けて確認します。
メリット
- 無線を内蔵している:Wi-FiやBluetoothのモジュールを別に配線する必要がありません(対応する無線の種類はシリーズごとに異なります)。
- IoT開発に向いている:HTTP通信やMQTT、Webサーバーなどのライブラリが公式パッケージに含まれています。
- 処理能力とメモリに余裕がある:通信をしながらセンサー処理を行うような用途でも、メモリ不足になりにくい構成です。
- Arduino IDEで開発できる:Arduinoで覚えた書き方の多くをそのまま使えます。
デメリット
- 3.3Vロジックへの配慮が必要:5V出力の部品をGPIOにつなぐと故障の原因になります。
- ボード選択とピン設定が難しい:似た名前のボードが多く、起動に関わるピンなど使い方に制約のあるピンがあります。
- 消費電力が大きくなりやすい:Wi-Fi送信時には数百mA級の電流が流れる瞬間があります。電池駆動ではスリープの設計が必要です。
- シリーズごとに仕様が違う:ネット上の情報が、自分のボードに当てはまらないことがあります。
- 互換性の問題がある:UNO用シールドは使えず、AVR専用のライブラリは動作しません。
3.3Vと5Vの違いで壊さないために
ESP32で最も多い失敗は、電圧の取り違えです。「電源の電圧」と「信号の電圧」を分けて考えると整理できます。
| ピン | 役割 | 注意点 |
|---|---|---|
| USB端子 | 5Vで給電 | ボード上のレギュレータが3.3Vに変換してチップへ供給します。USBが5Vでも、GPIOは3.3Vです |
| 5Vピン | 5V電源の端子 | 信号ピンではありません。USB給電と外部給電を同時に行わないでください |
| 3V3ピン | 3.3V電源の出力 | 3.3Vで動くセンサーの電源に使えます。取り出せる電流には上限があります |
| GPIO | 信号の入出力 | HIGHは約3.3Vです。5Vの信号を直接入力しないでください |
※ESP32-DevKitCを例にした説明です。ピン名や回路はボードによって異なるため、使用するボードの回路図を確認してください。
5V信号をGPIOに直接入れない
ESP32のGPIOは5V入力に対応していません。5Vで動作する超音波センサーやUNO用モジュールの出力をつなぐ場合は、レベル変換モジュールや分圧抵抗で3.3V以下に下げてください。すぐに壊れなくても、動作が不安定になったり、後から故障したりするおそれがあります。
反対に、3.3V電源・3.3V信号に対応し、ESP32の入力仕様や消費電流の条件を満たすセンサーであれば、通常はレベル変換なしで接続できます。「すべての部品に変換が必要」というわけではありません。電源電圧が3.3Vというだけで判断せず、信号の電圧もデータシートで確認してください。
- I2C:信号線はプルアップ抵抗がつながっている電圧まで上がります。モジュール上で5Vにプルアップされている場合は、3.3V側へのプルアップに変えるか、双方向のレベル変換を使います。
- アナログ入力:測定できるのは3.3Vより低い範囲で、上限付近と0V付近では直線性が落ちます。値の範囲もUNO R3の0〜1023に対し、初期設定で0〜4095です。
- PWM:
analogWrite()は使えますが、出力の振幅は3.3Vです。5V前提のモーター用ドライバなどでは入力のしきい値を確認してください。
04ESP32の種類と初心者におすすめの選び方
ESP32はシリーズごとにCPUも無線も異なります。「ESP32はデュアルコアでBluetooth Classicが使える」という説明は、初代ESP32にしか当てはまりません。
※表は横にスクロールできます。
| シリーズ | CPU | Wi-Fi | Bluetooth | 特徴・向いている用途 |
|---|---|---|---|---|
| ESP32(初代) | Xtensa LX6 デュアルコア(シングルコア品もあり) |
2.4GHz | Classic+BLE | 作例と解説が最も多い。Bluetooth Classicが必要な場合の選択肢 |
| ESP32-S3 | Xtensa LX7 デュアルコア |
2.4GHz | BLEのみ | USB機能を内蔵。カメラや表示など処理の重い用途 |
| ESP32-C3 | RISC-V シングルコア |
2.4GHz | BLEのみ | 小型・低コスト。シンプルなセンサー端末 |
| ESP32-C6 | RISC-V | 2.4GHz(Wi-Fi 6) | BLEのみ | IEEE 802.15.4(Thread/Zigbee)に対応。スマートホーム向け |
| ESP32-C5 | RISC-V | 2.4GHz/5GHz(Wi-Fi 6) | BLEのみ | 5GHz帯に対応するシリーズ。IEEE 802.15.4(Thread/Zigbee)にも対応。作例はまだ少なめ |
※Espressif公式の製品情報(2026年10月確認)に基づく概要です。詳細は各シリーズのデータシートを確認してください。

目的別の選び方
- はじめての1枚で、解説記事を見ながら進めたい:初代ESP32の開発ボード
- Bluetooth Classic(シリアル通信など)を使いたい:初代ESP32
- USB機器として使いたい、処理性能がほしい:ESP32-S3
- 小さく安く作りたい:ESP32-C3
- UNOの形と5V部品を活かしたい:Arduino UNO R4 WiFi
購入前に確認する4点
- 技適:日本国内で無線を使うには、電波法の技術基準に適合した機器である必要があります。「ESP32」という名前が付いていても、すべてのボードが適合しているとは限りません。モジュールや製品に技適マークと番号の表示があるかを、販売ページと実物で確認してください。
- USBの方式:USBシリアル変換ICの種類(CP210x系、CH340系など)によって、パソコン側にドライバが必要な場合があります。
- ピン配置:ボードの幅によっては、ブレッドボードに挿すと片側の穴がふさがります。ピン配置図が公開されているボードを選ぶと安心です。
- 情報量:メーカーや販売店が回路図・ピン配置を公開しているボードは、トラブル時に原因を調べやすくなります。
以降の手順とコードは、Espressif純正のESP32-DevKitC-32E(ESP32-WROOM-32E搭載)を前提に統一します。別のボードを使う場合は、ボード選択とピン番号を読み替えてください。
05ESP32をArduino IDEで使う準備
必要な作業は「ボードマネージャURLの登録」と「esp32パッケージのインストール」の2つです。Arduino IDE 2.x(日本語表示)のメニュー名で説明します。
- Arduino IDEを用意するまだ入れていない場合は、Arduino IDEのダウンロード・インストール方法を先に済ませてください。
- ボードマネージャURLを登録する「ファイル」→「基本設定」を開きます(macOSは「Arduino IDE」→「設定」)。「追加のボードマネージャのURL」に、下記の安定版URLを貼り付けて「OK」を押します。
- esp32パッケージをインストールする「ツール」→「ボード」→「ボードマネージャ」を開き、「esp32」で検索します。「esp32 by Espressif Systems」を選んでインストールします。容量が大きいため、数分かかることがあります。
- ボードを選ぶ「ツール」→「ボード」→「esp32」→「ESP32 Dev Module」を選びます。
- USBケーブルで接続し、ポートを選ぶデータ通信に対応したUSBケーブルで接続し、「ツール」→「ポート」から、接続時に増えたポートを選びます。充電専用ケーブルではポートが表示されません。
- 書き込みテストをする下記のテスト用スケッチを書き込み、シリアルモニタを115200bpsに設定します。1秒ごとに文字が表示されれば準備完了です。
安定版のボードマネージャURL
https://espressif.github.io/arduino-esp32/package_esp32_index.json
URLはEspressifのArduino-ESP32公式ドキュメント(Installing)に掲載されている安定版(Stable release)のものです。すでに別のURLが入っている場合は、カンマで区切って追加します。
書き込みテスト用スケッチ
// 書き込みテスト:1秒ごとにシリアルモニタへ表示する
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("ESP32 is running.");
delay(1000);
}
ESP32-DevKitCには、自由に使えるLEDが搭載されていない版があります。そのため、LED点滅ではなくシリアル出力でテストしています。setup()やloop()の意味を確認したい場合は、Arduinoのコードの書き方の基礎を参照してください。
06ESP32でWi-Fiに接続する完全コード
下記のスケッチは、SSIDとパスワードを書き換えるだけで、Wi-Fi接続・IPアドレス表示・切断時の再接続まで行います。Arduino IDEにそのまま貼り付けて使えます。
- ボード:ESP32-DevKitC-32E(ESP32-WROOM-32E)
- ボード設定:ESP32 Dev Module
- パッケージ:Arduino-ESP32(esp32 by Espressif Systems)3.x系
- Wi-Fi:2.4GHz帯のアクセスポイント
- シリアルモニタ:115200bps
// ESP32 Wi-Fi接続スケッチ
// 対象 : ESP32-DevKitC-32E / ボード設定「ESP32 Dev Module」
// 前提 : Arduino-ESP32 3.x系 / シリアルモニタ 115200bps
#include <WiFi.h>
// ★自分のWi-Fi情報に書き換える(2.4GHz帯のSSID)
const char* WIFI_SSID = "YOUR_SSID";
const char* WIFI_PASSWORD = "YOUR_PASSWORD";
const unsigned long CONNECT_TIMEOUT_MS = 20000; // 接続待ちの上限(20秒)
const unsigned long REPORT_INTERVAL_MS = 10000; // 状態表示の間隔(10秒)
unsigned long lastReportMs = 0;
// Wi-Fiに接続する。成功でtrue、タイムアウトでfalseを返す
bool connectWiFi() {
Serial.print("Connecting to ");
Serial.println(WIFI_SSID);
WiFi.mode(WIFI_STA); // 子機(ステーション)として動かす
WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // 接続を開始
unsigned long startMs = millis();
while (WiFi.status() != WL_CONNECTED) {
// 一定時間つながらなければ、あきらめてエラーを表示
if (millis() - startMs >= CONNECT_TIMEOUT_MS) {
Serial.println();
Serial.print("[ERROR] Wi-Fi connection timed out. status=");
Serial.println(WiFi.status());
Serial.println("Check SSID, password, 2.4GHz band and distance.");
WiFi.disconnect(); // 次の再試行に備えて切断
return false;
}
delay(500);
Serial.print(".");
}
// 接続成功:割り当てられたIPアドレスを表示
Serial.println();
Serial.println("Wi-Fi connected.");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
return true;
}
void setup() {
Serial.begin(115200);
delay(1000); // シリアルモニタの準備待ち
connectWiFi();
}
void loop() {
// 10秒ごとに接続状態を確認する
if (millis() - lastReportMs < REPORT_INTERVAL_MS) {
return;
}
lastReportMs = millis();
if (WiFi.status() == WL_CONNECTED) {
// 接続中:電波強度を表示(0に近いほど強い)
Serial.print("Connected. RSSI: ");
Serial.print(WiFi.RSSI());
Serial.println(" dBm");
} else {
// 切断時:再接続を試みる
Serial.println("Wi-Fi disconnected. Reconnecting...");
connectWiFi();
}
}
※Arduino-ESP32のWi-Fi APIに沿って作成したコードです。本記事の公開時点で、編集部による実機での動作確認は行っていません。シリアルモニタでの文字化けを避けるため、表示メッセージは英語にしています。
想定出力例
接続に成功した場合、シリアルモニタには次のような表示が出る想定です(実測ではありません。IPアドレスと数値は環境によって変わります)。
Connecting to YOUR_SSID
......
Wi-Fi connected.
IP address: 192.168.1.23
Connected. RSSI: -52 dBm
Connected. RSSI: -54 dBm
コードの流れ
WiFi.begin()で接続を始め、WiFi.status()がWL_CONNECTEDになるまで待ちます。- 20秒たっても接続できなければ、状態コードと確認項目を表示して処理を戻します。無限に待ち続けません。
- 接続できたら
WiFi.localIP()でIPアドレスを表示します。 loop()では10秒ごとに状態を確認し、切れていれば再接続します。
なお、connectWiFi()は接続を待つ最大20秒のあいだ、他の処理が止まる作りです。接続確認が目的の本スケッチでは問題ありませんが、あとからセンサー計測などを追加する場合は、待ち時間をmillis()で管理して処理を止めない書き方(非ブロッキング方式)に変えることをおすすめします。
SSIDとパスワードを公開しない
スケッチをGitHubなどの公開リポジトリに置く場合や、画面のスクリーンショットをSNS・ブログに載せる場合は、SSIDとパスワードを必ず消してください。公開用には、認証情報を別ファイルに分けて管理対象から外す方法が安全です。
07ESP32でできる電子工作・IoT活用例
Wi-Fiに接続できれば、次の5つはいずれも追加の無線部品なしで取り組めます。上から順に難しくなります。
※表は横にスクロールできます。
| 作例 | 必要な部品 | 難易度 | 実現できる動作 |
|---|---|---|---|
| スマホからLED操作 | LED、抵抗 | ★☆☆ | ESP32をWebサーバーにし、ブラウザのボタンでLEDを点灯・消灯する |
| Webサーバーで遠隔表示 | 温湿度センサー(3.3V対応品) | ★★☆ | 同じWi-Fi内のスマホやPCから、現在のセンサー値をブラウザで確認する |
| 温湿度データのWi-Fi送信 | 温湿度センサー | ★★☆ | 一定間隔で測定し、HTTPやMQTTでサーバーへ送る |
| BLEでスマホとデータ交換 | なし(スマホのBLEアプリ) | ★★☆ | Wi-Fiのない場所で、スマホへ測定値を通知する |
| センサー値のクラウド記録 | センサー、クラウドサービスのアカウント | ★★★ | 測定値を蓄積し、グラフで長期の変化を確認する |
※難易度は編集部の目安です。
計測装置として使う場合は、アナログ入力の精度に注意してください。ESP32内蔵のADCは電圧の両端で直線性が落ちるため、精度が必要な計測では、I2C接続の外付けADCやデジタル出力のセンサーを選ぶ方法があります。
08ESP32で失敗しやすい原因と対処法
うまく動かないときは、「ケーブル→ポート→ボード設定→書き込み→電源→配線」の順に確認すると、原因を早く絞り込めます。
※表は横にスクロールできます。
| 症状 | 主な原因 | 対処(上から順に確認) |
|---|---|---|
| ボード一覧にESP32がない | パッケージが未導入、URLの入力ミス | ①ボードマネージャURLを再確認 ②「esp32 by Espressif Systems」をインストール ③IDEを再起動 |
| ポートが表示されない | 充電専用ケーブル、ドライバ未導入 | ①データ通信対応ケーブルに交換 ②別のUSB端子で試す ③ボードのUSBシリアルICに合うドライバを入れる |
| 書き込みに失敗する | ポートやボードの選択違い、シリアルモニタとの競合 | ①ポートとボード設定を確認 ②他のソフトがポートを使っていないか確認 ③書き込み速度を下げる |
| 「Connecting…」で止まる | 書き込みモードに入れていない | ①表示中にBOOTボタンを押し続け、書き込みが始まったら離す ②GPIO0などにつないだ配線を外して再試行 |
| Wi-Fiにつながらない | SSID・パスワードの誤り、電波が弱い | ①大文字小文字と全角半角を確認 ②ルーターの近くで試す ③ルーター側の接続制限(MACアドレス制限など)を確認 |
| 5GHzのSSIDにつながらない | 使用チップが2.4GHz専用 | 初代ESP32・S3・C3・C6は2.4GHz帯のみ対応です。2.4GHz側のSSIDを指定します(5GHz対応はESP32-C5など一部のシリーズ) |
| シリアルモニタが文字化けする | 通信速度の不一致 | スケッチのSerial.begin()の値と、シリアルモニタの速度をそろえる(本記事は115200bps) |
| 再起動を繰り返す | 電源不足、起動に関わるピンへの配線 | ①外部回路を外して単体で起動するか確認 ②USBハブを避けPCに直接つなぐ ③モーターやサーボは別電源にする |
| GPIOが期待どおり動かない | 制約のあるピンを使っている | 下の「ピンの制約」を確認し、別のピンに変更する |
ピンの制約(初代ESP32・ESP32-WROOM-32E/DevKitCの場合)
- GPIO34・35・36・39:入力専用です。出力や内部プルアップはできません。
- GPIO6〜11:モジュール内部のフラッシュメモリ接続に使われるため、使用しません。
- GPIO0・2・5・12・15:起動時の動作を決めるピン(ストラッピングピン)です。外部回路の状態によっては、起動や書き込みに失敗します。
- ADC2系のピン:Wi-Fi使用中は
analogRead()に使えません。アナログ入力はADC1系(GPIO32・33・34・35・36・39)を使います。
これらは初代ESP32の場合です。S3やC3ではピン番号も制約も異なるため、使用するチップのデータシートを確認してください。
09ESP32とArduinoはどちらを選ぶべき?
無線を使うかどうかと、5Vの部品を使うかどうかで決めるのが近道です。どちらか一方が常に正解ということはありません。
| やりたいこと | 候補 | 理由 |
|---|---|---|
| LED点滅や基本の学習 | Arduino UNO R3/R4 | 入門書や解説が多く、5V部品をそのまま使える |
| 既存の5V系回路を使う | Arduino UNO R3/R4 | レベル変換が不要 |
| Wi-Fi通信 | ESP32、またはUNO R4 WiFi | 作例の多さではESP32。5V回路と併用するならR4 WiFi |
| BLE | ESP32各シリーズ、UNO R4 WiFi | Bluetooth Classicが必要なら初代ESP32 |
| 小型のIoT機器 | ESP32-C3などの小型ボード | 基板が小さく、無線を内蔵 |
| 低消費電力の電池駆動 | ESP32(スリープ活用)、または無線なしのArduino系 | 通信の頻度と待機時間の設計で結果が大きく変わる |
| 既存のArduinoシールド活用 | Arduino UNO R3/R4 | ピン配置と形状が合う。R4では対応状況の確認が必要 |
※編集部の見解です。
電子工作そのものが初めてなら、UNOで基礎を学んでからESP32に進む方法と、最初からESP32で始める方法のどちらも選べます。無線を使う予定がはっきりしているなら、最初からESP32を選んでも問題ありません。
10よくある質問
ESP32はArduinoの一種ですか。
いいえ。ESP32はEspressif Systems社のマイコンで、Arduino社の製品ではありません。Arduino IDEで開発できるため、同じ仲間のように扱われることが多い、という関係です。
初心者はESP32とArduinoのどちらから始めるべきですか。
Wi-FiやBluetoothを使いたいならESP32、まず回路とプログラムの基礎を学びたいならArduino UNOが取り組みやすい選択です。目的が決まっていない場合は、5V部品をそのまま使えるUNOのほうがつまずきにくいでしょう。
Arduino UNO用のスケッチはESP32でそのまま動きますか。
pinMode()やdigitalWrite()などの基本的な部分は共通です。ただし、ピン番号、アナログ入力の値の範囲、AVR専用のライブラリは修正が必要です。
ESP32に5Vのセンサーをつないでも大丈夫ですか。
センサーの出力信号が5Vの場合、GPIOへ直接つなぐことはできません。レベル変換モジュールか分圧抵抗で3.3V以下にします。3.3V電源・3.3V信号に対応し、ESP32の入力仕様や消費電流の条件を満たすセンサーであれば、通常はレベル変換なしで接続できます。
ESP32は5GHzのWi-Fiに接続できますか。
初代ESP32、S3、C3、C6は2.4GHz帯のみに対応します。5GHz帯を使いたい場合は、ESP32-C5など対応シリーズを選ぶ必要があります。
Arduino UNO R4 WiFiがあればESP32は不要ですか。
用途によります。UNO R4 WiFiは5Vの入出力とUNOの形を保ったまま無線が使えます。一方、Wi-Fiのライブラリ(WiFiS3)はESP32用と異なるため、ESP32向けの作例コードはそのままでは動きません。小型化や処理性能を重視する場合はESP32が向いています。
ESP32を使うのに技適の確認は必要ですか。
必要です。日本国内でWi-FiやBluetoothの電波を出す機器は、電波法の技術基準に適合している必要があります。購入するボードやモジュールに技適マークの表示があるかを確認してください。
ESP32はArduino IDE以外でも開発できますか。
できます。Espressif公式の開発フレームワーク「ESP-IDF」やMicroPythonなどが使えます。最初はArduino IDEで始め、細かい設定が必要になった段階で他の環境を検討するとよいでしょう。
11まとめ
- 本質的な違い:ESP32は無線を内蔵したEspressif社のマイコン、Arduinoはボードと開発環境のプラットフォームです。ESP32は3.3V、UNOは5Vで動作します。
- 選び方:無線を使うならESP32、5V部品やシールドで基礎を学ぶならUNO、両方を取りたいならUNO R4 WiFiが候補です。
- 次の作業:Arduino IDEにesp32パッケージを追加し、本記事のWi-Fi接続スケッチでIPアドレスが表示されるところまで試してみてください。
接続できたら、ESP32の基本と使い方の記事で、センサーやLEDを使った次のステップに進めます。
参考文献
- Espressif Systems「ESP32 Datasheet」https://documentation.espressif.com/esp32_datasheet_en.html
- Espressif Systems「Arduino-ESP32 Documentation – Installing」https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html
- Espressif Systems「SoCs(製品一覧)」https://www.espressif.com/en/products/socs
- Arduino「UNO R3」https://docs.arduino.cc/hardware/uno-rev3/
- Arduino「UNO R4 WiFi」https://docs.arduino.cc/hardware/uno-r4-wifi/
- 総務省「電波利用ホームページ」https://www.tele.soumu.go.jp/
- 総務省「令和8年度電波利用環境保護周知啓発強化期間の実施」https://www.soumu.go.jp/menu_news/s-news/01kiban17_02000074.html
コメント