WROOM-02(3)-通信体系

前回、WROOM-02(ESP8266デバイス)を使う為に、Arduino IDEのセットアップをしました。

今回、WROOM-02を使用して、無線通信を行おうと思うのですが、通信体系について考えておこうと思います。

主要な通信体系は大きくわけて下記の3つ考えれられます。
①WROOM-02を親機と考えたPCとWROOM-02の通信
②PCを親機と考えたPCとWROOM-02の通信
③PCとWROOM-02の間に無線ルーターを挟んだPCとWROOM-02の通信
他にもあると思いますが、主要なものはこの3つかなと思われます。

まずは、①のWROOM-02を親機と考えたPCとWROOM-02の通信を行おうと思います。
①のWROOM-02を親機と考えたPCとWROOM-02の通信をする為のコードは下記のようになります。
※注意:下記のコードをesp8266に書き込むと、ATコマンドは使用できなくなります。


/* Create a WiFi access point and provide a web server on it. */

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = "ESPap";
const char *password = "thereisnospoon";

ESP8266WebServer server(80);

/* Just a little test message.  Go to http://192.168.4.1 in a web browser
 * connected to this access point to see it.
 */
void handleRoot() {
	server.send(200, "text/html", "<h1>You are connected</h1>");
}

void setup() {
	delay(1000);
	Serial.begin(115200);
	Serial.println();
	Serial.print("Configuring access point...");
	/* You can remove the password parameter if you want the AP to be open. */
	WiFi.softAP(ssid, password);

	IPAddress myIP = WiFi.softAPIP();
	Serial.print("AP IP address: ");
	Serial.println(myIP);
	server.on("/", handleRoot);
	server.begin();
	Serial.println("HTTP server started");
}

void loop() {
	server.handleClient();
}

スケッチ-マイコンボードに書き込むを実行して、esp8266に上記コードを書き込みます。
この時、FLASHボタンを書き込み開始から完了まで押していて下さい。
押していないと書き込みは失敗します。

書き込みが完了しましたら、TeraTermを実行して、動作を確認します。
ボーレートは115200bpsに設定します。
WROOM-02のRESETボタンを押すと下記のような画面が表示されます。

次に、SSIDがESPapのアクセスポイントに接続します。
パスワードは上記コードより、thereisnospoonです。

接続が完了したら、ブラウザにアドレス欄にhttp://192.168.4.1を入力します。
入力すると下記のような画面が表示されます。

これで動作確認完了です。
①のWROOM-02を親機と考えたPCとWROOM-02の通信ができました。

WROOM-02(2)-Arduino開発環境設定

前回、WROOM-02を調査した結果、arduinoデバイスとして使用できる事がわかりました。
それでは、Arduinoデバイスとして使用する為に、Aruduinoの開発環境をインストールします。
下記サイトより、Arduino IDEをダウンロードしてインストールします。
https://www.arduino.cc/en/main/software

インストールが完了したら、Arduino IDEを起動して、ESP8266デバイスを使用する為の開発環境の設定を行います。
※前回も説明しましたが、WROOM-02はESP8266を搭載したモジュールとなります。

まずは、ファイル-環境設定の追加のボードマネージャーのURLに、下記のURLコードを入力して、OKボタンを押します。
http://arduino.esp8266.com/stable/package_esp8266com_index.json

次に、ツール-ボードのボードマネージャーを選択します。
ボードマネージャーを一番下までスクロールすると、esp8266 by esp8266 communityというボードマネージャーがあるので、インストールします。

これで、Arduino IDEで、ESP8266デバイスを使用する為の準備完了です。

ファイルースケッチ例の中を見てみると、esp8266を使用したスケッチ例もインストールされています。
これを参考にして、WiFIを使用した通信を行ってみたいと思います。

WROOM-02(1)-無線モジュールを調査

無線でアナログ情報を取得したいので、マイコンで制御できる無線を調べていると、WROOM-02にたどり着きました。

RS232通信で、無線の設定をするようです。
早速、試してみました。

試したのは下記の2つの製品です。

ESPr Developer(ESP-WROOM-02開発ボード)

新品価格
¥2,160から
(2017/5/7 10:27時点)

[スイッチサイエンス] ESP-WROOM-02ピッチ変換済みモジュール《T型》

新品価格
¥909から
(2017/5/7 10:29時点)

ESP-WROOM-02ピッチ変換済みモジュールは、価格は安いですが、RS232レベル変換モジュールや抵抗などを用意する必要がありますので、少々手間がかかります。

ESP-WROOM-02開発ボードは、RS232レベル変換モジュールや抵抗などが搭載されているので、価格はESP-WROOM-02ピッチ変換済みモジュールと比べて、価格は高いですが、USBケーブルと繋げるだけで使用できます。
まず、試してみたい方には、ESP-WROOM-02開発ボードのほうが便利なので、今回は、ESP-WROOM-02開発ボードを使用指していこうと思います。

それでは、早速、ESP-WROOM-02開発ボードとPCをUSBケーブルで接続します。
すると、ドライバーのインストールが始まりますので、インストールが完了するまで待ちます。

インストールが完了したら、TeraTermを立ち上げて、動作を確認します。
TeraTermを実行したら、設定-シリアルポートよりボーレートを115200bpsに設定します。
次に、設定-端末より送信の改行コードをCR+LFに設定します。
開発ボードのリセットボードを押すと下記のようなメッセージが表示されます。

readyと表示されればOKです。

wroom-02はATコマンドと呼ばれるものが、使用できます。
例えば、ATと送信すると、OKと返信が返ってきます。

このATコマンドを使用する事で、wroom-02の設定ができます。

ここでふと疑問に思うことがありました。
ATコマンドが使用できるということは、マイコンのようなものが搭載されているのでは?
ちょっと調べてみると下記のことがわかりました。
wroom-02はESP8266を搭載したモジュールです。
では、ESP8266なにかと言いますと、マイコンを搭載したWiFiモジュールのようです。
さらに、Arduinoデバイスとしても使用することが可能なようです!
すばらしいですねー。
Arduinoデバイスを使用してみたいと思ってもいたので、Arduinoデバイスとして使用して、WiFiを使用してみようと思います。