这就是我想要做的:
我们有要监视的机器正在工作。我们想监视和记录机器启动和停止的时间。
我们已将机器“启动”连接到引脚17,并将机器“停止”连接到引脚22,因此,在循环完成/正确时,每个引脚应变为“低”,并将日志记录在CSV文件中。
它们永远不应同时低。而且一旦机器启动变低,它需要等到机器停止变低,然后再记录机器启动。它基本上只是永远在启动/停止之间循环,每次发生时都记录日志。 我还增加了轻微的睡眠延迟,因为它会记录每纳秒的时间。
它记录日期/时间,1或0,以及对网络共享上CSV文件的注释。
我有一个脚本可以自动创建网络地图。顶部附近的sudo部分是这样,因此我可以打开该文件夹并对其进行写入。
这是我下面的脚本,这可以满足我的需求吗?
try:
import RPi.GPIO as GPIO
except RuntimeError:
print("Error importing RPi.GPIO! Try using 'sudo' to run your script, or run shell as admin")
import datetime
import time
import os
import sys
import subprocess
if os.geteuid() != 0:
os.execvp('sudo', ['sudo', 'python3'] + sys.argv)
# do root things
cyclestart = 17
cyclestop = 22
low = False
GPIO.setmode(GPIO.BCM)
GPIO.setup(cyclestop, GPIO.IN)
GPIO.setup(cyclestart, GPIO.IN)
while True: #outer loop runs (checks) indefintely
if GPIO.input(cyclestop) is GPIO.HIGH and not low:
low = True
now = datetime.datetime.now()
csvresult = open("/home/pi/shares/dc4share/results.csv","a")
csvresult.write(str(now) + "," + "Cycle Stop" + "\n")
csvresult.close
time.sleep (3)
if GPIO.input(cyclestart) is GPIO.HIGH and low:
low = False
now = datetime.datetime.now()
csvresult = open("/home/pi/shares/dc4share/results.csv","a")
csvresult.write(str(now) + "," + "Cycle Start" + "\n")
csvresult.close
time.sleep(3)