|
本帖最后由 nbchengang 于 2014-8-15 20:04 编辑
OpenTSDB是基于Hadoop+HBase的实时数据库平台,多用于IT设备管理。
因公司在做物联网及智慧水务方面的项目,想把OpenTSDB用作物联数据的采集平台。
原准备直接拿CB1+DS18B20搭个前置机的原型,但不懂硬件,搞不定GPIO的接线,于是干脆再入手DVK522。
今天花了一天的时间,总算有点样子了。
前期要先装好Hadoop,HBase,和OpenTSDB。作为实验环境,可以用单机跑HBase,这样可以不用装Hadoop。安装文档网上可以找到。
DS18B20现在基本没难度,新的核心都直接支持了,插上就能用了。
原本应该在CB1上先跑个OpenTSDB的所谓TCollector,再针对DS18B20写一段采集脚本。后来想想反正是实验,干脆按OpenTSDB里的loadavg-collectorde.sh的脚本的样子,照猫画虎,拼出一段代码:
#! /bin/bash
set -e
while true; do
awk -v now=`date +%s` -v host=`hostname` -F: '/t=/ \
{print "put temp.001 " now " " substr($1, 30) " host="host}' \
/sys/bus/w1/devices/28-00000622e558/w1_slave
awk -v now=`date +%s` -v host=`hostname` -F: '/t=/ \
{print "put temp.002 " now " " substr($1, 30) " host="host}' \
/sys/bus/w1/devices/28-00000022ef57/w1_slave
sleep 15
done | nc -w 30 172.16.66.200 4242
其中print的格式是按OpenTSDB的要求来的。
代码非常粗鄙,没有考虑CRC错误的情况,数值也没有除以1000。
仅仅是用来说明原理和可能性。
其中:
A点是刚开机,而且此时刚打开空调,室温下降,两个温感的读数同步下降。
B点空调停机,室温上升,同时把温感1贴在盛热水的杯子下,温感1的读数迅速上升。
C点热水水温下降,温感1读数开始下降;室温持续上升,温感2读数上升。
D点温感1从热水杯处移开,读数迅速下降至室温。
F点温感2贴在热水杯下,读数上升;温感1读数随室温上升。
E点温感2读数开始随水温下降;温感1读数继续随室温上升。
系统
|
|