Arduinoと無線LANで通信する(ESP8266 2)

ESP8266用のライブラリはこ ちらでいくつか紹介されています。
さすがに人気のあるモジュールなので、ライブラリも沢山ありますが、
「Seems to be the most stable and reliable ESP library at the moment」
(現時点で最も安定し、信頼できるESPライブラリであると思われる)と紹介されている
ITEADLIB_Arduino_WeeESP8266を 使いました。

「ITEADLIB_Arduino_WeeESP8266-master.zip」をダウンロードして展開したら、フォルダーごと Librariesフォルダーに移動します。

NANOはハードウェアシリアルを持っていますが、デバッグを考えると、ソフトウェアシリアルで接続したほうが楽チンです。
こ ちらでソフトウェアシリアルでの使用方法が紹介されていますが、
ESP8266をソフトウエアシリアルで使うためには「esp8266.h」を一部変更する必要があります。
デフォルトでは以下の赤枠の部分がコメントアウトされているので、コメントを外します。



また青枠の部分でデフォルトのボーレートを設定していますが、これはスケッチ内で自由に変更できるので
このままにしておきます。

最初にアクセスポイントに接続できるかどうかの確認です。
結線は以下の通りです。




SIDにはアクセスポイントのSSID、PASSにはそのパスワードを指定してください。

/*
 * ESP8266 Connect Example with WeeESP8266 Library
 * https://github.com/itead/ITEADLIB_Arduino_WeeESP8266
 *
 * ESP8266----------ATmega
 * ESP8266_TX    -> RX(D2)
 * ESP8266_RX    -> TX(D3)
 */

#include "ESP8266.h"
#include <SoftwareSerial.h>

#define rxPin 2
#define txPin 3
#define baudRate 4800

SoftwareSerial myESP8266(rxPin, txPin); /* RX:D2, TX:D3 */
ESP8266 wifi(myESP8266,baudRate);

#define SID         "アクセスポイントのSSID"
#define PASS        "アクセスポイントのパスワード"

void setup(void)
{
    Serial.begin(9600);
    wifi.leaveAP();
    Serial.print("FW Version:");
    Serial.println(wifi.getVersion().c_str());
   
    if (wifi.setOprToStationSoftAP()) {
      Serial.print("to station ok\r\n");
    } else {
      Serial.print("to station err\r\n");
    }

    if (wifi.joinAP(SSID, PASSWORD)) {
      Serial.print("Join AP success\r\n");
      Serial.print("IP: ");      
      Serial.println(wifi.getLocalIP().c_str());
    } else {
      Serial.print("Join AP failure\r\n");
    }

    if (wifi.disableMUX()) {
      Serial.print("single ok\r\n");
    } else {
      Serial.print("single err\r\n");
    }

    wifi.leaveAP();
    Serial.print("setup end\r\n");
}

void loop(void)
{
}


上のスケッチを実行して、以下が表示されればアクセスポイントに接続できています。




続く....