STM32 ESP32を使ってWi-Fiしてみる ~ATコマンド攻略編(1)~

STM32 ESP32を使ってWi-Fiしてみる ~ATコマンド攻略編(1)~

今回から ESP32 を使った Wi-Fi 接続にチャレンジしてみようと思います。

投稿時の開発環境を記しておきます。

PC:Windows10 OS
IDE: STM32CubeIDE Version1.6.0
Configurator: STM32CubeMX Version6.2.0
Board: STM32Nucleo-F401RE
Module: ESP32-DevKitC-VE

ATコマンド試験用 Module: AE-FT234X

ESP32概略

何年か前から ESP32 の存在が大きくなりつつあります。

ESP32は2008年に設立された Espressif Systems という多国籍半導体企業で生産している半導体です。

まずは Espressif Systemsのトップ からアチコチ眺めてみてください。

Wi-Fi や Bluetooth を扱える上に低価格なマイコンです。時代の流れに乗り遅れないようにここらで私も実験してみることにしました。

ESP32と言っても、いろいろな種類があり選ぶのもたいへんですが私は ESP32-DevKitC-VE を使ってみることにしました。

製品には Socs, Modules, DevKits 等があるわけですが、いきなり製品を触るわけにもいかないので DevKits(開発キット)の中のものを選びました。

Products > DevKits > ESP32-DevKitC にボードの形状が出ています。

ESP32-DevKitC-VE は赤枠で囲ったものになります。Flashを8MB積んでいるものになります。

4M品より価格が少し安かったので無条件でこちらを選びました。

ペリフェラルとして使う

ESP32はマイコンの部類に入るのですが、本サイトはSTM32を取り扱うところです。

サイトの趣旨からはずれないように ESP32 はペリフェラルとして扱っていきます。

ひと昔前に “ATコマンド” が流行しました。これは現在のネットワーク時代が来る前の流行「パソコン通信」でモデムを扱うためのコマンド群です。

ESP32の内蔵フラッシュメモリーに ATコマンド対応用のファームウェアを書き込むことで、別のマイコンからATコマンドを介してESP32と対話をすることができるようになります。

OSを使ったり細かい制御をすることはできないようですが、本サイトではこの ATコマンド を使って ESP32 を制御してみようと思います。

(そうは言っても見えないところで、こっそりと ESP32マイコン を始めるのでしょう 笑)

USBシリアルモジュール

ATコマンドのテスト用に USBシリアルモジュール を使ってみることにしました。

マイコンでいきなり対話する前に、Tera Term等のターミナルソフトを使って軽くいろいろと試すことができます。

必要なら準備して頂ければと思います。

ATコマンドのファームウェア

ATコマンドのファームウェアからダウンロードします。

選んだモジュールは WROVER の分類に入ると思うので、私はこちら(赤でアンダーラインを引いたもの)をダウンロードしました。

わかりやすい場所に展開しておきます。

フラッシュ ダウンロード ツールス

ATコマンドを使えるようにするためのファームウェアを書き込む必要があります。

そのためのツールを こちら からダウンロードして展開しておきます。

Flash Download Tools はひとつしかないので間違えることはないと思います。

ファームウェアの書き込み

ESP32-DevKitC-VE とパソコンをUSBケーブルで接続します。

flash_download_tools_3.8.5.exe を起動し、 Developer Modeボタンを押します。

続いて ESP32 DownloadToosボタンを押します。

少し手間がかかるのですが、複数のbinファイルを指定したアドレスに書き込む必要があるようです。

それらの情報は download.configファイルに以下の通りに書かれています。

(download.configファイルはATコマンドのファームウェアを解凍すると ESP32-WROVER_AT_Bin_V2.0フォルダにつくられます)

0x10000 ota_data_initial.bin

0x1000 bootloader/bootloader.bin

0x20000 at_customize.bin

0x21000 customized_partitions/ble_data.bin

0x24000 customized_partitions/server_cert.bin

0x26000 customized_partitions/server_key.bin

0x28000 customized_partitions/server_ca.bin

0x2a000 customized_partitions/client_cert.bin

0x2c000 customized_partitions/client_key.bin

0x2e000 customized_partitions/client_ca.bin

0x30000 customized_partitions/factory_param.bin

0xf000 phy_init_data.bin

0x100000 esp-at.bin

0x8000 partitions_at.bin

ツールの …ボタンを押してファイルをひとつづつ選択し、@の右側に対応するアドレスを入力していきます。
リストが縦方向に広がらないので右側のスクロールバーを使いながら14個のファイル全てを入力します。
入力したファイルの左側にチェックボックスがあるので、こちらにも全てチェックを入れておきます。

COM: でUSBケーブルを接続して認識されるCOMポートを選択します。

わからない場合は、デバイスマネージャーで COMポートを確認しておくと良いでしょう。

Silicon Labs CP210x USB … から始まる COM です。

BAUD: で 1152000 を選択します。

準備ができたら STARTボタンを押します。

STARTボタンの上の黄緑色のパネルが以下のように遷移して書き込みが終了します。

START ~ IDLE ~ SYNC ~ Download ~ FINISH

ドキュメントをダウンロードする

ドキュメントは こちら からダウンロードできます。

いろいろあるので探すのがたいへんです。

とりあえず私は以下の5つをダウンロードしました。

ESP32 Datasheet
ESP32 Technical Refirence Manual
ESP32-WROVER-E & ESP32-WROVER-IE Datasheet
ESP32 Hardware Design Gidelaines
ESP32 AT Instruction Set and Examples

配置

秋月で売っている BB-801 というブレッドボードを2枚使うとモジュールの配線がしやすくなります。

ブレッドボードを連結させて、その上から ESP32 を重ね合わせます。

USBシリアルモジュールと一緒に配置した画像を貼っておきます。

接続

ATコマンドの制御には、ESP32のUARTを使います。
今回はUSBシリアルモジュールを介してパソコンと接続してみます。

ATコマンドのマニュアルには以下の記述があります。

ESP32側のTX : GPIO22
ESP32側のRX : GPIO19

これを信頼して、下表のとおりに接続します。

配線した画像を貼っておきます。

両方のUSBコネクタから5Vが給電されるので、5V同士を接続する必要はありません。

(というか電源の重複になるのでつなぐべきではありませんね)

後は2本のUSBケーブルを使って、ESP32とPC、USBシリアルとPCを接続します。

ATコマンドを使ってみる

パソコン側は、いつもの Tera Term を使います。

Tera Term を起動して、新しい接続でシリアルを選択し USB Serial Port のCOMを選択します。

設定 – シリアルポート で以下の通りに設定します。

スビード : 115200

設定 – 端末 で以下の通りに設定します。
ESP32側のエコーがデフォルトで設定されているので、エコーのチェックは不要です。
送受信両方の改行コードを CR+LF に変更します。

AT と入力し enter します。
OK と返ってくれば成功です。

いくつかのコマンドを打ち込んでみて、こちらは成功しました。(って実はここまで来るのにいろいろ、ありましたけれど 笑)

皆さまはいかがでしたか。

ESP32カテゴリの最新記事