[ESP-WROOM-02]ブラウザにHelloWorldを表示させる

#はじめに

「[ADコンバータ+土壌湿度センサー+Rubyで土壌の水分を計る](http://qiita.com/jun1_0803/items/6075340cf5d8be4a4f56)」というエントリでRaspberryPiを使って、盆栽の水分を測ろうと試みました

ただ、RaspberryPiだと屋外で使うには難しいので、Arduinoマイコンとしても使えるwifiモジュール「ESP-WROOM-02」を使ってみようと思います

まず、ESP-WROOM-02にスケッチ（プログラム）を書き込んで、ブラウザにHelloWorldを表示させてみたいと思います

#電子部品

- [ESP-WROOM-02開発ボード（ピンソケット実装済）](https://www.switch-science.com/catalog/2652/) スイッチサイエンスで購入

用意した開発ボードより、値段が安いボードも売っていますが、ハンダ付けをする必要があります
初心者がハンダ付けをする、そのためのハンダごてを用意するということを考えて、ハンダ付けが不要なこちらのボードを購入しました

＊開発ボードの大きさは十円玉2枚くらい
![IMG_20160405_221034.jpg](https://qiita-image-store.s3.amazonaws.com/0/106763/031749f3-8543-3b96-b5a3-cb6be73c7d57.jpeg)

#参考

- [Device Plus　第33−35回](http://deviceplus.jp/hobby/entry0033/)
- [ESP-WROOM-02 開発ボードの使い方をザッと紹介](https://www.mgo-tec.com/blog-entry-ss-wroom-howto01.html)
- [Check! ESP-WROOM-02 開発ボードの始め方](http://qiita.com/dz_/items/27c2e19981e0bcddcf66)
- [Arduino IDEでESP-WROOM-02のボード設定について](http://qiita.com/umi_kappa/items/ced90c258a14be165291)


#HelloWorldを表示させる

##ArduinoIDEをインストール

[arduino.cc](https://www.arduino.cc/)からIDEをダウンロードして、インストールする

![ArduinoHome.png](https://qiita-image-store.s3.amazonaws.com/0/106763/1157d71b-bf25-6205-8337-ac6e2f2bb73f.png)

![ArduinoSoftware.png](https://qiita-image-store.s3.amazonaws.com/0/106763/3ab5667e-0422-7196-f419-ea7eff18e996.png)

![ArduinoDonate.png](https://qiita-image-store.s3.amazonaws.com/0/106763/f2dee503-6733-67c6-8ea9-5561c7c0aaef.png)

＊寄付する人は金額を選んで、ダウンロードのみの人は右下の「JUST DOWNLOAD」からダウンロードします
＊zipファイルを解答すると、Arduino.appファイルがあるので、/Applicationsにでも移動させておきます

##ArduinoIDEにESP-WROOM-０２（ESP8266）用のボードマネージャーをインストールする

IDEを立ち上げ、メニューのArduino>Preferencesを選択して、設定画面を表示する
追加のボードマネージャのURLに

```
http://arduino.esp8266.com/stable/package_esp8266com_index.json
```

を入力する

次にメニューのツール>マイコンボード>ボードマネージャを選択して、ボードマネージャ画面を表示する
検索フィルタに「ESP」と入力して、ESP8266のボードマネージャをインストールする

ボードマネージャインストール後、IDEを再起動して、メニューのツール>マイコンボード>Generic ESP8266 Moduleを選択する

##ESP-WROOM-02の設定

IDEのツールからモジュールの設定をする
設定は「[Arduino IDEでESP-WROOM-02のボード設定について](http://qiita.com/umi_kappa/items/ced90c258a14be165291)」を参考にした

##通信テスト

PCとESP-WROOM-02をUSBで接続して、[Device Plus　第33回](http://deviceplus.jp/hobby/entry0033/)を参考にIDEでATコマンドを使って通信のテストをする

通信のテストで使う、シリアルモニタはメニューのツール>シリアルモニタか、IDEの右上にある虫眼鏡ボタンを押して表示する

![ArduinoAT.png](https://qiita-image-store.s3.amazonaws.com/0/106763/7284dd9d-8c63-5c73-c2cb-24da9fafe536.png)

wifi接続を設定する場合は
1. AT+CWMODE=1と入力して、station(Wifi子機)モードに設定する
2. AT+CWJAP="SSID","PASSWORD"と入力して、wifiに接続する
3. AT+CIFSRと入力して、ESP-WROOM-02のIPアドレスを確認する

##スケッチ（プログラム）をESP-WROOM-02に書き込む

＊今回はあらかじめ用意されているスケッチをESP-WROOM-02に書き込みます

メニューのファイル>スケッチの例>ESP8266WebServer>HelloServerを選択して、サンプルスケッチを表示する

![ArudinoHello.png](https://qiita-image-store.s3.amazonaws.com/0/106763/fc943bb6-1697-4525-aff2-47eead271f28.png)

６-7行目を自分のwifi環境に合わせる
15行目の"hello from esp8266!"を”Hello World”に書き換える（あまり意味はない）

```lang:arduino
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>

const char* ssid = "自分のwifi環境のSSID";
const char* password = "自分のwifi環境のパスワード";

ESP8266WebServer server(80);

const int led = 13;

void handleRoot() {
  digitalWrite(led, 1);
  server.send(200, "text/plain", "Hello World");
  digitalWrite(led, 0);
}
```

スケッチを書き込むため、PCとESP-WROOM-02をUSBで接続して、開発ボードの動作モード切替スイッチ（USBポートを下にしたとき右側のスイッチ）を押し続け、その間にリセットスイッチ（左側のスイッチ）を一度押して、その後、動作モード切替スイッチを押し続けていたのを離す

その後、IDEの左上の右矢印ボタンを押して、ESP-WROOM-02にスケッチを書き込む

![ArduinoProgram.png](https://qiita-image-store.s3.amazonaws.com/0/106763/7a0e5e45-fe75-d554-8085-a467a36b432e.png)

＊IDE下部のコンソールが画像のようになれば、書き込みが成功しています

##ブラウザにIPアドレスを入力してHelloWorldを表示する

通信テストで確認したESP-WROOM-02のIPアドレスをブラウザのアドレスバーに入力して、HelloWorldを表示する

![ArduinoHelloWorld.png](https://qiita-image-store.s3.amazonaws.com/0/106763/f7afcd39-b119-2094-03f0-ac8317bef5b4.png)

#まとめ

IDEを使うことで、Arduinoのスケッチが初めてでも、いろいろできそうな気がします
最終的には、乾電池とセンサーをつなげて、ワイヤレスで盆栽の水分を測りたいと思います