4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

②ESP8266(Arduino)に簡単なプログラムをアップする

Last updated at Posted at 2016-09-16

はじめに

この記事は、電子工作の基礎からESP8266というWifi機能を持ったArduino互換の端末を使って,取得したセンサなどの情報をM2Xという、TEST経由で受け取った情報をグラフ表示してくれるクラウドサービスにセンサ情報をアップするところまでをカバーした記事です。
全部で4つの記事から構成されています。
①から順番にご覧ください。

①かんたんな回路を作って電子工作の基本を習得する
http://qiita.com/windows222/private/6f11904f30ff540dcc37
②ESP8266(Arduino)に簡単なプログラムをアップする (←本記事)
http://qiita.com/windows222/private/c60d086a5909d2bff39e
③ESP8266で人感センサ情報を取得する
http://qiita.com/windows222/private/e6bcea0bef795c8cb30c
④ESP8266で取得したセンサ情報をM2xにアップロード
http://qiita.com/windows222/private/9d77cc3fe0094b78a4db


概要

ここでは、最初にArduinoの開発環境を準備します。
その後、簡単なプログラムを作成し、USBを経由してESP8266にプログラムを書き込みます。

ESP8266とは

ESP8266とは、Arduinoと互換性があり、wifiの機能も兼ね備えたIoT界隈ではとても人気の高い端末です。とても安価で、800円前後で購入できます。ただし、そのままだと使えないので、プログラムの書き込みを行うにはusb接続コネクタなどをつなげてやる必要があります。これは意外と手間がかかるため、今回は彼らの部品があらかじめ実装されている、ランニングエレクトロニクス社の端末を使います。(3000円)

環境のセットアップ

Arduino開発環境のインストール

下記のサイトから、Arduinoの開発環境をダウンロードし、インストールを行います。
画面上のDownloadから、環境にあったソフトウエアをダウンロードし、インストールしてください(Mac、Windows両方対応)
https://www.arduino.cc/en/Main/Software

ESP8266開発ライブラリのダウンロード

開発環境のインストールが完了したら、下記の手順に従ってESP8266に必要なライブラリのダウンロードを行います。

①Arduino開発環境を起動し、Preferencesを開く
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

②下記のURLを"追加ボードマネージャのURL"に貼り付ける。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

③ダウンロードライブラリの検索、ダウンロード*
ツール>ボード>ボードマネージャを開き、ダウンロードライブラリを検索
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

検索ウインドウにesp8266と検索し、右下に出ているインストールボタンをクリックする。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png
暫く待つと、ライブラリのダウンロード&インストールが完了する。

ボードの選択

ライブラリのインストールが完了したら、メニュー>ツール>ボードから、Generic ESP8266 Moduleを選択する。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

接続確認

ESP8266をパソコンに接続し、メニュー>ツール>シリアルポートを確認する。
COM3が表示されていれば、デバイスが正常に認識されているので、それを選択する。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

(オプション)USBシリアル変換ドライバの手動インストール

PCがWindows Updateに接続できる環境の場合、この手順は必要ないが、会社PCなどで接続が制限されている場合、ESP8266が正しく認識されない場合がある。
その場合、下記の手順に従い、ドライバをインストールする。
USBシリアル変換ドライバ
http://www.ftdichip.com/Drivers/VCP.htm
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

動作確認

超シンプルなプログラムのアップロード

下記のプログラムをコピー&ペーストし、コンパイルを行う。その後、プログラムをESP8266に接続する。
(ここでは、ESP8266には何も接続しない)

プログラムの選択

スケッチの例から、Wifiをスキャンするプログラムのサンプルを選択する。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

プログラムのアップロード

①ESP8266のスイッチ切り替え
ESP8266をパソコンに接続し、スイッチをDL側に切替えてリセットボタンを押す。
作ったプログラムを動かしたい場合、スイッチをBoot側に切り替えて実行する。
(リセットボタンを押したときにスイッチがDL側になっているとプログラムが動作しないので注意!)
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png
②プログラムのアップロード
上の方にある矢印ボタンを押し、プログラムをボードへ書き込む。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

③完了確認
プログラムの書き込みが完了すると、メッセージに”プログラムの書き込みが完了しました”と表示される。書き込み完了後、すぐにプログラムが起動するため、右上の”シリアルモニタ”を開いて、ボードから出力されるメッセージを確認する。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

コンソール確認

プログラムが正常にどうさしていると、ESP8266が拾ったWifiの一覧情報をコンソールに出力します。
下記の様な文字列が出力され続けていれば成功です。

C5200941-8CC1-4B8A-9CED-32EB6D64D368.png ↑ウインドウの右下の115200 baudが、プログラムに定義されている通信速度とあっていないと文字化けしてしまう為、プログラム上(Serial.begin(115200))で指定した数字と一致させてください。

プログラムでLEDを点滅させる

次に、LEDを接続し、プログラムでそれを点滅させてみます。

回路の作成

ブレッドボード上に、下記の回路を作成します。
862BDBF2-0BE8-4DFA-8C02-FEDD55F7DC22.png

プログラムの作成、書き込み

回路ができたら、下記のプログラムをESP8266に書き込みます。

blink.ino
/**
 * 赤と緑のLEDを点滅させます。
 * 赤のLEDはON/OFFの2段階、
 * 緑のLEDは多段階で点滅します。
 */
 #define RED_LED 15
 #define GREEN_LED  12
// the setup function runs once when you press reset or power the board
void setup() {
 //シリアルポートを通信速度115200で開始
 Serial.begin(115200);
 //RED LED
  pinMode(15, OUTPUT);
  //GREEN LED
  pinMode(12, OUTPUT);
}

void loop() {
  Serial.println("start.");
  digitalWrite(RED_LED, HIGH);   //赤のLEDを点灯
  delay(500);           // 500ミリ秒停止
  digitalWrite(RED_LED, LOW);    //赤のLEDを消灯
  delay(500);              // 500ミリ秒停止

  //緑のLEDを点滅させる。
  blinkGreenLED();
}

/**
 * 緑のLEDを多段階で点滅させる
 */
void blinkGreenLED(){
  Serial.println("green LED");
   //kは点滅させる回数
  for(int k=0;k<2;k++){
    for(int i=0;i<=200;i++){
      analogWrite(12,i);
      delay(5); //5ミリ秒待つ
    }
     for(int i=200;i>=0;i--){
      analogWrite(12,i);
      delay(5);
    }
  }
}

プログラムのポイント

実行後、プログラムは下記の順序で呼ばれる。
setup() -> loop() -> loop() -> loop() ...

動作確認

接続したLEDが両方点滅すれば成功。

応用編

・緑と赤のLEDの点滅の仕方を入れ替えてみましょう。
・点滅の速度をゆっくりにしたり、早くしてみたりしてみましょう。

次の記事:
③ESP8266で人感センサ情報を取得する
http://qiita.com/windows222/private/e6bcea0bef795c8cb30c

4
3
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
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?