少年の頃に目を輝かせていたオッサンどもに捧げるIoT
2017年12月05日 火曜日
【IIJ 2017TECHアドベントカレンダー 12/5(火)の記事です】
おい、これを見ているオマエ。そう、そこの
オマエ
だ。
オマエも今でこそ腐った目のオッサンだろうが、
少年の頃は目を輝かせながらベーマガを読んでいた
だろう。
え?ベーマガ派ではなくテクノポリス派だった?
テクノポリスだったら、プログラムポシェットが休刊になったあとに「今月のプログラムポシェット」というコーナーがあったのでなんとか救える。
え?オマエはコンプティーク派?
コンプティークの袋とじで目を輝かせていたオマエ
は残念ながら今回は救えん。すまん。
そんなオマエらに、IoTというものを教えてやろう。そして、再度目を輝かせてやろう。
用意するものはこれだ。
おっと、間違えた。
これは
弊社社員が現役で使用している PC-6001mkIISR
だった。
改めて。
用意するものはこれだ。
だ。
お値段は2,000円ほどする。
ベーマガ約5ヶ月分という大金だが、
新たに PC-6001mkIISR を買うより安上がり
だろう。
この小型マイコンは何かというと、昔ながらのBASIC言語を扱えるボードだ。BASICなんてもはや死んだ言語だと思っていたオッサンも多いだろうが、
実はまだ現役
なのだ。
そして、今回は Mix Juice も必要だ。
Ichigo Jamだけだと昔ながらのBASICが使えるだけだが、そこにMix Juiceを追加すると、なんと
無線LANが使える
ようになって、
TCP/IPが喋れる
ようになるのだ。[1]
このIchigo Jamを使うには、いくつかのハードルがある。
まずはキーボードだ。
説明書には
「PS/2接続できるUSBキーボードが必要です」
などという訳が分からない日本語が書いてある。要はPS/2変換コネクタを使えばPS/2キーボードとして認識できるUSBキーボードが必要ってことだろう。
実は最近売っているキーボードはPS/2変換コネクタ経由で接続しても使えないものが多数ある。そのようなキーボードはIchigo Jamでは使えない。おそらく押し入れの奥に眠ってる有線USBキーボードを引っ張り出してくる必要があるだろう。
2つ目のハードルはモニターだ。
Ichigo Jamは、ビデオ端子経由でテレビに接続する必要がある。地デジ化されて6年経っている日本だ。いまどきのテレビはアナログのビデオ端子なんて付いていない。
昔ながらの
ブラウン管テレビ
が使えればベストだが、文明の利器を使ってビデオ端子-HDMI変換などを用意しても良いだろう。
ここまで準備すれば、Ichigo Jamを使うことができる。
Ichigo Jamの電源を入れると、このような哀愁が漂う画面が表示される。[2]
さて、このIchigo Jamを使ってIoTをやってみよう。
その前に、IoTとは何だ?
簡単に言うと、
百葉箱
だ。そう、校庭の片隅あった、温度計が入っているあの箱だ。
オマエらが子供の頃も、理科の実習で1時間ごとに温度を測って紙に記録してただろう。そして、その記録を使って1日の気温のグラフを書いただろう。
百葉箱をIT化すれば、それがIoTだ。
わざわざ自分で温度を測って記録しないでも、自動的に温度が記録されて、自動的にグラフになれば、便利だろ?
しかも、熱中症になるくらい温度が高かったり凍死しそうなくらい温度が低かったりしたときはお知らせまでしてくれれば、さらに便利だろ?
「なんか違うんじゃね?」
という声が聞こえてきたが、一切無視する。
ということで、Ichigo Jamで、温度を自動記録してくれるIoT百葉箱を作ってみる。
BASICの画面から、以下のプログラムを入力してみよう。[3]
なお、
「コピペしよう」などという邪念
は抱かないほうが良い。そもそもPCのブラウザからIchigo Jamに対してコピペする手段は無い。[4]
10 'IIJ アイオテー デンシヒャクヨウバコ 20 'チュウイ:アラカジメWiFiデIIJアイオーテーニセツゾクシテオイテネ 30 PRINT"イマノオンドハ";:IMPUT T 40 PRINT"MJ POST START gw.iot.iij.jp/v1" 50 PRINT"{";CHR$(34);"name";CHR$(34);",";CHR$(34);"TEMP";CHR$(34);",";CHR$(34);"value";CHR$(34);":";T; 60 PRINT",";CHR$(34);"tags";CHR$(34);":{";CHR$(34);"my-computer";CHR$(34);":";CHR$(34);"Ichigo Jam";CHR$(34);"}}" 70 PRINT"MJ POST END" 80 WAIT 120 90 PRINT"イマノオンドハ";T;"゚C デス" 100 PRINT"データソウシンカンリョウ" 110 END
プログラムの入力が終わったら”RUN”を実行しよう。クレバーなやつはF5キーを押すだけで良い。
“Syntax Error”
などと出てしまった場合は”LIST”コマンドでプログラムソースを見直そう。[5]
正常に実行できれば「イマノオンドハ?」と温度の入力を促されるので、そっと今の気温を入力しよう。入力した値をプログラムがIoTサービスに送信してくれる。[6]
時間を置いて、何回か温度のデータを送ってみよう。
IoTサービスのコントロールパネルで見れるのがこのグラフだ。
すごい。
記録した温度が自動的にグラフになったぞ。
これがIoTだ!
おっと、気温を50℃と入力しちゃったもんだから、
熱中症注意のメールが飛んできたぞ。
これは便利だな。
「やっぱりなんか違うんじゃね?」
「っつーかBASICでどうやってグラフ見たりメール読んだりするの?」
などいう
外野の声
がまた聞こえてきたので、そろそろ終わりにする。
本当はもっと高度なIoTもできるが、スペースの都合上省略させていただく。
目を輝き直した大きなお友達
は、ぜひ自身でIoTに挑戦してほしい。
そして、今回は オッサン 改め 大きなお友達向けにBASICを使ってIoTを試してみたが、いまどきの若者はPythonやNode.jsなどのいまどきの言語を使ってIoTを楽しんでほしい。[7]
IoTを試してみたいが自分では自信がない人は、ぜひIIJの営業までコンタクトをとってほしい。
IIJはあなたの悩みを解決できる力を持っている。
※最後に、この文章を読んで気に障った方、申し訳ありません。IIJは決してこんなフザけた会社ではありません。ただ、ちょっとした遊び心は持っている会社です。
注記:
- 「てぃーしーぴーあいぴーって何?」とわざとらしく聞くそこのオッサンの声はあえて無視させていただく。[↑]
- “How Many Pages?” って聞かれないの?、とか、クリーンコンピュータだからBASICをロードしないとね、などと思ったやつは脳の記憶領域の使い方を間違えているので注意しよう。[↑]
- 残念ながらこのプログラムはIIJのIoTサービスに接続できる環境でないと動作しない。試してみたい方はぜひIIJの営業にコンタクトをとってほしい。[↑]
- コピペはできないが、実は Mix Juice を使えばいんたーねっとからソースコードを落としてくる技が使えたりする。[↑]
- ちなみにこのプログラムは1ヶ所 Syntax Error が出るようにわざと罠が仕掛けてある。気になるオッサンは机上デバッグしてみよう。[↑]
- 「温度を自動記録する」と言っておきながら手入力させるのはなぜ?というツッコミは無しの方向で。本当はIchigo Jamに温度センサーを接続して自動的に温度を取得する方法も可能だが、説明が面倒なので省略。[↑]
- 大きなお友達も、BASICではなく他の言語を使っても良い。というか他の言語を使うことをオススメする。[↑]