我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>AI>行业资讯>国内

技术篇:DIY远程监控室内温度设备

文章来源:pconline 作者: 发布时间:2014年04月01日 点击数: 字号:
春节趁着假期空档,捣鼓了下tiny6410开发板,发现这个东东尘封许久,很长时间没用过了。貌似最近物联网大热,google收购Nest,其设计的恒温器能够智能调节和远程控制房间的温度,UI和设计理念都非常棒。物联网究竟是什么东东,虽然百度google就能得到很多说法或概念,但实际应用却很少,我做这个东西就是想让大家能亲自体验一把真实的物联网。

  一、目的

  DIY一个可以远程监控室内温度的简易设备,实现通过web/android/ios/微信等端口实时查看家中温度。最终的效果相当不错,虽然简单,只要家中未断电断网,就可以用随时随地掌握家中的温度变化,做到遥知冷暖。对于一些特定房间,比如婴儿房、花房这些,的确值得一试。

  我的yeelink实时监测平台:http://www.yeelink.net/devices/7376

1
2

  二、运行环境

  硬件:tiny6410+ds18b20+网络

  软件:linux+QT/curl/crontab/shell/YeeLink服务(云存储、各种接入方式web/android/ios/微信甚至微博、邮件及相关社交网络分享,这点很赞)

  [tips]Tiny6410,一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176JZF-S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4,H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OpenGLES1.1&2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。

  [tips]DS18B20,常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

3

  三、ds18b20驱动及应用

  见参考资料5,这个有前人的经验总结,就不展开说了,源码如下:ds18b20.rar

  四、curl移植到tiny6410

  1、移植openssl到tiny6410。

  下载openssl-1.0.0l.tar.gz,解压tarxzvfopenssl-1.0.0l.tar.gz,配置编译(ubuntu中进行交叉编译)

  1#!/bin/sh

  2exportLD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5.1/lib/

  3exportCPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/include/

  4exportLDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/lib/

  5exportCC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc

  6

  7cdopenssl-1.0.0l

  8./configno-asm--prefix=/home/share/tool/tiny6410/opensslos/compiler:/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc

  9make

  10makeinstall

  2、移植curl到tiny6410。(依赖openssl)

  下载openssl-1.0.0l.tar.gz,解压tarxzvfcurl-7.35.0.tar.gz,配置编译(ubuntu中进行交叉编译)

  1#!/bin/sh

  2exportLD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5.1/lib/

  3exportCPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/include/

  4exportLDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/lib/

  5exportCC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc

  6

  7cdcurl-7.35.0

  8./configure--host=i686--target=arm-linux--prefix=/home/share/tool/tiny6410/curl--with-ssl=/home/share/tool/tiny6410/openssl--with-random=/dev/urandom

  9make

  10makeinstall

  五、yeelink环境

  为了实现远程监控功能,在此使用了yeelink基于物联网应用免费的云存储服务器及相关的客户端(android/IOS/微信服务号/微博发布),作为一种物联网应用,该平台确实非常不错。

4

  yeelink官网

  1、注册yeelink用户、添加设备、添加传感器、上传数据、取回数据。

  2、根据yeelink的api接口上传数据。在tiny6410linux系统上采用shell脚本调用curl工具来实现。

  1#!/bin/sh

  2

  3#在单引号中填入yeelink给你的APIKEY

  4YL_ApiKey='xxxxxxxx'

  5YL_URL=http://api.yeelink.net/v1.0/device/7376/sensor/11615/datapoints

  6temp=$(/dev/shm/read_ds18b20)

  7echo$temp

  8

  9upcmd="curl--requestPOST--data'{\"value\":$temp}'--headerU-ApiKey:$YL_ApiKey--verbose$YL_URL"

  10

  11echo$upcmd|sh

  六、busyboxcrontab使用

  1、在crontab服务中加入下面加红的一行,让脚本每分钟运行一次,保存退出。

  */1****/dev/shm/post_ds18b20_data_to_yeelink.sh

  2、开启crond服务(tiny6410linux+qt系统默认未开启)。

  1[root@FriendlyARMcrontabs]#crond&

  2[root@FriendlyARMcrontabs]#ps

  3PIDUSERVSZSTATCOMMAND

  41root2992Sinit

  52root0SW[kthreadd]

  63root0SW[ksoftirqd/0]

  75root0SW[kworker/u:0]

  86root0SW<[khelper]

  9346root0SW[sync_supers]

  10348root0SW[bdi-default]

  11349root0SW<[kblockd]

  12359root0SW[khubd]

  13455root0SW<[rpciod]

  14456root0SW[kworker/0:1]

  15464root0SW[khungtaskd]

  16465root0SW[kswapd0]

  17515root0SW[fsnotify_mark]

  18517root0SW<[aio]

  19527root0SW<[nfsiod]

  20531root0SW<[crypto]

  21615root0SW[mtdblock0]

  22620root0SW[mtdblock1]

  23625root0SW[mtdblock2]

  24634root0SW[ubi_bgt0d]

  25793root0SW[pvrusb2-context]

  26866root0SW[kworker/u:2]

  27915root0SW[ubifs_bgt0_0]

  28917root0SW[mmcqd/0]

  29948root2992Ssyslogd

  30951root3312S/usr/sbin/inetd

  31955root2028S/usr/sbin/boa

  32958root1504S/usr/bin/led-player

  33968root18480S/opt/Qtopia/bin/qpe

  34969root2992Sinit

  35970root2992Sinit

  36971root2992Sinit

  37973root2992Sinit

  38979root0SW[kworker/0:2]

  39980root0SW[flush-ubifs_0_0]

  40987root8708S</opt/Qtopia/bin/qss

  41988root12552SN/opt/Qtopia/bin/quicklauncher

  42990root3320S/usr/sbin/telnetd-i

  43991root3316S-sh

  441025root3320S/usr/sbin/telnetd-i

  451026root3316S-sh

  461098root3312Scrond

  471100root3316Rps

48[root@FriendlyARMcrontabs]#

  七、实现效果

  1、网页浏览效果

5

  2、android客户端显示效果

6
7

  3、下面提供了交叉编译后的可执行文件(交叉工具链为:FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc,ds18b20_bin.rar)

  1/**

  2*@filereadme.txt

  3*@brief基于tiny6410、ds18b20、curl的远程温度监测实现说明

  4*@details

  5*@versionV1.0.0

  6*@authorRichard.hmm

  7*@date2014-2-4

  8*/

  9

  101、在tiny6410上安装ds18b20驱动

  11insmodds18b20.ko

  12

  132、拷贝curl到usr/bin/下

  14cpcurl/usr/bin/

  15

  163、拷贝read_ds18b20和post_ds18b20_data_to_yeelink.sh到tiny6410的内存文件系统/dev/shm中

  17cpread_ds18b20/dev/shm/

  18cppost_ds18b20_data_to_yeelink.sh/dev/shm/

  19

  204、配置crontab

  21[root@FriendlyARMcrontabs]#crontab-e

  22*/1****/dev/shm/post_ds18b20_data_to_yeelink.sh//新增任务

  23[root@FriendlyARMcrontabs]#crond&//开启crond

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料