Beaglebone Black で気温を記録する

はじめに

Beaglebone blackを昨年末購入した.やっと時間が取れたので,Beaglebone black (BBB)の特徴の一つであるADCを使って何かしてみようと思い,単純な気温ロガーの作成をした.

データ取得と記録

今回,温度取得にはLM61 ciz センサをBBBのアナログ入力に接続し取得する.GPIOからのデータ取得には,Adafruit-BeagleBone-IO-Pythonライブラリを使った.

 BBB_LM61CIZ

記録には,堀田@jhottaさんに教えてもらったクラウドモニタリングサービスのである Datadog を利用した.ダッシュボードやアラートの設定が柔軟にできること,データ送信が簡単なこと, メトリックが自由に作成できることが選択の理由である.インストールは,堀田さんのgalileoへのインストールを参考にした.BBBは,statsdをソースコンパイルが必要な点だけである.

Datadogへの送信には,dd-agentdogstatsd-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へアップロードしたデータを表示したグラフ.

1538709_10152156375013143_4452552754877127971_n

まとめ

BBBで取得した温度情報を簡単に可視化することができた.Dtadogというクラウドモニタリングサービスを知り,さわり程度であるが使ってみることができた.

今後は,距離センサーや圧力センサーをモニタリングし,IoTへの活用について考えていきたい.次は,Datadogをメモリが少ない機器へ対応させる方法について書きたい.