CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 7842|回复: 4

CB1+DVK522采集DS18B20温度到OpenTSDB平台

[复制链接]
发表于 2014-8-15 19:44:22 | 显示全部楼层 |阅读模式
本帖最后由 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。
仅仅是用来说明原理和可能性。

ds18b20.jpg

其中:
A点是刚开机,而且此时刚打开空调,室温下降,两个温感的读数同步下降。
B点空调停机,室温上升,同时把温感1贴在盛热水的杯子下,温感1的读数迅速上升。
C点热水水温下降,温感1读数开始下降;室温持续上升,温感2读数上升。
D点温感1从热水杯处移开,读数迅速下降至室温。
F点温感2贴在热水杯下,读数上升;温感1读数随室温上升。
E点温感2读数开始随水温下降;温感1读数继续随室温上升。

CB1DVK522.jpg
系统

回复

使用道具 举报

 楼主| 发表于 2014-8-15 20:12:56 | 显示全部楼层
那些垂直的红绿线条就是没有错误处理所引入的极大极小的数值。
回复 支持 反对

使用道具 举报

发表于 2014-8-16 09:12:50 | 显示全部楼层
CB1做传感器的数据采集上传,的确挺适合的,成本也比较可控
回复 支持 反对

使用道具 举报

发表于 2014-8-16 11:10:57 | 显示全部楼层
我再分享一个数据显示工具很niu_B  哦 实例图片.jpg



链接: http://pan.baidu.com/s/1jG5NC4e 密码: 52u2
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-17 20:04:20 | 显示全部楼层
jiangdou 发表于 2014-8-16 11:10
我再分享一个数据显示工具很niu_B  哦

这个似乎用不上啊。

OpenTSDB自带了一个显示界面,不过不是太好看。但完全可以通过TSD提取数据自己做一个漂亮的仪表板出来
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-11-1 08:19 , Processed in 0.025454 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部