Съдържание:

Създаване на регистратор на данни с Raspberry Pi: 3 стъпки (със снимки)
Създаване на регистратор на данни с Raspberry Pi: 3 стъпки (със снимки)

Видео: Създаване на регистратор на данни с Raspberry Pi: 3 стъпки (със снимки)

Видео: Създаване на регистратор на данни с Raspberry Pi: 3 стъпки (със снимки)
Видео: Home Assistant - Сървър за автоматизация на архивиране 2024, Ноември
Anonim
Създаване на регистратор на данни с Raspberry Pi
Създаване на регистратор на данни с Raspberry Pi

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

Ако искаме да използваме аналогови сензори с Raspberry Pi, ще трябва да можем да измерим съпротивлението на сензора. За разлика от Arduino, GPIO щифтовете на Raspberry Pi не могат да измерват съпротивлението и могат да усетят само ако подаденото към тях напрежение е над определено напрежение (приблизително 2 волта). За да преодолеете този проблем, можете да използвате аналогово -цифров конвертор (ADC) или вместо това да използвате сравнително евтин кондензатор.

Стъпка 1: Какво ще ви трябва

Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва
Какво ще ви трябва

- RaspberryPi с вече инсталиран Raspbian. Също така ще трябва да имате достъп до Pi с помощта на монитор, мишка и клавиатура или чрез отдалечен работен плот. Можете да използвате всеки модел на Raspberry Pi. Ако имате един от моделите Pi Zero, може да искате да запоите някои щифтове за заглавки към порта GPIO.

- Светлозависим резистор (известен също като LDR или фоторезистор)

- Керамичен кондензатор 1 uF

- Електронна дъска за прототипиране без запояване

- Някои проводници от мъжки към женски

Стъпка 2: Изградете своята схема

Изградете вашата верига
Изградете вашата верига
Изградете вашата верига
Изградете вашата верига

Изградете горната схема на макета си, като се уверите, че нито един от компонентите не докосва. Резисторът, зависим от светлината, и керамичният кондензатор нямат полярност, което означава, че отрицателен и положителен ток могат да бъдат свързани към двата проводника. Следователно не е нужно да се притеснявате по какъв начин тези компоненти са свързани във вашата схема.

След като проверите веригата си, внимателно свържете джъмперните кабели към GPIO щифтовете на Raspberry Pi, като следвате горната диаграма.

Стъпка 3: Създайте скрипт на Python, за да четете и регистрирате данните си

Създайте скрипт на Python, за да четете и регистрирате вашите данни
Създайте скрипт на Python, за да четете и регистрирате вашите данни

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

импортирайте RPi. GPIO като GPIO

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

GPIO.setmode (GPIO. BCM)

капачка = 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 () връща endtime-starttime def writeline (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 = (измерва съпротивлението (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 (): #изчакайте докато logtime има изминало време.сън (0,0001)

Запазете проекта си като datalogger.py (File> Save As) в папката Documents.

Сега отворете Терминал (Меню> Аксесоари> Терминал) и въведете следната команда:

python datalogger.py

Скриптът ще създаде текстов файл с име "lightlevels.txt" и ще го актуализира на всеки 60 секунди. Можете да промените това име на файл на ред 6. Можете също да регулирате колко често регистърът на данни се актуализира, като промените ред 5.

Препоръчано: