ESP8266でWebSocketを使ってLEDをコントロールする

DIY
スポンサーリンク

このコードはArduino wifiモジュールのESP8266でWebSocketを使ってLEDをコントロールするサンプルプログラムです。

 

 

ソースコードは以下で公開しています。(MITライセンス)

 

目次

 


概要

WebSocketを使ってArduino側の出力を制御する処理のコーディング練習用に作成しました。

 

必要なこと

 

 

必要なデバイス

 

Arduino wifi module(ESP8266)

日本での購入なら、以下のボード上で動作します。

 

その他の部品

部品型番個数
5mm Deluxe Power Red LEDOSR5CA5B61P1
120Ω抵抗-1
ブレッドボード-1
ジャンパーピン(オス-メス)-2

 

 

インストールが必要なソフトウェア

 

Arduino IDE

開発用のPCにArduino IDEをインストールします。
https://www.arduino.cc/en/Main/Software

 

(tool) ESP8266 core for Arduino

Arduino IDEのデフォルト設定では、ESP8266ボードはサポートされていません。 そのため、ESP8266 core for ArduinoをArduino IDEにインポートする必要があります。
ESP8266 core for Arduino

 

(tool) Arduino ESP8266 filesystem uploader

Arduino ESP8266用のファイルアップローダーです。 以下のサイトからダウンロードできます。
Arduino ESP8266 filesystem uploader

 

(library) Links2004/arduinoWebSockets

Arduino向けのWebSocketライブラリーです。 以下のサイトからダウンロードできます。
Links2004/arduinoWebSockets

 

 

使い方

  • 以下のように回路を組みます。

 

  • Arduino IDEに"インストールが必要なソフトウェア"をインストールします。

インストールが必要なソフトウェアは「インストールが必要なソフトウェア」の章を参照ください。

 

  • Arduino IDEでESP8266基板に本コードを書き込みます。

書き込むコードは「ESP8266_control_LED_by_websocket.ino」です。

このコードはESP8266の動作として、アクセスポイントモードとステーションモードをサポートしています。 デフォルトではアクセスポイントモードとなります。 ステーションモードで使用したい場合は、コード内にある"myssid"と"mypassword"にご自分のアクセスポイントの情報を入れてください。 また、もし、出力するピンを変えたい場合は、LED_PINの定義値を変更してください。

パラメータは以下です。ご自分の環境に合わせて適宜変更してください。

パラメータ説明 デフォルト値
ssidAP-Modeで使う場合のAPのSSID"ESP8266 Access Point"
passwordAP-Modeで使う場合のAPのパスワード"esp8266-test"
myssidST-Modeで使う場合のAPのSSID。ご自分の環境に合わせて設定してください。"The ssid name of your AP"
mypasswordST-Modeで使う場合のAPのパスワード。ご自分の環境に合わせて設定してください。"The password of your AP"
LED_PINLEDと接続するESP8266側のGPIOピン番号15

 

  • ESP8266基板にWebサーバ用ファイルをアップロードします。

Arduino ESP8266 filesystem uploaderを使えば、自動でソースコードがあるディレクトリ内にある/dataを読み取り、アップロードしてくれます。

アップロードするコードは以下です。

名称説明
index.html.gzHTMLアクセスしたときの画面を指定
main.css.gz画面デザインを指定
WebSocket.js.gz WebSoketのクライアント側の動作を指定

 

  • ESP8266基板の電源を入れて、wifiの設定をします。

AP-Modeの場合(デフォルト):

アクセスポイントにステーション端末がつながるのを待っています。 アクセスポイントのSSIDは「ESP8266 Access Point」、パスワードは「esp8266-test」です。 シリアルモニタでは接続が成功すれば、以下のように「[info] Access destination IP address: XXXX」のようにアクセス先のIPアドレスが出力されます。

※もし、コードのssidとpasswordを変えていたら、その値に変わっています。

 

ST-Modeの場合:

自動でアクセスポイントに接続します。 シリアルモニタでは接続が成功すれば、以下のように「[info] Access destination IP address: XXXX」のようにアクセス先のIPアドレスが出力されます。

※ESP8266が11b/g/nしかサポートしていないため、接続先のアクセスポイントは2.4GHz帯のものに接続する必要があります。

 

  • クライアント端末のブラウザからアクセス先のIPアドレスにアクセスします。

ブラウザの検索フォームのところに、アクセス先のIPアドレス"X.X.X.X"を入力すればLEDをコントロールする画面が表示されるはずです。

 

 

関連情報

 

以上!

コメント

タイトルとURLをコピーしました