Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Raspberry Pi-lichtsensor:een eenvoudige LDR-zelfstudie

In deze Raspberry Pi-lichtsensor-tutorial laat ik je zien hoe je de fotoweerstandssensor correct aansluit op de GPIO-pinnen. Ten slotte laat ik je zien hoe het kan worden gebruikt in een eenvoudig python-script, zodat je de gegevens ervan kunt verzamelen en gebruiken.

Dit is nog een sensor die ik zal bekijken om in toekomstige projecten op te nemen, zoals een door licht geactiveerde wekker.

Ik leg een beetje verderop elk van de onderdelen uit die ik in dit circuit zal gebruiken. Lees het zeker door als u hier meer informatie over nodig heeft. Het is belangrijk op te merken dat ik voor deze tutorial gewoon een eenvoudige fotocelsensor gebruik, terwijl deze perfect zijn voor sommige taken, ze zijn misschien niet zo nauwkeurig als je zou willen.

Als je stap voor stap visueel wilt zien hoe je het lichtsensorcircuit en de code instelt, bekijk dan zeker de video onder de apparatuurlijst.

Apparatuur:

Je hebt de volgende apparatuur nodig om deze Raspberry Pi-lichtsensor-tutorial te kunnen voltooien. Je kunt dit doen zonder breadboard-apparatuur, maar ik zou het ten zeerste aanbevelen om in sommige te investeren als je van plan bent veel circuitwerk te doen.

Aanbevolen:

Raspberry Pi

8 GB SD-kaart of Micro SD-kaart als u een Raspberry Pi 2 of B+ gebruikt

Ethernet-kabel of wifi-dongle

Lichtsensor (LDR-sensor)

1 1uF condensator

Optioneel:

Raspberry Pi-behuizing

USB-toetsenbord

USB-muis

GPIO Breakout Kit

Breadboard

Breadboard draad

Video

De video bevat bijna alles wat de tekstversie van deze tutorial doet. Het is perfect als je dingen liever visueel gedaan ziet. Je krijgt ook te zien hoe het circuit moet presteren als je klaar bent.

Je vindt tekstinstructies en informatie direct onder de video.

Het Raspberry Pi-lichtsensorcircuit

Het circuit dat we voor deze tutorial gaan maken is supereenvoudig en geweldig voor iedereen die net begint met circuits.

De lichtafhankelijke weerstand of ook wel de LDR-sensor genoemd, is (uiteraard) het belangrijkste apparaat in ons circuit. Zonder dat zouden we niet kunnen detecteren of het donker of licht is. In het licht heeft deze sensor een weerstand van slechts een paar honderd ohm, terwijl hij in het donker een weerstand kan hebben van enkele megaohms.

De condensator in ons circuit is daar, zodat we de weerstand van de LDR-sensor kunnen meten. Een condensator werkt in wezen als een batterij die wordt opgeladen terwijl hij stroom krijgt en vervolgens ontlaadt wanneer hij geen stroom meer ontvangt. Door dit in serie met de LDR te gebruiken, kunnen we bepalen hoeveel weerstand de LDR afgeeft, dus of het licht of donker is.

Om het lichtsensorcircuit correct te laten bouwen, volgt u de onderstaande stappen of bekijkt u het schakelschema direct onder de stappen. In de volgende stappen verwijs ik naar de fysieke nummers van de pinnen (logische volgorde).

  1. Sluit eerst pin #1 (3v3) aan op de positieve rail op het breadboard.
  2. Verbind vervolgens pin #6 (massa) met de grondrail op het breadboard.
  3. Plaats nu de LDR-sensor op het bord en laat een draad van het ene uiteinde naar de positieve rail gaan.
  4. Plaats aan de andere kant van de LDR-sensor een draad die teruggaat naar de Raspberry Pi. Haak dit aan pin #7.
  5. Plaats ten slotte de condensator van de draad naar de negatieve rail op het breadboard. Zorg ervoor dat de negatieve pin van de condensator in de negatieve rail zit.

We zijn nu klaar om over te gaan naar de Python-code, als je problemen hebt met het circuit, raadpleeg dan het onderstaande diagram.

De code

De code voor dit project is vrij eenvoudig en vertelt ons ongeveer of het licht, schaduwrijk of helemaal donker is.

Het grootste probleem dat we met dit circuit tegenkomen, is het feit dat de Pi geen analoge pinnen heeft. Ze zijn allemaal digitaal, dus we kunnen de variantie in weerstand op onze invoer niet nauwkeurig meten. Dit gebrek aan analoge pinnen was geen probleem in de zelfstudie van de bewegingssensor, omdat de uitvoer ervan hoog of laag was (digitaal). In plaats daarvan zullen we de tijd meten die nodig is om de condensator op te laden en de pin hoog te sturen. Deze methode is een gemakkelijke maar onnauwkeurige manier om te zien of het licht of donker is.

Ik zal in het kort de Raspberry Pi-lichtsensorcode uitleggen en wat het doet, als je de code wilt, kun je deze hieronder kopiëren en plakken of downloaden van mijn GitHub.

Om te beginnen importeren we het GPIO-pakket dat we nodig hebben, zodat we kunnen communiceren met de GPIO-pinnen. We importeren ook het tijdpakket, zodat we het script in de slaapstand kunnen zetten voor wanneer dat nodig is.

#!/usr/local/bin/pythonimport RPi.GPIO als GPIO-importtijd 

Vervolgens stellen we de GPIO-modus in op GPIO.BOARD. Dit betekent dat alle nummering die we in dit script gebruiken, zal verwijzen naar de fysieke nummering van de pinnen. Omdat we maar één input/output-pin hebben, hoeven we maar één variabele in te stellen. Stel deze variabele in op het nummer van de pin die als input/output-pin fungeert.

GPIO.setmode(GPIO.BOARD)#define de pin die naar het circuit gaatpin_to_circuit =7 

Vervolgens hebben we een functie genaamd rc_time dat vereist één parameter die het pinnummer van het circuit is. In deze functie initialiseren we een variabele genaamd count, we zullen deze waarde teruggeven zodra de pin te hoog wordt.

Vervolgens stellen we onze pin in om als uitvoer te fungeren en stellen deze vervolgens in op laag, waarna we het script 10 ms laten slapen.

Hierna stellen we de pin in om invoer te worden en gaan we een while-lus in. We blijven in deze lus totdat de pin te hoog wordt, dit is wanneer de condensator oplaadt tot ongeveer 3/4. Zodra het hoog wordt, retourneren we de telwaarde naar de hoofdfunctie. U kunt deze waarde gebruiken om een ​​LED aan en uit te zetten, iets anders te activeren of de gegevens te loggen en statistieken bij te houden over elke afwijking in licht.

def rc_time (pin_to_circuit):count =0 #Output op de pin voor GPIO.setup(pin_to_circuit, GPIO.OUT) GPIO.output(pin_to_circuit, GPIO.LOW) time.sleep(0.1) #Wijzig de pin terug naar input GPIO.setup(pin_to_circuit, GPIO.IN) #Count totdat de pin hoog gaat terwijl (GPIO.input(pin_to_circuit) ==GPIO.LOW):count +=1 return count#Catch wanneer script wordt onderbroken, opruimen correcttry:# Main loop while True:print rc_time(pin_to_circuit)behalve KeyboardInterrupt:passfinally:GPIO.cleanup() 

De code implementeren en uitvoeren op uw Raspberry Pi

Deze stap is ongelooflijk eenvoudig, maar ik zal de stappen snel doornemen, zodat je hem zo snel en soepel mogelijk op je Pi kunt laten werken. Zoals alle tutorials op deze website, gebruik ik Raspbian als je hulp nodig hebt bij het installeren van Raspbian, bekijk dan mijn handleiding voor het installeren van Raspbian.

Hoewel alle softwarepakketten in sommige gevallen al zouden moeten zijn geïnstalleerd, is dit misschien niet het geval. Als je meer wilt weten over de GPIO-pinnen en hoe je de software kunt updaten en installeren, bekijk dan zeker mijn tutorial over het instellen van de GPIO-pinnen op de Raspberry Pi.

Je kunt de code downloaden met git clone. Het volgende commando zal precies dat doen:

git kloon https://github.com/pimylifeup/Light_Sensor/cd ./Light_Sensor 

Als alternatief kunt u de code kopiëren en plakken, maar zorg ervoor dat het bestand een python-script is.

sudo nano light_sensor.py 

Als je klaar bent in het bestand, gebruik je gewoon ctrl x dan j om op te slaan en af ​​te sluiten.

Voer ten slotte de code uit met behulp van de volgende opdracht:

sudo python light_sensor.py 

Ik hoop dat het script nu werkt en dat je gegevens ontvangt die de veranderingen in het licht op de sensor correct weergeven. Als je problemen ondervindt, aarzel dan niet om hieronder een reactie achter te laten.

Nauwkeurigheid en mogelijk gebruik verbeteren

Er zijn talloze toepassingen voor een lichtsensor in een circuit. Ik zal er een paar noemen waar ik aan dacht toen ik deze tutorial aan het schrijven was.

  • Licht geactiveerd alarm - Ik noemde deze eerder, maar je kunt de LDR gebruiken om te detecteren wanneer het licht begint te worden, zodat je een alarm kunt laten klinken om wakker te worden. Als het programma en de sensor nauwkeurig zijn, kan het alarm langzaam luider worden naarmate het lichter wordt.
  • Tuinmonitor – Een lichtsensor kan in een tuin worden gebruikt om te controleren hoeveel zon een bepaald deel van de tuin krijgt. Dit kan nuttige informatie zijn als je iets plant dat veel zon nodig heeft of andersom.
  • Kamermonitor – Wil je zeker weten dat de lichten in een bepaalde kamer altijd uit zijn? Je zou dit kunnen gebruiken om je te waarschuwen wanneer licht wordt gedetecteerd waar het niet zou moeten zijn.

Er is zoveel dat je kunt doen met deze coole kleine sensor, maar onthoud ook dat als je iets nauwkeurigers nodig hebt dan de fotocel, kijk dan eens naar zoiets als de Adafruit digitale lichtsensor met hoog dynamisch bereik.

Ik hoop dat je deze Raspberry Pi-lichtsensor probleemloos hebt kunnen instellen. Als je een probleem tegenkomt, feedback hebt, ik heb iets of iets anders gemist dat je zou willen zeggen, laat dan gerust een reactie achter hieronder.

Bron:Raspberry Pi Light Sensor:een eenvoudige LDR-zelfstudie


Productieproces

  1. Raspberry Pi Temperature Logger
  2. Python- en Raspberry Pi-temperatuursensor
  3. Raspberry Pi-weerstation
  4. 1-draads temperatuursensor DS1820 op Raspberry Pi (direct GPIO)
  5. Ultrasone sensor (HC-SR04) + Raspberry Pi
  6. Bewegingssensor, alarm, video-opname in HA op Raspberry Pi
  7. Bewegingssensor met Raspberry Pi
  8. Raspberry Pi Bodemvochtsensor
  9. Raspberry Pi digitale Hall-sensor in JAVA
  10. Raspberry Pi temperatuur- en lichtsensor
  11. Zonne-opritverlichting naar MSP430 draadloos sensorknooppunt