ESP32-DevKitC-32D(ESP-WROOM-32D開発ボード)を、シールドを介さず、直接Groveセンサーとつなぎます。
材料
今回使用したものです。
- ESP32-DevKitC-32D(ESP-WROOM-32D開発ボード)
- GROVE - LED 青
- ブレッドボード
- ケーブル
サンプルプログラム
Arduino IDEのスケッチ例にある「Blink」をベースに作成しました。
LEDは4番につなぐことにしました。
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(4, OUTPUT);
}
void loop() {
digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a 500ms
digitalWrite(4, LOW); // turn the LED off by making the voltage LOW
delay(500); // wait for a 500ms
}
接続
別に、ESP32-DevKitC-32DとGroveセンサーを直結してもよいのですが、他のピントの接触や、書き込み問題(※後述)でBoot/ENボタンを押さなくてはいけないため、安定させるためにブレッドボードを使用しました。
ただ、ブレッドボードが小さいとケーブルが刺さらないため、今回は半分だけ刺しました(苦笑)
そのため、刺さっていない側で使用するピン(今回は5V)には、先が以下のようになっているケーブルを直結しました。
ESP32-DevKitC-32D側の使用ピン
ESP32-DevKitC-32D側で使用するピンは、以下の通りです。
※参考:https://ht-deko.com/arduino/esp-wroom-32.html
- 5V:電源
- GND:アース
- IO4:信号
※今回使用する電圧は5Vになります
※参考:http://wiki.seeedstudio.com/Grove-LED_Socket_Kit/
Grove側
- 1.SIG:信号
- 2.NC:(使用しない)
- 3.VCC:電源
- 4.GND:アース
接続
実行
接続したら、サンプルプログラムをコンパイル&書き込み、実行します。
無事、0.5秒ごとに点滅できました。
まとめ
ESP32-DevKitC-32DとGroveセンサーは簡単につなぐことができますが、複数のセンサーをつなぐときのことなどを考えると、やはり大きいブレッドボードがあったほうがよいです。
【おまけ】書き込み問題
esptool.py v2.6
Serial port COM4
Connecting........_____....._____....._____....._____....._____....._____....._____
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
調べてみたところ、解決方法は今のところ以下しかない模様。
- ボードの「Boot」ボタンを押しっぱなしにする
この状態を4.まで、ずっと続ける - 「Boot」ボタンを押しっぱなし状態で、ボードの「EN」ボタンを一度押す
- 「Boot」ボタンを押しっぱなし状態で、Arduino IDEの書き込みボタンをクリック
- Arduino IDEのコマンドラインに、「Connecting...」と表示されたら「Boot」ボタンから手を放す
- 書き込みが完了(結構時間がかかる)したら、「EN」ボタンを一度押す