Paso 4: Temperatura y humedad monitoreo 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 SHT25 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:
import com.pi4j.io.i2c.I2CBus; import com.pi4j.io.i2c.I2CDevice; import com.pi4j.io.i2c.I2CFactory; import java.io.IOException; public class SHT25 { public static void main(String args[]) throws Exception { // Create I2C bus I2CBus Bus = I2CFactory.getInstance(I2CBus.BUS_1); // Get I2C device, SHT25 I2C address is 0x40(64) I2CDevice device = Bus.getDevice(0x40); // Send temprature measurement command, NO HOLD master device.write((byte)0xF3); Thread.sleep(500); // Read 2 bytes of data // temp msb, temp lsb byte[] data = new byte[2]; device.read(data, 0, 2); // Convert the data double cTemp = (((((data[0] & 0xFF) * 256) + (data[1] & 0xFF)) * 175.72) / 65536.0) - 46.85; double fTemp = (cTemp * 1.8) + 32; // Send humidity measurement command, NO HOLD master device.write((byte)0xF5); Thread.sleep(500); // Read 2 bytes of data // humidity msb, humidity lsb device.read(data, 0, 2); // Convert the data double humidity = (((((data[0] & 0xFF) * 256) + (data[1] & 0xFF)) * 125.0) / 65536.0) - 6; // Output data to screen System.out.printf("Relative Humidity : %.2f %% RH %n", humidity); System.out.printf("Temperature in Celsius : %.2f C %n", cTemp); System.out.printf("Temperature in Farhenheit : %.2f F %n", fTemp); } }
La salida del código también se muestra en la foto de arriba.
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 opere para medición de temperatura y medición de humedad por escrito los respectivos comandos utilizando la función write() y luego se leen los datos mediante la función read().
device.write((byte)0xF3);Thread.sleep(500);// Read 2 bytes of data// temp msb, temp lsbbyte[] data = new byte[2];device.read(data, 0, 2);// Send humidity measurement command, NO HOLD masterdevice.write((byte)0xF5);Thread.sleep(500);// Read 2 bytes of data// humidity msb, humidity lsbdevice.read(data, 0, 2);