連載一覧
- 第1回:プロジェクト概要
- 第2回:ESP32-S3 の環境構築
- 第3回:I/O の実装(ADC / PWM / DIO)
- 第4回:通信プロトコル(JSON コマンド)
- 第4.5回:デバイス化対応
- 第5回:Python アプリの API 実装
- 第6回:デバイスとしてまとめる(設計編)
- 第7回:実装編・応用編(GUI / アプリ化 / 拡張の可能性)
はじめに
第1回では、このプロジェクト全体のゴールとデバイスの仕様を整理し、ESP32‑S3 と Python アプリを組み合わせた「小さくて扱いやすい IoT デバイス」を作るための全体像を共有しました。
第2回となる今回は、ESP32‑S3 を実際に動かすための環境構築を行います。
Arduino IDE を使って開発環境を整え、USB 経由でファームウェアを書き込み、最小限の動作確認(USB シリアル接続・オンボードLED 点滅)まで行います。
環境構築
必要なもの
- PC(今回はWindows11を使用)
- ESP32‑S3 ボード(USB Type‑C ケーブル)
- インターネット環境(ボードマネージャの取得に必要)
Arduino IDE のインストール
- Arduino 公式サイトから最新版をダウンロードする
「Windows Win 10 or newer (64-bit)」を選択
https://www.arduino.cc/en/software/#ide
- ダウンロードしたファイルを実行し、デフォルト設定のままインストールする
※必要に応じて選択を変更してください。
Arduino IDE のセットアップ
- 「File」→「Preferences」→「Language」を「日本語」に設定する
- 「ツール」→「ボード」→「ボードマネージャ」を開く
- 検索欄に「ESP32-S3」と入力し、esp32ボードをインストール
ファームウェア書き込み
接続とボードの選択
- ESP32-S3とPCをUSBケーブルで接続
- 「ツール」から、「ボード」と「ポート」を設定
ボード:ESP32S3 Dev Module
ポート:ESP32-S3を接続したポートを選択
- ボード設定の下記3項目を設定



※ESP32-S3にUSBポートが2つある場合は、「ESP32 Family Device」と表示される方を使用します。「未知のボード」と表示される場合はもう1つのポートに差し替えてくだい。
サンプルコードの書き込み
- 下記のサンプルコードをArduino IDEに入力して書き込みを実行
- シリアルモニタに1秒間隔で「Hello from ESP32-S3」が表示されたら書き込み成功
void setup() {
Serial.begin(115200); // シリアル開始
delay(1000); // 1秒待機
Serial.println("ESP32-S3 USB Serial Connected!");
}
void loop() {
// 1秒間隔でメッセージを表示
Serial.println("Hello from ESP32-S3!");
delay(1000);
}
ここまででESP32-S3を扱うための環境構築は完了しました。
USB シリアル接続
PCとの接続
Arduino IDEでシリアルモニタができていれば、すでにPCとのシリアル接続は完了しています。
第5回で扱う予定のPythonからの接続も、今回選択したポート番号を使用します。
最小動作確認(オンボードLED 点滅)
- 下記のサンプルコードを書き込むと、ボードに搭載されているLEDが点滅する
※ESP32-S3ボードにはいくつか種類があり、ボードによってピン番号が違う様です。私のボード(ESP32-S3-WROOM)は44番ピンでRXのオンボードLEDが点滅しました。
使用するボードに合わせてピン番号は変更してください。

※点滅しない場合はUSBケーブルを抜き差しするか、ボード上にあるRETボタンを押してみてください。
サンプルコード
const int LED_PIN = 44; // 使用するPIN番号
void setup() {
pinMode(LED_PIN, OUTPUT); // 選択PIN番号を出力に設定
}
void loop() {
digitalWrite(LED_PIN, HIGH); // 点灯
delay(500);
digitalWrite(LED_PIN, LOW); // 消灯
delay(500);
}
次回予告
第3回では、ESP32‑S3 を「実際に外部デバイスを制御できるマイコン」として使うための基礎となる I/O(入力・出力)まわりの実装を扱います。
扱う内容は次の3つが中心です。
- デジタル入出力(DIO)
ボタン入力やリレー制御など、最も基本的な GPIO の使い方を整理します。 - PWM 出力(LED やモーター制御)
LED の明るさ調整やサーボモーター制御に使う PWM 出力を行います。 - ADC(アナログ入力)
可変抵抗・光センサー・温度センサーなどのアナログ値を読み取る方法を扱います。