Schritt 3: Java-Code für die Feuchtemessung:
Der Vorteil der Verwendung von Raspberry Pi ist, bietet Ihnen die Flexibilität, die Programmiersprache, in der Sie das Board zu programmieren, damit den Sensor mit Schnittstelle möchten. Nutzen diesen Vorteil dieses Boards, zeigen wir hier die Programmierung in Java. Der Java-Code für HYT939 kann aus unserer Gemeinde Github heruntergeladen werden, die Steuerung alles Gemeinschaftist.
Sowie für die Leichtigkeit der Nutzer, erklären wir den Code hier auch:
Als erster Schritt der Programmierung müssen Sie die pi4j-Bibliothek im Falle von Java, herunterladen, da diese Bibliothek die Funktionen im Code verwendet unterstützt. Um die Bibliothek herunterladen besuchen Sie den folgenden Link:
Sie können auch die funktionierende Java-Code für diesen Sensor von hier kopieren:
import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice;import com.pi4j.io.i2c.I2CFactory;import java.io.IOException;public class HYT939{ public static void main(String args[]) throws Exception { // Create I2CBus I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1); // Get I2C device, HYT939 I2C address is 0x28(40) I2CDevice device = bus.getDevice(0x28);// Send normal mode command device.write((byte)0x80); Thread.sleep(500);// Read 4 bytes of data // humidity msb, humidity lsb, temp msb, temp lsb byte[] data = new byte[4]; device.read(data,0,4);// Convert the data to 14-bits double humidity = (((data[0] & 0x3F) * 256) + (data[1] & 0xFF)) * (100.0 / 16383.0); double cTemp = ((((data[2] & 0xFF) * 256) + (data[3] & 0xFC)) / 4) * (165.0 / 16383.0) - 40; double fTemp = (cTemp * 1.8 ) + 32;// Output data to screen System.out.printf("Relative Humidity is : %.2f %%RH %n", humidity); System.out.printf("Temperature in Celsius is : %.2f C %n", cTemp); System.out.printf("Temperature in Fahrenheit is : %.2f F %n", fTemp); }}
Die Bibliothek, die i2c Kommunikation zwischen Sensor und das Board erleichtert ist pi4j, seine verschiedenen Paketen I2CBus, I2CDevice und I2CFactory helfen, die Verbindung herzustellen.
import com.pi4j.io.i2c.I2CBus;import com.pi4j.io.i2c.I2CDevice; import com.pi4j.io.i2c.I2CFactory; import java.io.IOException;
Write() und read() Funktionen werden verwendet, um einige bestimmte Befehle an den Sensor zu machen, arbeiten in einem bestimmten Modus und der Sensor bzw. Ausgabe lesen schreiben. Nach Teil des Codes veranschaulicht die Verwendung dieser Funktionen.
// Send normal mode command device.write((byte)0x80); Thread.sleep(500); // Read 4 bytes of data // humidity msb, humidity lsb, temp msb, temp lsb byte[] data = new byte[4]; device.read(data,0,4);
Der Ausgang des Sensors ist auch auf dem Bild oben gezeigt.