ESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーの初期設定

ArduinoアルドゥイーノESP-WROOM-02イーエスピー・ダブルルーム・ゼロツー間の通信はシリアル通信で行います。ESP-WROOM-02の転送レートは工場出荷時に115200bpsで設定されているので、Arduinoに合わせて9600bpsに設定します。

1. 設定用のプログラムをArduinoに書き込む

Arduino IDEのメニューで[ファイル]→[スケッチの例]→[SoftwareSerial]→[SoftwareSerialExample]をクリックしSoftwareSerial用のサンプルスケッチを開き、次のようにコードを編集してArduinoへ書き込みます。

30行目

SoftwareSerial mySerial(12, 11); // RX, TX

34行目

Serial.begin(115200);

43行目

mySerial.begin(115200);

2. ATコマンドで通信速度を設定

シリアルモニター

Arduino IDEのメニューから[ツール]→[シリアルモニタ]をクリックするとシリアルモニターウィンドウが開きます。右下の改行コードを「CRおよびLF」へ、転送レートを「112500」へ変更します。多少文字化けが起こりますが設定には問題ありません。ESP-WROOM-02との通信が成功すると「Hello World?」と表示されるので、上部のテキスト入力部分に「AT」と入力し[送信]ボタンをクリックします。

この「AT」はATコマンドと呼ばれるもので、ESP-WROOM-02の情報の取得や設定を行うことができます。ATコマンドについては記事「WiFiモジュール(ESP-WROOM-02) ATコマンド一覧 : e電子工房」にコマンドの一覧が有りますのでご覧ください。「OK」とESP-WROOM-02側から返答があれば下記のコマンドを入力し転送レートを9600bpsへ設定します。

AT+UART_DEF=9600,8,1,0,0

3. Arduino IDEにライブラリをインストール

ESP-WROOM-02用のライブラリ「ITEADLIB_Arduino_WeeESP8266」をダウンロードします。Arduino IDEのメニューから[スケッチ]→[Include Library]→[Add .ZIP Library]をクリックし、ダウンロードしたライブラリをインストールします。

4. ライブラリを編集

ライブラリの初期状態ではSoftwareSerialが無効になっているので、ライブラリを編集し有効にします。Documents/Arduino/libraries/ITEADLIB_Arduino_WeeESP8266-master/フォルダ内にESP8266.hファイルがあるので、27行目のコメントアウトを外し下記のように変更します。

#define ESP8266_USE_SOFTWARE_SERIAL

スマートフォンからLチカさせるプログラム

GitHubにサンプルコードをアップロードしていますので、詳しい内容についてはソースコード内のコメントを参照ください。

htmlフォルダ内にはサーバーへアップロードするファイルが格納されています。そのままサーバーへアップロードしていただいても動作します。「arduino」フォルダ内にはArduinoスケッチが格納されており、Wi-FiのSSIDやパスワード、サーバー情報などを適宜変更してArduinoへ書き込んでください。

ウェブブラウザのボタンをタップすることにより、ON/OFF情報がPHPへ送信されPHPと同階層のledLog.txtに値が保持されます。その値をArduinoから一定間隔(サンプルでは200ミリ秒)ごとに取得し、ONならLEDを点灯させるという仕組みです。

ESP-WROOM-02のすごいところがもう1つ!

なんと、ESP-WROOM-02自体にArduino IDEでコンパイルしたプログラムを書き込むことでArduinoのように動作させることができるのです! Arduino UNO R3のようにUSBポートやACコネクタなどが付いていないため、1から回路を組む必要はありますがArduinoよりもコンパクトにできるので、ぜひお試しください。

最後に

以前の「JavaScriptでArduinoをコントロール」ではパソコンとUSBケーブルが接続されていましたが、Wi-Fiで無線化したことで1本線から開放されました。ACアタプターのケーブルが残っていますが、別途バッテリーを接続すると完全に持ち運べる状態にすることも可能です。LEDの代わりにGPSモジュールを接続すると、某スパイ映画のようななんちゃって発信機も作ることができます。

今回はサーバー側のプログラムはPHPを用いましたが、続編記事「電子工作でトイレが使用中かチェックする仕組みを作ってみた」ではBaaS(バース)と呼ばれるバックエンドの機能を知識のないユーザーでも簡単に扱うことができるサービスを使い、もっと簡単にインターネット上でデータをやり取りする方法を紹介します。

電子工作×インターネットの解説本を執筆しました

ICS MEDIAで紹介してきたIoT技術が1冊の本になりました。電子工作初心者がインターネットにつながるIoT装置を作れることを目標としています。本サイトで紹介しきれなかったネタや、新しい要素が盛りだくさんな内容になりました。本書をきっかけにあなたもIoTの世界に踏み込んでみてはいかがでしょうか? 詳しい内容は記事「『センサーでなんでもできる おもしろまじめ電子工作』を執筆しました」で紹介していますのでご覧ください。

センサーでなんでもできる おもしろまじめ電子工作の表紙

センサーでなんでもできる おもしろまじめ電子工作

  • ページ数:340ページ
  • 出版社:秀和システム
  • 発売日:2016年5月28日 (Amazon)

Amazonでチェックする