Deel 7: De TSL2561-sensor aansluiten op een Raspberry Pi Zero

De tweede sensor die ik wilde aansluiten was een sensor die de lichtintensiteit meet. Ik heb gekozen voor de digitale I2C-sensor, de TSL2561 van Adafruit.

Hardware

De TSL2561 is een kleine sensor die het zichtbare licht meet én het licht in het infraroodspectrum. De sensor wordt gemaakt door AMS, voorheen TAOS (datasheet). Ik heb toevallig voor het board van Adafruit gekozen, maar dezelfde sensor wordt ook door Sparkfun aangeboden en is te koop via Chinese webshops.

De sensor kan op verschillende gevoeligheden worden ingesteld, zodat je de sensor ook kunt gebruiken bij veel of juist heel weinig licht. De TSL2561 werkt via I2C.

 

TSL2561 sensor

 

Het aansluiten is relatief eenvoudig:

Fritzing TSL2561 en Raspberry Pi Zero

De pinnen op de TSL2561 van links naar rechts gezien:

  • Vin: Voeding (3.3V) → Pin 1
  • GND: Ground (GND) → Pin 6
  • 3vo: Niet in gebruik
  • Addr: Niet in gebruik
  • Int: Niet in gebruik
  • SDA: Seriële data → Pin 3
  • SCL: Seriële klok → Pin 5

Voor een handig overzicht van de ‘pinout’ op Raspberry Pi Zero kun je dit diagram gebruiken.

Ter referentie: Pin 1 (het oranje vierkantje linksboven), is de meest linker pin van de onderste rij als je de Pi Zero voor je hebt liggen met de USB-aansluitingen naar je toe.

Pinout Raspberry Pi Zero
Pinout Raspberry Pi Zero, afbeelding via The Pi4J Project: http://pi4j.com/images/j8header-zero-large.png

 

I2C

I2C (meestal gewoon geschreven als I2C) is een manier om te kunnen communiceren tussen microprocessors en andere IC’s. Om met I2C te werken moet er een aantal zaken worden ingesteld.

Stap 1: Inschakelen I2C

Standaard staat I2C niet aan op de Raspberry Pi Zero. Om I2C in te schakelen, start je raspi-config.

Ga naar Advanced Options → I2C en schakel deze in.

Stap 2: Installeer i2c-tools

Om vervolgens aan de slag te kunnen met I2C en te controleren of de sensor goed is aangesloten, is het handig om i2c-tools te installeren. Dat doe je als volgt:

Stap 3: Test of de sensor zichtbaar is

Om te controleren of de sensor wordt herkend door de Pi geef je het volgende commando:

Als je vervolgens een overzicht krijgt met het nummer 39 (het standaard I2C-adres van de TSL2561) dan zit je goed. Verschijnt de sensor niet, dan is er iets niet goed gegaan met het aansluiten.

Voorbeeldscript

Stap 1: Installeer smbus

Om de sensor uit te kunnen lezen met Python heb je een script nodig. Dit script maakt gebruik van smbus, een stukje software om via Python en de System Management Bus het I2C-apparaat aan te sturen. Dat onderdeel moet dus eerst worden geïnstalleerd.

Side note: eigenlijk is dit een omweg om de sensor uit te lezen. Het is ook mogelijk om de sensor direct via i2c uit te lezen. Waarom geef ik daar dan geen voorbeeld van? Simpel: ik kon geen geschikt script vinden om de sensor op de juiste manier aan te sturen. Er bestaat ook een smbus-versie van de sensor, dat is de TSL2560. Meer informatie in deze datasheet van AMS.

Stap 2: Open een nieuw document in Nano

Je opent nu een nieuw document met de naam tsl2561voorbeeld.py in de Nano-editor.

Stap 3: Kopieer en plak het script

Kopieer en plak de volgende code.

Stap 4: Opslaan

Sla het script op met Ctrl + X, Y en Enter.

Stap 5: Draai het script

Het script kun je uitvoeren met het volgende commando:

 

Lees verder in Deel 8: Laat je ‘things’ met elkaar praten via MQTT

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *