Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Bu oddiy ma'lumotlar yozuvchisi analog LDR (Fotoresistor) yordamida muntazam yorug'lik o'lchovlarini olib boradi va ularni Raspberry Pi -dagi matnli faylda saqlaydi. Bu ma'lumotni yozuvchi har 60 soniyada yorug'lik darajasini o'lchaydi va qayd qiladi, bu sizga yorqinlikning uzoq vaqt davomida qanday o'zgarishini kuzatishga imkon beradi.
Agar biz Raspberry Pi bilan o'xshash sensorlardan foydalanmoqchi bo'lsak, biz sensorning qarshiligini o'lchay olamiz. Arduino -dan farqli o'laroq, Raspberry Pi -ning GPIO pinlari qarshilikni o'lchay olmaydi va ularga berilgan kuchlanish ma'lum bir kuchlanishdan (taxminan 2 volt) yuqori bo'lsa, buni sezadi. Ushbu muammoni hal qilish uchun siz analogdan raqamli konvertorga (ADC) foydalanishingiz mumkin yoki uning o'rniga nisbatan arzon kondansatör ishlatishingiz mumkin.
1 -qadam: Sizga nima kerak
- Raspbian o'rnatilgan RaspberryPi. Shuningdek, siz monitorga, sichqoncha va klaviatura yordamida yoki masofaviy ish stoli orqali Pi -ga kirishingiz kerak bo'ladi. Siz Raspberry Pi -ning har qanday modelidan foydalanishingiz mumkin. Agar sizda Pi Zero modellaridan biri bo'lsa, siz GPIO portiga bir nechta bosh pinlarini lehimlashingiz mumkin.
- nurga bog'liq rezistor (LDR yoki fotorezistor sifatida ham tanilgan)
- 1 uF seramika kondansatkichi
- Lehimsiz prototipli jadval
- Erkak -Ayol jumper simlari
2 -qadam: O'z davrangizni yarating
Yuqoridagi sxemani o'z taxtangizga o'rnating, uning tarkibiy qismlarining hech biri tegmasligiga ishonch hosil qiling. Yorug'likka bog'liq rezistor va seramika kondansatör kutupluluğa ega emas, demak manfiy va musbat tokni simga ulash mumkin. Shunday qilib, ushbu komponentlar sizning elektron tizimingizga qanday ulanganligi haqida tashvishlanishingiz shart emas.
O'chirish sxemasini tekshirgandan so'ng, yuqoridagi diagramaga amal qilib, o'tish kabellarini Raspberry Pi GPIO pinlariga yaxshilab ulang.
3 -qadam: Ma'lumotlaringizni o'qish va qayd qilish uchun Python skriptini yarating
Raspberry Pi -da IDLE -ni oching (Menyu> Dasturlash> Python 2 (IDLE)) va yangi loyihani oching (Fayl> Yangi fayl). Keyin quyidagilarni kiriting:
RPi. GPIO -ni GPIO sifatida import qilish
import vaqti import datetime loginterval = 60 #log oralig'i soniyalarda savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27
GPIO.setmode (GPIO. BCM)
cap = 0.000001 #1uf adj = 2.130620985
def o'lchov qarshiligi (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) boshlanish vaqti = time.time () endtime = time.time () while (GPIO.input (mpin) == GPIO. LOW): endtime = time.time () end time-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) oralig'ida: res = (o'lchov qarshiligi (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 esa stime+loginterval> time.time (): #logtime tugaguncha kuting vaqt o'tdi. uxlash (0.0001)
Hujjatlar papkasida loyihangizni datalogger.py (Fayl> Saqlash sifatida) sifatida saqlang.
Endi terminalni oching (Menyu> Aksessuarlar> Terminal) va quyidagi buyruqni kiriting:
python datalogger.py
Skript "lightlevels.txt" nomli matnli faylni yaratadi va har 60 soniyada yangilanadi. Siz bu fayl nomini 6 -qatorda o'zgartirishingiz mumkin. Shuningdek, 5 -qatorni o'zgartirib, ma'lumotlar katalogining yangilanish tezligini sozlashingiz mumkin.