ArduinoIDEを使う
やること:ArduinoIDEからESP8266を開発。ESP単体でプログラムを動作させる。
https://learn.adafruit.com/adafruit-huzzah-esp8266-breakout/using-arduino-ide
を参考に書いています。
1.ハードウェアの準備。
FT232RLを使ってます。
FT232RLのUSBからレギュレータで500mAくらいは流せる3.3Vを作る。
以下のように繋ぐ。
FT232RL | esp8266 |
---|---|
3.3V(レギュレータOUT) | 3.3v |
GND | GND |
TX | RX |
RX | TX |
3.3V(レギュレータout) | EN(プルアップ) |
以上繋いだら2.ソフトウェア準備へ
2.ソフトウェア準備
1、Arduinoを最新版に
2、環境設定を開きAdditional Boards Manager URLsに
http://arduino.esp8266.com/stable/package_esp8266com_index.json
を入力
3、toolsのボード→Board Managerでesp8266と入力しでてきたesp8266 byESP8266Communityってやつをインストール。したらIDEを再起動。
4、ボードにESP8266関連の項目がいくつか追加されていますね。そのなかのGeneric ESP8266を選択します。
5、書き込みに使用するポートを自分のシリアルモジュールにしてください。どれかわからない場合は抜き差ししてどれが消えたか増えたか見て推測してください。
これでArduinoIDEを用いてESP8266を開発する準備がすべて整いました。
早速Lチカからやってみましょう。
void setup() {
pinMode(0, OUTPUT);
}
void loop() {
digitalWrite(0, HIGH);
delay(500);
digitalWrite(0, LOW);
delay(500);
}
ESP8266のArduinoでのピンアサインはGPIOと1対1に対応してます。
しかし書き込む前に注意があります!!
EspをuartDownloadModeにしないと書き込めません!ESP8266にはMODEがあります。
UARTMODEにするにはio2を3.3vに、io15とio0をGNDにつなぎます。それだけ。
(使用しているブレイクアウトボードやモジュールにより多少状況は異なります。)
そしてRSTをGNDにつなぎましょう。
これで準備は整いました。
書き込みを押すと同時(書き込みより早くてはいけません)にRSTとGNDを繋いでる線をオープンにしてください。そんなに早くなくて大丈夫です。IDEの書き込み進行メーターが9割になる前に抜いてください。
これはRSTとGNDを繋いでるのがジャンプワイヤなら引っこ抜いてくださいという意味です。そしたら無事書き込めるはずです。
書き込んだ後IO0ピンを使うならGNDと繋がっている線を引っこ抜いてください。ショートします。
以上でArduinoでESP8266を開発できるようになりました。
電源を落とした際に再起動する場合はflashBootModeにして電源を入れないとプログラムは動かないので注意してください。安心してください。プログラムが消えるわけでありません。間違ってflashBootModeではない状態で電源を入れた場合はFlashBootModeにして電源を入れ直してください。(flashBootModeにする方法は下記参照)
以下書き込み手順を箇条書きにまとめます。
・io2を3.3v、io15とio0をGNDに繋いでuartDownloadModeにする
・GNDとRSTを繋ぐ
・書き込みを押すと同時にRSTをGNDをオープンに
・終わり。
ちなみに上で触れたMODEについて補足
esp8266にはflashBootModeとUartDownloadModeがあります。それぞれのMODEにする方法は以下のように配線します。
uartDownloadMode
プログラムを書き込むときに使います。
FT232RL | esp8266 |
---|---|
3.3V | io2 |
GND | io15 |
GND | io0 |
flashBootMode
書き込んでいるプログラムを読み込んで実行するときに使います。
FT232RL | esp8266 |
---|---|
3.3V | io2 |
GND | io15 |
3.3V | io0 |
です。io0の接続先が違うだけです。
ps:ArduinoならぬEspduinoを作ってみました。下はさらにArduino用のシールドを作って並べてみた様子。WebServerにしてみました。。しかし私は今、busy s...エラーにはまってます。
解決できたらそのへんも追記したいと思います。
ps2:NODEMCUでやったらなんにも問題なくhttpリクエストを処理できました。