Library for the BH1750 Ambient Light I2C sensor connected to a Raspberry Pi.
Install
Copy jbh1750.jar, jbh1750.xml to the B4J additional libraries folder.
Dependecies
On jPi4J and the pi4j jar files (core, device, gpio-extension, service).
Ensure the additional library jar files are located in the B4J additional libraries folder.
Wiring
I2C Address
0x23
Example B4J Non-UI Program
Output
11:30:56 110 lux
11:30:58 62 lux
11:31:00 290 lux
11:31:02 288 lux
11:31:04 288 lux
ChangeLog
20170307 v1.0
Install
Copy jbh1750.jar, jbh1750.xml to the B4J additional libraries folder.
Dependecies
On jPi4J and the pi4j jar files (core, device, gpio-extension, service).
Ensure the additional library jar files are located in the B4J additional libraries folder.
Wiring
B4X:
BH1750 = Raspberry Pi
3.3v = 3.3v
SDA = SDA [Physical Pin#3]
SCL = SCL [Physical Pin#5]
GND = GND
I2C Address
0x23
Example B4J Non-UI Program
B4X:
Sub Process_Globals
'Define the BH1750 device. The I2C address used is 0x23 - check out with sudo i2cdetect
Private bh As BH1750
'Define the request timer and interval
Private RequestTimer As Timer
Private RequestInterval As Long = 2000
End Sub
Sub AppStart (Args() As String)
' Init the BH1750 device with device address 0x23 or 0x5C and bus number 0 (Pi 1) or 1 (Pi 2,3)
If bh.Initialize(0x23, 1) = False Then Return
' Power on and set the measurement mode
bh.PowerOnSetMode(bh.CONTINUOUS_HIGH_RES_MODE_1)
Log("BH1750 Initialized")
' Get the first value
RequestTimer_Tick
' Init and start the request timer
RequestTimer.Initialize("RequestTimer", RequestInterval)
RequestTimer.Enabled = True
' Do not forget to start the message loop
StartMessageLoop
End Sub
' Handle timer requests
Sub RequestTimer_Tick
Log($"${DateTime.Time(DateTime.Now)} ${NumberFormat(bh.LightIntensity,0,0)} lux"$)
End Sub
Output
11:30:56 110 lux
11:30:58 62 lux
11:31:00 290 lux
11:31:02 288 lux
11:31:04 288 lux
ChangeLog
20170307 v1.0