用树莓派学编程系列3——环境温湿度测量2
来源:互联网 发布:天刀女捏脸数据导入 编辑:程序博客网 时间:2024/04/30 06:31
树莓派系列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
#开启i2cdtparam=i2c_arm=on#开启spidtparam=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-8import 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编写指南啥的,
参考文档
树莓派官方对于DT的介绍
linux内核关于iio的说明
- 用树莓派学编程系列3——环境温湿度测量2
- 用树莓派学编程系列2——环境温湿度测量
- 用树莓派学编程系列4——环境光照强度测量
- 基于W5100的网络化环境温湿度测量系统
- 温湿度无线测量探索
- arduino学习系列——DHT11温湿度传感器的使用
- CC2530之DHT11温湿度测量
- 传感器系列3--温湿度传感器之DHT11
- CR1000编程系列03 电压测量
- 3自定义View系列课程学习笔记——之Measure测量
- 温湿度计——DHT11(液晶显示)
- 传感器系列 温湿度传感器DHt11
- GPU编程系列之——环境配置
- GPU编程系列之(一)——环境配置
- Arduino使用DHT11温湿度传感器获取环境温湿度
- Arduino+ESP8266WIFI(2)——DHT11温湿度数据自动上传
- 传感器系列之4.5温湿度传感器
- 如何才能更持久系列之——如何才能准确测量APP的功耗
- sqoop exort data from DB2 or Oracle to Hadoop
- Clojure 学习入门(11)- 宏 macro
- 文章标题
- Codeforces Round #358 (Div. 2) E. Alyona and Triangles (找面积最大三角形)
- 404.leetcode Sum of Left Leaves(easy)[二叉树 递归]
- 用树莓派学编程系列3——环境温湿度测量2
- 希尔排序算法
- java常用函数
- 使用jQuery更新和交互
- Android学习计划
- Clojure 学习入门(12)- map/pmap
- Python:继承
- 神经网络NeualNet代码
- 四舍五入以及小数点的切割