树莓派系列3——环境温湿度测量2
前期准备
环境要求
DHT11,树莓派系统,Python,rpi.gpio等组件相关软件安装方式见前章:
http://blog.csdn.net/weixiazailaide/article/details/52743194开启i2c,spi,1wire等
一个意外的惊喜
在设置i2c功能时,偶然发现树莓派里有个更强大的功能 Device Tree (DT) ,在/boot/overlays
发现了很多外设驱动,于是仔细阅读了README
文件,在272
行看到了DHT11驱动加载方式,对上章程序进行了简单的修改,使之更加快速准确
修改config.txt后,我是一脸懵逼,去哪找测量结果?☺
然后开始大量查找资料,看输出结果如何查询,费了半天工夫,也没找到相关资料,WTF???
又仔细拜读README文件,没找到任何关于输出结果的介绍,(黑人问号脸 在最后后一行发现个连接,好神奇呀,点开去看,全英语的,U TM DOU I,欺负我英语差。。。
很伤,只能一边翻译一边瞅,瞅完也米看懂啥意思
在我决定放弃的时候,我打算最后博一下,去sys/devices文件下挨个去找,功夫不负有心人,终于找到带有dht11的文件,点进去,挨个打开查看,最后在iio:device0里找到 in_humidityrelative_input和in_temp_input俩个文件,分别对应湿度和温度,但为啥有时打开报错,有时正常呢,心好累
但是iio这个新名词又是什么鬼,求老司机带带我
大家感受下我得之不易的iio文件夹
/sys/devices/platform/dht11@0/iio:device0
├── dev
├── in_humidityrelative_input
├── in_temp_input
├── name
├── of_node -> ../../../../firmware/devicetree/base/dht11@0
├── power
│ ├── autosuspend_delay_ms
│ ├── control
│ ├── runtime_active_time
│ ├── runtime_status
│ └── runtime_suspended_time
├── subsystem -> ../../../../bus/iio
└── uevent
3 directories, 10 files
也感受下不明觉厉的README文件
cat /boot/overlays/readme
在config.txt中添加i2c,spi,以及对DHT11的支持
sudo vim /boot/config.txt
config.txt
#开启i2c
dtparam=i2c_arm=on
#开启spi
dtparam=spi=on
#DHT11支持
dtoverlay=dht11
温湿度测量
重写温湿度测量程序
- 备份原文件
cd /home/pi/helloworld/temhum
mv temhum.py temhum.bak.py
- 建立新的程序代码temhum.py
vim temhum.py
temhum.py
#!/usr/bin/env python
# encoding: utf-8
import commands
#获取温度
def getTemperature():
while True:
res=commands.getoutput("cat /sys/devices/platform/dht11@0/iio:device0/in_temp_input")
if res.isdigit():
return int(res)/1000
#获取湿度
def getHumidity():
while True:
res=commands.getoutput("cat /sys/devices/platform/dht11@0/iio:device0/in_humidityrelative_input")
if res.isdigit():
return int(res)/1000
#温湿度
def getTemHum():
result="温度: "+str(getTemperature())+"℃ 湿度:"+str(getHumidity())+"%"
return result
测试效果
- 按照惯例重启uwsgi服务
sudo systemctl restart emperor.uwsgi.service
在树莓派浏览器输入
http://127.0.0.1/temhum
或者在电脑浏览器输入 http://raspberrypi/temhum
成功
后记
- 这样写的Python程序简单了许多有木有,我就想玩个树莓派装个B,就又是内核又是驱动的,心好累
- 界面美化正在学习,求教程,要不几个字太坑爹了
- 最后附上树莓派官方关于DT介绍的连接和在
www.kernel.org
找到的疑似关于iio的介绍 - 求老司机出个树莓派使用overlays文件下所有DTB的系列文章,然后再出个DTB编写指南啥的,