Class: RubyI2C::Device::SI70XX
- Defined in:
- lib/ruby_i2c/device/si70xx.rb
Constant Summary collapse
- ADDRESS =
Silicon Labs Si70xx chips www.silabs.com/products/sensors/humidity-sensors/Pages/si7013-20-21.aspx
0x40
- MEASURE_RH_CMD =
0xE5
- MEASURE_TEMP_CMD =
0xE3
- READ_FIRMWARE_REV_CMD =
[ 0x84, 0xB8 ]
- READ_SERIAL_NUM_CMD =
[ 0xFA, 0x0F, 0xFC, 0xC9 ]
- RESET_CMD =
0xFE
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
- .address ⇒ Object
- .measure_rh_cmd ⇒ Object
- .measure_temp_cmd ⇒ Object
- .read_firmware_rev_cmd ⇒ Object
- .read_serial_num_cmd ⇒ Object
- .reset_cmd ⇒ Object
Instance Method Summary collapse
- #command(cmd, length = 1, rest = nil) ⇒ Object
- #firmware_revision ⇒ Object (also: #firmware_rev)
-
#initialize(*args) ⇒ SI70XX
constructor
A new instance of SI70XX.
- #name ⇒ Object
- #read(cmd, length = 1, rest = nil) ⇒ Object
- #relative_humidity ⇒ Object (also: #rh)
- #reset ⇒ Object
- #serial_number ⇒ Object (also: #serial)
- #temperature ⇒ Object (also: #temp)
Methods inherited from Base
Constructor Details
#initialize(*args) ⇒ SI70XX
Returns a new instance of SI70XX.
32 33 34 35 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 32 def initialize(*args) super @address ||= self.class.address end |
Class Method Details
.address ⇒ Object
14 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 14 def self.address; ADDRESS; end |
.measure_rh_cmd ⇒ Object
15 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 15 def self.measure_rh_cmd; MEASURE_RH_CMD; end |
.measure_temp_cmd ⇒ Object
16 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 16 def self.measure_temp_cmd; MEASURE_TEMP_CMD; end |
.read_firmware_rev_cmd ⇒ Object
17 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 17 def self.read_firmware_rev_cmd; READ_FIRMWARE_REV_CMD; end |
.read_serial_num_cmd ⇒ Object
18 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 18 def self.read_serial_num_cmd; READ_SERIAL_NUM_CMD; end |
.reset_cmd ⇒ Object
19 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 19 def self.reset_cmd; RESET_CMD; end |
Instance Method Details
#command(cmd, length = 1, rest = nil) ⇒ Object
21 22 23 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 21 def command(cmd, length=1, rest=nil) super.unpack("C"*length) end |
#firmware_revision ⇒ Object Also known as: firmware_rev
26 27 28 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 26 def firmware_revision command(self.class.read_firmware_rev_cmd, 1).first end |
#name ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 38 def name case serial_array[4] when 0x00, 0xFF :engineering when 0x0D :si7013 when 0x14 :si7020 when 0x15 :si7021 else :unknown end end |
#read(cmd, length = 1, rest = nil) ⇒ Object
54 55 56 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 54 def read(cmd, length=1, rest=nil) super.unpack("C"*length) end |
#relative_humidity ⇒ Object Also known as: rh
59 60 61 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 59 def relative_humidity ( (125 * measure(self.class.measure_rh_cmd)) / 65535 ) - 6 end |
#reset ⇒ Object
65 66 67 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 65 def reset write self.class.reset_cmd end |
#serial_number ⇒ Object Also known as: serial
70 71 72 73 74 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 70 def serial_number (1..7).reduce(0) do |serial,pow| serial += serial_array[pow-1] << 8*pow end + serial_array[7] end |
#temperature ⇒ Object Also known as: temp
78 79 80 |
# File 'lib/ruby_i2c/device/si70xx.rb', line 78 def temperature ( (175.72 * measure(self.class.measure_temp_cmd)) / 65536 ) - 46.85 end |