python控制风扇_如何使用Python在raspberrypi3上使用GPIO控制风扇?
你很亲密。这两条线有问题:temp = os.popen('vcgencmd measure_temp').readline()
if temp > 65:
这里,temp是一个字符串。在尝试将temp与整数进行比较之前,需要将其转换为整数。假设您正在读取的行是一个与某个温度相对应的十进制字符串,您只需调用int(),如下所示:
^{pr2}$
更新因为您发布了您实际尝试解析的输出,所以我们可以使用正则表达式来匹配输出,并使用^{} module。我们还将把它放在一个函数中:def measure_temp():
raw = os.popen('vcgencmd measure_temp').readline()
m = re.match("temp=(\d+\.?\d*)'C", raw)
if not m:
raise ValueError("Unexpected temperature string: " + raw)
return float(m.group(1))
temp = measure_temp()
注意,我在字符串中的实际温度小数点周围使用了一个捕捉组,并使用m.group(1)访问它。在
现在我们把它放在一起。另外,当代码没有达到预期效果时,包含一些“调试打印”非常有用,例如:def measure_temp():
raw = os.popen('vcgencmd measure_temp').readline()
m = re.match("temp=(\d+\.?\d*)'C", raw)
if not m:
raise ValueError("Unexpected temperature string: " + raw)
return float(m.group(1))
temp = measure_temp()
print 'Temperature from vcgencmd: {}'.format(temp)
if temp > 65:
print 'Turning on GPIO 4'
GPIO.output(4, True)
else:
print 'Turning off GPIO 4'
GPIO.output(4, False)
一旦你的基础工作起来,你还将遇到其他一些事情:
脚本检查温度并将GPIO切换一次。如果你想让这个东西像恒温器一样工作,你需要使用一个while循环继续执行这些操作。在
如果你的while循环运行得非常快,并且温度在你的设定点附近波动(65),你会发现你的代码快速地打开/关闭风扇。在系统中添加一点hysteresis可能会有帮助。例如,如果你把家里的恒温器(暖气)调到70度,它可能会在69度打开,但在71度关闭。或者,如果它在过去的X秒内已经改变了状态,那么它可能不会改变状态。在
最简单的解决方案是在两次检查之间短时间内sleep():while True: # Loop forever
# Read the current temperature
temp = os.popen('vcgencmd measure_temp').readline()
temp = int(temp)
print 'Temperature from vcgencmd: {}'.format(temp)
# Control the fan
if temp > 65:
print 'Turning on GPIO 4'
GPIO.output(4, True)
else:
print 'Turning off GPIO 4'
GPIO.output(4, False)
# Wait before the next iteration
time.sleep(5)
python控制风扇_如何使用Python在raspberrypi3上使用GPIO控制风扇?相关推荐
- python自动控制程序_巧用 python 脚本控制你的C程序
python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为. 作为例子,本 ...
- python递归函数例题_递归案例python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...
- python len函数_知识清单Python必备的69个函数,你掌握了吗?
本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...
- python qq模块_常用的Python模块
目录 1.使用copy模块来复制 >>> class Animal: def _init_(self, species, number_of_legs, color): self.s ...
- python优化网站_[练习] 用PYTHON来优化网站中的图片
我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...
- python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践
作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...
- python 生成器 原理_你知道python中的函数、生成器的工作原理吗?
1.python中函数的工作原理 python的解释器,也就是python.exe(c编写)会用PyEval_EvalFramEx(c函数)运行foo()函数 首先会创建一个栈帧(stack Fram ...
- python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)
就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...
- python 调用控制台_如何使用Python的交互控制台
简介 Python的交互控制台(也叫做Python解释器,或是Python Shell)为程序员提供了"运行指令"和"不创建文件测试测试代码"的快速途径. 交互 ...
- python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践
在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Oracle API)就是一个例子.使用 Computronix 的 cx_Oracle ...
最新文章
- 使用cmd将磁盘转化为GPT格式
- i++ 和++i的区别
- ajax静态页面实例,AJAX实例:Ajax实现静态页面分页
- Tailwindcss尤大神都fork了,是未来的趋势?
- 一步步编写操作系统 47 elf格式文件分析实验
- java线程锁标记_java 线程 中断标志位
- 如何在ReactJS中使用FastReport Core Web Report
- 计算机一级信息技术基础知识,计算机一级考试之信息技术基础.doc
- 用了Python这么久,你连这个都没试过?
- matlab fft变换后的相位精度问题_MATLAB曲线拟合及Fourier分析
- 兄弟打印机内存已满清零方法_兄弟打印机全部清零操作方法
- 【IAST安全左移最佳工具】
- 大数据分析技术种类与应用
- 计算机图形学---常用颜色模型汇总(RGB,CMY,HSV)
- 无限地球危机的观看顺序
- 一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程
- 十二、用卡诺图化简真值表(1)
- 【DEBUG】2021-06-27 不定期的自我检讨002
- 报名即可得充值卡,EPLAN寻找中国好设计师活动火爆进行中!
- 高纯氟聚合物(PFA)树脂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- 【图像配准】基于matlab Harris+SIFT图像配准【含Matlab源码 1532期】
- 毕设题目:Matlab答题卡识别
- php 的主要功能和特点,PHPMailer的主要功能特点和简单使用说明
- mysql存储food_Mysql存储过程
- (PyTorch0.4.0) AttributeError: module 'torch' has no attribute 'flatten'
- 创建虚拟机与安装系统
- 频率单位Hz、MHz、GHz、THz、PHz、EHz换算关系
- CODING Pages 服务全面升级,更快更稳更可靠!
- nginx limit配置参数解读
- Java分布式服务框架Dubbo初探(待实践)