マイクロプロセッサを搭載する、上海のESPRESSIF社が開発した無線モジュールです。v4.2に対応しています。32の他にも、ESPRESSIF社からESP32-DevKitCなどが発売さています。本ページでは、このESP-WROOM-32をArduinoIDEで開発するためのセットアップとATコマンドモードのセットアップ手順を記述します。記述内容は2017/04/15現在のものであるため、最新版では内容は変更されている場合があります。Githubなどを参照してください。セットアップが終わったあとの開発に関しては、ESP-WROOM-32に関するTIPSも御覧ください。仕様ESP32製品サイトより抜粋。(2018/8月から)2018年7月末にライブラリの​Stable版が公開されました。これに合わせて、ライブラリの導入方法も変更されたので、こちらに記述します。あたりのファイルを消しましょう。消さないと、IDEから選ぶボードの種類が重複してしまい、どちらが最新のものかわからなくなってしまいます。選び、設定画面を開きます。区切って入力してください。横のボタンを押すと、改行入力ができます。ボードマネージャーを開いて「ESP32」を検索し、インストールボタンを押します。ボードマネージャー上で「INSTALLED」になれば導入完了です。開発の際は、お手元の開発ボードに合わせてターゲットを変更してください。module」を選択して開発することを想定したピン配置になっています。ちなみに、BLEライブラリもこの手順で導入される模様です。C:\Users\%USERNAME%\AppData\Local\Arduino15\packagesです。(~2018/7月まで)2018年7月頃に、導入方法がArduinoIDEのライブラリマネージャーベースのものになりました。以下は参考程度に残しておきます。参照元は​Windowsでのセットアップ手順です。基本的な流れは、coreライブラリをGithubからダウンロードし、ArduionoIDEのシステムに導入するというものです。ArduinoIDEのインストールは済まされているものとします。ArduinoIDEのスケッチブックの保存場所はデフォルトのC:\Users\%USERNAME%\Documents\Arduinoから変更されていないものとします。変更した場合、適宜読み替えてください。​Githubからコアライブラリの開発リポジトリをクローンし、C:\Users\%USERNAME%\Documents\Arduino\hardware\espressif\esp32に展開するgit環境を利用すると、アップデートに対応しやすくなります。ZIPでダウンロードし手動で展開しても動作に影響はありません。Desktopなどから利用できます。後者の場合、リポジトリのクローン時にディレクトリを作成できないため、予めエクスプローラー上でディレクトリを作成した後にクローン先を指定することになります。ZIPでダウンロードする場合は以下の画像を参照してください。ディレクトリが以下のようになっていれば次のステップへ進みましょう。C:\Users\%USERNAME%\Documents\Arduino\hardware\espressif\esp32\tools\get.exeを実行するxtensa-esp32-elfというディレクトリが作成されます。必要に応じてデバイスドライバを導入するスイッチサイエンスのものであれば​FTDI社のデバイスドライバ、ESP32-DevKitCであれば​CP210x用のデバイスドライバを必要に応じて導入してください。module」を選択して開発することを想定したピン配置になっています。他のArduinoボードと同じように開発できます。非常に基本的なサンプルスケッチとしては以下のようなものがあります。}これを書き込んで、シリアルモニターを開いたときの様子を以下に示します。スケッチのアップロードにはESP32を書き込みモードで起動する必要があります。スイッチサイエンスの開発ボードは自動でモードが切り替わるようになっていますが、切り替わらないボードの場合は手動でBOOTボタンを押しながらリセットボタンを押してESP32を書き込みモードで起動する必要があります。BLEのセットアップ2018年7月頃に、導入方法がArduinoIDEのライブラリマネージャーベースのものになりました。それと同時に、ライブラリの導入が自動化されました。以下は参考程度に残しておきます。2017年10月ごろ、BLEのライブラリに公式対応しました。上記のインストール手順では導入されないため、手動でBLEのライブラリだけインストールする必要があります。BLEのライブラリは​ここです。上記手順とおなじようにGithubからダウンロードします。先程導入したESP-WROOM-32のディレクトリC:\Users\%USERNAME%\Documents\Arduino\hardware\espressif\esp32の更に下esp32\libraries\BLEに、ダウンロードしたESP32_BLE_Arduino-masterの中身をコピーします。このようになればOKです。開いてコンパイルができることを確認してください。ATコマンドモードのセットアップ(2017/6対応)デフォルトでは検査用のファームウェアが書き込まれています(​参照)。ATコマンドとは別のコマンドをやり取りできます(​参照、ただし公式にはサポート外)。通信速度115200bps、改行モードCR+LFでコマンドの送信がができます。下は、ArduinoIDEでシリアルモニタを開いたときの様子です。Examplesにあります。ESP32のファームウェアは、ArduinoIDEで開発をすると上書きされてしまうので、ArduinoIDEで開発を行ったあとにATコマンドモードに戻したくなった場合、別の手順を踏む必要があります。ダウンロードからダウンロードできます。2017/04/15現在できません。現在製作中の模様です。​公式Topics参照。2017/06/06付で公開されました。Toolsを使います。2017/07/08現在最新版はV3.4.8.4です。ダウンロード-ツールからダウンロードできます。起動すると書き込み対象のボードの選択画面になります。DownloadToolを選択します。何もせずにSTARTを押すと、ESP32の情報が表示されます。MACアドレスは隠してあります。執筆時点でのファームのバージョンは0.10です。0x8000以上のように設定をして、STARTを押します。書き込めれば、FINISHとでるはずです。アドレスは隠してあります。シリアルモニタなどで動作を確認してみます。下の画像は起動時にシリアルモニタに表示されたログです。ATコマンドをやりとりする一般的に、ESP-WROOM-32の開発ボードは、基板上のUSB-Serial変換はESP-WROOM-32モジュールのUART0ピンと接続されています。これは、フラッシュへの書き込みを行うのが目的のためです。一方で、ATコマンドはUART1ピンで送受信するようになっています。そのため、開発ボードの他にもう一台USB-Serial変換を用意して接続する必要があります。参照)(余談ですが、UART1とESP32内部回路のU1は別のようです)。必要最低限の接続は次のようになっています。GND通信には3.3V対応のものをつかってください。Rev.2など使う場合は3.3Vに変更するのを忘れないようにしてください。画像はAT+RSTおよびATと送信したときの応答です。AT+RSTと送ったときは、開発ボードのシリアルにブートログが流れていることが確認できます。ここまで動作すれば、ATコマンド用のファームウェアの書き込みは完了です。バージョン0.10ではまだWiFiのコマンドしか用意されていないようです。dataとラベルされているアドレス(​参照)にblank.binを書き込むように、とあります。blank.binをオフセット0x10000に書き込みます。実際に書き込んでみたところ、正常に動作するようになりました。Software.スイッチサイエンス・ウェブショップhttp://www.switch-science.com/。