ラズパイでウェザービーコンをハックしてみる~ウェザービーコン?~
↑さてこんな感じでRaspberry Piでウェザービーコン2を制御してみようと宣言してみました
それに必要な環境を作っていきます
↓以下、間違いが多いのでただいま編集中です
参考サイト
ライブラリとかサンプルコード、それのReadMeがあるので
これを参考に環境を整えていきます
前準備作業
Gitを使えるようにする
↓を参考にやんすとしておいてください
Pythonパッケージ管理(pip)をインスト
↓を参考にfluentdをインストしてください
fluentdのインスト
↓を参考にfluentdをインストしてください
influxdbのインスト
↓を参考にinfluxdbをインストしてください
手順
python-bluezのインストール
bluezは、LinuxでBluetoothデバイスを簡単に制御するためのプロジェクトだそうです
python-bluezは、pythonでBluetoothデバイスを制御するためのライブラリ集?のようです
$ sudo apt-get install python-bluez
fluent-loggerのインストール
ログ収集管理ツールfluentdをインストールしました
で、fluent-loggerというのは、python用のfluentプラグインだそうです
$ sudo pip install fluent-logger
influxdbのインストール
InfluxDBというのは、時系列データベースです
時系列DBというのは、
時系列に収集されるデータを格納するのに適したデータベース
なんだそうです
$ sudo pip install influxdb $ sudo pip install --upgrade influxdb
サンプルソースのダウンロード
OMRONのGitにサンプルソースが置いてありますので、git cloneで落としてきましょう
とりあえず、ローカルに落としてきましょうか
$ cd $ git clone https://github.com/OmronMicroDevices/envsensor-observer-py
設定ファイルの変更
gitから落としてきたソースの中に
サンプルソースの設定ファイルがあるので
これを環境に合わせて修正していきます
$ vi /home/pi/envsensor-observer-py/envsensor-observer-py/conf.py
↓のように修正しました
!/usr/bin/python import os # envsensor_observer configuration ############################################ # Bluetooth adaptor BT_DEV_ID = 0 # time interval for sensor status evaluation (sec.) CHECK_SENSOR_STATE_INTERVAL_SECONDS = 300 INACTIVE_TIMEOUT_SECONDS = 60 # Sensor will be inactive state if there is no advertising data received in # this timeout period. # csv output to local file system CSV_OUTPUT = True # the directory path for csv output CSV_DIR_PATH = os.path.dirname(os.path.abspath(__file__)) + "/log" # use fluentd forwarder FLUENTD_FORWARD = True # fluent-logger-python FLUENTD_TAG = "wxbeacon" # enter "tag" name FLUENTD_ADDRESS = "localhost" # enter "localhost" or IP address of remote fluentd FLUENTD_PORT = 24224 # enter port number of fluent daemon # fluent-plugin-influxdb (when using influxDB through fluentd.) FLUENTD_INFLUXDB = True FLUENTD_INFLUXDB_ADDRESS = "localhost" # enter IP address of Cloud Server FLUENTD_INFLUXDB_PORT_STRING = "8086" # enter port number string of influxDB FLUENTD_INFLUXDB_DATABASE = "weather" # enter influxDB database name # uploading data to the cloud (required influxDB 0.9 or higher) INFLUXDB_OUTPUT = True # InfluxDB INFLUXDB_ADDRESS = "localhost" # enter IP address of influxDB INFLUXDB_PORT = 8086 # enter port number of influxDB INFLUXDB_DATABASE = "weather" # enter influxDB database name INFLUXDB_MEASUREMENT = "wxbeacon" # enter measurement name INFLUXDB_USER = "root" # enter influxDB username INFLUXDB_PASSWORD = "root" # enter influxDB user password
XXXとかになっているのlicalhostやweatherなどてきとうな名前にしただけです
あとがき
Raspberry PiでBluezをつかって接続したウェザービーコン2より蓄積された観測データを
InfluxDBと連携したFluentdっていうログ管理システム使ってデータベースに蓄積していく
ってことなんですかね
とりあえずOMRON公式を参考にやってみましたが、
しらべるうちにもっとイロイロ必要なのかなっとおもいました
今後作業やりながら追加していこうと思います