はじめに
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をメモリが少ない機器へ対応させる方法について書きたい.

