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