İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu basit veri kaydedici, analog bir LDR (Photoresistor) ile düzenli ışık ölçümleri alır ve bunları Raspberry Pi'nizde bir metin dosyasında saklar. Bu veri kaydedici, her 60 saniyede bir ışık seviyesini ölçer ve kaydeder, böylece parlaklığın uzun bir süre boyunca nasıl değiştiğini izlemenizi sağlar.
Raspberry Pi ile analog sensörler kullanmak istiyorsak sensörün direncini ölçebilmemiz gerekir. Arduino'dan farklı olarak, Raspberry Pi'nin GPIO pinleri direnci ölçemez ve sadece kendilerine sağlanan voltajın belirli bir voltajın (yaklaşık 2 volt) üzerinde olup olmadığını algılayabilir. Bu sorunun üstesinden gelmek için Analogdan Dijitale Dönüştürücü (ADC) kullanabilir veya bunun yerine nispeten ucuz bir kapasitör kullanabilirsiniz.
Adım 1: Neye İhtiyacınız Olacak?
- Raspbian yüklü bir RaspberryPi. Ayrıca bir Monitör, Fare ve Klavye kullanarak veya Uzak Masaüstü aracılığıyla Pi'ye erişebilmeniz gerekir. Raspberry Pi'nin herhangi bir modelini kullanabilirsiniz. Pi Zero modellerinden birine sahipseniz, bazı başlık pinlerini GPIO bağlantı noktasına lehimlemek isteyebilirsiniz.
- Hafif Bağımlı Direnç (LDR veya Fotodirenç olarak da bilinir)
- 1 uF Seramik Kondansatör
- Lehimsiz Prototip Oluşturma Breadboard
- Bazı Erkek - Dişi atlama telleri
Adım 2: Devrenizi Oluşturun
Yukarıdaki devreyi, bileşen uçlarından hiçbirinin dokunmadığından emin olarak devre tahtanıza kurun. Işığa Bağlı Direnç ve Seramik Kondansatörün polaritesi yoktur, bu da her iki kabloya da negatif ve pozitif akımın bağlanabileceği anlamına gelir. Bu nedenle, devrenizde bu bileşenlerin hangi şekilde bağlandığı konusunda endişelenmenize gerek yoktur.
Devrenizi kontrol ettikten sonra yukarıdaki şemayı takip ederek jumper kablolarını Raspberry Pi'nizin GPIO pinlerine dikkatlice bağlayın.
3. Adım: Verilerinizi Okumak ve Günlüğe Kaydetmek için bir Python Komut Dosyası Oluşturun
Raspberry Pi'nizde IDLE'yi açın (Menü > Programlama > Python 2 (IDLE)) ve yeni bir proje açın (Dosya > Yeni Dosya). Ardından aşağıdakini yazın:
RPi. GPIO'yu GPIO olarak içe aktar
içe aktarma saati içe aktarma datetime loginterval=60 Saniye cinsinden #log aralığı savefilename="lightlevels.txt" SensorPin=17 TriggerPin=27
GPIO.setmode(GPIO. BCM)
cap=0.000001 #1uf adj=2.130620985
def ölçü direnci(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 () dönüş bitiş zamanı-başlangıç zamanı def writeline(txt, fn): f = open(fn, 'a') f.write(txt+'\n') f.close() i=0 t=0 iken True: stime= a in range(1, 11) için time.time(): res=(measureresistance(SensorPin, TriggerPin)/cap)*adj i=i+1 t=t+res eğer a==10: t=t/i print(t) writeline(str(datetime.datetime.now())+", "+str(t), savefilename) i=0 t=0 iken stime+loginterval>time.time(): #logtime bitene kadar bekle geçen zaman.uyku(0.0001)
Projenizi Datalogger.py (Dosya > Farklı Kaydet) olarak Belgeler klasörünüze kaydedin.
Şimdi Terminal'i açın (Menü > Aksesuarlar > Terminal) ve aşağıdaki komutu yazın:
piton veri kaydedici.py
Komut dosyası "lightlevels.txt" adlı bir metin dosyası oluşturacak ve her 60 saniyede bir güncelleyecektir. Bu dosya adını 6. satırda değiştirebilirsiniz. Ayrıca 5. satırı değiştirerek veri kaydedicinin ne sıklıkla güncelleneceğini de ayarlayabilirsiniz.