[Arduino版]ESP-WROOM-02の使い方Arduinoで「ESP-WROOM-02」(650円)を使用すると簡単にWifi接続が可能となります。今回はオープンソースの「TESP8266」(ESP-WROOM-02をATコマンドで操作するライブラリ)を使用して「Wifi接続」「URLによるデータの送受信」の方法をご紹介します。これを使えば「IoTデバイス」が短時間で作成可能です。※この記事は「TESP8266ライブラリ」の使い方ともなっています。※2017/5/1にSoftwareSerialにも対応しました。[ESP-WROOM-02版]をご覧ください。はじめにArduinoとESP-WROOM-02をお互いに通信するにはシリアル通信を行います。そのシリアル通信は「HardwareSerial」「SoftwareSerial」の2種類の方法があります。(※)今回は都合上、HardwareSerialを主体として解説しますが、慣れてきたらSoftwareSerialを使用すると楽です。ライブラリと付属のスケッチ例では両方とも対応しています。※厳密に言うとシリアル通信の中でATコマンドを叩いてます。このレベル変換モジュールはI2CやSPI接続などでも使用できるので「2個」ぐらいあると良いです。電解コンデンサと積層セラミックコンデンサが付属。UNOの5V電源を3.3Vに降圧するレギュレーターです。Arduinoには3.3Vの電源がありますが、最大電流が50mAです。ESP-WROOM-02の平均電流は80mAで最大電流は170mAぐらいですので安定化の為、500mAのレギュレーターを使用します。3.x」(USBポートが青色)を使用すると給電量が多いです。※レギュレーターがない場合は、Arduinoの3.3V電源で代用できます。※ESP-WROOM-02はDIP化されていない「素の状態」を10個以上購入すると単価が400円ぐらいになります。配線図[HardwareSerialを使用する場合]※大きい配線図はZIPで提供しています。※この配線図は5つのサンプルスケッチの共通配線です。「ESP-WROOM-02」は次のように設置します。[SoftwareSerialを使用する場合]HardwareSerialの配線図で、Arduinoの「0ピン,1ピン」の配線を「2ピン,3ピン」に変更するだけです。他のピンでも可能ですが「RXはTXとつなぐ、TXはRXとつなぐ」のようにクロス(交差)させて下さい。[電圧レベル変換]ESP-WROOM-02の動作電圧は3.0-3.6Vです。Arduinoの「5VのTX/RX」は「電圧レベル変換」(別名:ロジックレベル変換/電圧レベルシフタ)を使用して電圧を3.3Vに下げています。動作確認できた電圧レベル変換はI2C用のFXMA2102、PCA9306です。秋月電子で購入した「ESP-WROOM-02」には細ピンヘッダが付属していますので、ご自分で「はんだ付け」をする必要があります。IDEは公式からダウンロード可能です。1.8.2以降をお使いください。オープンソースコミュニティのGitHubにあるTESP8266からダウンロード可能です。操作がわからない方はこちらから直にダウンロードできます。Arduinoのメニューの[スケッチ][ライブラリをインクルード][ZIP形式のライブラリをインストール]を選択します。ダウンロードしたZIPファイルを選択すればOKです。ダウンロードしたZIP形式のファイルを展開(解凍)します。最初にPHPをサーバー側で実行できるようにします。次に「UserDir」フォルダにあるファイルをWebサーバに設置します。iot.incはDBのパスワードなどの設定ファイルですので、外部からアクセスできないユーザーディレクトリに設置します。その他の3つのファイルは外部からアクセス可能なディレクトリに設置します。UserDir/iot.incUserDir/public_html/iot/file.txtUserDir/public_html/iot/get.phpUserDir/public_html/iot/post.phpURLに変換すると次のようになります。www.example.com/iot/file.txtwww.example.com/iot/get.phpwww.example.com/iot/post.php※Webサーバーや環境によっては設置方法が異なりますので適宜、変更して下さい。今回はMySQLを使用します。データベースを作成後に「SQL」フォルダの「t_example.sql」をデータベース上で実行してテスト用のテーブル(t_example)を作成します。次にさきほどの「iot.inc」をメモ帳などで開いてデータベースにアクセスする為の設定を書き込みます。これで事前準備は完了です。IDEのメニューの[ファイル][スケッチ例][TESP8266]からサンプルのスケッチを開いた場合は[ファイル][名前を付けて保存]で別の場所に保存してから書き込みしてください。1.8.2ではUTF8に対応したばかりのバグで「文字化け」が発生します。IDEでスケッチを「マイコンボードに書き込む」前にはArduinoボードの「0ピン」(rx)からピンを外してください。ピンが刺さったままだと書き込みエラーになります。(Arduinoではスケッチを転送する際に「0ピン」を使用する為です)スケッチの書き込みが終わった後に「0ピン」にジャンパーワイヤーを刺して下さい。IDEのメニューの[ファイル][開く]から「examples¥connect_DHCP」フォルダの「connect_DHCP.ino」を開きます。ssidとpasswordを各自の環境に設定します。スケッチをマイコンボードへ書き込みます。次にツールバーの一番右にある「シリアルモニター」のアイコンを開きます。画面右下にあるシリアル通信速度を[115200]に変更します。Wifi接続に成功すると次のような画面になります。プロンプト」でpingコマンドを使用して疎通確認をすると良いです。(任意)ルーターの機種によっては、接続に時間がかかる場合がございます。スマートフォンのテザリングによるソフトウェアルータの場合は接続に3-5分ぐらいかかる事があります。IDEのメニューの[ファイル][開く]から「examples¥connect_IP」フォルダの「connect_IP.ino」を開きます。「ssidとpassword」と「36行目のIPアドレス情報」を各自の環境に設定後、スケッチをマイコンボードへ書き込みます。シリアルモニターで確認します。SSIDとパスワードが正しい場合は「IPアドレス、ゲートウェイ、ネットマスク」のいれずかが間違っていても「接続」されたと表示される場合がございますのでご注意ください。IDEのメニューの[ファイル][開く]から「examples¥file」フォルダの「file.ino」を開きます。「ssid、password、host、path」を各自の環境に設定後、スケッチをマイコンボードへ書き込みます。シリアルモニターで確認します。ダウンロードするファイルは64byte迄の「テキストファイル」「CSVファイル」などを想定しています。大きいファイルはデータの破損が発生して文字化けする場合があります。※SSL/TLSはサポートしていません。IDEのメニューの[ファイル][開く]から「examples¥get」フォルダの「get.ino」を開きます。「ssid、password、host、path」を各自の環境に設定後、スケッチをマイコンボードへ書き込みます。シリアルモニターで確認します。「GETの成功」と表示されている場合は、URLにアクセスした際にPHP側の処理が実行されて、データベースに内容が保存されます。IDEのメニューの[ファイル][開く]から「examples¥post」フォルダの「post.ino」を開きます。「ssid、password、host、path、body」を各自の環境に設定後、スケッチをマイコンボードへ書き込みます。シリアルモニターで確認します。「POSTの成功」と表示されている場合は、URLにアクセスした際にPHP側の処理が実行されて、データベースに内容が保存されます。Set」をサイト内検索。Piなどの電子工作の掲示板を作成しました。(Arduino・ラズパイ等)でユーザー同士で情報を共有して下さい。(3)このブログについてオープンソースGitHubで複数のオープンソースを公開。Webアプリこのブログのマスターが作成した無料ツールです。(オープンソース)ブラウザで8/16/24/32bitの相互変換。Webの逆アセンブラブラウザでEXE/DLLファイルを逆アセンブルする※その他にも「プチラボ」でアプリを多数公開しています。3Dゲームこのブログのマスターが作成した無料ゲームです。短時間で遊べるファンタジーのオンラインRPG風ほのぼの癒し系のスマホアプリ※その他は「@ゲーム」で公開しています。※インストール不要でそのまま遊べます。スマートフォンこのブログのマスターが作成した無料アプリです。お主の画像減色お手軽にカメラの写真や画像を「高品質に減色」するお主は誰だ。(女性向け)ロボットこのブログのマスターが作成したロボットです。