Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Tento jednoduchý záznamník dat provádí pravidelné měření světla pomocí analogového LDR (fotorezistor) a ukládá je do textového souboru na vašem Raspberry Pi. Tento datalogger bude měřit a zaznamenávat úroveň světla každých 60 sekund, což vám umožní sledovat, jak se jas v průběhu času mění.
Pokud chceme s Raspberry Pi používat analogové senzory, potřebovali bychom umět změřit odpor senzoru. Na rozdíl od Arduina nejsou GPIO piny Raspberry Pi schopny měřit odpor a mohou vnímat pouze tehdy, pokud je napětí, které je do nich přiváděno, vyšší než určité napětí (přibližně 2 volty). Chcete -li tento problém vyřešit, můžete použít převodník analogového signálu na digitální (ADC) nebo místo toho použít relativně levný kondenzátor.
Krok 1: Co budete potřebovat
- RaspberryPi s již nainstalovaným Raspbianem. Budete také muset mít přístup k Pi pomocí monitoru, myši a klávesnice nebo prostřednictvím vzdálené plochy. Můžete použít jakýkoli model Raspberry Pi. Pokud máte jeden z modelů Pi Zero, možná budete chtít připájet některé kolíkové kolíky k portu GPIO.
- Rezistor závislý na světle (také známý jako LDR nebo fotorezistor)
- Keramický kondenzátor 1 uF
- Bezpájecí prototypovací prkénko
- Některé propojovací vodiče mezi muži a ženami
Krok 2: Vybudujte si obvod
Vybudujte výše uvedený obvod na prkénku a ujistěte se, že se žádný z vodičů komponent nedotýká. Odpor závislý na světle a keramický kondenzátor nemají polaritu, což znamená, že k oběma vodičům lze připojit záporný a kladný proud. Proto si nemusíte dělat starosti s tím, jakým způsobem byly tyto komponenty ve vašem obvodu připojeny.
Jakmile zkontrolujete svůj obvod, opatrně připojte propojovací kabely k pinům GPIO vašeho Raspberry Pi podle výše uvedeného schématu.
Krok 3: Vytvořte skript Pythonu pro čtení a protokolování vašich dat
Otevřete IDLE na svém Raspberry Pi (Menu> Programování> Python 2 (IDLE)) a otevřete nový projekt (Soubor> Nový soubor). Potom zadejte následující:
importujte RPi. GPIO jako 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 měřitelná odolnost (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.write (txt+'\ n') f.close () i = 0 t = 0 while True: stime = time.time () pro a v rozsahu (1, 11): res = (měřicí 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ánek (0,0001)
Uložte svůj projekt jako datalogger.py (Soubor> Uložit jako) do složky Dokumenty.
Nyní otevřete Terminál (Nabídka> Příslušenství> Terminál) a zadejte následující příkaz:
python datalogger.py
Skript vytvoří textový soubor s názvem „lightlevels.txt“a aktualizuje jej každých 60 sekund. Tento název souboru můžete změnit na řádku 6. Změnou řádku 5 můžete také upravit, jak často se datalogger aktualizuje.