Inhoudsopgave:

Een datalogger maken met de Raspberry Pi: 3 stappen (met afbeeldingen)
Een datalogger maken met de Raspberry Pi: 3 stappen (met afbeeldingen)

Video: Een datalogger maken met de Raspberry Pi: 3 stappen (met afbeeldingen)

Video: Een datalogger maken met de Raspberry Pi: 3 stappen (met afbeeldingen)
Video: Summer Academy - Basisopleiding micro:bit 2024, Juli-
Anonim
Een datalogger maken met de Raspberry Pi
Een datalogger maken met de Raspberry Pi

Deze eenvoudige datalogger doet regelmatig lichtmetingen met een analoge LDR (Photoresistor) en slaat deze op in een tekstbestand op je Raspberry Pi. Deze datalogger meet en registreert elke 60 seconden het lichtniveau, zodat u kunt volgen hoe de helderheid over een bepaalde tijd verandert.

Als we analoge sensoren willen gebruiken met de Raspberry Pi, zouden we de weerstand van de sensor moeten kunnen meten. In tegenstelling tot de Arduino zijn de GPIO-pinnen van de Raspberry Pi niet in staat om weerstand te meten en kunnen ze alleen detecteren of de geleverde spanning boven een bepaalde spanning ligt (ongeveer 2 volt). Om dit probleem op te lossen, kunt u een analoog naar digitaal converter (ADC) gebruiken, of u kunt in plaats daarvan een relatief goedkope condensator gebruiken.

Stap 1: Wat heb je nodig?

Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben

- Een RaspberryPi met Raspbian al geïnstalleerd. Je moet ook toegang hebben tot de Pi met een monitor, muis en toetsenbord of via Remote Desktop. U kunt elk model Raspberry Pi gebruiken. Als je een van de Pi Zero-modellen hebt, wil je misschien wat header-pinnen op de GPIO-poort solderen.

- Een lichtafhankelijke weerstand (ook bekend als een LDR of fotoresistor)

- Een 1 uF keramische condensator

- Een soldeerloze prototype breadboard

- Sommige mannelijke naar vrouwelijke jumperdraden

Stap 2: Bouw uw circuit

Bouw je circuit
Bouw je circuit
Bouw je circuit
Bouw je circuit

Bouw het bovenstaande circuit op uw breadboard en zorg ervoor dat geen van de componenten van de componenten elkaar raakt. De lichtafhankelijke weerstand en keramische condensator hebben geen polariteit, wat betekent dat een negatieve en positieve stroom op beide draden kan worden aangesloten. U hoeft zich dus geen zorgen te maken over de manier waarop deze componenten in uw circuit zijn aangesloten.

Nadat u uw circuit hebt gecontroleerd, sluit u de startkabels zorgvuldig aan op de GPIO-pinnen van uw Raspberry Pi door het bovenstaande diagram te volgen.

Stap 3: Maak een Python-script om uw gegevens te lezen en te loggen

Maak een Python-script om uw gegevens te lezen en te loggen
Maak een Python-script om uw gegevens te lezen en te loggen

Open IDLE op je Raspberry Pi (Menu > Programmeren > Python 2 (IDLE)) en open een nieuw project (Bestand > Nieuw bestand). Typ dan het volgende:

importeer RPi. GPIO als GPIO

import tijd import datetime loginterval=60 #log interval in seconden savefilename="lightlevels.txt" SensorPin=17 TriggerPin=27

GPIO.setmode(GPIO. BCM)

cap=0.000001 #1uf adj=2.130620985

def meetweerstand (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() for 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(): #wacht tot logtime heeft verstreken tijd.slaap(0.0001)

Sla uw project op als datalogger.py (Bestand > Opslaan als) in uw Documenten-map.

Open nu Terminal (Menu > Accessoires > Terminal) en typ de volgende opdracht:

python datalogger.py

Het script maakt een tekstbestand met de naam "lightlevels.txt" en werkt dit elke 60 seconden bij. U kunt deze bestandsnaam wijzigen op regel 6. U kunt ook aanpassen hoe vaak de datalogger wordt bijgewerkt door regel 5 te wijzigen.

Aanbevolen: