ワイヤレスIoTセンサ用クラウドサービスAmbientがスマホ対応に

手軽にESP8266で測定したデータをクラウドと連携し、グラフ化できるサービスのAmbientがスマホ対応になり、外出先から自宅のセンサの様子が見れるようになりました。
(これまでは、表示が乱れたり操作できない部分があったが、全ての操作が出来るようになった。)
サービスの運営者にスマホ対応について問い合わせしたところ、忙しい中、取り組んでいただき、全機能について対応していただきました。どうもありがとうございました⇒下島さん。
下図は、スマホからアクセスしたときの様子です。
詳しい情報は下記を参照ください。
当ブログ
Facebook 公開グループ ESP8266環境向上委員会
Iot用シンプルサービス「Ambient」 (サービス提供者:下島健彦さん)
ボクにもわかるIoTモジュールESP-WROOM-02
by ボクにもわかる電子工作
https://bokunimo.net/

MixJuiceのDeep Sleepモードを使ったIchigoJamワイヤレスセンサ

MixJuiceのDeep Sleepモードを使ったIchigoJamワイヤレスセンサ

MixJuiceのスリープモードがESP8266のDeep Sleepであることが判明し、早速、ワイヤレスセンサを作成してみました。
照度センサを搭載したIchigoJamが、照度値をHTTPサーバへ送信し、送信後にDeep Seepモードに遷移します。例えば、10分に1度だけ起動するようにすれば、乾電池で長期間駆動させることも可能です。
FacebookのIchigoJam FANグループでDeep Sleepであることが判明:

ハードウェア

IchigoJamのスリープを解除するには、MixJuiceのスリープ復帰信号(CN4-6 IO16)をリセット入力(CN4-2 RST)と、IchigoJamのBTN入力(13番ピン)へ、接続する必要があります。
IchigoJamへの入力については、小信号ダイオード1SS178を下図のように挿入して、BTN信号へ入力しました。
CN4-6 IO16 → (K)ダイオード1SS178(A) → IchigoJam BTN
また、照度センサをIchigoJamのIN2入力(4番ピン)に接続し、BASIC命令 ANA(2) で読み取ります。

プログラム

IchigoJam+MixJuiceなのでプログラムも簡単です。行番号140の数字を大きくすれば、乾電池駆動も実現できるはずです(今回の実験では安定化電源を使用)。
以下のプログラムを入力し、「SAVE 0」でファイル番号0に保存します。保存したら、IchigoJamの電源を切って、SW2ボタンを押しながら電源を入れるとプログラムが起動します。
なお、MixJuiceは事前に無線LANアクセスポイントに接続しておく必要があります(接続方法は、MixJuiceの説明書を参照ください)。
1 'MJ POST
2 UART 0,0
3 LED 1:WAIT 60:LED 0
4 UART 3,2
100 ?"MJ POST START 192.168.0.1/"  :'IPアドレスはHTTPサーバのアドレス
110 ? ANA(2)
120 ?"MJ POST END"
130 WAIT 300
140 ?"MJ SLEEP 5"  :'この数字5を大きくすれば低消費電力に
150 WAIT 60
160 SLEEP

HTTPサーバ

実験にはHTTPサーバが必要です。ここでは、Raspberry Piを使って下記のコマンドを入力して、簡易HTTPサーバを起動しました。
pi@raspberrypi:~ $ while true; do ( echo "HTTP/1.0 200 OK"; echo; ) | sudo netcat -l 80;done

実行結果

照度に応じた測定結果が得られました。赤文字が照度センサから得られた値です。
POST / HTTP/1.0
Host: 192.168.0.2
User-Agent: MixJuice-1.0
Content-Length: 5

179
POST / HTTP/1.0
Host: 192.168.0.2
User-Agent: MixJuice-1.0
Content-Length: 5

179
POST / HTTP/1.0
Host: 192.168.0.2
User-Agent: MixJuice-1.0
Content-Length: 5

