Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Tento jednoduchý záznamník údajov vykonáva pravidelné merania svetla pomocou analógového LDR (fotorezistor) a ukladá ich do textového súboru na vašom Raspberry Pi. Tento záznamník údajov bude merať a zaznamenávať úroveň svetla každých 60 sekúnd, čo vám umožní sledovať, ako sa jas v priebehu času mení.
Ak chceme s Raspberry Pi používať analógové snímače, museli by sme byť schopní zmerať odpor senzora. Na rozdiel od Arduina, GPIO piny Raspberry Pi nie sú schopné merať odpor a môžu cítiť iba vtedy, ak je napätie, ktoré je do nich dodávané, vyššie ako určité napätie (približne 2 volty). Na vyriešenie tohto problému môžete použiť analógovo -digitálny prevodník (ADC) alebo namiesto neho použiť relatívne lacný kondenzátor.
Krok 1: Čo budete potrebovať
- RaspberryPi s už nainštalovaným Raspbianom. Budete tiež musieť mať prístup k Pi pomocou monitora, myši a klávesnice alebo prostredníctvom vzdialenej pracovnej plochy. Môžete použiť akýkoľvek model Raspberry Pi. Ak máte jeden z modelov Pi Zero, možno budete chcieť spájať niektoré kolíkové kolíky do portu GPIO.
- Rezistor závislý na svetle (známy tiež ako LDR alebo fotorezistor)
- Keramický kondenzátor 1 uF
- Nepájkovateľná prototypová doska
- Niektoré prepojovacie vodiče medzi mužmi a ženami
Krok 2: Vybudujte si obvod
Vybudujte vyššie uvedený obvod na doske, pričom sa uistite, že sa žiadneho z káblov komponentov nedotýkajú. Odpor závislý na svetle a keramický kondenzátor nemajú polaritu, čo znamená, že k jednému vodiču je možné pripojiť negatívny a pozitívny prúd. Preto si nemusíte lámať hlavu nad tým, akým spôsobom boli tieto súčasti zapojené do vášho obvodu.
Akonáhle skontrolujete svoj obvod, opatrne zapojte prepojovacie káble k pinom GPIO vášho Raspberry Pi podľa vyššie uvedeného diagramu.
Krok 3: Vytvorte skript Python na čítanie a zaznamenávanie vašich údajov
Otvorte IDLE na svojom Raspberry Pi (Menu> Programovanie> Python 2 (IDLE)) a otvorte nový projekt (Súbor> Nový súbor). Potom zadajte nasledujúce:
importujte RPi. GPIO ako GPIO
čas importu import datetime loginterval = 60 #interval protokolu v sekundách savefilename = "lightlevels.txt" SensorPin = 17 TriggerPin = 27
GPIO.setmode (GPIO. BCM)
cap = 0,000001 #1uf adj = 2,130620985
def merací odpor (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 writeeline (txt, fn): f = open (fn, 'a') f.rite (txt+'\ n') f.close () i = 0 t = 0 while True: stime = time.time () pre a v rozsahu (1, 11): res = (merací odpor (SensorPin, TriggerPin)/cap)*adj i = i+1 t = t+res if a == 10: t = t/i print (t) writeeline (str (datetime.datetime.now ())+","+str (t), savefilename) i = 0 t = 0 while stime+loginterval> time.time (): #wait until logtime has uplynul čas.spánok (0,0001)
Uložte svoj projekt ako datalogger.py (Súbor> Uložiť ako) do priečinka Dokumenty.
Teraz otvorte terminál (Menu> Príslušenstvo> Terminál) a zadajte nasledujúci príkaz:
python datalogger.py
Skript vytvorí textový súbor s názvom „lightlevels.txt“a aktualizuje ho každých 60 sekúnd. Tento názov súboru môžete zmeniť na riadku 6. Zmenou riadka 5 môžete tiež nastaviť, ako často sa má záznamník údajov aktualizovať.