

The GY-30 BH1750FVI is a digital light intensity sensor designed to measure ambient light in lux. It provides precise and reliable readings, making it ideal for applications such as automatic lighting control, environmental monitoring, and smart home systems. The sensor communicates via the I²C interface, ensuring easy integration with microcontrollers and development boards like the Arduino UNO.








The GY-30 BH1750FVI sensor is compact and efficient, with the following key specifications:
| Parameter | Value |
|---|---|
| Operating Voltage | 3.0V to 5.0V |
| Operating Current | 0.12 mA (typical) |
| Measurement Range | 1 lux to 65535 lux |
| Communication Protocol | I²C |
| I²C Address | 0x23 (default) or 0x5C (optional) |
| Resolution | 1 lux |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 13.9mm x 18.5mm |
The GY-30 module has 4 pins, as described in the table below:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply pin (3.0V to 5.0V) |
| 2 | GND | Ground pin |
| 3 | SDA | Serial Data Line for I²C communication |
| 4 | SCL | Serial Clock Line for I²C communication |
To use the GY-30 BH1750FVI sensor with an Arduino UNO, follow these steps:
Wiring: Connect the sensor to the Arduino as shown below:
Install Required Library:
Sketch → Include Library → Manage Libraries.Upload Example Code: Use the following code to read light intensity values from the sensor:
#include <Wire.h>
#include <BH1750.h>
// Create an instance of the BH1750 sensor
BH1750 lightMeter;
void setup() {
Serial.begin(9600); // Initialize serial communication
Wire.begin(); // Initialize I²C communication
// Initialize the BH1750 sensor
if (lightMeter.begin()) {
Serial.println("BH1750 initialized successfully");
} else {
Serial.println("Error initializing BH1750. Check wiring!");
while (1); // Halt execution if initialization fails
}
}
void loop() {
// Read light intensity in lux
float lux = lightMeter.readLightLevel();
// Print the light intensity to the Serial Monitor
Serial.print("Light Intensity: ");
Serial.print(lux);
Serial.println(" lux");
delay(1000); // Wait for 1 second before the next reading
}
| Issue | Solution |
|---|---|
| No readings or incorrect values | Check wiring connections and ensure the correct I²C address is used. |
| Sensor not initializing | Verify the power supply voltage and ensure the SDA/SCL lines are connected. |
| Unstable or fluctuating readings | Ensure the sensor is not exposed to flickering light sources. |
| Arduino IDE error: "No such file or directory" | Install the BH1750 library from the Library Manager. |
Can the GY-30 measure light intensity in complete darkness?
What is the maximum distance between the sensor and the microcontroller?
Can the sensor be used outdoors?
How do I change the I²C address?
By following this documentation, you can effectively integrate the GY-30 BH1750FVI sensor into your projects and achieve accurate light intensity measurements.