カテゴリー
IchigoJam

IoT入門 IchigoJam BASICで HTTP Web APIを試そう

[4] HTTP Web APIでジャンケンBASIC版

それでは、IchigoJam webの画面で、ジャンケンを実行してみましょう。1ページ目でMixJuiceを有効に設定したIchigoJam webの画面で、以下のコマンドを入力すると、ジャンケンを行います。

?"MJ GETS BOKUNIMO.COM/15/JANKEN?THROW=X"

下図は、結果の一例です。GAME WAS DRAW、引き分けでした。

IchigoJam web(MixJuice有効)の画面に ?”MJ GETS BOKUNIMO.COM/15/JANKEN?THROW=X⏎を入力すると「GAME WAS A DRAW」が表示された
コラム bokunimo.com/jankenとBOKUNIMO.COM/15/JANKEN

実験3でアクセスしたURLと実験4でアクセスしたURLに違いがあることに気づいたでしょうか?

bokunimo.com/janken
BOKUNIMO.COM/15/JANKEN

アルファベットの大文字と小文字の違いは、文字入力が大文字のIchigoJamに合わせたものです。
また、途中に「15」と入っているのは、応答文の書式を変更するための識別用です。サーバ側のプログラムはどちらも同じです。
IchigoJam用の「15」と付与した場合は、(JSON形式ではなく)テキスト形式で応答するほか、COROSと呼ばれるジャンケン・サーバ以外へのアクセスを許可する情報を付与しています。

[5] HTTP Web APIを使ったBASICプログラム

こんどは、BASICプログラムでジャンケンを実行してみましょう。
プログラムをダウンロードするには、下記のコマンドを入力して「ボクニモワカル for MixJuice」にアクセスし、下図のホーム画面を表示してください。

?"MJ GETS git.bokunimo.com/MJ/"
ボクニモワカル for MixJuiceのトップ画面。メニューを数字キーで選び、⏎キーで実行すると、コンテンツが表示される。かつてのパソコン通信のような操作感が懐かしい

ボクニモワカル for MixJuiceでは、メニューを数字キーで選び、⏎キーで実行します。以下の順序で、実行してください。

・ [3]サンプル アプリを選択
・ [2]ジャンケンnet2を選択
 (プログラムがダウンロードされ、実行されます)
・「name=」と聞かれるので、アルファベットでニックネームを入力する
 (入力した名前は、後の処理でクラウドへ送信されます)
・「0/2/5=」と聞かれるので、グーは0、チョキは2、パーは3を入力
 (数字はジャンケンの手の指の数です)
・下図のような結果が表示される

「0/2/5=」と聞かれたら、グーは0、チョキは2、パーは3(ジャンケンの手の指の数)を入力する

プログラムを表示したいときは、画面下の[ESC]を押し、LIST⏎を実行してください。
行番号160がHTTPを使ってジャンケン・サーバにアクセスする処理部です。

1 cls:?"ジャンケンnet2"
2 input"name =",N
3 N="__"
4 copy N,#927,8

100 @MAIN
110 ?"G/C/P"
120 input"0/2/5 =",A
130 if A=9 ?"MJ GETS git.bokunimo.com/MJ/0.txt":end
140 ?"Throw=";:P=A:gsb @GCP
150 wait 60
160 ?"MJ GETS BOKUNIMO.COM/15/JANKEN/?FORMAT=BAS&USER=";str$(N);"&THROW=";A
170 G=200
180 end

200 @CONT
210 ?"Catch=";:P=B:gsb @GCP
220 if J<0 ?"マケ" 230 if J=0 ?"ヒキワケ" 240 if J>0 ?"カチ"
250 goto @MAIN

300 @GCP
310 if P=0 ?"G,グー"
320 if P=2 ?"C,チョキ"
330 if P=5 ?"P,パー"
340 ?"-----------"
350 rtn

参考情報

同じジャンケン・サーバなどを使ったM5Stack用ジャンケン・プログラム集では、マイコンとジャンケン、UDPを使ったLAN内でのジャンケンなども紹介しています。

M5Stack用ジャンケン・プログラム集:
https://github.com/bokunimowakaru/m5Janken

Facebook IchigoJam-FANグループへの投稿記事:
https://www.facebook.com/groups/ichigojam/permalink/1944057729067304/

また、本ブログ内や、ボクにもわかるIchigoJam用マイコンボードでは、IchigoJamのハードウェアを使ったIoT化の記事をいくつも紹介しています。

ボクにもわかるIchigoJam用マイコンボード:
https://bokunimo.net/ichigojam/

本ブログ内IchigoJam関連記事(100件以上)
https://bokunimo.net/blog/category/ichigojam/

おわりに

BASIC言語は、数字や文字を中心としたコンピュータ処理の時代に、ほぼ全てのパソコンに標準搭載されていました。しかし、画像やオーディオ、映像といったより高い処理能力が必要になるとともにBASICが衰退しはじめ、インターネットの商用化や普及が始まったころには、(学習用を除き)BASICが標準搭載されたコンピュータは減ってしまいました。

このように、歴史上、関りの薄かったHTTPとBASICが、
・IchigoJamマイコンボードとMixJuice拡張ボードで融合
・これら両方をWeb上で利用できるIchigoJam webで融合
したことに感慨深く思いながら、この記事を書きました。

by bokunimo.net


PDF書籍「ボクにもわかるIchigoJam BASIC で作る IoT システム~ LTE/Wi-Fi/LoRaWAN 対応 ~」も、ぜひダウンロードください(無料です)。

ダウンロード:
ボクにもわかる IchigoJam BASIC で作る IoT システム ~ LTE/Wi-Fi/LoRaWAN 対応 ~ (bokunimo.net)


「IoT入門 IchigoJam BASICで HTTP Web APIを試そう」への1件の返信

コメントは受け付けていません。

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es