【ESP32】ESP32EをBluetoothSPPモジュールにした<ESP32DevKitSを使った>

この3年間は、M5Stack系で、無線を使ってきたのですが、STA23システムでは、薄いモジュールにしたかったので、ESP32E単体をBlueToothSPPモジュールにしました。
ESP32単体モジュールをいじるのは初めてだったので、3日ほどかかりました。
 秋月には、ダウンローダーを売っているのですが、ダウンローダだとチップを配線しないと
プログラム書き込みができませんが、ESP32DEKITSだとスプリングピンに差し込めば即書き込みができます。しかし、実際に使う場合半田付けしてしまうとプログラム書き込めないということになってしまうので、不便なので、ESP32DEVKITSをダウンローダーにする方法をやってみました。
ESP32DEVKITSは、使っている人が非常に少なくWEBで使い方例がないので、本家の仕様をみながらやります。
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/hw-reference/esp32/user-guide-devkits-r-v1.1.html

●はまった点

①1.27ミリピッチのユニバーサル基板にチップを半田づけするのにL字ピンをかましたのですが、これが良くなくて、ピンに十分半田が回ってなくて、接触不良の嵐になってしまって、フラックスをたっぷり縫って、半田で埋めて、後から、半田吸い取りリボンできれいにしてやっとピンの導通ができました。モジュールの半田付けが一番大変です。

①ピン配列の見方がWEB上の参考サイトで、TOPVIEWとBACKVIEWの解説がいろいろあって迷ったので、仕様書と裏側のシルク文字を見ながら、配線をやりなおした。3回ほど間違えました。使うピン  EN,GPIO0,,TX0,RX0,3.3V,GND の6本で書き込みとSPPが作れます。
仕様書:https://www.espressif.com/sites/default/files/documentation/esp32-wroom-32e_esp32-wroom-32ue_datasheet_en.pdf

仕様書のピン配列はTOP VIEWです、TOPVIEWは、刻印が打ってある面です。

※2023年12月26日追加  ESP32ピッチ変換基板(コンパクト)のピン配置が複雑なので、検索したら、ESP-WROOM-32 ピッチ変換基板 コンパクト
ピン配置図をこちらにありました。https://store.shopping.yahoo.co.jp/robotena/sku4116.html#
ピン図だけコピーさせていただきました。感謝です。

 

しかし、BACKVIEWにシルクがあるので、TOPとBACKでこんがらがってしまうリスクがあります。

②ESP32DEVKitSの使い方は、スプリングピンにESP32をはさみこんで書き込むのが普通ですが、これだと、実装形態に半田付けしたモジュールに書き込みができないので、実装基板用にダウンローダーとして使えるのかおそるおそるやってみたましたが、普通にダウンローダとしても使えました。
一度差し込んだら、抜けないようにテープで止めてあります。

結線ばらけた時に備えて、写真備忘録しておきます。
赤:3.3V,黄色:EN,茶:GPIO0,黒:GND,緑:TX0、白:RX0 の6本です。

■書き込み接続
 DEVKITSは、USBで接続すると自動で、書き込みモードになってくれるので、簡単です。
一応BOOTボタンとENボタンついていて、仕様書では、書き込みモードにならない場合は、
BOOTボタン長押しして、ENボタンを押して離すと書き込みモードになると書いてありますが、
これは、サードパーティボード用みたいです。

③ESP32DEVKITSでは、SPP動作していたのですが、いざ、システムに組み込むとCPUが動いてなくて焦ったのですが、仕様書とかWEBでは、ENピン10Kの抵抗でプルアップしないとCPUが動作しないと書いてありましたので、プルアップして、無事単独動作できました。
3.3Vの隣にENを配線したあったので、10Kオームの抵抗をUの字に曲げてはめ込んで半田付けしてプルアップしました。
■動作接続

● BlueToothSPPプログラム
シンプルです。SPP通信に使うのは、書き込みに使ったUSBシリアルと同じシリアル TX0RX0ピンです。シリアルTX0から入ってきたデータはBlueToothへ、BlueToothから入ってきたRX0のデータは、シリアルへ流します。GISTにソースコードあります。
https://gist.github.com/dj1711572002/f43cdc3c9fc2b4cada63bdea2700270e

#include <BluetoothSerial.h>

BluetoothSerial SerialBT;
uint64_t chipid;
char chipname[256];
void setup() {
Serial.begin(115200);
chipid = ESP.getEfuseMac();
sprintf( chipname, “ESP32EA0_%04X”, (uint16_t)(chipid >> 32));
SerialBT.begin(chipname);
Serial.print(“BT chipname:”);
Serial.println(chipname);
}

void loop() {
if(Serial.available()>0)
{
char cdata= Serial.read();
SerialBT.print(cdata);
//Serial.print(cdata);
}
if (SerialBT.available()) {
char rdata=SerialBT.read();
Serial.print(rdata);
//Serial.print(rdata);
}
//delay(20);
}

●以後
2個使いでPCタブレットで受信して、大丈夫か実験していきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です