German English
Sensoren

SHT21 - Luftfeuchtigkeit über I2C auslesen

Der auf dem Funkmodul Preon32 eingesetzte Mikrocontroller verfügt über eine Vielzahl von Schnittstellen. Über diese lassen sich sowohl Sensoren als auch Aktoren mit unterschiedlichen Protokollen ansteuern. Für das Funkmodul passend entwickelt bietet VIRTENIO ein Sensormodul VariSen für das Preon32Shuttle an, dass eine Vielzahl von Sensoren für unterschiedliche Messgrößen enthält.
In diesem Beispiel wird ein digitaler Sensor für relative Luftfeuchtigkeit (SHT21) an einer der I2C-Schnittstellen betrieben. Der Treiber ermöglicht eine kontinuierliche Erfassung der Luftfeuchtigkeit. Im Programmverlauf werden Messwerte in einem zeitlichen Abstand von 1000ms erfasst und als reine Sensorwerte als auch in relativer Luftfeuchtigkeit umgerechnete Werte ausgegeben.
/*
 * Copyright (c) 2011., Virtenio GmbH
 * All rights reserved.
 */
package com.virtenio.webdemo;

import com.virtenio.drivers.i2c.NativeI2C;
import com.virtenio.drivers.sensors.i2c.SHT21;

import java.io.IOException;

public class HumidityI2C {

    public static void main(String[] args) throws IOException, InterruptedException {

        NativeI2C i2c = NativeI2C.getInstance(1);
        i2c.open();

        SHT21 sht21 = new SHT21(i2c);
        sht21.setResolution(SHT21.RESOLUTION_RH12_T14);
        sht21.reset();

        Thread.sleep(1000);
        //
        while (true) {
            // relative humidity
            sht21.startRelativeHumidityConversion();
            Thread.sleep(100);
            int rawRH = sht21.getRelativeHumidityRaw();
            float rh = SHT21.convertRawRHToRHw(rawRH);
            System.out.println("SHT21: rawRH=" + rawRH + "; RH=" + rh);
            Thread.sleep(900);
        }
    }

}