86Duino – ESP8266 AP接続方法
Wi-Fi モジュール ESP8266 – AP モード
86Duino は、ワイヤレス Wi-Fi 接続に ESP8266 モジュールの AP モードを使用します。AP モードでは、ESP8266 モジュールが無線ベースステーションとして動作し、自律的に Wi-Fi 信号を送信してコンピューターへの Wi-Fi 接続を提供します。これにより、コンピューターに Wi-Fi 機能(内蔵または USB ワイヤレスネットワークカード経由)が搭載されていれば、86Scratch は Wi-Fi 経由で 86Duino に接続できるため、その場で利用できる無料 Wi-Fi の有無を気にする必要がありません。
以下の図はESP8266 EP-01の外観とピン機能を示しています。
ESP8266と86Duinoは、デュポン社のケーブルとピンヘッダーを介して接続できます。ここでは86Duino ZEROを例に説明します。まず、86Duino ZEROのUSB電源と外部電源入力インターフェースが接続されていないことを確認してください。
2.54mmデュポンワイヤ5本と2.54mmピンヘッダー5個を用意し、以下の10ピンを接続します。
- 86Duino ONEの3.3VをESP8266のVCCに接続します(下図の赤線)。
- 86Duino ONEのGNDをESP8266のGNDに接続します(下図の黒線)。
- 86Duino ONEのRX1をESP8266のTXD(下図の緑色の線)
- 86Duino ONEのTX1はESP8266のRXD(下図の黄色の線)に接続します
- 86Duino ONEの3.3VはESP8266のCH_PD(下図の赤色の線)に接続します
CH_PDはチップパワーダウン(Chip Power Down)の略で、ESP8266が正常に動作するには、ESP8266のCH_PDピンを高電位(3.3V)に接続する必要があります。グランド(GND)に接続すると、省電力モード(Power Down)に入り、Wi-Fiがオフになります。そのため、ここではCH_PDを3.3Vに直接接続します。
86Duino ZERO 配線図:
86Duino ZERO を 86Duino ONE または 86Duino EduCake に交換した場合でも、上記の手順に従って HC-06 を接続できます。ピンの位置が異なるだけです。
86Duino ONE 配線図:
86Duino EduCake 配線図:
配線後、USB電源を接続し、ESP8266モジュールに正常に電源が供給されていることを確認してください(下図のように赤色の電源ランプが点灯します)。
ESP8266 AP 接続設定
86Scratch を開いたら、「レッスンプランを読み込む」をクリックしてレッスンプラン選択画面に入ります。
レッスンプラン選択画面では、4つのレッスンプランから選択できます。マウスを別のレッスンプランに移動すると、そのレッスンプランの説明が表示されます。ここで「S2A.86拡張モード」のレッスンプランを選択し、「接続準備完了」をクリックして次のステップに進んでください。
接続設定ウィンドウが表示されたら、前回86Duinoを接続した際にESP8266 AP接続を使用しなかった場合、または今回初めて86Duinoを接続する場合は、「ファームウェアを自動的に書き込む」にチェックを入れ、86Duino ZEROのESP8266 AP接続ファームウェアを選択してください。コンピューターはまだESP8266無線ベースステーションに接続していないため、ここではファームウェアのみが書き込まれます。接続方法は「Scratchを開かない」を選択してください。
設定が完了したら、「開始!」をクリックしてください。ファームウェアの書き込みを開始します。
ファームウェアの書き込みが完了すると、レッスンプランを読み込む画面に戻ります。
この時点で、ESP8266 は、書き込み済みのファームウェアによって WiFi AP モードに設定されています。 Windows タスクバーの「インターネットアクセス」をクリックすると、「86Duino_ESP8266」というワイヤレス Wi-Fi が接続可能になります。
Windows 7:
Windows 8/10:
ファームウェアに記載されているデフォルトのネットワークセキュリティキー「1234567890」を入力し、「OK」(Windows 7)または「次へ」(Windows 8/10)をクリックします。 Windows 7: Windows 8/10:
この時点で、WindowsコンピューターはESP8266のAPへの接続を開始します。
Windowsで86Duino_ESP8266に接続できたら、「S2A.86 Enhanced Mode」レッスンプランを選択し、「Ready to Connect」をクリックして接続設定ウィンドウに入ります。
接続設定ウィンドウに入ったら、「ESP8266 AP」接続を選択してください(ファームウェアの書き込みは不要です)。
86Scratchは86DuinoへのWi-Fi接続で起動します。 ZERO:
このプロセス中、86Scratchは86Duinoへの接続を試みます。左側の86Scratchの猫と右側の86菌がマイクを通して会話しているのがわかります。以下のダイアログ画面が表示されたら、接続はほぼ成功です。
この時点で、86Scratchは自動的にコンピューター上でScratch 2.0を起動します(同時にS2A拡張版86Duinoビルディングブロックも読み込みます)。
「その他のブロック」をクリックすると、「S2A‧86拡張型」ブロックが表示されます。ブロックの横にランプがあり、正常時は赤色に点灯します。 86Scratch がブロックを 86Duino に正常に接続すると、ランプが赤から緑に変わります。
ランプが緑に変わったら、86Scratch ウィンドウに戻り、次の画面が表示されます。
これで接続は完了です。プログラムの作成を開始できます。
スマートポット水やりの宝箱
ZaiBoは、ワイヤレスWi-Fiを使用して植物の水やり状況を遠隔監視するオープンソースプロジェクトです。 GitHubにオープンソースのソースコードが公開されています。このプロジェクトでは、86Duino ZEROのブートディスクとしてMicro SDカードにLubuntu(Linux OS)をインストールしています。ZaiBoアプリは、Lubuntu上で鉢植え環境のリアルタイム監視と自動散水を行うために使用されています。
ZaiBoアプリはLubuntu上にウェブサイトを作成し、ユーザーがWi-Fi接続を介して鉢植え環境を遠隔監視できるようにします。
86Scratchだけで、シンプルなIoT自動散水システムを実現できますか? もちろん可能です!湿度を読み取ってモーターを制御し、水を汲み上げるかどうかを決定する機能を例に挙げると、Zaibao ハードウェアコンポーネントの簡易版のみが必要です。
Zaibao の 86Duino は 86Duino ZERO も使用しているため、前述の ESP8266 AP の接続手順に従って、86Scratch を Zaibao の 86Duino ZERO に接続します。
接続が成功したら、プログラミングを始めましょう。 86Duino IoT自動散水システム!!
1. 湿度の測定値を格納する変数「humidity」を作成します。
2. 金属探知機で検知した湿度は、アナログピン0を読み取ることで取得できます。そのため、アナログピン0を入力として有効にし、変数「humidity」をScratch 2.0ステージに表示します。
3. アナログピン0を繰り返し読み取り、湿度情報を取得します。アナログピン0の読み取り値に100を掛け、1024で割った値が湿度のパーセンテージです。
4. ポンプモーターを1秒間始動させてみます。
5. 湿度判定機構を追加します。
6. 湿度判定機構に、ポンプモーターを1秒間起動する動作を組み込みます。湿度が目標値(70)より低い場合、散水を実行します。
7. 本来であれば、86Duino IoT自動散水システムはここで完成するはずでしたが、散水動作実行後すぐに土壌の湿度が変化することはなく、結果として散水動作が2回、あるいは3~4回連続して実行されることになります(土壌の違いの影響を受けます)。この問題を解決するには、水やり後10秒間待つようにしてみてください。
8. 水やり後10秒間待つことで、連続給水の問題は解決しますが、Scratch Catは水やり後10秒間待機することになります。1秒の停止時間では、ダイナミックさが足りないと思いませんか? Scratch Cat が継続的に過剰な水やりをすることなく動的な動作を行えるように、システムを2つの動作サイクルに改造しました。1秒ごとに土壌水分を監視し、10秒ごとに水やりの判断を行います。
上記のブロックプログラムを完了すると、Scratch Cat は鉢植えの植物を管理できるようになります。
86Duino リファレンスのテキストは、クリエイティブ・コモンズ 表示-継承 3.0 ライセンス に基づいてライセンスされています。リファレンスに含まれるコードサンプルはパブリックドメインとして公開されています。