import RPi.GPIO as GPIO
import time
#States File Store Location
ramdisk = "/root/ramdisk0/"
#Init GPIO
def init():
#No GPIO warnings.
#GPIO.setwarnings(False)
#Set mode
GPIO.setmode(GPIO.BOARD)
#Set Which Pin
GPIO.setup(7,GPIO.IN)
pass
def detct():
while True:
curtime = time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time()))
#High level
if GPIO.input(7) == True:
#Alert and update states file to 1(Triggered)
alert(curtime)
writedown('1')
else:
writedown('0')
continue
time.sleep(2)
def alert(curtime):
print(curtime + "Senser Triggered.")
#Update Triggered
def writedown(states):
with open(ramdisk+'human-senser.txt','w+') as f:
f.write(states)
time.sleep(2)
#Starting Loop
init()
detct()
GPIO.cleanup()
imes 发表于 2019-3-18 23:52
代码逻辑问题,导致一直在IO硬盘。
VPSMarket 发表于 2019-3-18 23:50
Python 本来就是单进程 你一个循环里面才sleep 2 而且树莓派的处理能力毕竟是弱 ...
bearqq 发表于 2019-3-19 08:20
writedown('0')
continue
time.sleep(2)
mymyhope 发表于 2019-3-19 09:16
好的!我试试把sleep放到while的最前面。谢谢大佬。
flcx 发表于 2019-3-19 13:58
既然你的永真循环里面if...else后面就一个sleep,又想每隔2秒做一次判断,干嘛还来个continue跳出本循环 ...
| 欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) | Powered by Discuz! X3.4 |