Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Dieser einfache Datenlogger nimmt regelmäßige Lichtmessungen mit einem analogen LDR (Photoresistor) vor und speichert diese in einer Textdatei auf Ihrem Raspberry Pi. Dieser Datenlogger misst und zeichnet die Lichtstärke alle 60 Sekunden auf und ermöglicht Ihnen so zu überwachen, wie sich die Helligkeit über einen längeren Zeitraum ändert.
Wenn wir analoge Sensoren mit dem Raspberry Pi verwenden wollen, müssten wir den Widerstand des Sensors messen können. Im Gegensatz zum Arduino können die GPIO-Pins des Raspberry Pi keinen Widerstand messen und können nur erkennen, wenn die ihnen zugeführte Spannung über einer bestimmten Spannung liegt (ca. 2 Volt). Um dieses Problem zu lösen, können Sie einen Analog-Digital-Wandler (ADC) oder stattdessen einen relativ billigen Kondensator verwenden.
Schritt 1: Was Sie brauchen
- Ein RaspberryPi mit bereits installiertem Raspbian. Sie müssen auch in der Lage sein, mit einem Monitor, einer Maus und einer Tastatur oder über Remote Desktop auf den Pi zuzugreifen. Sie können jedes Raspberry Pi-Modell verwenden. Wenn Sie eines der Pi Zero-Modelle haben, möchten Sie möglicherweise einige Header-Pins an den GPIO-Port anlöten.
- Ein lichtabhängiger Widerstand (auch bekannt als LDR oder Fotowiderstand)
- Ein 1 uF Keramikkondensator
- Ein lötfreies Prototyping-Breadboard
- Einige Stecker-zu-Buchse-Überbrückungsdrähte
Schritt 2: Erstellen Sie Ihre Schaltung
Bauen Sie die obige Schaltung auf Ihrem Steckbrett auf und stellen Sie sicher, dass sich keine der Komponentenleitungen berühren. Der lichtabhängige Widerstand und der Keramikkondensator haben keine Polarität, was bedeutet, dass ein negativer und positiver Strom an beide Leitungen angeschlossen werden kann. Daher müssen Sie sich keine Gedanken darüber machen, wie diese Komponenten in Ihrem Stromkreis angeschlossen wurden.
Nachdem Sie Ihre Schaltung überprüft haben, verbinden Sie die Überbrückungskabel vorsichtig mit den GPIO-Pins Ihres Raspberry Pi, indem Sie dem obigen Diagramm folgen.
Schritt 3: Erstellen Sie ein Python-Skript zum Lesen und Protokollieren Ihrer Daten
Öffnen Sie IDLE auf Ihrem Raspberry Pi (Menü > Programmierung > Python 2 (IDLE)) und öffnen Sie ein neues Projekt (Datei > Neue Datei). Geben Sie dann Folgendes ein:
RPi. GPIO als GPIO importieren
import time import datetime loginterval=60 #log-Intervall in Sekunden savefilename="lightlevels.txt" SensorPin=17 TriggerPin=27
GPIO.setmode(GPIO. BCM)
cap=0,000001 #1uf adj=2.130620985
def Messwiderstand (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 () Rückgabe Endzeit-Startzeit def writeline(txt, fn): f = open(fn, 'a') f.write(txt+'\n') f.close() i=0 t=0 while True: stime= time.time() für a in range(1, 11): res=(Measureresistance(SensorPin, TriggerPin)/cap)*adj i=i+1 t=t+res if a==10: t=t/i print(t) writeline(str(datetime.datetime.now())+", "+str(t), savefilename) i=0 t=0 while stime+loginterval>time.time(): #warten bis Logtime hat verstrichene Zeit. Schlaf(0.0001)
Speichern Sie Ihr Projekt als datalogger.py (Datei > Speichern unter) in Ihrem Dokumentenordner.
Öffnen Sie nun Terminal (Menü > Zubehör > Terminal) und geben Sie den folgenden Befehl ein:
python datalogger.py
Das Skript erstellt eine Textdatei namens "lightlevels.txt" und aktualisiert sie alle 60 Sekunden. Sie können diesen Dateinamen in Zeile 6 ändern. Sie können auch einstellen, wie oft der Datenlogger aktualisiert wird, indem Sie Zeile 5 ändern.