DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)
来源:互联网 发布:linux vi编辑文件 编辑:程序博客网 时间:2024/05/04 14:00
春节了,趁着假期的空闲时间,抽空捣鼓了下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,这个有前人的经验总结,就不展开说,源码如下:
ds18b20.rar
四、curl移植到tiny6410
1、移植openssl到tiny6410。
下载openssl-1.0.0l.tar.gz
解压tar xzvf openssl-1.0.0l.tar.gz
配置编译(ubuntu中进行交叉编译)
1 #!/bin/sh 2 export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5.1/lib/ 3 export CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/include/ 4 export LDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/lib/ 5 export CC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc 6 7 cd openssl-1.0.0l 8 ./config no-asm --prefix=/home/share/tool/tiny6410/openssl os/compiler:/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc 9 make10 make install
2、移植curl到tiny6410。(依赖openssl)
下载openssl-1.0.0l.tar.gz
解压tar xzvf curl-7.35.0.tar.gz
配置编译(ubuntu中进行交叉编译)
1 #!/bin/sh 2 export LD_LIBARY_PATH=/opt/FriendlyARM/toolschain/4.5.1/lib/ 3 export CPPFLAGS=-I/opt/FriendlyARM/toolschain/4.5.1/include/ 4 export LDFLAGS=-L/opt/FriendlyARM/toolschain/4.5.1/lib/ 5 export CC=/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc 6 7 cd curl-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 9 make10 make install
五、yeelink环境
为了实现远程监控功能,在此使用了yeelink基于物联网应用免费的云存储服务器及相关的客户端(android/IOS/微信服务号/微博发布),作为一种物联网应用,该平台确实非常不错。
1、yeelink之注册用户、添加设备、添加传感器、上传数据、取回数据。详情见官网http://www.yeelink.net/
2、根据yeelink的api接口上传数据。在tiny6410 linux系统上采用shell脚本调用curl工具来实现。
1 #!/bin/sh 2 3 #在单引号中填入yeelink给你的API KEY 4 YL_ApiKey='xxxxxxxx' 5 YL_URL=http://api.yeelink.net/v1.0/device/7376/sensor/11615/datapoints 6 temp=$(/dev/shm/read_ds18b20) 7 echo $temp 8 9 upcmd="curl --request POST --data '{\"value\":$temp}' --header U-ApiKey:$YL_ApiKey --verbose $YL_URL"10 11 echo $upcmd|sh
六、busybox crontab使用
1、在crontab服务中加入下面加红的一行, 让脚本每分钟运行一次, 保存退出。
*/1 * * * * /dev/shm/post_ds18b20_data_to_yeelink.sh
2、开启crond服务(tiny6410 linux+qt系统默认未开启)。
1 [root@FriendlyARM crontabs]# crond& 2 [root@FriendlyARM crontabs]# ps 3 PID USER VSZ STAT COMMAND 4 1 root 2992 S init 5 2 root 0 SW [kthreadd] 6 3 root 0 SW [ksoftirqd/0] 7 5 root 0 SW [kworker/u:0] 8 6 root 0 SW< [khelper] 9 346 root 0 SW [sync_supers]10 348 root 0 SW [bdi-default]11 349 root 0 SW< [kblockd]12 359 root 0 SW [khubd]13 455 root 0 SW< [rpciod]14 456 root 0 SW [kworker/0:1]15 464 root 0 SW [khungtaskd]16 465 root 0 SW [kswapd0]17 515 root 0 SW [fsnotify_mark]18 517 root 0 SW< [aio]19 527 root 0 SW< [nfsiod]20 531 root 0 SW< [crypto]21 615 root 0 SW [mtdblock0]22 620 root 0 SW [mtdblock1]23 625 root 0 SW [mtdblock2]24 634 root 0 SW [ubi_bgt0d]25 793 root 0 SW [pvrusb2-context]26 866 root 0 SW [kworker/u:2]27 915 root 0 SW [ubifs_bgt0_0]28 917 root 0 SW [mmcqd/0]29 948 root 2992 S syslogd30 951 root 3312 S /usr/sbin/inetd31 955 root 2028 S /usr/sbin/boa32 958 root 1504 S /usr/bin/led-player33 968 root 18480 S /opt/Qtopia/bin/qpe34 969 root 2992 S init35 970 root 2992 S init36 971 root 2992 S init37 973 root 2992 S init38 979 root 0 SW [kworker/0:2]39 980 root 0 SW [flush-ubifs_0_0]40 987 root 8708 S < /opt/Qtopia/bin/qss41 988 root 12552 S N /opt/Qtopia/bin/quicklauncher42 990 root 3320 S /usr/sbin/telnetd -i43 991 root 3316 S -sh44 1025 root 3320 S /usr/sbin/telnetd -i45 1026 root 3316 S -sh46 1098 root 3312 S crond47 1100 root 3316 R ps48 [root@FriendlyARM crontabs]#
七、实现效果
1、网页浏览效果
2、android客户端显示效果
3、 下面提供了交叉编译后的可执行文件(交叉工具链为:FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc)
ds18b20_bin.rar
使用说明:
1 /** 2 * @file readme.txt 3 * @brief 基于tiny6410、ds18b20、curl的远程温度监测实现说明 4 * @details 5 * @version V1.0.0 6 * @author Richard.hmm 7 * @date 2014-2-4 8 */ 9 10 1、在tiny6410上安装ds18b20驱动11 insmod ds18b20.ko12 13 2、拷贝curl到usr/bin/下14 cp curl /usr/bin/15 16 3、拷贝read_ds18b20和post_ds18b20_data_to_yeelink.sh到tiny6410的内存文件系统/dev/shm中17 cp read_ds18b20 /dev/shm/18 cp post_ds18b20_data_to_yeelink.sh /dev/shm/19 20 4、配置crontab21 [root@FriendlyARM crontabs]# crontab -e22 */1 * * * * /dev/shm/post_ds18b20_data_to_yeelink.sh // 新增任务23 [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
4、Linux下定时执行脚本 http://www.blogjava.net/decode360/archive/2009/09/18/287743.html
5、基于Tiny6410的ds18b20驱动 http://blog.csdn.net/tandesir/article/details/7247558
原文出处:署名(richard.hmm)并注明来源(www.cnblogs.com/IDoIUnderstand/)
原文出处:署名(richard.hmm)并注明来源(www.cnblogs.com/IDoIUnderstand/)
0 0
- DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)
- DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)
- DIY远程控制开关(tiny6410+LED+yeelink+curl)
- DIY远程控制开关(tiny6410+LED+yeelink+curl)
- DIY远程移动图像监测(tiny6410+USB摄像头+motion+yeelink+curl)
- 没有W5100我们也能做yeelink的室内温度监控-基于Arduino和LM35
- DS18B20温度传感器利用LCD显示室内温度
- Raspberry - 监控CPU温度[使用yeelink作温度统计]
- 远程实时监控系统DIY
- 远程实时监控系统DIY
- pcduino在云服务器yeelink平台下实现网页和app对室内的监控。
- Tiny6410 H.264远程视频监控
- Tiny6410 H.264远程视频监控
- 一步步教你使用云端服务器yeelink远程监控
- 一步步教你使用云端服务器yeelink远程监控
- 一步步教你使用云端服务器yeelink远程监控
- DS18B20的温度测量
- DS18B20温度模块.C
- Activity设置style透明后与SurfaceView合用引发的无形命案
- DIY远程移动图像监测(tiny6410+USB摄像头+motion+yeelink+curl)
- hadoop中使用mapreduce编程实例
- 游戏后台推送机制
- 创建列表和卡片
- DIY远程监控室内温度设备(tiny6410+ds18b20+yeelink+curl)
- _ 当我哭泣我没有鞋子穿的时候,我 发现有人却没有了脚
- 使用jacob将excel文件另存为
- zend studio 格式化代码 快捷键
- DLL导出对话框,主对话框程序调用DLL对话框
- TestNG教程系列三:注解annotation及执行情况
- 软件设计经验(一)
- HotSpot和OpenJDK入门
- java中静态代码块的用法 static用法详解