ESP-WROOM-02の通信速度の設定


前回の記事ESP8266 (ESP-WROOM-02)を使う でESP-WROOM-02とシリアル通信でATコマンドを送りアクセスポイントへのアクセスまで行いました。次にArduinoとの接続を行います。ArduinoとはSoftware Serialで繋ぐ事にします。Arduinoの標準通信ポートはプログラムの時に使うので他のポートでESP-WROOM-02と通信した方がデバッグが簡単になります。しかし、ここで一つ問題があります。ESP-WROOM-02の標準通信速度は115200bpsです。ArduinoのSoftware Serialは115200bpsでは通信出来ないようです。
SoftwareSerial: begin(speed)を見ると115200bpsでも通信できると書いてありますが、試した所できませんでした…

そこで、ESP-WROOM-02の通信速度を9600bpsまで落とします。57600bpsとかでも良さそうですが、ESP-WROOM-02の旧バージョンのFirmwareでは9600bpsだったのでそれに合わせます。

通信速度の設定は以下のコマンドで行います。
AT+UART_DEF=9600,8,1,0,0

スクリーンショット 2015-08-28 19.19.37

通信速度を変えるコマンドにAT+IPRがありますが、こちらは使ってはいけません。これを使うとESP-WROOM-02が反応しなくなります。古い資料にはこのコマンドが出ているので注意してください。この状態になるとFirmwareの書き直しとかが必要なようです。(私はやったことないのですが)

ATコマンドの詳細はESP8266 AT Instruction Setにあります。
AT+UART_DEFは13ページにあります。
AT+UART_DEF=<baudrate>, <databits>,<stopbits>, <parity>,<flow control>

<baudrate> UARTbaudrate
<databits> data bits
5: 5 bits data
6: 6 bits data
7: 7 bits data
8: 8 bits data
<stopbits> stop bits
1: 1 bit stop bit
2: 1.5 bit stop bit
3: 2 bit stop bit
<parity> parity
0: None 1: Odd 2: EVEN
<flow control> flow control
0: disable flow control
1: enable RTS
2: enable CTS
3: enable both RTS and CTS

AT+UART_DEF=9600,8,1,0,0は通信速度9600bps、8ビットデータ長、ストップビット1、パリティ無し、フローコントロール無し、という設定になります。