11座席をIchigoJamの画面で表示。位置決めはFORコマンドとLOCATEコマンド(LC)、表示はPRINTコマンド(?)ですね!
プログラムはこんな感じです。まずは3GIMで通信してデータを取得するまで。
「鯖江市の図書館空席オープンデータ - 数値取得API」
10 BPS2400:OUT6,1:WAIT60:OUT6,0:UART3,1 20 CLS:INPUT "",D 30 ?"$WG http://sabae.club/rdfp/sabaelibrary/?f=num" 40 CLS:INPUT "",D 50 C=PEEK(#900):IF C=ASC(">") OR C=ASC("$") GOTO 40 60 UART0,0:OUT6,1
レスポンス、先頭に&>や$がついていないものを取得します。返ってきた数値は変数Dに入ります。
つづいて、その変数Dの値を使って画面描画
100 FOR I=0 TO 10 110 B=D&(1<<I)!=0 120 LC 5+I*2,10 130 ?CHR$(232+B) 140 LC 5+I*2,12 150 ?I+1 160 NEXT 170 WAIT 60*60:RUN
表示し終わったら、1分待って、再度実行、再取得というループです
今回は、SORACOMのSIMを使いました。
3GIM v1では、SORACOMを使うために事前設定が必要です。(3Gシールド/3GIM Wikiページ)
10 BPS2400:OUT6,1:WAIT10:OUT6,0:UART3,1 20 ?"$YD TABrain ";CHR$(34);"$x49$x3D$xD8$xC9$xCE$x98$xDB$x3D$x22$xCA$x56$x84$xCA$xA2$x97$x7F"; 30 ?"$xBB$xC5$x6D$xEC$xBE$xAF$x39$x89$x47$xA7$xFF$x67$x79$x81$xA3$xBD$x66$x9D$xBD$xDD$x5B$x5F"; 40 ?"$x58$x89$x46$x5D$x57$xEB$x95$x23$x29$xE3$x78$x23$x32$x31$x49$xB2$xD0$xE9$x47$xC0$x16$x34$xB5";CHR$(34) 50 INPUT"",D:UART0,0 RUN
これで12番にSORACOMのAPNが登録され、次のコマンドで切り替え
UART3,1:?"$PS 12":INPUT"",D:UART0,0
3GIM V2.0の場合、$PSコマンドでAPNを登録する方式に変わっているので注意!(詳細)
IchigoJam BASIC で、お気軽IoTをお楽しみください!