春节了,趁着假期的空闲时间,抽空捣鼓了下tiny6410开发板,发现这个东东尘封许久,很长时间没用过了。貌似最近物联网大热,谷歌收购Nest,其设计的恒温器能够智能调节和远程控制房间的温度,UI和设计理念都非常棒。物联网是什么东东,这个百度、google一下就能得到很多说法或概念,但到底是什么呢,这个我想还是DIY一个简单的东东来体验一下吧。

 
一、目的
      DIY一个可以简易的远程监控室内温度设备,实现通过web/android/ios/微信进行查看家中温度的电子设备。(最终的效果相当不错,虽然简单,只要家中未断电断网,就可以用随时随地掌握家中的温度变化,做到遥知冷暖,很新鲜啊,提供个链接,欢迎大家围观:http://www.yeelink.net/devices/7376
 
二、软硬件环境
      硬件:tiny6410+ds18b20+有线网络 or USB wifi
      软件:linux+QT/curl/crontab/shell/YeeLink服务(云存储、各种接入方式web/android/ios/微信甚至微博、邮件及相关社交网络分享,这点很赞)
 
三、ds18b20驱动及应用
见参考资料5,这个有前人的经验总结,就不展开说,源码如下:
 

四、curl移植到tiny6410
1、移植openssl到tiny6410。
下载openssl-1.0.0l.tar.gz
解压tar xzvf openssl-1.0.0l.tar.gz
配置编译(ubuntu中进行交叉编译)
 #!/bin/sh
export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5./lib/
export CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5./include/
export LDFLAGS=-L/opt/FriendlyARM/toolschain/4.5./lib/
export CC=/opt/FriendlyARM/toolschain/4.5./bin/arm-linux-gcc cd openssl-1.0.0l
./config no-asm --prefix=/home/share/tool/tiny6410/openssl os/compiler:/opt/FriendlyARM/toolschain/4.5./bin/arm-linux-gcc
make
make install
2、移植curl到tiny6410。(依赖openssl)
下载openssl-1.0.0l.tar.gz
解压tar xzvf curl-7.35.0.tar.gz
配置编译(ubuntu中进行交叉编译)
 #!/bin/sh
export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5./lib/
export CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5./include/
export LDFLAGS=-L/opt/FriendlyARM/toolschain/4.5./lib/
export CC=/opt/FriendlyARM/toolschain/4.5./bin/arm-linux-gcc cd curl-7.35.
./configure --host=i686 --target=arm-linux --prefix=/home/share/tool/tiny6410/curl --with-ssl=/home/share/tool/tiny6410/openssl --with-random=/dev/urandom
make
make install
五、yeelink环境
     为了实现远程监控功能,在此使用了yeelink基于物联网应用免费的云存储服务器及相关的客户端(android/IOS/微信服务号/微博发布),作为一种物联网应用,该平台确实非常不错。
1、yeelink之注册用户、添加设备、添加传感器、上传数据、取回数据。详情见官网http://www.yeelink.net/
2、根据yeelink的api接口上传数据。在tiny6410 linux系统上采用shell脚本调用curl工具来实现。

 #!/bin/sh

 #在单引号中填入yeelink给你的API KEY
YL_ApiKey='xxxxxxxx'
YL_URL=http://api.yeelink.net/v1.0/device/7376/sensor/11615/datapoints
temp=$(/dev/shm/read_ds18b20)
echo $temp upcmd="curl --request POST --data '{\"value\":$temp}' --header U-ApiKey:$YL_ApiKey --verbose $YL_URL" echo $upcmd|sh
六、busybox crontab使用
 1、在crontab服务中加入下面加红的一行, 让脚本每分钟运行一次, 保存退出。

*/1 * * * * /dev/shm/post_ds18b20_data_to_yeelink.sh
2、开启crond服务(tiny6410 linux+qt系统默认未开启)。

 [root@FriendlyARM crontabs]# crond&
[root@FriendlyARM crontabs]# ps
PID USER VSZ STAT COMMAND
root S init
root SW [kthreadd]
root SW [ksoftirqd/]
root SW [kworker/u:]
root SW< [khelper]
root SW [sync_supers]
root SW [bdi-default]
root SW< [kblockd]
root SW [khubd]
root SW< [rpciod]
root SW [kworker/:]
root SW [khungtaskd]
root SW [kswapd0]
root SW [fsnotify_mark]
root SW< [aio]
root SW< [nfsiod]
root SW< [crypto]
root SW [mtdblock0]
root SW [mtdblock1]
root SW [mtdblock2]
root SW [ubi_bgt0d]
root SW [pvrusb2-context]
root SW [kworker/u:]
root SW [ubifs_bgt0_0]
root SW [mmcqd/]
root S syslogd
root S /usr/sbin/inetd
root S /usr/sbin/boa
root S /usr/bin/led-player
root S /opt/Qtopia/bin/qpe
root S init
root S init
root S init
root S init
root SW [kworker/:]
root SW [flush-ubifs_0_0]
root S < /opt/Qtopia/bin/qss
root S N /opt/Qtopia/bin/quicklauncher
root S /usr/sbin/telnetd -i
root S -sh
root S /usr/sbin/telnetd -i
root S -sh
root S crond
root R ps
[root@FriendlyARM crontabs]#
七、实现效果
1、网页浏览效果
 
2、android客户端显示效果
 
3、 下面提供了交叉编译后的可执行文件(交叉工具链为:FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc)
使用说明:
 /**
* @file readme.txt
* @brief 基于tiny6410、ds18b20、curl的远程温度监测实现说明
* @details
* @version V1.0.0
* @author Richard.hmm
* @date 2014-2-4
*/ 、在tiny6410上安装ds18b20驱动
insmod ds18b20.ko 、拷贝curl到usr/bin/下
cp curl /usr/bin/ 、拷贝read_ds18b20和post_ds18b20_data_to_yeelink.sh到tiny6410的内存文件系统/dev/shm中
cp read_ds18b20 /dev/shm/
cp post_ds18b20_data_to_yeelink.sh /dev/shm/ 、配置crontab
[root@FriendlyARM crontabs]# crontab -e
*/ * * * * /dev/shm/post_ds18b20_data_to_yeelink.sh // 新增任务
[root@FriendlyARM crontabs]# crond& // 开启crond
八、参考资料
1、树莓派玩家5分钟内将树莓派-USB摄像头与Yeelink连接–最好玩的网页监控器 http://blog.yeelink.net/?p=468
2、远程监控树莓派BT上传/下载状态 http://bbs.yeelink.net/forum.php?mod=viewthread&tid=112&extra=page%3D2
3、如何使用busybox的cron实现计划任务 http://bbs.csdn.net/topics/190017224
5、基于Tiny6410的ds18b20驱动 http://blog.csdn.net/tandesir/article/details/7247558
 
 

DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)的更多相关文章

  1. DIY远程控制开关(tiny6410+LED+yeelink+curl)

    上一次,介绍了如何实现远程监控室内温度,大家伙反响还是很热烈的,笔者很欣慰,独乐乐不如众乐乐啊.不过话说回来,那个实现只能是远程监测家中温度,假如发现家里热得很,想远程打开空调开关提前降降温,回家后不 ...

  2. DIY远程移动图像监测(tiny6410+USB摄像头+motion+yeelink+curl)

    看到有博客上采用motion搭建移动图像监测系统,感觉很强大,但大多缺少远程监测能力,大多局限于局域网.OK,笔者手头刚好有一个30W像素的USB摄像头,那么借用yeelink服务,也来DIY一把,哈 ...

  3. jvisualvm远程监控Tomcat

    网上已经有很多这方面的资料,但有些很杂乱,这里做了整理总结. 一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. ...

  4. 使用visualvm 远程监控 JVM

    1. 测试环境 Ubuntu Server 10.01 2.  在服务器上安装 jstatd 组件 使用apt-get 命令安装 openjdk 即可 : sudo apt-get install o ...

  5. 转:isualvm远程监控Tomcat

    一.Java VisualVM 概述 对于使用命令行远程监控jvm 太麻烦 . 在jdk1.6 中 Oracle 提供了一个新的可视化的. JVM 监控工具 Java VisualVM .jvisua ...

  6. EasyCamera Android安卓移动视频监控单兵设备接入EasyDarwin开源流媒体云平台

    前言 随着Android系统的不断更新和发展,现在越来越多的硬件产品选择用安卓系统作为运行环境,电视机,机顶盒.门禁.行车记录仪.车载系统.单兵设备等等,Android系统底层还是Linux,但对上层 ...

  7. 转载:JProfiler远程监控LINUX上的Tomcat过程细讲

    来源于xuwanbest的博客   所谓"工欲善其事,必先利其器",好的工具确能起到事半工倍的作用.我用到的最多的就两个JConsole 和JProfiler .JConsole监 ...

  8. SNMP远程监控进程信息的OID

    最近有个项目需要用snmp远程监控进程信息.于是我查了一下资料. 一.资料 .1.3.6.1.2.1.25.4.2.1.1.iso.org.dod.internet.mgmt.mib-2.host.h ...

  9. c# 远程监控(4) 接收端 RTP包重组 分屏显示

    我们在上一期使用RTP协议,并进行了配置,打包了视频数据,这一期我们就对发送的数据进行重组,并显示在接受端上.最后对其进行扩展,支持多客户端视频发送,并在接收端分屏显示.完成远程监控的模拟. 先来个效 ...