180

うまく動きました。

by ボクにもわかるIchigoJam用マイコンボード

IchigoJam+MixJuice向けホームページを開設しました

IchigoJam+MixJuice向けホームページを開設しました
アクセス方法は
?"MJ GET bokunimowakaru.github.io/MJ/

MixJuiceとIchigoJam BASICの仕組みを使った機器向けの専用ホームページを作成し、公開(配信開始)いたしましたのでお知らせいたします。
現在(2016/5/15)、提供中のコンテンツは、BASICコマンドマニュアル(ふうせん Fu-sen. が運営するコンテンツを利用)、IchigoJam用のプログラム集のダウンロード、IchigoJamのピン配列表、この仕組みを使った小説のサンプル、当ホームページに自動アクセスするためのプログラムなどです。
IchigoJam FANグループの方に撮影していただいた映像
ichigo jam +Mix Juice ボクニモ ワカル MixJuice
Matsunaga Yoshiyuki

必要なもの

アクセス方法は
?"MJ GET bokunimowakaru.github.io/MJ/

まず、IchigoJamにMixJuiceを接続し、電源を入れ、[F1]キーで画面を消去してから以下のコマンドを入力してください。<SSID>と<PASS>の部分には無線LANアクセスポイントのSSIDとパスワードを入力します。
?"MJ APC <SSID> <PASS>"⏎
正しく接続されるとIPアドレスが表示されます。
以上の準備が出来たら、以下を入力してアクセスしてみてください。
?"MJ GET bokunimowakaru.github.io/MJ/"⏎
これ以降は、メニューに表示される番号で操作が可能です。
[数字]キーと[Enter]キーで、メニューを進み、各種の情報を閲覧してみましょう。

トップページ

下図は公開当時のトップページです。このメニューはYahoo!のホームページサービスを利用して公開していましたが、現在はGitHubを利用しています。
メニュー[10]は、自動実行用のサンプルプログラムです。ダウンロード後に、「注意」のメッセージが表示されます。ここで「0」を選択すると、FILE 0にプログラムを書き込みます。ファイルへの書き込み時は「注意」や「警告」を分かりやすく表示すべきだという見本です。

マニュアル

下図は、[7]マニュアルを選択した時の画面です。
メニュー[1]は、BASICリファレンス・コマンド・マニュアルを参照します。
メニュー[5]は、IchigoJamのピン配列表を表示します。

BASICコマンドリファレンスマニュアル

