株式会社ICS72228218初心者でも電子工作を簡単に始められるマイコンボードArduinoアルドゥイーノですが、ある程度センサーやアクチュエーターが触れるようになってくると、インターネットに繋いで外出先からコントロールしたいと考える方も多いでしょう。以前の解説記事「JavaScriptでArduinoをコントロール」ではパソコンとArduinoをUSBで接続してインターネットに接続していましたが、有線接続だったため設置できる場所が限られてしまう制限がありました。本記事では2015年に発売された数百円で購入できる爆安のWi-FiモジュールESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーを使って、お手頃にArduinoを無線化する方法を紹介します。スマートフォンからLチカしようまずは次の動画をご覧ください。インターネットからArduinoに設置したLEDを光らすオリジナルのデモです。Wi-Fiモジュールを使って開発しました。本記事を試していただくと上の動画のようにスマートフォン(ウェブブラウザ)からインターネット経由でArduinoに接続し、LEDをコントロールできるようになります。Systems社の開発したWi-Fiモジュールです。従来はESP8266というモジュールが国外で販売されてましたが、技適ぎてきが未取得だったため電波法によって日本国内で使用できませんでした。その後、技適ぎてきを取得したことによって、スイッチサイエンスでも2015年7月6日からESP-WROOM-02という製品名で販売が開始されました。電子工作界で今話題のモジュールの1つです。人気の理由は「ダントツの安さ!」ESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーが話題になっている理由は数百円で購入できるという価格です。Arduinoで無線LANを利用する方法は3種類ありますが、ESP-WROOM-02を利用する構成がもっともコストを抑えられます。「ArduinoとWi-Fiモジュールの一体型」と比べて、半額以下の4,104円と驚きの価格です。864円インターネット経由でLチカさせる仕組みを解説ここからはESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーを用いた電子工作を解説します。次の構成でIoTな電子工作を目指しましょう。スマートフォンのウェブブラウザでボタンをON/OFFすると、サーバーに設置されているPHPへ値を渡します。Arduinoからは定期的にPHPを監視し、接続されているLEDをチカチカと点滅させます。回路を組もう電子工作でよく用いるブレッドボードやジャンパー線はすでに手元にあることを前提に、下記のパーツで回路を組みます。ESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーはブレッドボードで扱いやすいように変換されたものを使用します。R3のリセットボタンを押しながらESP-WROOM-02の電源をリセット(5V、GND線を抜き差し)すると解消されることがあります。330ΩESP-WROOM-02イーエスピー・ダブルルーム・ゼロツーの初期設定ArduinoアルドゥイーノとESP-WROOM-02イーエスピー・ダブルルーム・ゼロツー間の通信はシリアル通信で行います。ESP-WROOM-02の転送レートは工場出荷時に115200bpsで設定されているので、Arduinoに合わせて9600bpsに設定します。IDEのメニューで[ファイル]→[スケッチの例]→[SoftwareSerial]→[SoftwareSerialExample]をクリックしSoftwareSerial用のサンプルスケッチを開き、次のようにコードを編集してArduinoへ書き込みます。IDEのメニューから[ツール]→[シリアルモニター]をクリックするとシリアルモニターウィンドウが開きます。右下の改行コードを「CRおよびLF」へ、転送レートを「112500」へ変更します。多少文字化けが起こりますが設定には問題ありません。World?」と表示されるので、上部のテキスト入力部分に「AT」と入力し[送信]ボタンをクリックします。この「AT」はATコマンドと呼ばれるもので、ESP-WROOM-02の情報の取得や設定を行うことができます。e電子工房」にコマンドの一覧が有りますのでご覧ください。「OK」とESP-WROOM-02側から返答があれば下記のコマンドを入力し転送レートを9600bpsへ設定します。IDEにライブラリをインストールESP-WROOM-02用のライブラリ「ITEADLIB_Arduino_WeeESP8266」をダウンロードします。Library]をクリックし、ダウンロードしたライブラリをインストールします。ライブラリを編集ライブラリの初期状態ではSoftwareSerialが無効になっているので、ライブラリを編集し有効にします。Documents/Arduino/libraries/ITEADLIB_Arduino_WeeESP8266-master/フォルダー内にESP8266.hファイルがあるので、27行目のコメントアウトを外し下記のように変更します。ESP8266_USE_SOFTWARE_SERIALスマートフォンからLチカさせるプログラムGitHubにサンプルコードをアップロードしていますので、詳しい内容についてはソースコード内のコメントを参照ください。GitHubhtmlフォルダー内にはサーバーへアップロードするファイルが格納されています。そのままサーバーへアップロードしていただいても動作します。「arduino」フォルダー内にはArduinoスケッチが格納されており、Wi-FiのSSIDやパスワード、サーバー情報などを適宜変更してArduinoへ書き込んでください。ウェブブラウザのボタンをタップすることにより、ON/OFF情報がPHPへ送信されPHPと同階層のledLog.txtに値が保持されます。その値をArduinoから一定間隔(サンプルでは200ミリ秒)ごとに取得し、ONならLEDを点灯させるという仕組みです。R3のようにUSBポートやACコネクタなどが付いていないため、1から回路を組む必要はありますがArduinoよりもコンパクトにできるので、ぜひお試しください。最後にACアタプターのケーブルは、別途バッテリーを接続すると完全に持ち運べる状態にすることも可能です。LEDの代わりにGPSモジュールを接続すると、某スパイ映画のようななんちゃって発信機も作ることができます。平成30年1月9日に内容をメンテナンスしています。MEDIAは株式会社ICSが運営するオウンドメディアです。ICSはインタラクションデザイン専門のプロダクション。最先端のwebテクノロジーを駆使し、オンスクリーンメディアの表現分野で活動しています。問い合わせ採用情報インタラクションコンテンツの制作や新しいことに挑戦しながら、互いにスキルを高め合えるメンバーをICSでは募集しています。詳しくは採用情報をご覧ください。MEDIAは古い記事でもメンテナンスし続けることで、常に役立つ情報発信を目指しています。