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を使った自宅の温度・湿度データモニタリングと可視化①


スポンサーリンク

関連記事

Quartus II
WordPress on Windows Azure
OpenMVSのサンプルを動かしてみる
PGGAN:段階的に解像度を上げて学習を進めるGAN
3Dボリュームデータ処理ライブラリ『OpenVDB』
Cartographer:オープンソースのSLAMライブラリ
Russian3DScannerのトポロジー転送ツール『WrapX』
Raspberry Piでカーナビを自作できるキット『iCarus』
粘土をこねるようなスカルプトモデリング
ブラウザ操作自動化ツール『Selenium』を試す
インタラクティブにComputer Visionコーディングができるツール『Live CV』
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
海洋堂 20cmシリーズ『デスゴジ』 クリアーオレンジVer. 電飾の計画
為替レートの読み方 2WAYプライス表示
画像からカメラの3次元位置・姿勢を推定するライブラリ『OpenGV』
UnityのGameObjectの向きをScriptで制御する
Unity MonoBehaviourクラスのオーバーライド関数が呼び出される順番
UnityのTransformクラスについて調べてみた
ミニ四駆で電子工作
Google App Engine上のWordPressでAmazonJSを利用する
Mean Stack開発の最初の一歩
ドラマ『ファーストクラス』のモーショングラフィックス
海洋堂 20cmシリーズ『デスゴジ』 クリアーオレンジVer. 電飾のための工作 その3
uGUI:Unityの新しいGUI作成システム
WordPressの表示を高速化する
Raspberry PiのGPIOを操作するPythonライブラリ『RPi.GPIO』の使い方
Unityからkonashiをコントロールする
UnityプロジェクトをGitHubで管理する
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
SONY製のニューラルネットワークライブラリ『NNabla』
Seleniumを使ったFXや株の自動取引
Amazon Web ServicesでWordPress
OpenCVのfindEssentialMat関数を使ったサンプルを読んでみる
Mayaのプラグイン開発
機械学習に役立つPythonライブラリ一覧
ZScript
UnityでPoint Cloudを表示する方法
シフトカーを改造してラジコン化する人達
C#で使える遺伝的アルゴリズムライブラリ『GeneticSharp』
RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』
機械学習で遊ぶ

コメント