ふうせん Fu-sen. (http://15jamrecipe.jimdo.com/)が運営するリファレンスマニュアルを参照するプログラムをダウンロードして、自動で実行します。下図はコマンド「HELP」を調べた時の様子です。
ダウンロードされるプログラムは、以下のような内容です。
このプログラムをIchigoJamに保存しておけば、ダウンロードせずに調べることが出来ます。ファイルとして保存したい場合は、終了してから、手動でsave+ファイル番号を使って保存してください。
cls:new
1 cls:?"BASIC コマンド ヘルプ"
2 uart 3,2
100 'in
110 ?"コマンド ヲ ニュウリョク シテ クダサイ"
120 input A
130 ?"MJ GETS fu-sen.github.io/IJHELP/";
140 I=0
150 if vpeek(I+1,2) ? chr$(vpeek(I+1,2));:I=I+1:goto 150
160 ?:wait 60:uart 0,2
170 K=inkey():if K ? chr$(K);:wait 2:goto 170
200 'end
210 input "[0]ケンサク [9]メニュー ニ モドル ?",A
220 if A=0 run
230 uart 3,2
240 ?"MJ GETS raw.githubusercontent.com/bokunimowakaru/MJ/master/700.txt"
250 end
run
なお、リファレンスマニュアルは、CC BY 4.0 https://github.com/fu-sen/IJHELPで、ふうせん Fu-sen.により提供されているものです。また、上記のプログラムのライセンスはCC BYとします。
どちらも、著作権を有していますので、ご利用の際はライセンスに従ってください。

IchigoJamのピン配列

下図は、IchigoJamのピン配列表です。画面に収まるように、一部、省略して表示しています。IchigoJamはjig.jpの登録商標、ピン配列はjig.jpの著作物です。

BASICサンプル・プログラム集

CQ出版社の雑誌「1行リターンですぐ動くBASIC I/Oコンピュータ IchigoJam入門」のCD-ROMに含まれるプログラム集です。
2桁の数字は、「章番号」+「プログラム番号」です。3桁のものは、上2桁が「章番号」+下1桁が「プログラム番号」になっています。
このプログラムのライセンスもCC BYです。ただし、雑誌の中に書かれている記事についてはCC BYの対象外につき、ご注意ください。

課題

課題は、2つあります。
文字数の少ない中で、どのように権利情報を明記してゆくかと、セキュリティ対策です。
権利情報については、別途、漢字の使えるブログやホームページなどに記載するような方法になるでしょう。
セキュリティ対策に
いては、可能な範囲で実施し、当面は、人の目で留意しながら進めるしかないでしょう。

むすび

MixJuiceとIchigoJamを使って簡単に受信可能なコンテンツ配信の仕組みについて、提案を行い、実証しました。
メニューの中に、相互リンクを組み、広げてゆくことも可能だと思います。
また、出荷されているMixJuiceのバージョンに関して、私の認識に相違があり、多くの皆様にご迷惑とお手数をおかけしました。当面は、Ver 1.0.0と、最新版のファームウェアで動作確認するようにいたします。
また、実験的な要素が強いので、引き続きメンテナンス時などで不具合が生じる場合がありますが、ご容赦ください。

次回以降のアクセス方法について

この仕組みの欠点は、最初のアクセス時にURLの手入力が必要なことです。
そこで、自動起動の利用をおススメします。前述のとおり、トップページからメニュー[10]を選択すると自動起動用のプログラムがダウンロードされます。上書きの注意が表示されたら、[0]と[Enter]を押し、ファイル番号0に保存します(0以外の数字を入力すると保存しない)。
以降、IchigoJamを起動するときに、ボタン(SW2)を押しながら電源(SW1)を入れると、ファイル0に保存したプログラムが自動起動し、ホームページが表示されます。あるいは、BTN端子に0.1μFの積層コンデンサを対GNDに挿入しておきます。IchigoJam Ver 1.2ではSOUND端子をプルダウンにする方法もあります。

相互リンクについて

賛同いただける方、似たような仕組みを構築された方は、ぜひ、当方へのリンクを貼って広めていただけるよう、お願いいたします(リンクについては許可不要)。
また、こちらからのリンクについても、貼らせていただきます。ただし、恐れ入りますが、当方からのリンクについては、場合によっては断らせていただくこともあります。
配信方法:
by ボクにもわかるIchigoJam用マイコンボード

小ネタ:MixJuice向けコンテンツの「かんたん配信方法」の一例

小ネタ:MixJuice向けコンテンツの「かんたん配信方法」の一例

今日はMixJuiceを使って簡単にコンテンツ配信を受けれる方法について、紹介します。
MixJuiceはPCN社が開発したIchigoJam用のネットワークボードです。ボード上にはESPモジュールが搭載され、同社独自のファームウェアが書き込まれています。HTTPクライアント機能を搭載しているので、インターネットやLAN上の情報を簡単に取得することが出来ます。
IchigoJamにMixJuiceを接続し、電源を入れ、[F1]キーで画面を消去してから以下のコマンドを入力してください。<SSID>と<PASS>の部分には無線LANアクセスポイントのSSIDとパスワードを入力します。
?"MJ APC <SSID> <PASS>"⏎
正しく接続されるとIPアドレスが表示されます。
以上の準備が出来たら、以下にアクセスしてみてください。
?"MJ GET bokunimowakaru.github.io/MJ/"⏎
これ以降は、一切、アルファベットを入力せずに、サイト内の情報を閲覧することが出来ます。
なぁ~んだ。仕組みは、これだけ。
でも、まるでウェブ・ブラウザみたい。
写真の文末を、ご覧ください。コンテンツ・ページの末尾に以下のようなダイレクト・コマンドを入れてあります。
この命令により、入力した番号に応じたファイルにアクセスすることができます。
inputA:?"MJ GET bokunimowakaru.github.io/MJ/q/15/";A;".txt"
仕組みが簡単で、使い勝手も向上しそう。
ページごとに、上記のようなメニュー選択や、元のページへのリンクへのアクセスを入れれば、まるでテキストブラウザです。
アスキーアートを使った絵本や、テキストだけの選択式のアドベンチャーゲームなんてのも作れそうです。
自動ページ送りは:
wait 300:?"MJ GET bokunimo.net/bokunimowakaru/q/15/31.txt"
I2C液晶へ表示したい場合は:
cls:?"LCドライバ":?"W.Kunino"
poke#700,64,0,2,#C0,57,17,#70,86,#6C,56,12
ifi2cw(62,#701,1,#704,5)?"E"
ifi2cw(62,#701,1,#709,2)?"E"
ifi2cw(62,#701,1,#702,1)+i2cw(62,#700,1,#900,8)?"E"
ifi2cw(62,#701,1,#703,1)+i2cw(62,#700,1,#920,8)?"E"
?"MJ GET www.geocities.jp/bokunimowakaru/q/15/0.txt"
入力条件に応じたい場合は:
inputA:ifA=0save0else?"MJ GET bokunimo.net/bokunimowakaru/q/15/0.txt"

セキュリティにご注意

この仕組みは、コンテンツの配信者がIchigoJamを自由に制御できる点で、セキュリティの観点では非常に危険な方法です。
また、分岐が増えるほど、多くの人の監視が行き届かなくなり、悪用される懸念も高まります。
将来的には、ダイレクト実行可能なコマンドをMixJuice側で制限するなどのセキュリティ対策が必要になりそうです。
追記:
この仕組みを使ったMixJuice + IchigoJam向けのホームページをスタートさせました。コンテンツを差し替えたのでアクセス方法は同じです。

記事はこちら:
by ボクにもわかるIchigoJam用マイコンボード(MixJuice版)

?"MJ GET bokunimo.net/bokunimowakaru/q/15/0.txt"

by ボクにもわかるIchigoJam用マイコンボード(パソコン、スマホ版)

https://bokunimo.net/ichigojam/

新IchigoJam用 EEPROMカセットの作り方


(追記)
このブログページは IchigoJam T発売前のものです。 IchigoJam T発売後に、改めて整理し直しておりますので、IchigoJam Tをお持ちの方は、下記をご覧ください。(主旨や製作内容は同じです)。
IchigoJam T用 挿すだけで超簡単&便利なEEPROMカセットの作り方

新IchigoJam用 EEPROMカセットの作り方

新IchigoJam(http://fukuno.jig.jp/1387)では、CN5がEEPROMカセット対応になるようなので、現行のIchigoJam Uを改造して試してみました。
もちろん、写真のように、ちゃんと動作しました。
これは便利です。
以前のCN4とCN3に差し込む方法だと、ピンの途中に接続するので、差し間違いが多く発生していました。
この方法だと、手軽なだけでなく、差し間違いも減ると思います。
ご注意:写真のIchigoJam Uは新IchigoJamの回路を想定した改造品です。
EEPROMカセットにも改造が必要です。下図の(1)の部分のパターンをカットし、(2)の部分にジャンパ配線を行います。
表面のピンヘッダにはショートピンを差し込みます。下図の左の方にある赤色の部品がショートピンです。
(1)のパターンをカットした理由は、現行のIchigoJam Uや初代IchigoJamへの接続のためです。このショートピンを外し、ピンヘッダの右側のピンを利用すれば、過去のIchigoJamで使用することもできます。
別の記事「IchigoJam用 I2CインタフェースEEPROM カセット情報(http://blogs.yahoo.co.jp/bokunimowakaru/55365665.html)」には、各種EEPROMカセットのピン配列を紹介しました。そちらをご覧いただくと、EEPROMカセットやI2Cインタフェースのピン配列が統一されていないことがわかるでしょう。
少なくともIchigoJamでは、ピン配列が固まりました。
今後、このピンに接続可能なI2Cセンサなど、小さな基板が登場することを期待しています。

micro EEPROMカセット

余談です。EEPROMのIC端子は、各社、似ています。そこで私が提案するEEPROMカセットとは。。。
すでに、上の写真のEEPROMカセットにも micro EEPROMカセットを搭載済みです。
    IchigoJam 用 micro EEPROMカセット
    ~ICソケットにICソケットを~
    http://blogs.yahoo.co.jp/bokunimowakaru/55144395.html

I2CIF基板

こんな基板が使えるIchigoJamマイコンボードの互換機を販売しています。
CN55はSeeed Studio製Groveシリーズ用の2mmピッチコネクタです。
どうぞ、よろしくお願いいたします。
IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)
販売(CQ出版社)
by ボクにもわかるIchigoJam用マイコンボード

IchigoJam用 I2CインタフェースEEPROM カセット情報(GitHub更新)

IchigoJam用 I2CインタフェースEEPROM カセット情報(GitHub更新)

IchigoJamなどで使用するI2CインタフェースのEEPROMカセットに関する情報を更新しました。
新IchigoJamではCN5がEEPROMカセット対応になるようです(http://fukuno.jig.jp/1387)。
市販のIchigoJam用のEEPROMカセットを少し改造するだけで使用することが出来ます。
ただ、少し残念なのはArduino用やGroove用とは配列が異なるので、直接、差せるデバイスがIchigoJamオリジナルのものになってしまうことです。
この端子に対応したセンサデバイスの登場を期待しています。
Git Hub:
写真は以下の情報の「CQ出版プリント基板[I2CIF]」に相当する基板です(jig.jp社のものではありません)。
EEPROMカセット情報(正確にはEEPROMモジュール)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    新IchigoJam CN5 I2C拡張ピンアウト仕様(2016/5/12現在)
        --------------------------------------------------------
        1   GND
        2   3.3V (VCC)
        3   SCL
        4   SDA
        5   5V
        --------------------------------------------------------
    2mmピッチ Grove I2Cインタフェース準拠仕様
        --------------------------------------------------------
        1   GND
        2   VCC
        3   SDA
        4   SCL
        --------------------------------------------------------
        ・CQ出版プリント基板[I2CIF]で採用(CN55)
        ・CQ出版プリント基板[PersonalComputer]で対応可能
          (CN10利用、IchigoJam BASIC Ver 1.1、OUT9,0、OUT11,1)
        ・CQ出版プリント基板[MicroComputer]で対応可能
          (CN10利用、IchigoJam BASIC Ver 1.1、OUT9,0、OUT11,1)
    EEPROM IC 互換ピンアウト準拠仕様
        --------------------------------------------------------
        1   VCC
        2   GND
        3   SCL
        4   SDA
        --------------------------------------------------------
        ・CQ出版プリント基板[PersonalComputer]で利用可(CN6)
        ・aitendo EEPROMモジュールキット [K-24C02]
    I2Cピンアウト・主にArduino仕様
        --------------------------------------------------------
        1   VCC
        2   GND
        3   SDA
        4   SCL
        --------------------------------------------------------
        ・CQ出版プリント基板[I2CIF]で採用(CN54)
        ・CQ出版プリント基板[PersonalComputer]で利用可能
          (CN10を利用、R10=0Ω、IN2とIN4使用不可、動作補償不可)
        ・CQ出版プリント基板[MicroComputer]で利用可能
          (CN10を利用、R10=0Ω、IN2とIN4使用不可、動作補償不可)
        ・aitendo EEPROMモジュール(I2C) [I2C-24LC256-M]
    IchigoJam拡張IO互換仕様 (CN3/CN4に接続可能)
        --------------------------------------------------------
        1   GND
        2   VCC
        3   SCL (この端子はジャンパー線でIchigoJamに接続)
        4   SDA
        ---------------------------------------------&#
45;----------
        ・EEPROMキット [K-Jam.rom]
        ・CQ出版プリント基板[PersonalComputer]で利用可能
   (CN3、CN4を利用。シールドによっては併用できない)
    USBプラグ形状仕様(USBではありません)
        --------------------------------------------------------
        4   GND
        3   SCL (D+) ※元祖の山本商会製はSDA
        2   SDA (D-) ※元祖の山本商会製はSCL
        1   VBUS(+5V)
        --------------------------------------------------------
        ・USBプラグ型ROMキット [K-UROM]
    クガデン仕様(独自)
        --------------------------------------------------------
        1   GND
        2   VCC
        3   WP
        4   SCL
        5   SDA
        --------------------------------------------------------
    海外製品の一例
        --------------------------------------------------------
        1   VCC
        2   SCL
        3   SDA
        4   GND
        --------------------------------------------------------
        http://www.amazon.co.jp/dp/B0119GKT6S
    その他の仕様
        --------------------------------------------------------
        1   VCC
        2   SDA
        3   SCL
        4   GND
        --------------------------------------------------------
        ・aitendo EEPROMキット [K-RM4S]
                                                  調査by国野亘
ところでEEPROMのIC端子はといえば共通です。そこで私が提案するEEPROMカセットとは。。。
下記のブログで確認してください。
    IchigoJam 用 micro EEPROMカセット
    ~ICソケットにICソケットを~
    http://blogs.yahoo.co.jp/bokunimowakaru/55144395.html
by ボクにもわかるIchigoJam用マイコンボード

IchigoJam+MixJuiceからワイヤレスLチカとボタンの状態情報取得

IchigoJam+MixJuiceからワイヤレスLチカとボタンの状態情報取得

MixJuiceからワイヤレスで、IchigoJam上のLEDを制御したり、ボタン状態を取得するプログラムを作成しました。プログラムは、IchigoJam BASICで記述しました。前回との違いは、(なんちゃって)HTTPサーバをIchigoJam BASICで実装したことです。
親機側(左):IchigoJam + MixJuice
子機側(右):IchigoJAM用マイコンボードの互換機 + ESP-WROOM-02モジュール(ATコマンド)
最新のIchigoJam BASIC Ver. 1.2.0 を使用することで、TELNETサーバとして動作するBASICプログラムが簡単に作成できることは、分かっていました(http://blogs.yahoo.co.jp/bokunimowakaru/55342198.html)。したがって、HTTPの実装も簡単だと思っていたのですが、実際には、IchigoJamの動作速度やメモリーの問題などで、若干の工夫が必要でした。初期バージョン(https://bokunimo.net/bokunimowakaru/diy/ichigojam/esp.html#hard1.0 )のようなフロー制御は不要です。

使い方:

(1) LEDを点灯する
 ?"MJ GET 192.168.0.3/L=1"
 'LED=1 (応答)
(2) LEDを消灯する
 ?"MJ GET 192.168.0.3/L=0"
 'LED=0 (応答)
(3) BTN状態を取得する
 ?"MJ GET 192.168.0.3/"
 'BTN=0 (応答)

ハードウェアの製作方法:

下記の Ver 1.2用の作成方法を参照してください。
今のところ、CQ出版社のオリジナルの基板でしか動作確認を行っておりませんが、今後、発売される純正の新IchigoJamにも、ちょっとした工夫で接続が可能になると思います(そのうち検証して回路を公開する予定です)。
なお、純正IchigoJam Uを使用する場合は、ブレッドボード側のESPモジュールに別電源を供給してください。

BASICプログラム

簡易的な(なんちゃって)HTTPプロトコルをBASICプログラムで実装しました。IEと、MixJuice 1.0.1で動作確認済です。プログラムの著作権は放棄しません。CC BY での公開とします(改造して再配布可能です)。
cls:new
rem     Espressif ESP8266 ESP-WROOM-02 ヨウ
rem     Wireless LED for IchigoJam Version 1.2
rem     Copyright (c) 2015-2016 Wataru KUNINO
rem     https://bokunimo.net/ichigojam/
1 'ESP Example
2 uart 3,2:?"AT":wait 30
10 ?"AT+RESTORE":gosub 800
20 ?"AT+CWMODE=1":gosub 800
30 ?"AT+CWJAP=";chr$(34);
40 ?"ココ ニ SSID ヲ キニュウ";
50 ?chr$(34);",";chr$(34);
60 ?"ココ ニ パスワード ヲ キニュウ";
70 ?chr$(34):wait 400:gosub 800
80 ?"AT+CIFSR":gosub 800
100 'Serv
110 ?"AT+CIPMUX=1":gosub 800
120 ?"AT+CIPSERVER=1,80":gosub 800
200 'LED
210 gosub 850:if K<>asc(":") goto 200
220 I=0:G="GET /L=":L=-1
230 gosub 850:if K<>PEEK(G+I) goto 200
240 I=I+1:if I<5 goto 230
250 gosub 850:if K<>PEEK(G+I) goto 300
260 I=I+1:if I<7 goto 250
270 gosub 850
280 if K=asc("0") let L,0 else let L,1
290 led L:beep
300 gosub 800
310 ?"AT+CIPSEND=0,46":gosub 800
320 ?"HTTP/1.1 200 OK"
330 ?"Content-Length: 6":?
340 if L>=0 ?"'LED=";L else ?"'BTN=";btn()
350 gosub 800:goto 200
800 'Rx
810 wait 30:uart 0,2
820 K=inkey():if K=0 goto 840
830 ?chr$(K);:goto 820
840 uart 3,2:return
850 'Rx0
860 K=inkey():if K=0 goto 860
870 uart 0,2:?chr$(K);
880 uart 3,2:return

その他①IchigoJam BASIC 1.2.0

最新のIchigoJam BASIC 1.2.0が、この実験にもたらした効用は以下のとおりです。
  • 受信バッファの拡大:
    128バイトにまで拡大されました。これにより、多少、大きなHTMLデータも取りこぼさずに受信することができるようになりました。とくにフロー制御が不要になったことは、大きな寄与です。
  • 速度アップ:
    一定の速度が無ければ、IchigoJam、ESPモジュールのどちらもが、受信したデータを保持できません。
  • 文字列変数:
    HTTPリクエストデータを文字列変数で保持するようにしました。見やすさや読みやすさを考慮してもプログラムを短く書けるようになりました。
    不便なのは、asc(str$(G,1))が使えないことです。「$」のつく関数はPRINT文でしか使えない仕様のためです。まだまだ文字列は特殊な扱いなのでしょう。ここでは、代わりにPEEK(K)を使用しています。

その他②広告です

こういった実験を行っていると、オリジナルのマイコンボードに実装した「UARTの切り替えスイッチ」がとても重宝します。ESPモジュールと、USBシリアル変換IC(マイコンボードの裏面に実装)を、簡単に切り替えれるので、シリアル経由でプログラミングを行い、「RUN」後にスイッチを切り替えることが出来ます。SyntaxErrorの無限ループが出ても、すぐに断ち切れます。
この機会に、お買い求めいただければ嬉しいです。
IchigoJam用コンピュータ電子工作学習キット(IF ICH-KIT)
by ボクにもわかるIchigoJam用マイコンボード