玩樹莓派也有半年了吧,玩到9月份的時候中斷了一下,因爲我可愛的女兒出生了 ^_^ 這下樹莓派在家也真有應用的場景了。爲了方便今後的使用,先爲樹莓派買了個7寸的電容屏,1024*600分辨率的。這貨怎麼說呢,見仁見智了。方便性易用性確實有,做點隨手點擊就能操作的應用還是可以的,但受制於樹莓派本身的性能,如果打算拿他看網絡視頻則對流暢度千萬別抱太大希望。
作爲練手的應用,先模擬一個帶溫度顯示的時鐘。簡單起見,直接搞成Web版的,到時候瀏覽器F11全屏得了。
(山寨感十足,不喜勿買)
首先,得讓顯示器亮起來。用賣家給的方法一次成功:
修改/boot/config.txt,在文件最後加:
max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
關機。連上顯示器後重新開機。
然後就可以製作網頁了。
製作時鐘並不難,無非就是一堆js和css,網上隨便一搜就有一堆。
獲取溫度也不難,參考
http://blog.csdn.net/ki1381/article/details/51841431。這回簡單的自己焊了個18B20的模塊。
那如何將溫控探頭獲取的數據嵌入網頁,並且支持定時刷新,而又相對獨立於時鐘的刷新呢?
我的思路還是繼續用jQuery和ajax。具體說來細化的步驟如下:
1 編寫一個python腳本(stp.py)用於解析當前溫度數據;
#!/usr/bin/env python
import sys
def GetTemp(filename):
lines = open(filename,'r').readlines()
lineWithTemp = lines[1]
items = lineWithTemp.split('=')
tempStr = items[1]
tempVal = float(tempStr) / 1000.0
return round(tempVal,1)
def main():
tmp = GetTemp("/sys/bus/w1/devices/28-0416549011ff/w1_slave")
print 'T: ' + str(tmp) + ' C'
if __name__ == "__main__":
main()
2 編寫一個php(tp.php),在它裏面調用這個python腳本由此實現數據的讀取。這個php的角色類似於asp.net中的ashx,用header函數指定text/plain;
<?php
ini_set('display_errors','On');
header('Content-type: text/plain');
system('./stp.py');
?>
3 主頁面(a.html)用ajax調用tp.php,並實現定時刷新(5秒);
$(document).ready(function(){
$(function(){
function showTemp()
{
htmlobj = $.ajax({ url: "tp.php", async: true,
success: function () {
$("#lbTemp").html(htmlobj.responseText);
}
});
}
setInterval(showTemp,5000);
});
});
<!--用於顯示溫度的span的id就叫lbTemp-->