はじめに
この記事は、電子工作の基礎から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を開く
②下記のURLを"追加ボードマネージャのURL"に貼り付ける。
http://arduino.esp8266.com/stable/package_esp8266com_index.json
③ダウンロードライブラリの検索、ダウンロード*
ツール>ボード>ボードマネージャを開き、ダウンロードライブラリを検索
検索ウインドウにesp8266と検索し、右下に出ているインストールボタンをクリックする。
暫く待つと、ライブラリのダウンロード&インストールが完了する。
ボードの選択
ライブラリのインストールが完了したら、メニュー>ツール>ボードから、Generic ESP8266 Moduleを選択する。
接続確認
ESP8266をパソコンに接続し、メニュー>ツール>シリアルポートを確認する。
COM3が表示されていれば、デバイスが正常に認識されているので、それを選択する。
(オプション)USBシリアル変換ドライバの手動インストール
PCがWindows Updateに接続できる環境の場合、この手順は必要ないが、会社PCなどで接続が制限されている場合、ESP8266が正しく認識されない場合がある。
その場合、下記の手順に従い、ドライバをインストールする。
USBシリアル変換ドライバ
http://www.ftdichip.com/Drivers/VCP.htm
動作確認
超シンプルなプログラムのアップロード
下記のプログラムをコピー&ペーストし、コンパイルを行う。その後、プログラムをESP8266に接続する。
(ここでは、ESP8266には何も接続しない)
プログラムの選択
スケッチの例から、Wifiをスキャンするプログラムのサンプルを選択する。
プログラムのアップロード
①ESP8266のスイッチ切り替え
ESP8266をパソコンに接続し、スイッチをDL側に切替えてリセットボタンを押す。
作ったプログラムを動かしたい場合、スイッチをBoot側に切り替えて実行する。
(リセットボタンを押したときにスイッチがDL側になっているとプログラムが動作しないので注意!)
②プログラムのアップロード
上の方にある矢印ボタンを押し、プログラムをボードへ書き込む。
③完了確認
プログラムの書き込みが完了すると、メッセージに”プログラムの書き込みが完了しました”と表示される。書き込み完了後、すぐにプログラムが起動するため、右上の”シリアルモニタ”を開いて、ボードから出力されるメッセージを確認する。
コンソール確認
プログラムが正常にどうさしていると、ESP8266が拾ったWifiの一覧情報をコンソールに出力します。
下記の様な文字列が出力され続けていれば成功です。

プログラムでLEDを点滅させる
次に、LEDを接続し、プログラムでそれを点滅させてみます。
回路の作成
プログラムの作成、書き込み
回路ができたら、下記のプログラムをESP8266に書き込みます。
/**
* 赤と緑の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