はじめに
Beaglebone blackを昨年末購入した.やっと時間が取れたので,Beaglebone black (BBB)の特徴の一つであるADCを使って何かしてみようと思い,単純な気温ロガーの作成をした.
データ取得と記録
今回,温度取得にはLM61 ciz センサをBBBのアナログ入力に接続し取得する.GPIOからのデータ取得には,Adafruit-BeagleBone-IO-Pythonライブラリを使った.
記録には,堀田@jhottaさんに教えてもらったクラウドモニタリングサービスのである Datadog を利用した.ダッシュボードやアラートの設定が柔軟にできること,データ送信が簡単なこと, メトリックが自由に作成できることが選択の理由である.インストールは,堀田さんのgalileoへのインストールを参考にした.BBBは,statsdをソースコンパイルが必要な点だけである.
Datadogへの送信には,dd-agentとdogstatsd-pythonを組み合わせて使う.
from statsd import statsd import Adafruit_BBIO.ADC as ADC def main(): statsd.connect('127.0.0.1', 8125) ADC.setup() temps = [] for i in range(10, 1, -1): time.sleep(.1) temps.append(ADC.read('P9_40')*180-60) temp = sum(temps) / len(temps) statsd.gauge("bbb.room.temperature", temp) if __name__ == "__main__": while(True): main() time.sleep(10)
以下がDatadogへアップロードしたデータを表示したグラフ.
まとめ
BBBで取得した温度情報を簡単に可視化することができた.Dtadogというクラウドモニタリングサービスを知り,さわり程度であるが使ってみることができた.
今後は,距離センサーや圧力センサーをモニタリングし,IoTへの活用について考えていきたい.次は,Datadogをメモリが少ない機器へ対応させる方法について書きたい.