create every day - 福野泰介の一日一創

図書館空席オープンデータをBASICで取得して表示するIoT - SORACOM x 3GIM x IchigoJam

2016/12/01 23:55:00
#IoT #IchigoJam #opendata 

0SIM x 3GIMクラウド温度センサーそば or notにつづき、sabotaの「つくえなう」で使って図書館空席オープンデータをタブレイン社の3GIMで表示してみました。


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をお楽しみください!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / high-res profile image