Вот что я пытаюсь сделать:
У нас есть машины, которые мы хотим контролировать. Мы хотим отслеживать и регистрировать, когда машина запускается и машина останавливается.
Мы подключили машину «старт» к контакту 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)