Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Ovaj jednostavni zapisnik podataka redovito vrši mjerenje svjetlosti s analognim LDR -om (fotootpornik) i pohranjuje ih u tekstualnu datoteku na vašem Raspberry Pi. Ovaj zapisnik podataka mjerit će i bilježiti razinu svjetlosti svakih 60 sekundi, omogućujući vam da pratite kako se svjetlina mijenja kroz dulje vrijeme.
Ako želimo koristiti analogne senzore s Raspberry Pi, morali bismo moći mjeriti otpor senzora. Za razliku od Arduina, GPIO pinovi Raspberry Pi ne mogu mjeriti otpor i mogu osjetiti samo ako je napon koji im se daje iznad određenog napona (približno 2 volta). Da biste prevladali ovaj problem, mogli biste upotrijebiti analogno -digitalni pretvarač (ADC) ili umjesto toga upotrijebiti relativno jeftin kondenzator.
Korak 1: Ono što će vam trebati
- RaspberryPi s već instaliranim Raspbian -om. Također ćete morati pristupiti Pi -u pomoću monitora, miša i tipkovnice ili putem udaljene radne površine. Možete koristiti bilo koji model Raspberry Pi. Ako imate jedan od modela Pi Zero, možda ćete htjeti lemiti neke igle zaglavlja na GPIO port.
- Otpornik ovisan o svjetlu (poznat i kao LDR ili fotootpornik)
- Keramički kondenzator od 1 uF
- Tlocrt za izradu prototipa bez lemljenja
- Neke žice kratkospojnika muško - žensko
Korak 2: Izgradite svoj krug
Izgradite gornji krug na svojoj ploči pazeći da se niti jedan od dijelova komponenti ne dodiruje. Otpornik ovisan o svjetlosti i keramički kondenzator nemaju polaritet što znači da se negativna i pozitivna struja mogu spojiti na bilo koji od vodiča. Stoga ne morate brinuti na koji su način ove komponente spojene u vašem krugu.
Nakon što provjerite svoj krug, pažljivo spojite kratkospojne kabele na GPIO pinove vašeg Raspberry Pi -a slijedeći gornji dijagram.
Korak 3: Izradite Python skriptu za čitanje i evidentiranje vaših podataka
Otvorite IDLE na svom Raspberry Pi (Izbornik> Programiranje> Python 2 (IDLE)) i otvorite novi projekt (Datoteka> Nova datoteka). Zatim upišite sljedeće:
uvezite RPi. GPIO kao GPIO
vrijeme uvoza datum datuma ulaska loginterval = 60 #log interval u sekundama savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27
Način rada GPIO.set (GPIO. BCM)
kapa = 0,000001 #1uf adj = 2,130620985
def mjera otpor (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 () vrati endtime-starttime def writeline (txt, fn): f = open (fn, 'a') f.write (txt+'\ n') f.close () i = 0 t = 0 dok je True: stime = time.time () za a u rasponu (1, 11): res = (mjere otpor (SensorPin, TriggerPin)/cap)*adj i = i+1 t = t+res ako je a == 10: t = t/i print (t) writeline (str (datetime.datetime.now ())+","+str (t), savefilename) i = 0 t = 0 while stime+loginterval> time.time (): #čekajte dok logtime ima proteklo vrijeme.spavanje (0.0001)
Spremite svoj projekt kao datalogger.py (Datoteka> Spremi kao) u mapu Dokumenti.
Sada otvorite Terminal (Izbornik> Pribor> Terminal) i upišite sljedeću naredbu:
python datalogger.py
Skripta će stvoriti tekstualnu datoteku pod nazivom "lightlevels.txt" i ažurirati je svakih 60 sekundi. Ovaj naziv datoteke možete promijeniti u retku 6. Također možete podesiti koliko se često zapisnik ažurira promjenom retka 5.