Paso 4: Luz intensidad medida de código java:
La ventaja de usar frambuesa pi es, que le proporciona la flexibilidad del lenguaje de programación en la que desea programar el tablero para interfaz del sensor con él. Aprovechando esta ventaja de esta junta, estamos demostrando aquí su programación en Java. El código Java para BH1715 puede ser descargado de nuestra comunidad de github que es Comunidad de Control de todo.
Así como por la facilidad de los usuarios, nos estamos explicando el código aquí también:
Como el primer paso de la codificación se necesita descargar la biblioteca de pi4j en el caso de java, porque esta biblioteca es compatible con las funciones utilizadas en el código. Por lo tanto, para descargar la biblioteca puede visitar el siguiente enlace:
Puede copiar el código java de trabajo para este sensor de aquí también:
// Distributed with a free-will license.// Use it any way you want, profit or free, provided it fits in the licenses of its associated works.// BH1715// This code is designed to work with the BH1715_I2CS I2C Mini Module available from ControlEverything.com.// https://www.controleverything.com/content/Light?s...import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice;import com.pi4j.io.i2c.I2CFactory;import java.io.IOException;public class BH1715{public static void main(String args[]) throws Exception { // Create I2C bus I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1); // Get I2C device, BH1715 I2C address is 0x23(35) I2CDevice device = bus.getDevice(0x23);// Send power on command device.write((byte)0x01); // Send continuous measurement commanddevice.write((byte)0x10); Thread.sleep(500); // Read 2 bytes of data // luminance msb, luminance lsb byte[] data = new byte[2]; device.read(data, 0, 2); // Convert data double luminance = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)) / 1.20; // Output data to screen System.out.printf("Ambient Light Luminance : %.2f lux %n", luminance); }}
La biblioteca que facilita la comunicación i2c entre el sensor y la placa es pi4j, sus diferentes paquetes I2CBus, I2CDevice y I2CFactory ayudan a establecer la conexión.
import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice; import com.pi4j.io.i2c.I2CFactory; import java.io.IOException;
Esta parte del código hace que el sensor funciona para la medición de la intensidad de la luz por escrito los respectivos comandos utilizando la función write() y luego se leen los datos mediante la función read().
device.write((byte)0x01); // power on command device.write((byte)0x10); // continuous measurement command byte[] data = new byte[2]; // Read 2 bytes of datadevice.read(data, 0, 2);
Los datos recibidos del medidor se convierten en el formato adecuado mediante el uso de los siguientes:
double luminance = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)) / 1.20;
La salida se imprime utilizando la función System.out.println(), en el siguiente formato.
System.out.printf("Ambient Light Luminance : %.2f lux %n", luminance);
La salida del sensor se muestra en la foto de arriba.