Arduino環境で使用できるESP32はマイコンモジュール状態で販売されているものもあります。
このモジュールと、モジュール書き込みのアダプタソケットを使ってスケッチの書き込みをしてみます。
紹介するもの
ESP32-WROOM-32
特徴
WifiまたはBT(Bluetooth)を使ったHIDデバイスの開発や、BTのシリアル通信ができる。
モジュール単体では安価で入手性もいい。
動作電圧 | 2.2 ~ 3.6V |
フラッシュMemory | 4, 8, 16MBのラインナップ |
ADC | 16 |
DAC | 2 |
GPIO | 21 |
UART | 3 |
I2C | 1 |
SPI | 1 |
外観


ESP-WROOM-32 Adapter
特徴
ESP32-WROOMのモジュールのスケッチ書き込みができます。
ESP32の信号がピンヘッダで引き出されているので、モジュールとAdapterがあれば評価ができます。
外観


ESP32-WROOM-32モジュールをAdapterにセットした状態です。

はめ込みにはコツがいります。
画像赤枠のように、モジュール側とソケット側のピンの2辺を合わせた状態でゆっくり押し込みます。

モジュールにスケッチを書きこんだ後にブレークアウト基板に実装することで、小型のESP32-WROOM基板にすることができます。
実装後にスケッチの書き換えもできます。
準備
ライブラリ
ボードライブラリ
Arduino IDEのボードマネージャからESP32用のライブラリのインストールとボードの選択をします。
ボードマネージャのURL | https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json |
検索 | ESP |
ボードライブラリ | esp32 by Espressif Systems バージョン x.x.x※ |
選択するボード | esp32 > ESP32 Dev Module |
その他のライブラリ
BLEマウス、BLEキーボードを使用する場合、以下のライブラリを利用させていただいてます。
スケッチの書き込み方
スケッチの書き込み方法①
NODE MCU ESP-32SなどのようにUSBケーブルを使用した書き込み方法です。
アダプタから引き出されているIO0端子とGND端子をジャンパワイヤでショートさせます。
Arduino IDEから書き込みを行います。

スケッチの書き込み方法②
USB-シリアル変換アダプタを使用して書き込む方法です。
モジュールを組み込み、はんだした後はアダプタソケットが使用できなくなるので覚えておきたい方法です。
アダプタから引き出されているIO0端子とGND端子をジャンパワイヤでショートさせます。
以下の配線状態にします。
Arduino IDEから書き込みを行います。
USB-シリアル変換アダプタ | 配線色 | ESP32-Adapter |
5V | 赤 | 5V |
GND | 黒 | GND |
TX | 黄 | TX |
RX | 緑 | RX |
GAOHOU のシリアルコンバータの場合、シルク通りのピン配置ではTX-TX, RX-RXで接続します。
お手持ちのシリアルコンバータの仕様または、シルクをよく確認して接続してください。

<記事訂正 2022/9/12>この方法で書き込めるUSB-シリアル変換アダプタには条件があるようで現在調査中です。
紹介したUSB-シリアル変換アダプタ以外でも書き込みができます。
当方ではこちらのUSB-シリアル変換アダプタを使用しています。
GAOHOU USB2.0 TO TTL 6ピン シリアルコンバータ UARTモジュール CP2102 STC
アマゾンで購入できます。

BTペアリング
BT通信をする場合こちらの作業が必要になります。
ノートPC、スマートフォン、タブレットまた、BTレシーバを準備してください。
ペアリングの方法については一般のBT製品と同じですので詳細は省略します。
個々のマニュアルを参照してください。
今回当方の確認方法としてAndroidスマートフォンでのペアリングを掲載します。
1.スケッチを書き込み、マイコンボードを起動させます。
※GPIO0とGNDをショートさせている場合は、ショートを解除してから再起動します。
2.BT設定画面から周囲のBT機器を検索します。
今回のサンプルでは [NODE MCU ESP32]という名前で見つかります。

3.シリアル通信をする場合、シリアル通信用のアプリケーションをインストールします。
参考として当方が利用している「Serial Bluetooth Terminal」を紹介します。

基本スケッチ
NODEMCUで使用したサンプルを流用します。
確認でき次第記事のメンテナンスをします。
GPIOアナログ出力(PWM, DAC)
配線
LEDホタルにて動作を確認します。
GPIO33 Anode -> Cathode -> 保護抵抗200Ω -> GND
GPIO25 Anode -> Cathode -> 保護抵抗200Ω -> GND
サンプルスケッチ
/**********************************************************************
【ライセンスについて】
Copyright(c) 2022 by tamanegi
Released under the MIT license
'http://tamanegi.digick.jp/about-licence
【スケッチの説明】
NODE MCU ESP32 基板で使用できます。
ESP32 WROOM で使用できると思いますが、NODE MCU ESP32のみ動作確認をしています。
アナログ出力制御によりLEDホタルを行います。
PWM制御とDAC制御を行います。
【ライブラリ】
esp32 > ESP32 Dev Module
(Ver 2.0.2)
【準備】
NODE MCU ESP32 LED
GPIO33 Anode -> Cathode -> 保護抵抗200Ω -> GND
GPIO25 Anode -> Cathode -> 保護抵抗200Ω -> GND
【バージョン情報】
2022/8/8 : 新規
**********************************************************************/
#define LED_DAC 25 //DAC出力ピン (25か26)
#define LED_PWM 33 //PWM出力ピン
void setup()
{
pinMode(LED_DAC, OUTPUT); //出力設定は同じ
pinMode(LED_PWM, OUTPUT);
}
void loop()
{
int i;
//出力諧調 0 - 255
for (i = 0; i < 256; i ++)
{
dacWrite(LED_DAC, i); //DAC出力関数(DACピンでも、analogWriteを使うとPWM制御になります)
analogWrite(LED_PWM, i); //PWM出力関数
delay(5);
}
for (i = 0; i < 256; i ++)
{
dacWrite(LED_DAC, 255 - i); //DAC出力関数
analogWrite(LED_PWM, 255 - i); //PWM出力関数
delay(5);
}
}
スケッチの説明
比較としてPWMでのアナログ出力と、DACでのアナログ出力をしています。
出力の関数が違いますが、設定値はどちらにも同じ値を設定します。
結果
PWMとDACでの変化が見えます。
結果は、NODE MCU ESP-32Sでの紹介と同じです。
コメント