DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)


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

  一、目的       DIY一个可以简易的远程监控室内温度设备,实现通过web/android/ios/微信进行查看家中温度的电子设备   二、软硬件环境       硬件:tiny6410+ds18b20+有线网络 or USB wifi       软件:linux+QT/curl/crontab/shell/YeeLink服务(云存储、各种接入方式web/android/ios/微信甚至微博、邮件及相关社交网络分享,这点很赞)   三、ds18b20驱动及应用 见参考资料5,这个有前人的经验总结,就不展开说,源码如下:  ds18b20.rar     四、curl移植到tiny6410 1、移植openssl到tiny6410。 下载openssl-1.0.0l.tar.gz 解压tar xzvf openssl-1.0.0l.tar.gz 配置编译(ubuntu中进行交叉编译)
 #!/bin/
 export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/./lib/
 export CPPFLAGS=-I/opt/FriendlyARM/toolschain/./include/
 export LDFLAGS=-L/opt/FriendlyARM/toolschain/./lib/
 export CC=/opt/FriendlyARM/toolschain/./bin/arm-linux-
 
 cd openssl-.
 ./config no-asm --prefix=/home/share/tool/tiny6410/openssl os/compiler:/opt/FriendlyARM/toolschain/./bin/arm-linux-
 
  

 

2、移植curl到tiny6410。 下载openssl-1.0.0l.tar.gz 解压tar xzvf curl-7.35.0.tar.gz 配置编译(ubuntu中进行交叉编译)
 #!/bin/
 export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/./lib/
 export CPPFLAGS=-I/opt/FriendlyARM/toolschain/./include/
 export LDFLAGS=-L/opt/FriendlyARM/toolschain/./lib/
 export CC=/opt/FriendlyARM/toolschain/./bin/arm-linux-
 
 cd curl-.
 ./configure --host=i686 --target=arm-linux --prefix=/home/share/tool/tiny6410/curl --with-ssl=/home/share/tool/tiny6410/openssl --with-random=/dev/ 
  

 

五、yeelink环境      为了实现远程监控功能,在此使用了yeelink基于物联网应用免费的云存储服务器及相关的客户端(android/IOS/微信服务号/微博发布),作为一种物联网应用,该平台确实非常不错。 1、yeelink之注册用户、添加设备、添加传感器、上传数据、取回数据。详情见官网http://www.yeelink.net/ 2、根据yeelink的api接口上传数据。在tiny6410 linux系统上采用shell脚本调用curl工具来实现。  
 #!/bin/
 
  YL_ApiKey=
 YL_URL=http:
 temp=$(/dev/shm/  
 upcmd=
 
  $upcmd|

  

六、busybox crontab使用 1、在crontab服务中加入下面加红的一行, 让脚本每分钟运行一次, 保存退出。 2、开启crond服务(tiny6410 linux+qt系统默认未开启)。  
 [root@FriendlyARM crontabs]# crond&
 [root@FriendlyARM crontabs]# 
       root            root               root          SW   [ksoftirqd/      root          SW   [kworker/u:      root          SW<    root             root          SW   [bdi-    root          SW<    root             root          SW<    root          SW   [kworker/:    root             root             root             root          SW<    root          SW<    root          SW<    root             root             root             root             root          SW   [pvrusb2-    root          SW   [kworker/u:    root             root          SW   [mmcqd/    root          root       S    /usr/sbin/    root       S    /usr/sbin/    root       S    /usr/bin/led-    root      S    /opt/Qtopia/bin/    root          root          root          root          root          SW   [kworker/:    root          SW   [flush-    root       S <  /opt/Qtopia/bin/    root      S N  /opt/Qtopia/bin/    root       S    /usr/sbin/telnetd -    root       S    -
  root       S    /usr/sbin/telnetd -  root       S    -
  root        root       R    
 [root@FriendlyARM crontabs]# 

 

七、实现效果 1、网页浏览效果   2、android客户端显示效果   3、 下面提供了交叉编译后的可执行文件(交叉工具链为:FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc) ds18b20_bin.rar 使用说明:
         
 
   
 、拷贝curl到usr/bin/  curl /usr/bin/
 
 、拷贝read_ds18b20和post_ds18b20_data_to_yeelink.sh到tiny6410的内存文件系统/dev/  read_ds18b20 /dev/shm/
  post_ds18b20_data_to_yeelink. /dev/shm/
 
  [root@FriendlyARM crontabs]# crontab - */ * * * * /dev/shm/post_ds18b20_data_to_yeelink.  
 [root@FriendlyARM crontabs]# 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 4、Linux下定时执行脚本 http://www.blogjava.net/decode360/archive/2009/09/18/287743.html 5、基于Tiny6410的ds18b20驱动 http://blog.csdn.net/tandesir/article/details/7247558    

相关内容