Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ten prosty rejestrator danych wykonuje regularne pomiary światła za pomocą analogowego LDR (fotorezystora) i przechowuje je w pliku tekstowym na Twoim Raspberry Pi. Ten rejestrator danych mierzy i rejestruje poziom światła co 60 sekund, umożliwiając monitorowanie zmian jasności w czasie.
Jeśli chcemy używać czujników analogowych z Raspberry Pi, musielibyśmy mieć możliwość pomiaru rezystancji czujnika. W przeciwieństwie do Arduino, piny GPIO Raspberry Pi nie są w stanie zmierzyć rezystancji i mogą wykrywać tylko wtedy, gdy dostarczane do nich napięcie przekracza określone napięcie (około 2 wolty). Aby rozwiązać ten problem, możesz użyć konwertera analogowo-cyfrowego (ADC) lub możesz zamiast tego użyć stosunkowo taniego kondensatora.
Krok 1: Czego będziesz potrzebować
- RaspberryPi z zainstalowanym Raspbianem. Będziesz także musiał mieć dostęp do Pi za pomocą monitora, myszy i klawiatury lub za pomocą pulpitu zdalnego. Możesz użyć dowolnego modelu Raspberry Pi. Jeśli masz jeden z modeli Pi Zero, możesz przylutować kilka pinów nagłówka do portu GPIO.
- Rezystor zależny od światła (znany również jako LDR lub fotorezystor)
- Kondensator ceramiczny 1 uF
- Bezlutowa prototypowa płytka do krojenia chleba
-Niektóre przewody połączeniowe męskie do żeńskich
Krok 2: Zbuduj swój obwód
Zbuduj powyższy obwód na płytce prototypowej, upewniając się, że żaden z wyprowadzeń komponentów nie styka się. Rezystor zależny od światła i kondensator ceramiczny nie mają polaryzacji, co oznacza, że prąd ujemny i dodatni można podłączyć do dowolnego przewodu. Dlatego nie musisz się martwić, w jaki sposób te elementy zostały połączone w twoim obwodzie.
Po sprawdzeniu obwodu ostrożnie podłącz kable połączeniowe do pinów GPIO Raspberry Pi, postępując zgodnie z powyższym schematem.
Krok 3: Utwórz skrypt Pythona do odczytywania i rejestrowania danych
Otwórz IDLE na swoim Raspberry Pi (Menu> Programowanie> Python 2 (IDLE)) i otwórz nowy projekt (Plik> Nowy plik). Następnie wpisz:
importuj RPi. GPIO jako GPIO
import czas import datetime loginterval=60 #log interwał w sekundach savefilename="lightlevels.txt" SensorPin=17 TriggerPin=27
GPIO.setmode(GPIO. BCM)
cap=0.000001 #1uf adj=2.130620985
def pomiar rezystancji (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 () return endtime-starttime def writeline(txt, fn): f = open(fn, 'a') f.write(txt+'\n') f.close() i=0 t=0 while True: stime= time.time() dla a w zakresie (1, 11): res=(pomiar rezystancji(SensorPin, TriggerPin)/cap)*adj i=i+1 t=t+res jeśli a==10: t=t/i print(t) writeline(str(datetime.datetime.now())+", "+str(t), savefilename) i=0 t=0 while stime+loginterval>time.time(): #czekaj aż logtime się skończy minął czas.sen(0.0001)
Zapisz swój projekt jako datalogger.py (Plik > Zapisz jako) w folderze Dokumenty.
Teraz otwórz Terminal (Menu> Akcesoria> Terminal) i wpisz następujące polecenie:
python datalogger.py
Skrypt utworzy plik tekstowy o nazwie „lightlevels.txt” i będzie go aktualizował co 60 sekund. Możesz zmienić tę nazwę pliku w wierszu 6. Możesz również dostosować częstotliwość aktualizacji rejestratora danych, zmieniając wiersz 5.