Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ovaj jednostavan 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 će mjeriti i bilježiti nivo svjetlosti svakih 60 sekundi, omogućavajući vam da pratite kako se osvjetljenje mijenja kroz duži period.
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 riješili ovaj problem, možete upotrijebiti analogno -digitalni pretvarač (ADC) ili umjesto toga relativno jeftin kondenzator.
Korak 1: Šta će vam trebati
- RaspberryPi sa već instaliranim Raspbian -om. Takođe ćete morati imati pristup Pi -u pomoću monitora, miša i tastature 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 pinove zaglavlja na GPIO port.
- Otpornik ovisan o svjetlu (poznat i kao LDR ili fotootpornik)
- Keramički kondenzator od 1 uF
- Matična ploča za izradu prototipa bez lemljenja
- Neke muške do ženske kratkospojnice
Korak 2: Izgradite svoj krug
Izgradite gornji krug na matičnoj 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 o načinu na koji su 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: Kreirajte Python skriptu za čitanje i evidentiranje vaših podataka
Otvorite IDLE na svom Raspberry Pi -u (Meni> 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)
cap = 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 = (mjerenje otpora (SensorPin, TriggerPin)/cap)*adj i = i+1 t = t+res ako je a == 10: t = t/i print (t) lineline write (str (datetime.datetime.now ())+","+str (t), savefilename) i = 0 t = 0 while stime+loginterval> time.time (): #sačekajte da logtime ima proteklo vrijeme.spavanje (0.0001)
Sačuvajte svoj projekat kao datalogger.py (Datoteka> Sačuvaj kao) u fascikli Dokumenti.
Sada otvorite Terminal (Menu> Accessories> 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 često se datalogger ažurira promjenom 5. reda.