Raspberry PiでIoTごっこ

のんびりと続けているRaspberry Pi 2で人感センサー動かすやつ、IoT本来の意味とは外れるかもしれないけど、IoTごっこと呼ぶことにした。
そして大体の実装プランが固まってきたのだ。
人感センサーが反応した時刻を記録して、グラフ表示したいんだけど、センサーが反応した時刻の記録にデータベースを使うのはやや大げさ過ぎるので、もう少し簡易な方法をとることにする。

常時起動しているPythonコードがセンサー(つまりGPIOの入力値)を監視していて、センサーが反応したら、その時刻とセンサーの値をtsvファイルに書き込んでいく。
そのtsvファイルをJavaScriptで読み込んで、Webページにグラフ化して表示する。表示はWebブラウザに任せるのです。

ということで、調べることは2つ。
・Pythonで出力パスを指定してtsvファイルに書き込む方法
・JavaScriptでtsvファイルを読み込んでグラフ表示する方法


スポンサーリンク


Pythonでtsvファイルに描き込む方法は色々あるみたいだけど、今回はPandasというデータ分析用ライブラリの機能を試してみようと思う。
Pandasにあるcsvファイルを読み書きするためのread_csv関数(読み込み)とto_csv関数(書き込み)を利用して、オプションパラメータdelim_whitespaceをTrueに設定(区切り文字にタブや空白を指定)してやればtsvに対応できるらしい。

その他、numpyでもtsvの読み込み・書き込みはできるらしいので、慣れてる方を選べば良いと思う。(オイラは単純にPandasに触ってみたかったから)

JavaScriptでtsvファイルをグラフ化する方法については、D3.jsの公式サンプルで、tsvファイルを読み込んで棒グラフ表示するサンプルがあったので、これを有難く流用させていただこうと思う。↓


スポンサーリンク

Dual-scale-D3-Bar-Chart

Dual-scale-D3-Bar-Chart

Raspberry Piで似たようなことをやろうとしている人達がたくさんいるけど、ソフトウェア側の実装方法は結構バラバラな印象。↓
Raspberry Piで取得したセンサーデータをリアルタイムに可視化する(導入編)
Raspberry Piで取得したセンサーデータをリアルタイムに可視化する(センサー編)
Raspberry Pi,fluentd,TreasureData,AWS,d3.jsを使った自宅の温度・湿度データモニタリングと可視化①


スポンサーリンク

関連記事

SONYの自律型エンタテインメントロボット『aibo』
UnityでTweenアニメーションを実装できる3種類の無料Asset
法線マップを用意してCanvas上でShadingするサンプル
Unityの薄い本
頭蓋骨からの顔復元と進化過程の可視化
ブログの復旧が難航してた話
JavaScriptとかWebGLとかCanvasとか
PythonのStructure from Motionライブラリ『OpenSfM』
Javaで作られたオープンソースの3DCGレンダラ『Sunflow』
Unityの各コンポーネント間でのやり取り
Mean Stack開発の最初の一歩
東京オリンピックと案内表示
Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
サンプルコードにも間違いはある?
Iterator
UnityプロジェクトをGitHubで管理する
OpenGVのライブラリ構成
Pythonのベイズ統計ライブラリ『PyMC』
WordPressの表示を高速化する
OpenCVのための軽量GUIライブラリ『cvui』
海洋堂 20cmシリーズ『デスゴジ』 クリアーオレンジVer. 発煙ギミックを検討する
Raspberry Pi 2のGPIOピン配置
C++ 標準テンプレートライブラリ (STL)
C#で使える可読性重視のディープラーニングライブラリ『KelpNet』
機械学習手法『SVM(Support Vector Machine)』
画像中の人物表面のUV座標を推定する『DensePose』
ビリケン商会 メカゴジラⅡ 電飾の手直し
続・ディープラーニングの資料
オープンソースのSfM・MVSツール『COLMAP』
ビリケン商会 メカゴジラⅡ 電飾を仕込む
ディープラーニング
ブログが1日ダウンしてました
OpenCVでiPhone6sのカメラをキャリブレーションする
プログラムによる景観の自動生成
海洋堂 20cmシリーズ『デスゴジ』 クリアーオレンジVer. 洗浄・煮沸
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方法
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』
スクラッチで既存のキャラクターを立体化したい
OpenCVで顔のランドマークを検出する『Facemark API』
Quartus II
AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
Google App Engine上のWordPressでFlickrの画像を貼る

コメント