Как читать несколько датчиков одновременно
У меня есть малиновый пи и пять датчиков; три - это водонепроницаемые датчики температуры, а два других - датчики влажности / температуры. Каков наилучший способ считывания всех датчиков одновременно и сохранения их данных в текстовых файлах? Я использую python3, и у меня уже есть код, хранящий отдельные показания датчика в текстовых файлах, но на данный момент я должен запустить разные сценарии для каждого датчика. Я хочу объединить пять разных сценариев в один сценарий. Будет ли для этого использоваться модуль с тремя классификациями? Например, один класс используется для получения данных о водонепроницаемой температуре, другой класс для сбора данных с датчика влажности и один последний класс для записи данных в текстовые файлы? Это очень новость с моей стороны, чтобы спросить, но я просто не понимаю гнева обмена стеками, я по образованию инженер-механик, но в настоящее время я работаю инженером по встроенным системам. Единственный парень, который работает со мной, - очень опытный программист, и он очень снисходительный, когда он объясняет вещи, поэтому мне трудно учиться, просто анализируя его код, поэтому я и пришел сюда. Я надеюсь, что вы понимаете, и я буду очень благодарен за помощь.
2 ответа
Вы можете либо прочитать один датчик, а затем другой в цикле. Я не уверен, как выглядит код для чтения данных, но я думаю, что это возможно. Если нет, вам придется использовать многопоточную систему ( https://docs.python.org/3/library/threading.html).
Наличие нескольких потоков означает, что у вас одновременно работает несколько блоков кода, это сопряжено с некоторыми сложностями, но не должно быть слишком сложно просто запустить два потока одновременно. Надеюсь, это поможет, удачи в вашем проекте.
Также, если вы можете написать скрипт bash, чтобы запустить все 5 скриптов одновременно, вот так:
python3 script1.py &
python3 script2.py &
python3 script3.py &
и затем запустите этот файл, чтобы начать все сразу.
Я сделал проект с rpi4, используя MQ135(датчик газа), FC-28 (датчик почвы) и датчик ldr. вы можете попробовать по этим ссылкам запустить несколько датчиков в одном скрипте