随机推荐

  1. nodejs中Async详解之一:流程控制

    为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程控制:简化十种 ...

  2. JavaScript类库汇总

    日期处理Moment.js    http://momentjs.cn/  http://momentjs.com/ nodejslinq,jslinq    http://jslinq.codepl ...

  3. Centos7 Zabbix3.2安装

    实验环境: 阿里云 [zabbix@miyan ~]$ cat /etc/redhat-release CentOS Linux release (Core) 不得不说,官方文档确实强大 1.官方文档 ...

  4. python3 函数即变量的使用

    函数即变量的意思是函数被使用时后面不用(),类似变量的使用,具体如下面的示例代码: def say(name): print(name) hi = say hi('你好!') def add(): p ...

  5. 3.10 Templates -- Development Helpers

    一.Development Helpers Handlebar和Ember有好多个辅助器可以使模板开发更容易. 这些辅助器输出变量到浏览器的控制台,或者从模板中激活debugger. 二.Loggin ...

  6. (9)SpriteFrameCache和TextureCache

    简介 SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片.这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把 ...

  7. 手把手教你学node之搭建node.js开发环境

    搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...

  8. (转)SQL Server 2008登录错误:无法连接到(local)的解决

    在一些朋友安装完SQL Server 2008之后大多会遇到连接出错的问题.特别对于我们这样的新手而言简直郁闷的要死,好不容易装玩了又出现了问题.此篇文章意在解决安装步骤没有问题,但安装后无法登录的问 ...

  9. TED #02#

    Amanda Palmer: The art of asking 1. I think people have been obsessed with the wrong question, which ...

  10. Core Java 4

    p272~p273 1.除捕获异常外的另一种异常处理方式:将异常继续传递给方法调用者. 即:在方法首部添加throws说明符号,取代 try catch语句. 对于方法的调用者而言:要么处理异常,要么 ...