цифровая электроника
вычислительная техника
встраиваемые системы

 

Raspberry Pi и датчик влажности HYT939

Автор: Mike(admin) от 20-01-2017, 19:05

HYT939 представляет собой цифровой датчик влажности, который работает по интерфейсу I2C. Влажность является ключевым параметром, когда речь заходит о медицинских системах, лабораторных приборах и метеорологическом оборудовании. С помощью одноплатного компьютера Raspberry Pi такие устройства легко можно сделать, если к нему подключить датчик влажности HYT939. Кроме того, HYT939 способен измерять температуру, хотя все же чаще его используют для измерения влажности из-за его превосходных характеристик в этой области.


Raspberry Pi и датчик влажности HYT939

В данном материале показано, как подключить датчик HYT939 к Raspberry Pi, и приведен код на языке Java для взаимодействия Raspberry Pi с датчиком.


Для данного проекта потребуется сам миникомпьютер Raspberry Pi, датчик влажности HYT939, шилд-переходник I2C Shield, кабель I2C для чтения значений влажности по протоколу I2C (содержит четыре провода Vcc, Gnd, SCL и SDA), кабель Ethernet для связи Raspberry Pi с компьютером, а также кабель nano USB для подведения питания к Raspberry Pi. В итоге система с подключенными элементами должна выглядеть так, как показано на фотографии, приведенной ниже.


Raspberry Pi и датчик влажности HYT939

Преимущество использования Raspberry Pi заключается в том, что оно дает вам гибкость выбора языка программирования. Поэтому в данном случае программирование Raspberry Pi осуществим на языке Java. Для этого необходимо будет скачать библиотеку pi4j (http://pi4j.com/install.html).


Код для взаимодействия Raspberry Pi и датчик HYT939 представлен ниже.



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	
{		
// Для шины I2C		
I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1);				
I2CDevice device = bus.getDevice(0x28);		
device.write((byte)0x80);		
Thread.sleep(500);
// считываем 4 байта данных (старшие и младшие байты влажности и температуры)	
byte[] data = new byte[4];		
device.read(data,0,4);
// Преобразовываем данные в 14-битные переменные	
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;
// Выводим данные на экран	
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);	
}
}



Теги: Raspberry Pi, HYT939, датчик влажности, датчик температуры




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий