マイコン工作実験日記

Microcontroller を用いての工作、実験記録

アプリの必要性 -- その2

2015-02-15 10:41:16 | Weblog
以前の記事にてtext/htmlでNDEFデータを書き込んでおいても、Androidにはそれを自動的に表示してくれる機能は備わっておらず、対応アプリを用意する必要があることを書きました。仕方がないので、自分でアプリを作ってみようかと思い、Android Studioを開発マシンのMBAにインストールしてみたのですが、ディスクの使用量が96%に達してしまいました。これはディスクのお掃除をしなかればいかんということで、いったんAndroid Stduioはアンインストール。しかしなんとかtext/htmlのNDEFデータを表示してみたいと思い、出来合いのアプリを組み合わせて表示できないかと考え試行錯誤してみました。その結果ちょっと手間ですが、以下のように2つのアプリの間をコピペすることでデータを渡して表示することができました。

まず最初にNFC Readerという、とってもシンプルなUIのアプリを使ってデータを読み取ります。text/htmlの内容も表示してくれます。




表示されたtext/htmlの一部分をタッチし続けるとコピペの範囲選択のモードになるので、text/htmlのデータ全部を範囲選択して、クリップボードにコピーしておきます。

クリップボードの内容をいったんファイルに落とせば普通にブラウザで開いて表示することもできますが、ちょっと手間なのでクリップボードからペーストしたデータを表示してくれるアプリがないか探してHTML playというアプリを見つけました。HTMLエディタなんですが、HTML入力の際に入力エリアを長押ししていると、ペーストメニューが現れてクリップボードの内容をペーストすることができます。ペーストできたら、Previewボタンを押すとその内容が表示できるという具合。




NFCにtext/html形式で記録されたデータは30分間隔で過去24時間分の温度/気圧を記録したものとなっています。記録間隔が30分と長いので、単純に30分間の平均値を表示してしまうと最高や最低値の記録が失われてしまいます。そこで、気温/気圧の記録データには30分の間の最低、平均、最高の3つの値を持たせています。

グラフ表示にはGoogle Chartを利用していますが、intervalオプションにareaを指定することで最低/最高値も線幅として表現しています。グラフの最初で温度の変化幅が大きくなっていますが、これはソフトのバグでまちがったデータが書き込まれているためです。修正せねば。。。

このようにして、なんとか当初の目論見は達成できましたが、コピペの際の範囲選択作業がとってもめんどくさいので実用的ではありません。やはり専用アプリを用意しないと使い勝手は向上できなさそうです。上記の例では30分間隔でデータを記録していますが、これはおよそ4KB近いデータ量に相当します。使用したMR24SRは8KBの容量なので、他のレコードで使用される容量を考慮すると15分間隔で記録しようとすると領域不足になる可能性があります。バイナリデータで書き込めば容量を有効に活用できますが、読み取りには専用アプリが必要となってしまいます。いろいろと試行錯誤するにはテキストで記録しているのがやはり便利なんですが。