- WiFiモジュールとしてESP-WROOM-02が出回り始めました。
- 500円程度と非常に安価です。
- マニュアルが散在しており、使い方がわかりません。(使い方がわからないので安価ともいえます)
- 不明な点が多いので、使い物になるかわかりません。(MACアドレスはどうなっているなど)
- そこで、手探りで情報をまとめていきます。
- なお、未確認情報(マニュアルに記述されても動作するとは限らない)もあるため、必ずしも正しい情報とは限りません。
- あらかじめご了承ください。
- WiFiモジュールですので、最低限ネットワークの知識が必要です。
- pingて何という方にはお勧めしません。
- 個人利用に限定され、著作権者の許可なく商用利用できません。
- 直接間接に関わらず、使用によって生じたいかなる損害も筆者は責任を負いません。
- 秋月電子で550円(税込み)で販売しています。
- aitendoで580円(通販、税別)500円(店頭、税別)で販売しています。
- なおaitendoではDIP化する変換基板も販売しています。
![]()
![]()
![]()
- 日本の技適(TELEC)を取得しており、日本でも安心して利用できます。
- 国際的な相互認証を利用しています。
- ESP-WROOM-02のブロック図です。
- このWiFiモジュールはアンテナ、コントローラであるESP8266、水晶発振子、Flashメモリで構成されています。
- FlashメモリにESP8266用のプログラム(ファームウェア)を格納します。
- メモリ構造はややこしいです。
![]()
- コントローラであるESP8266の開発環境はLubuntuというLinux上で行います。
- そのため、Windows上にOracle VM VirtualBoxを使って仮想マシンを構築します。(VirtualBoxは約100MB)
- 仮想マシンにLubuntuやコンパイラのイメージ(ESP8266_lubuntu_20141021.ova、約950MB)をインポートします。
- ESP8266_lubuntu_20141021.ovaのダウンロード
- Lubuntu上のgccでコンパイルします。
- バイナリファイル*.binが生成されます。
- いくつかのサンプルが用意されています。
![]()
- バイナリファイル*.binをWindows上の書き込みソフトウェアESP FLASH DOWNLOAD TOOLを使って書き込みます。
- ESP FLASH DOWNLOAD TOOLのダウンロード
- PCとESP-WROOM-02はUARTで接続します(USBシリアル変換が必要、ロジック電圧は3.3Vです。一般的なUSB-RS232C変換ケーブルは使えません)。
- デフォルトではATコマンドを実行するファームウェアを書き込みます。
- ※WiFi経由でファームウェアを書き換えるFOTA(Firmware Over The Air)方法もあります。
- ※ただし事前にFOTAに対応した一部のファームウェアを書き込んでおくことが必要です。
- ※あらかじめクラウド上のサーバに書き込むファームウェアをアップロードしておき、パッケージ化しておく必要があります。
- ※いろいろと特殊な操作が必要です。
![]()
- XBeeと似ています。
- 通常はATコマンドを実行するファームウェアを書き込みます。
- そしてターミナルソフトからUART経由でESP-WROOM-02モジュールをATコマンドでコントロールします。
- ATコマンドを使ってLAN設定を行ったり、TCP/UDP経由でデータを送信します。
- 使用できるATコマンドはリストアップされています。
- ESP8266に内蔵されたさまざまな機能(GPIO,ADCなど)を利用したいときには、ファームウェアを改良する必要があります。
- ESP8266用のAPIが用意されています。
- ファームウェアを拡張することで、さまざまな機能を利用できます。
- 逆にいえば、ファームウェアを拡張しないと、細かい操作はできません。
- 標準で用意されているATコマンドに、GPIOやADCを操作するコマンドは用意されていないようです。
- ユーザ定義のATコマンドを追加することで対応します。
- ※ESP-WROOM-02をサーバとしてもクライアントとしても利用することを想定しているようです。
- ※クライアントとする場合はTCP/UDPで通信し、その情報でGPIOを操作したり、ADCを操作したりしてIoTを実現するイメージです。
- ※サーバとする場合はHTTPでWebサーバを構築するようなイメージです。
- ※ATコマンド操作ではUART通信速度の制限を受けてしまうので、WiFiとしてメリットは薄れます。
- ※コントローラの性能にも制限されてしまうので、WiFiの通信速度としてどこまで期待できるかは未知数です。
![]()
![]()
NO. Pin Name Function 1 3V3 3.3V(Vdd) 2 EN Chip enable. Active high. 3 IO14 GPIO14/HSPI_CLK 4 IO12 GPIO12/HSPI_MISO 5 IO13 GPIO13/HSPI_MOSI/UART0_CTS 6 IO15 GPIO15/MTDO/HSPI_CS/UART0_RTS 7 IO2 GPIO2/UART1_TXD 8 IO0 GPIO0 9 GND GND 10 IO4 GPIO4 11 RXD UART0_RXD/GPIO3 12 TXD UART0_TXD/GPIO1 13 GND GND 14 IO5 GPIO5 15 RST Reset. Active low. 16 TOUT ADC 17 IO16 GPIO16/WAKEUP 18 GND GND
- 通常はEN=プルアップ、RST=プルアップします。
- なお動作時の消費電流は約80mAですので、電池駆動は諦めたほうがよいでしょう。
- PINの設定で2つの動作モードが決まります。
- UART Download Mode=ファームウェアの書き込みモードです。
- Flash Boot Mode=実行モードです。
Mode GPIO15 GPIO0 GPIO2 UART Download Mode Low Low High Flash Boot Mode Low High High
- 機能でみたときのブロック図です。
- 何ができるのかがわかります。
![]()
- ATコマンドには4つのタイプ(動作モード)があります。
- ATコマンド用のファームウェアを書き込んでおく必要があります。
タイプ コマンド形式 内容 テスト AT+[X]=? コマンドのテストやパラメータ確認 問い合わせ AT+[X]? パラメータの現在値確認 設定 AT+[X]=[...] パラメータの設定 実行 AT+[X] パラメータなしに実行
- 基本コマンドのリスト
- ATコマンドをユーザ拡張することもできます。例AT+TEST
AT ATコマンドのテスト AT+RST モジュールのリセット AT+GMR バージョンの表示 AT+GSLP deep-sleepモードに移行 ATE ECHOのオンオフ設定 AT+RESTORE パラメータを工場出荷時に戻す AT+UART_CUR UARTの設定 AT+UART_DEF UARTのデフォルト設定(保存) AT+SLEEP sleepモードの設定 AT+RFPOWER RF出力の設定 AT+RFVDD RF用VDD電圧を設定
- WiFiコマンドのリスト
AT+CWMODE_CUR WiFiモードの設定 AT+CWMODE_DEF WiFiモードのデフォルト設定(保存) AT+CWJAP_CUR 接続 AT+CWJAP_DEF デフォルトの接続(保存) AT+CWLAP 可能なAPのリスト AT+CWQAP 切断 AT+CWSAP_CUR APの設定 AT+CWSAP_DEF APのデフォルト設定(保存) AT+CWLIF (相手)IPの確認 AT+CWDHCP_CUR DHCPの設定 AT+CWDHCP_DEF DHCPのデフォルト設定(保存) AT+CWAUTOCONN 自動接続 AT+CIPSTAMAC_CUR stationモードのMACの設定 AT+CIPSTAMAC_DEF stationモードのMACのデフォルト設定(保存) AT+CIPAPMAC_CUR softAPモードのMACの設定 AT+CIPAPMAC_DEF softAPモードのMACのデフォルト設定(保存) AT+CIPSTA_CUR stationモードのIPの設定 AT+CIPSTA_DEF stationモードのIPのデフォルト設定(保存) AT+CIPAP_CUR softAPモードのIPの設定 AT+CIPAP_DEF softAPモードのIPのデフォルト設定(保存) AT+CWSTARTSMART SmartConfigの開始 AT+CWSTOPSMART SmartConfigの中断
- TCP/IPコマンドのリスト
AT+CIPSTATUS 接続状態の確認 AT+CIPSTART TCP/UDPの接続 AT+CIPSEND データ送信 AT+CIPSENDEX 拡張データ送信 AT+CIPSENDBUF 送信バッファーへのデータ書き込み AT+CIPBUFRESET セグメントIDのリセット AT+CIPBUFSTATUS 送信バッファーの状態確認 AT+CIPCHECKSEQ セグメントの状態確認 AT+CIPCLOSE TCP/UDPの切断 AT+CIFSR (自分)IPの確認 AT+CIPMUX 多重接続モードの設定 AT+CIPSERVER サーバーとして設定 AT+CIPMODE 転送モード設定 AT+SAVETRANSLINK 転送リンクの保存 AT+CIUDATE FOTA方式でファームウェアの更新 AT+PING pingの送信 AT+CIPDINFO リモートIPの確認 +IPD 受信データ
- ESP-WROOM-02は4MBのFlashメモリを搭載しています。
- FOTAに対応したコンパイルし、複数の*.binファイルを生成します。gen_misc.shを使います。
- FOTAに対応した複数の*.binファイルを書き込みます。ESP FLASH DOWNLOAD TOOLを使います。
- FOTAに未対応のコンパイル方法、書き込み方法もあります。
binファイル アドレス 内容 master_device_key.bin 0x3E000 FOTA用プログラム esp_init_data_default.bin 0x3FC000 デフォルトのRFパラメータ blank.bin 0x3FE000 デフォルトのシステムパラメータ boot.bin 0x00000 ブートローダー user1.bin=Irom0text.bin+Flash.bin 0x01000 ユーザプログラム1 user2.bin=Irom0text.bin+Flash.bin 0x81000 ユーザプログラム2(FOTAの更新領域)
- gen_misc.shを2回実行し、user1.binとuser2.binを生成します。
- gen_misc.shには5つのステップがあります。
- STEP1(BOOT)=0/1/2 1=boot_v1.2+を選択
- STEP2(APP)=0/1/2 1を選択してuser1.binを生成、2を選択してuser2.binを生成
- STEP3(SPI_SPEED)=0/1/2/3 2=40MHzを選択
- STEP4(SPI_MODE)=0/1/2/3 0=QIOを選択
- STEP5(SPI_SIZE_MAP)=0/2/3/4/5/6 6=4096KB(1024KB+1024KB)を選択