Stap 4: Temperatuur en vochtigheid controle van Java-Code:
Het voordeel van het gebruik van de raspberry pi is dat biedt u de flexibiliteit van de programmeertaal waarin u wenst te programmeren van de Raad van bestuur om de interface van de sensor mee. Gebruik te maken van dit voordeel van dit forum, tonen wij hier de programmering in de Java. De code van Java voor SHT25 kan worden gedownload van onze github Gemeenschap die Controle alles Gemeenschap.
Evenals voor het gemak van de gebruikers, we zijn uit te leggen de code hier ook:
Als de eerste stap van codering wilt u downloaden van de pi4j-bibliotheek in het geval van java, omdat deze bibliotheek de functies die worden gebruikt in de code ondersteunt. Dus, om te downloaden van de bibliotheek kunt u de volgende link bezoeken:
U kunt ook de werkende java code voor deze sensor vanaf hier:
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); } }
De output van de code wordt ook weergegeven in de afbeelding hierboven.
De bibliotheek die vergemakkelijkt de i2c communicatie tussen de sensor en de Raad van bestuur is pi4j, zijn verschillende pakketten, I2CBus, I2CDevice en I2CFactory helpen de verbinding tot stand brengen.
import com.pi4j.io.i2c.I2CBus; import com.pi4j.io.i2c.I2CDevice; import com.pi4j.io.i2c.I2CFactory; import java.io.IOException;
Dit deel van de code maakt de sensor voor temperatuurmeting en vochtigheid meting werken door het schrijven van de respectieve opdrachten met behulp van de functie van write() en vervolgens de gegevens worden gelezen met behulp van de functie 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);