LoginSignup
11
13

More than 5 years have passed since last update.

初めてのESP8266(REESPUSB) Lチカまでの最短ルートとハマリポイント

Last updated at Posted at 2016-02-06

Running electronicsのサイトから、ESP-WROOM-02 USB付きBreakout基板 REESPUSBを購入した。
この基盤は、Wifi機能を持った基盤にArduino実行環境が作れると最近何かと話題のESP8266にタクトスイッチとリセットボタンをに加え、3V電源とシリアル通信ができるUSBを搭載した優れモノ。

バラバラに部品を買って自分で組み立てることも,もちろん可能であるが、いろいろと手間がかかることと、サイズが大きくなってしまうことからこちらの商品を買うことを選択。
外観はこんな感じ。BootとDLの切り替えスイッチがついており、書き込みを行うときはDL側に切り替えてRESETボタンを押すと書き込みモードとなる。
image

このような基盤を扱うのは初めてで、いろんな思い込みから何点かハマってしまったことがあるので、手順と共に情報を残しておく。(同じように考えてハマる人もいるはず!)

動作モード

これまでにArduinoも扱ったことがなく、ネットの情報をいろいろしらべていたところ、ESP8226には
 ①ATモードと呼ばれる、コマンドベースで動くモード
 ②ArduinoIDEで作ったプログラムを動かすモード
など、幾つかのモードがあることがわかった。
(他にもLunarというスクリプトを動かすモード等がある)
これらの切り替えは、ATモードであればこのプログラムの様なファームウェア更新ツールで、プログラムを書き込む必要があり、Arduinoの場合はArduino IDEを使って書き込む必要があり、これらを同居させることは不可能なのであるが、それに気づくのに数日かかってしまった。

下記に各モードへの切り替え方法を記載する

ATモードへの切替方法

ATモードとは、ATコマンドと呼ばれるコマンドをシリアル通信で送ることによりWifiに接続したり、接続したWifi経由でインターネットからデータを取得したりすることができるモードのこと。

1. 書き込みソフトインストール

Windowsの場合、NodeMCUというGUIベースのプログラムが公開されている。
ダウンロードパスは下記。(MACは利用不可)
NodeMCU(Windowsのみ)
https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release
上記リンクから、ESP8266Flasher.exeをダウンロードする。

2. ATモードファームウェアダウンロード

次に、NodeMCUを使って書き込むプログラムをダウンロードする。
下記のリンクからFirmwareをダウンロード
v0.9.5.2 AT firmware bin
https://drive.google.com/file/d/0B7X-WA5Q9nVPMUhJcmUzcEw2akk/view?usp=sharing

3. ファームウェア書き込み

GithubからダウンロードしたESP8266Flasher.exeを実行する。アイコンはこんな感じ。
image

Configタブを開き、先ほどダウンロードしたbinファイルを選択する。
image
ESP8266をUSBで接続し、COM Portをあわせる。Flashボタンを押すとファームウェアの書き込みが始まる。
書き込むときは、スイッチをDL側に切り替えるのを忘れずに。(GPIO 0をLowにセット)
image

最後に、左下に 緑のチェックマークが出れば成功。

4. 確認

image
Arduino IDEやteratermを使ってシリアルコンソールを立ち上げ、ATと入力してOKと返ってこれば成功。
file
ATコマンドの一覧は、下記URLを参照。
http://ja.docs.jumpwire.io/ESP8266Reference/ATCommands/

Arduinoプログラム動作モードへの切り替え方法

次に、Arduino IDEを使って自分で開発したプログラムを書き込む方法を紹介する。
先述のとおり、

Arduino IDE環境セットアップ

下記URLから、それぞれの環境(OS)にあったプログラムを選択し、Arduino IDEをインストールする。
https://www.arduino.cc/en/Main/Software

ESPボードの情報を追加。

ArduinoIDEのインストールが完了したら、File>Preference(Macの場合は、Arcuino>Preference)を選択し、設定ウインドウを開く。
image

下記GitHubにアクセルし、記述されているStableバージョンのURLをAdditional Boards Manager URLsに貼り付ける。
(下記の貼り付けURLを参考にしてもよい)
https://github.com/esp8266/Arduino#installing-with-boards-manager

貼り付けURL(2016年2月時点)
http://arduino.esp8266.com/stable/package_esp8266com_index.json

image

Lチカ(LEDをチカチカさせる)プログラムを書き込み

プログラム例

下記のプログラムをエディタに記述するか、File>Examples>01.Basics>Blinkを選択する
image

blinkLED.cpp
void setup() {
  //13番ピンをOutputモードに切り替え
  pinMode(13, OUTPUT);
  //シリアルポートに文字列出力
 Serial.println("セットアップ完了!");
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // 一秒待つ
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // 一秒待つ
}

書き込み

スイッチをDLに切り替えて、ArduinoIDEの左上にあるアップロードボタンを押すと、アップロードが始まる。done uploading と表示されると成功。
image

アップロードできない時は?

Tools>Portをみて、/dev/cu.usbserial-xxxxという項目が出ているかを確認する。どれかわからない場合、一度USBを抜いたり指したりしてみて、その時に項目が増えるかどうかをチェック。何も反応がない場合、使っているケーブルに原因がある可能性がある。ケーブルを変えてみることで、解決する可能性がある。
(私の場合、PS4のコントローラについてきたケーブルをつかったところ、この様な状況が発生した。)
image

配線

写真の通り、13番ピンから抵抗を挟んでLEDをつなぎ、GNDに接続する。
image

動作確認

アップロードが完了すると、自動的にプログラムが開始される。

ESP8266LED完成

ハマったこととその解決策

自分と同じことで、時間が無駄に消費されてしまわぬよう…

コンソールに文字列が表示されない

コンソールへ何かを出力するには、Serial.printと記述する必要がある。
Printfとかprintlnではダメ。(気がついてみれば当たり前なのだが…)

端末が認識されない

PCにUSBで接続する際、ケーブル非対応が原因で端末が認識されない場合がある。USB接続してもPC側に反応がない場合、ケーブルを別のに変えてみる。

ATとコマンド打ってもOKと返ってこない

先述の通り、ArduinoのプログラムとATプログラムの同居はできない。
ATコマンドを使いたい場合は、AT firmを書き込む。(この場合は、Arduinoのプログラムは消える)

11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13