春節了,趁著假期的空閑時間,抽空搗鼓了下tiny6410開發板,發現這個東東塵封許久,很長時間沒用過了。貌似最近物聯網大熱,Google收購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移植到tiny64101、移植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=4682、遠程監控樹莓派BT上傳/下載狀態 http://bbs.yeelink.net/forum.php?mod=viewthread&tid=112&extra=page%3D23、如何使用busybox的cron實現計劃任務 http://bbs.csdn.net/topics/1900172244、Linux下定時執行指令碼 http://www.blogjava.net/decode360/archive/2009/09/18/287743.html5、基於Tiny6410的ds18b20驅動 http://blog.csdn.net/tandesir/article/details/7247558