RaspberryPi

RaspberryPiで家の騒音をグラフ化

  • POSTS
赤ちゃんがいつ泣いているのかログを取りたい 用意するもの RaspberryPi 2 or 3 USBマイク 環境準備 Elasticsearch×kibana×Fluentdのインストール グラフ化するために以下環境を用意します Python3のインストール Pythonは2系と3系がありますが、今後主流になっていく3系を使います。 普通はpyenvやvenvを挟んで環境を切り替えることが多いですが、 RaspberryPi上だとうまくできなかったので、 シンプルに直接Python3系とモジュールをインストールします。 $ sudo apt-get install python3 python3-numpy python3-pyaudio マイクデバイスの認識 こちらのサイトにマイクデバイスの設定方法が書いてあるので、参考にさせていただきました。 設定後以下のようにUSBデバイスが優先されていればOKだとおもいます $ cat /proc/asound/modules 0 snd_usb_audio 1 snd_bcm2835 マイクのサンプリング周波数を確認 マイクから信号を受け取りにあたりサンプリング周波数を設定する必要があります。 マイクに合った設定をしないとエラーが出て取得できません。 サンプリング周波数はUSBマイクを一度Macに挿して システム情報->ハードウェア->オーディオ->デバイスにUSB PnP Sound Deviceの欄で確認できました。 ※Windowsの場合は試していませんがデバイスマネージャなどから確認できるかもしれません 騒音をログ化する 動作のながれ マイクからのストリーミングデータをCHUNK分(1024*2)ずつ抜き出してその中で最大振幅を配列max_dataに入れる。 Thredingを使って指定時間ごとに割り込み処理(sendlog)を実行 割り込み処理では配列max_dataの平均値を計算してFluentdに送り、max_dataを初期化 Pythonでの割り込み処理はThredingモジュールで実装 Fluentdへはsubprocessでechoを使って実装 コード # -*- coding:utf-8 -*- import pyaudio import numpy as np import threading import subprocess max_data=[] CHUNK=1024*2 # マイクによって変わる。上手くいかない場合色々試してください RATE=48000 # 事前に確認したサンプリング周波数 p=pyaudio.

RaspberryPiでログの見える化するよ(Elasticsearch×kibana×Fluentd)

  • POSTS
自宅簡易サーバにRaspberryPi RaspberryPiで収集したデータを見える化したいけど、 外部のサーバやサービスを借りるとお金かかるし、 家に本格的なサーバを立てても設備代や電気代かかる・・・。 そもそも手軽に使えたら何でも良いんだけどと思い、 そのままRaspberryPi内でログ見える化の環境を構築しました。 完成図 Elasticsearch×kibana×Fluentd で構築します。 こんな感じに様々なデータが簡単にグラフ化できました。 用意したもの RaspberryPi 2(Raspbian Jessie with PIXEL) ※ネットワークへの接続やapt-get updateなど最低限のセッティングは完了しているものとする 注意 RaspberryPiはそのコンセプトから安定稼働する作りではありません。 ちょっとした学習や研究用にサーバを立てたいときは便利ですが、 中期以上の継続的な稼働が必要な場合はちゃんとサーバを用意しましょう。 Elasticsearch Javaの確認 OSがRaspbian Jessieであれば、Javaがインストールされているはずですが一応確認。 $ java -version java version "1.8.0_65" Java(TM) SE Runtime Environment (build 1.8.0_65-b17) Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode) バージョン1.8以上が必要なので、古ければアップデートしましょう。 Elasticsearchのインストール Elasticsearchとkibanaはバージョンの組み合わせによっては動かないことがあるようなので、 今回は動作が確認されている以下バージョンでやります。 Elasticsearch 2.4.1 kibana 4.6.2 以下コマンドで、Elasticsearchの公式HPからzipをダウンロードし、 ディレクトリに展開していきます。 $ wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.4.1/elasticsearch-2.4.1.zip $ unzip elasticsearch-2.4.1.zip $ rm elasticsearch-2.4.1.zip $ mv elasticsearch-2.4.1 elasticsearch $ cd elasticsearch $ .

赤外線カメラのケースが高いから夜中にひっそりと自作する

  • POSTS
子供が生まれてから、育児休暇を1ヶ月頂いたのですが、 1日の行動パターンが 「ミルクを飲ませる」「オムツを替える」「ご飯を作る」「沐浴をする」「泣き止ます」のどれかになってきました。 FFでももうちょっと技の種類あるよね。 オムツについてはだいぶ替え慣れたので、もう少しで「オムツァ」から「オムツラ」になれそうです。 子育てを楽にしたい 育児休暇を1ヶ月頂きました。 育児だけやっていてはもったいない&脳みそのシワが取れそうなので、 育児の問題をエンジニア視点から解決できないかと考えてみました。 ただし作業できるのは子供も妻も寝静まった深夜のみ。 赤外線カメラの購入 どう使うかはまた別の記事で書くとして、たまたま寄ったマルツ電波に売っていたので購入しました。 amazonで売り切れでもマルツではよく売っています。 [asin:B01EUTF2CC:detail] rasberry pi用のsony製カメラ。 HD画質で写真・動画が撮影可能。また、赤外線フィルタも外してあるので、工夫をすれば色々使える。 ケースが高い [asin:B00IJZJKK4:detail] ならば自作だ 色々ケースになりそうなものを探すとちょうど良いものがありました。 SDカードケース あとはいい感じに適当にやるだけ とりあえず、なんとなくいい感じになりました。 写真が全部薄暗いのは、起こさないようにひっそりとやっているから。 これで色々やるぞい。😉