樹莓派小顯示器模擬帶溫度顯示的時鐘



玩樹莓派也有半年了吧,玩到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-->





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章