arduino uno を買って、ESP-WROOM-02を接続して使おうとすると回路を繋ぐだけでだいぶん苦戦しました。今回は、回路を繋ぐところから、ESP-WROOM-02のATコマンドによるWi-fi動作確認までを紹介します。
これから同じことを行われる方はこの記事を読むだけで数日分の短縮になりますのでぜひ参考にしてみてください。
##必要なもの
部品
【arduinoとPCに繋ぐケーブル】
・arduino uno http://akizukidenshi.com/catalog/g/gM-07385/
・USBケーブル USB2.0 Aオス-Bオス 1.5m A-B http://akizukidenshi.com/catalog/g/gC-07605/
【WI-FI】
・ESP-WROOM-02ピッチ変換キット http://akizukidenshi.com/catalog/g/gK-13646/
※ピンヘッダをはんだ付けする必要があります。
【電圧変換】
・三端子レギュレータ 3.3V500mA http://akizukidenshi.com/catalog/g/gI-00432/
・カーボン抵抗(炭素皮膜抵抗) 1/4W 10kΩ (100本入)
・絶縁ラジアルリード型積層セラミックコンデンサー0.1μF50V2.54mm http://akizukidenshi.com/catalog/g/gP-00090/
・電解コンデンサー3.3μF50V85℃ http://akizukidenshi.com/catalog/g/gP-03173/
【その他】
・ブレッドボード http://akizukidenshi.com/catalog/g/gP-05294/
http://akizukidenshi.com/catalog/g/gR-25103/
・ブレッドボード・ジャンパーワイヤ(オス-オス)セット 各種 合計60本以上 http://akizukidenshi.com/catalog/g/gC-05159/
##手順
arduino IDEはすでに使えるものとして進めます。
まだの方は下記のURLを参考にされると良いと思います。
【arduino IDEインストール方法】
https://dotstud.io/docs/arduinoide-setup/
####1、Wi-Fi回路を組む
ESP-WROOM-02周りの配線は以下の記事を参考にしました。
https://qiita.com/shibatchii/items/930fcd90fded76866483
※追加でESP-WROOM-02の15番とGNDの間には10kΩの抵抗を挟んでください。
※RSTボタンを作って置くと何かと便利です。 RSTとGNDの間にボタンを設置。
####2、電圧変換を作る
電圧を変換する理由について
ESP-WROOM-02は3.3Vの電圧を必要とします。arduinoに3.3vがあるのですが、これを使うと電流が足りずESP-WROOM-02がうまく動いてくれません。434mAが表示されたり消えたりでした、、、ATコマンドにも反応してくれませんでした。
したがって、arduinoの5Vを電圧変換で3.3Vにしています。すると電流が450mA程度を安定して確保できます。
ここから回路を作っていきます!
三端子レギュレーターというもので電圧変換をおこないます。
三端子レギュレーター のピン配置は下記を参考にしてください。
http://akizukidenshi.com/download/ds/njr/NJU7223_j.pdf
Vout と GND を 電解コンデンサー3.3μF で繋げます
Vin と GND を セラミックコンデンサー0.1μF で繋げます。
Voutはwi-fiへ
Vinはarduino 5Vピンへ
GNDはarduino GND と ESP-WROOM-02のGNDへ
以上で回路は完成です。
####ATコマンドで動作確認
arduino IDEに下記のコードを書いてください
#include <ESP8266.h>
#define SSID " ""の中にWi-FiのSSIDを入れてください"
#define PASSWORD " ""の中にWi-Fiのパスワードを入れてください。"
SoftwareSerial mySerial( 2,3 );
ESP8266 wifi( mySerial );
void setup(void)
{
Serial.begin( 9600 );
mySerial.begin(115200);
mySerial.println("AT+UART_CUR=9600,8,1,0,0");
delay(10);
mySerial.begin(9600);
delay(10);
if ( wifi.setOprToStation() ) {
Serial.println( "OK" );
} else {
Serial.println( "Error" );
}
if ( wifi.joinAP( SSID, PASSWORD ) ) {
mySerial.println("AT+CIPSTA=192.168.1.200,192.168.1.1,255.255.255.0");
delay(10);
Serial.println( wifi.getLocalIP().c_str() );
} else {
Serial.println( "Failed" );
}
}
void loop(void)
{
}
arduino IDE右上のシリアルモニターボタンを押して、CRおよびLFを選択、9600bpsを選択。
以下のように表示されていたら接続完了です。
##最後に
ネット上で先人たちの情報をみてもうまくいかないなと思っていたら、原因は電流不足でした。。。。
この記事でかなりの時短になります。尚、不足している情報もあると思うのでそこはネットで調べてみてください!