【Arduino】ESP-WROOM-32, WROVER書き込みアダプタを使う

it

ESP-WROOM-32とESP-WROVERの書き込みアダプタを使いました。
ESP32モジュールにはんだ付けすることなくスケッチの書き込みと実行できます。

ESP-WROOM, ESP32-WROVER書き込みアダプタ

簡単紹介

◆ESP-WROOM-32書き込みアダプタ

◆ESP-WROVER書き込みアダプタ

◆関連記事

このページではESP-WROOM-32とESP-WROVERのアダプタについて記載しています。
Arduino環境で開発するESP32-WROOMについてはこちらの記事で紹介しています。

ピン配置

◆ESP-WROOM-32

◆ESP-WROVER

外観

◆ESP-WROOM-32

◆ESP32-WROVER

使ってみた

◆開発

Arduino環境で開発しました。
ボードライブラリはesp32 by Espressif SystemsのESP32 Dev ModuleとESP32 Wrover Moduleを使いました。

◆セッティング

ESP-WROOM-32、ESP-ROVERをそれぞれはめ込みました。
はめ込んだ状態はばね圧がかかりしっかりホールドされています。
ガタつきもなくズレたり外れたりしそうにありません。

どちらも多数のピンを均等にはめ込む細かい作業なので難易度は高めです。
ピンが板バネのように圧接しているので押し込む力ために強めの力が必要です。
ESP-WROOM-32では3辺を均等に押し込みます。

取り外しは背面の切り欠きを押し出すことで簡単に取り外せます。
※ばね圧でモジュールが飛び出すのでクッションのある机で作業するなど注意が必要。

ESP-WROVERのはめ込みは2辺ですがピン数が多いので強い押し込みが必要です。
1辺ずつはめ込もうとしても難しいです。

取り外しはESP-WROOM-32と同じで背面から押し出します。
ばね圧で飛び出すので注意。

◆書き込み

Node MCUやDevkitのようにUSBから書き込む方法と、USBシリアルアダプタなどを使いUARTから書き込む方法があります。

アダプタを使っている間はUSBからの書き込みでも十分ですが、モジュールをピッチ変換基板などに置き換えた後はUSBコネクタが無いためにUARTから書き換えを行う方法が必要となります。

UARTからの書き込み方法はこちらで紹介しています。

準備

Arduino環境の作成

◆開発環境

この記事ではWROOM-32とWROVERの開発をします。
どちらも同じArduino環境でとライブラリを使用して開発します。
Arduino環境の作成についてはこちらで紹介しています。

ボードライブラリ

Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。

ボードマネージャのURLhttps://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
検索ESP
ボードライブラリesp32 by Espressif Systems バージョン x.x.x※
選択するボードesp32 > ESP32 Dev Module
※ x.x.x 2025/03 3.1.3

その他のライブラリ

BLEマウス、BLEキーボードを使用する場合、以下のライブラリを利用しています。

BLE Mouse ライブラリのURLGitHub – T-vK/ESP32-BLE-Mouse: Bluetooth LE Mouse library for the ESP32 (Arduino IDE compatible)
BLE KeyboardライブラリのURLGitHub – T-vK/ESP32-BLE-Keyboard: Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible)

BLE MouseのAPIマニュアル

BLE KeyboardのAPIマニュアル

スケッチの書き込み方

方法1:USBコネクタから書き込む

パソコンとESP-WROOM-32アダプタをUSBケーブルで接続します。
ArduinoIDEの書き込みボタンを押して書き込みを開始します。
PROGボタン操作なく書き込みができました。

Connecting… で接続ができない場合、PROGボタンを押しながら電源を入れてから書き込みボタンを押すことで書き込みができると思います。

方法2 : UART変換モジュールから書き込む

ESP32-WROOMのUARTから書き込みます。

下配線図のように、USB-UART変換アダプタ(FT232RL)を使用して配線します。

ESP32-WROOM基板のUSBコネクタから電源を供給する場合VCCとGNDの配線は不要です。
USB-UART変換アダプタから電源を供給する場合、VCCとGNDを配線します。

方法1または、方法2により書き込み状態で起動します。
ArduinoIDEの書き込みを行うPortは、USB-UART変換アダプタを選択します。
ArduinoIDEの書き込みボタンを押して書き込みを開始します。

スケッチサンプル

Lチカ

説明

LEDモジュールを使ってLチカします。
UART経由で書き込んだスケッチをそのまま動作させます。

配線

スケッチ

#define LED_PIN (14)

void setup()
{  
  pinMode(LED_PIN, OUTPUT);
  while(1)
  {
    digitalWrite(LED_PIN, HIGH);
    delay(100);
    digitalWrite(LED_PIN, LOW);
    delay(100);
  }
}

void loop()
{}

結果

結果

WebServer Lチカ

説明

Wifi Webサーバーを作ります。
「Lチカ」サンプルの配線を使って、Web上の「LED ON」ボタンを押したらLEDを点灯、「LED OFF」ボタンを押したらLEDを消灯します。

スケッチの先頭では、ssidとpasswordを環境に合わせて書き換えます。

配線

スケッチ

#include <WiFi.h>

const char *ssid = "wifissid";
const char *password = "password";

WiFiServer server(80);

#define LED_PIN     (14)

void setup()
{
  Serial.begin(115200);
  pinMode(LED_PIN, OUTPUT);
  
  Serial.print("Connecting to Wi-Fi...");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi connected.");
  Serial.println(WiFi.localIP());
  
  server.begin();
}

void loop()
{
  WiFiClient client = server.available();
  
  if (client) {
    Serial.println("New client connected.");
    String request = client.readStringUntil('\r');
    Serial.println(request);
    client.flush();

    if (request.indexOf("/LED_ON") != -1)
    {
      digitalWrite(LED_PIN, HIGH);
    }
    else if (request.indexOf("/LED_OFF") != -1)
    {
      digitalWrite(LED_PIN, LOW);
    }

    client.println("HTTP/1.1 200 OK");
    client.println("Content-type:text/html");
    client.println();
    client.println("<!DOCTYPE html><html>");
    client.println("<head><title>ESP32 LED Control</title></head>");
    client.println("<body>");
    client.println("<h1>ESP32 LED Control</h1>");
    client.println("<p><a href=\"/LED_ON\"><button>LED On</button></a></p>");
    client.println("<p><a href=\"/LED_OFF\"><button>LED Off</button></a></p>");
    client.println("</body></html>");
    client.println();
  }
}

結果

起動したらシリアルモニタ(ArduinoIDE右上の虫眼鏡アイコン)にて接続できたローカルIPを確認します。
ローカルIPをブラウザのアドレスバーに入力して接続します。

「LED On」ボタンを押すことでLEDが点灯し、「LED Off」ボタンを押すことでLEDは消灯しました。

コメント

タイトルとURLをコピーしました