你很亲密。这两条线有问题: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控制风扇?相关推荐

  1. python自动控制程序_巧用 python 脚本控制你的C程序

    python是一门艺术语言,除了开发桌面程序,还能够开发网络应用,数据库应用,还可以代替shell编写一些的实用脚本,本文主要讲述了如何利用 python 程序控制你的 C 程序的行为. 作为例子,本 ...

  2. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  3. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  4. python qq模块_常用的Python模块

    目录 1.使用copy模块来复制 >>> class Animal: def _init_(self, species, number_of_legs, color): self.s ...

  5. python优化网站_[练习] 用PYTHON来优化网站中的图片

    我到公司以来,第一次加班,哇,加一晚上加一上午,现在还没下班的迹象,555,困. 对于网站中的一些关键的页面,多重缓存.静态化.程序代码优化--之外,为了提高用户打开页面的速度,图片是必须要优化的. ...

  6. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...

  7. python 生成器 原理_你知道python中的函数、生成器的工作原理吗?

    1.python中函数的工作原理 python的解释器,也就是python.exe(c编写)会用PyEval_EvalFramEx(c函数)运行foo()函数 首先会创建一个栈帧(stack Fram ...

  8. python正则表达式操作指南_比较详细Python正则表达式操作指南(re使用)

    就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.使用这个小型语言,你可以为想要匹配的相应字符串集指定规则:该 ...

  9. python 调用控制台_如何使用Python的交互控制台

    简介 Python的交互控制台(也叫做Python解释器,或是Python Shell)为程序员提供了"运行指令"和"不创建文件测试测试代码"的快速途径. 交互 ...

  10. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Oracle API)就是一个例子.使用 Computronix 的 cx_Oracle ...

最新文章

  1. 使用cmd将磁盘转化为GPT格式
  2. i++ 和++i的区别
  3. ajax静态页面实例,AJAX实例:Ajax实现静态页面分页
  4. Tailwindcss尤大神都fork了,是未来的趋势?
  5. 一步步编写操作系统 47 elf格式文件分析实验
  6. java线程锁标记_java 线程 中断标志位
  7. 如何在ReactJS中使用FastReport Core Web Report
  8. 计算机一级信息技术基础知识,计算机一级考试之信息技术基础.doc
  9. 用了Python这么久,你连这个都没试过?
  10. matlab fft变换后的相位精度问题_MATLAB曲线拟合及Fourier分析
  11. 兄弟打印机内存已满清零方法_兄弟打印机全部清零操作方法
  12. 【IAST安全左移最佳工具】
  13. 大数据分析技术种类与应用
  14. 计算机图形学---常用颜色模型汇总(RGB,CMY,HSV)
  15. 无限地球危机的观看顺序
  16. 一个想法(续三):一份IT技术联盟创业计划书,开启众筹创业征程
  17. 十二、用卡诺图化简真值表(1)
  18. 【DEBUG】2021-06-27 不定期的自我检讨002
  19. 报名即可得充值卡,EPLAN寻找中国好设计师活动火爆进行中!
  20. 高纯氟聚合物(PFA)树脂的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 【图像配准】基于matlab Harris+SIFT图像配准【含Matlab源码 1532期】
  2. 毕设题目:Matlab答题卡识别
  3. php 的主要功能和特点,PHPMailer的主要功能特点和简单使用说明
  4. mysql存储food_Mysql存储过程
  5. (PyTorch0.4.0) AttributeError: module 'torch' has no attribute 'flatten'
  6. 创建虚拟机与安装系统
  7. 频率单位Hz、MHz、GHz、THz、PHz、EHz换算关系
  8. CODING Pages 服务全面升级,更快更稳更可靠!
  9. nginx limit配置参数解读
  10. Java分布式服务框架Dubbo初探(待实践)