遠隔からIchigoJam BASICのプログラムを転送することで、プログラムの書き換えが容易なIoT端末を製作することが出来ます。ここでは、その基本となるBASICコマンド発行とプログラム転送の実験を行います。
また、本機には温度や湿度、照度、ドア開閉状態を検出するIoTセンサから得られた情報を、次々に表示する機能も実装しています。(IoTセンサの製作方法についての情報も、近いうちに提供予定。)
本機をテレビに接続して、起動すると、IPアドレスが表示されます。表示されたアドレスへ、インターネットブラウザ(IEにて動作確認)でアクセスし、プログラムを転送、実行したときの一例を下図に示します。
ブレッドボード上にIchigoJamのファームウェアを書き込んだマイコンと、Wi-FiモジュールESP-WROOM-02を実装。ワイヤレスによる遠隔制御で、ビデオ出力からテレビへ情報表示したり、表示用のプログラムの転送を行うことが可能。
また、「コンニチワ!」といったメッセージも表示します。カタカナ文字の転送は、文字コードなどの都合で、意外と面倒です。現時点では、カタカナについては、コマンド送信時とUDPパケット受信時のみに対応しています。現状、プログラム転送時は英数字のみの対応です。
本プログラムでは、BASICのダイレクトモード(コマンドを即実行)については、「HTTP GET」を使用します。実行結果は、最上列(「起動しました」と表示されている部分)に表示されます。
LED 1、LED 0、BEEP、?ANA()、?VER()のボタンを押すか、そのすぐ下にある入力フィールドにコマンドを入力し、「送信」を押してみてください。IchigoJamへ命令が送られ、その結果がブラウザに転送されてきます。
プログラム転送には「HTTP POST」を使用します。プログラムを入力し、「送信」を押すとIchigoJam側に転送されます。1024バイトのプログラム転送についても動作確認済みですが、どんなプログラムでも転送できるとは限りません。余裕をもって転送できるとは言い難いです。
現時点では、転送後、プログラムを再編集して送信する機能がありません。編集機能を実装予定でしたが、(今回の実装方法では)文字コードをリアルタイムで解析して応答する必要があり、処理速度が間に合わず、保留中です。私の頭が古いので、1990年代の伝統的な通信方法しか用いていないのも苦戦している理由の一つです。
ハードウェアは、ブレッドボードを使って製作しました。左下の黄色の端子がビデオ出力です。キーボードが不要になるので、これだけの回路で、IchigoJamの全機能を使用することができます。
ブレッドボードでの製作例。この製作に大きく寄与しているIchigoJamのファームウェアは、個人利用の範囲であれば、無料でダウンロードすることが可能。ESPモジュール側のスケッチは下記からダウンロード可能(開発途中版)
この夏はIoTの話題で、ますます熱くなりそうです。IoTセンサで測った情報を、小型モニターで常時監視できるシステムも活躍しそうです。
引き続き、関連した情報をFacebook、Twitterなどで配信予定ですので、興味のある方は、ぜひ再訪問していただけるよう、お願いいたします。
by ボクにもわかるIchigoJam用マイコンボード
Facebook