鉄分は大事。(特にヘム鉄)

研究とか開発とかプログラミングとか趣味とかを備忘録的な感じで気が向いたときに.

Sentabe:センサデータベースを作った

概要

ソースコードはこちら

GitHub - keigo-brook/Sentabe: Sensor data base

 

ネットワークに接続されたセンサか ら, 情報を定期的に取得するアプリケ ーションを作成した. また, 情報を取得する期間を, サーバー側で変更できるようにした.

 

アプリケーションのクラス構造は Figure 1 のようになっている.また, Figure 2にアプリケーションのフローを示す.

 

f:id:brookbach:20160715204400p:plain

Figure 1

 

f:id:brookbach:20160715204411p:plain

Figure 2

 

流れの説明

はじめに, Raspberry Pi にてデータを 取得し, それをサーバーに POST する. つぎに, POST リクエストを受け取った サーバーは, この情報を保存する.
さらに次回のデータを取得する時間 (between time)を計算する.
そして, HTTP レスポンスとともにこ の between time を Raspberry Pi に返す.

Between time を受け取った Raspberry Pi は, この情報を元に次にデ ータを取得する時間をセットする.

 

 

サーバサイドはRailsで構築, ViewにはAdminLTEを利用, 

クライアント側なんでもいいけどPythonでとりあえずこんな感じ

Sentabe/sentabe_client.py at master · keigo-brook/Sentabe · GitHub

で書いた

 

感想

作りたかったものに対して大きく堅く作りすぎた気がして少し反省している

もっと適当に作って良かった気がする

 

期間を変更するアルゴリズムについては, 現在は別スレッドを立てて時間が来たらそれを起動するようにしている

 

サーバー側は時間を送るだけなのでクライアント側でやり方変えることができる

 

HTTPで通信するので, 結局レスポンスを返さなければならなくて, だから時間を一緒に返しちゃっても良かったけど, UDPを使って送り続ける感じにもできるなーとか

 

センサ側から送るけど, サーバ側でセンサから取得する形にもできるかなとか

 

あと, いつものことながら, 作り終わると作ったものが小さく見えて本当にこれ使うかな?とか考えてしまったりとか

 

使いながら改良していこうと思う

 

修士に進むことになり, もうちょい技術的にスキルアップしたいなーと考えたので現在職探しをしている.  Railsはそこそこ使えると思うけど, ちょっと違うこともやってみたいなーとか考えている.