Оглавление:

Создание регистратора данных на Raspberry Pi: 3 шага (с изображениями)
Создание регистратора данных на Raspberry Pi: 3 шага (с изображениями)

Видео: Создание регистратора данных на Raspberry Pi: 3 шага (с изображениями)

Видео: Создание регистратора данных на Raspberry Pi: 3 шага (с изображениями)
Видео: Основы цифровой электроники с Raspberry Pi и Python 2024, Июль
Anonim
Создание регистратора данных с Raspberry Pi
Создание регистратора данных с Raspberry Pi

Этот простой регистратор данных выполняет регулярные измерения освещенности с помощью аналогового фоторезистора (LDR) и сохраняет их в текстовом файле на вашем Raspberry Pi. Этот регистратор данных будет измерять и записывать уровень освещенности каждые 60 секунд, позволяя вам отслеживать, как яркость изменяется с течением времени.

Если мы хотим использовать аналоговые датчики с Raspberry Pi, нам необходимо иметь возможность измерять сопротивление датчика. В отличие от Arduino, контакты GPIO Raspberry Pi не могут измерять сопротивление и могут определять, только если подаваемое на них напряжение выше определенного напряжения (примерно 2 вольта). Чтобы решить эту проблему, вы можете использовать аналого-цифровой преобразователь (АЦП) или вместо него использовать относительно дешевый конденсатор.

Шаг 1. Что вам понадобится

Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится
Что тебе понадобится

- RaspberryPi с уже установленным Raspbian. Вам также потребуется иметь доступ к Pi с помощью монитора, мыши и клавиатуры или через удаленный рабочий стол. Вы можете использовать любую модель Raspberry Pi. Если у вас есть одна из моделей Pi Zero, вы можете припаять несколько контактов заголовка к порту GPIO.

- Светозависимый резистор (также известный как LDR или фоторезистор)

- Керамический конденсатор емкостью 1 мкФ

- Макетная плата для прототипирования без пайки

- Некоторые перемычки между мужчинами и женщинами

Шаг 2: Создайте свою схему

Создайте свою схему
Создайте свою схему
Создайте свою схему
Создайте свою схему

Постройте указанную выше схему на своей макетной плате, убедившись, что ни один из выводов компонентов не соприкасается. Светозависимый резистор и керамический конденсатор не имеют полярности, что означает, что отрицательный и положительный ток могут быть подключены к любому выводу. Поэтому вам не нужно беспокоиться о том, каким образом эти компоненты были подключены в вашей цепи.

После того, как вы проверили свою схему, осторожно подключите перемычки к контактам GPIO вашего Raspberry Pi, следуя приведенной выше схеме.

Шаг 3. Создайте скрипт Python для чтения и регистрации ваших данных

Создайте скрипт Python для чтения и регистрации ваших данных
Создайте скрипт Python для чтения и регистрации ваших данных

Откройте IDLE на своем Raspberry Pi (Меню> Программирование> Python 2 (IDLE)) и откройте новый проект (Файл> Новый файл). Затем введите следующее:

импортировать RPi. GPIO как GPIO

время импорта import datetime loginterval = 60 # интервал журнала в секундах savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27

GPIO.setmode (GPIO. BCM)

cap = 0.000001 # 1uf adj = 2.130620985

def Измерение сопротивления (mpin, tpin):

GPIO.setup (mpin, GPIO. OUT) GPIO.setup (tpin, GPIO. OUT) GPIO.output (mpin, False) GPIO.output (tpin, False) time.sleep (0.2) GPIO.setup (mpin, GPIO. IN) time.sleep (0.2) GPIO.output (tpin, True) starttime = time.time () endtime = time.time () while (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () return endtime-starttime defwriteline (txt, fn): f = open (fn, 'a') f.write (txt + '\ n') f.close () i = 0 t = 0 while True: stime = time.time () для a в диапазоне (1, 11): res = (measureresistance (SensorPin, TriggerPin) / cap) * adj i = i + 1 t = t + res, если a == 10: t = t / i print (t) Writeline (str (datetime.datetime.now ()) + "," + str (t), savefilename) i = 0 t = 0 while stime + loginterval> time.time (): # ждать, пока время входа не будет прошло time.sleep (0,0001)

Сохраните свой проект как datalogger.py (Файл> Сохранить как) в папке «Документы».

Теперь откройте Терминал (Меню> Стандартные> Терминал) и введите следующую команду:

python datalogger.py

Сценарий создаст текстовый файл с именем «lightlevels.txt» и будет обновлять его каждые 60 секунд. Вы можете изменить это имя файла в строке 6. Вы также можете настроить частоту обновления регистратора данных, изменив строку 5.

Рекомендуемые: