Class: I2CDevice::HDC1000

Inherits:
I2CDevice show all
Defined in:
lib/i2c/device/hdc1000.rb

Overview

www.ti.com/product/HDC1000 A Digital humidity/temperature sensor

Constant Summary

Constants inherited from I2CDevice

VERSION

Instance Attribute Summary

Attributes inherited from I2CDevice

#address

Instance Method Summary collapse

Methods inherited from I2CDevice

#i2cget, #i2cset

Constructor Details

#initialize(args = {}) ⇒ HDC1000

Returns a new instance of HDC1000.


9
10
11
12
13
14
15
# File 'lib/i2c/device/hdc1000.rb', line 9

def initialize(args = {})
	args = {
		address: 0x40
	}.merge(args)
	super args
	configuration
end

Instance Method Details

#calc_humidity(d1, d2) ⇒ Object


39
40
41
# File 'lib/i2c/device/hdc1000.rb', line 39

def calc_humidity(d1, d2)
  (d1<<8 | d2).to_f / 2**16 * 100
end

#calc_temperature(d1, d2) ⇒ Object


35
36
37
# File 'lib/i2c/device/hdc1000.rb', line 35

def calc_temperature(d1, d2)
  ((d1<<8 | d2).to_f / 2**16 * 165) - 40
end

#configurationObject


17
18
19
20
21
22
23
# File 'lib/i2c/device/hdc1000.rb', line 17

def configuration
	i2cset(
		0x02, # Configuration register
		0x10, # TRES 14bit
		0x00  # HRES 14bit
	)
end

#get_dataObject


25
26
27
28
29
30
31
32
33
# File 'lib/i2c/device/hdc1000.rb', line 25

def get_data
	i2cset(0x00)
	sleep 6.35e-3 + 6.5e-3
	raw = i2cget(nil, 4).unpack("C4")
	{
		temperature: calc_temperature(raw[0], raw[1]),
		humidity: calc_humidity(raw[2], raw[3])
	}
end