Rubriky
Ostatní

Raspberry: měření světelné intenzity s BH1750

BH1750 je levný obvod pro měření světelné intenzity. Uvažuji o tom, že bych jím rozšířil meteostanici a měřil ještě navíc světelnou intenzitu. Obvod komunikující po I2C. Proto abychom mohli komunikovat musíme povolit I2C komunikaci. Přihlašte se do Raspberry a zadejte příkaz:

sudo raspi-config

Vyberte možnost 8) Advenced Options -> A7 I2C ( povolte I2C komunikaci)

Poté restartujte Raspberry a jdeme propojit Raspberry a BH1750. Nepotřebujete žádné součástky, pouze oba obvody propojíme.

Schéma zapojení

Manuál BH1750

BH1750-raspberry

 

Napájení je 3,3V!!!

Instalace i2c-tools

apt-get install i2c-tools

Nyní si zobrazíme zařízení na I2C sběrnici:

i2cdetect 1
i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Je vidět že na adrese 23 je naše čidlo světelné intenzity. Pro zjištění světelné intenzity použijeme programovací jazyk Python. Pro komunikaci ještě zvýbá nainstalovat modul smbus:

apt-get install python-smbus

Získání hodnoty osvětlení

vim bh1750.py

#!/usr/bin/python
import time
import smbus

# Simple function to convert 2 bytes of data
# into a decimal number
def convertToNumber(data):
  return ((data[1] + (256 * data[0])) / 1.2)

DEVICE = 0x23 # I2C device address
bus = smbus.SMBus(1)  # Rev 2 Pi uses 1

while True:
  data = bus.read_i2c_block_data(DEVICE,0x11)
  print "Light Level : " + str(convertToNumber(data)) + " lx"
  time.sleep(0.5)

Souboru nastavíme oprávnění pro spuštění

chmod ogu+x bh1750.py

Měření spustíme:

sudo python bh1750.py