Étape 4: Mesure d’intensité lumineuse à l’aide de code java :
L’avantage d’utiliser des framboises pi est, c’est vous offre la flexibilité du langage de programmation dans lequel vous souhaitez programmer le Conseil afin de l’interface du capteur avec elle. Tirer parti de cet avantage de cette carte, nous démontrons ici sa programmation en Java. Le code Java pour BH1715 peut être téléchargé de notre communauté de github c’est la Communauté de contrôle tout.
Ainsi que pour faciliter la tâche des utilisateurs, nous sommes expliquant le code ici aussi :
La première étape de codage vous devez télécharger la bibliothèque pi4j dans le cas de java, car cette bibliothèque prend en charge les fonctions utilisées dans le code. Donc, pour télécharger la bibliothèque, vous pouvez visiter le lien suivant :
Vous pouvez copier le code de java de travail pour ce capteur d’ici aussi :
// 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 bibliothèque qui facilite la communication i2c entre le capteur et le Conseil d’administration est pi4j, ses différents forfaits I2CBus, I2CDevice et I2CFactory permettent d’établir la connexion.
import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice; import com.pi4j.io.i2c.I2CFactory; import java.io.IOException;
Cette partie du code rend le capteur fonctionne pour la mesure de l’intensité lumineuse en écrivant les commandes respectives en utilisant la fonction write() et puis les données sont lues à l’aide de la fonction 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);
Les données reçues du capteur sont converties au format approprié à l’aide de ce qui suit :
double luminance = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)) / 1.20;
L’affichage se fait à l’aide de la fonction System.out.println(), dans le format suivant.
System.out.printf("Ambient Light Luminance : %.2f lux %n", luminance);
La sortie du capteur est montrée dans l’image ci-dessus.