docs/modules/si7021.md
| Since | Origin / Contributor | Maintainer | Source |
|---|---|---|---|
| 2017-04-19 | fetchbot | fetchbot | si7021.c |
This module provides access to the Si7021 humidity and temperature sensor.
Read the internal firmware revision of the Si7021 sensor.
si7021.firmware()
none
fwrev Firmware version
0xFF Firmware version 1.00x20 Firmware version 2.0local sda, scl = 6, 5
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
si7021.setup()
fwrev = si7021.firmware()
print(string.format("FW: %X\r\n", fwrev))
si7021.read()
none
hum humidity (see note below)temp temperature (see note below)hum_dec humidity decimaltemp_dec temperature decimal!!! note
If using float firmware then `hum` and `temp` are floating point numbers. On an integer firmware, the final values have to be concatenated from `hum` and `hum_dec` / `temp` and `temp_dec`.
local sda, scl = 6, 5
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
si7021.setup()
hum, temp, hum_dec, temp_dec = si7021.read()
-- Integer firmware using this example
print(string.format("Humidity:\t\t%d.%03d\nTemperature:\t%d.%03d\n", hum, hum_dec, temp, temp_dec))
-- Float firmware using this example
print("Humidity: "..hum.."\n".."Temperature: "..temp)
Read the individualized 64-bit electronic serial number of the Si7021 sensor.
si7021.serial()
none
sna 32-bit serial number part asnb 32-bit serial number part b, upper byte contains the device identification
0x00 or 0xFF engineering samples0x0D 13 Si70130x14 20 Si70200x15 21 Si7021local sda, scl = 6, 5
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
si7021.setup()
sna, snb = si7021.serial()
print(string.format("SN:\t\t%X%X\nDevice:\tSi70%d", sna, snb, bit.rshift(snb,24)))
Settings for the sensors configuration register to adjust measurement resolution, on-chip heater and read the supply voltage status.
si7021.setting(RESOLUTION[, HEATER, HEATER_SETTING])
RESOLUTION
si7021.RH12_TEMP14 Relative Humidity 12 bit - Temperature 14 bit (default)si7021.RH08_TEMP12 Relative Humidity 8 bit - Temperature 12 bitsi7021.RH10_TEMP13 Relative Humidity 10 bit - Temperature 13 bitsi7021.RH11_TEMP11 Relative Humidity 11 bit - Temperature 11 bitHEATER optional
si7021.HEATER_ENABLE On-chip Heater Enablesi7021.HEATER_DISABLE On-chip Heater Disable (default)HEATER_SETTING optional
0x00 - 0x0F 3.09 mA - 94.20 mAresolution
0 Relative Humidity 12 bit - Temperature 14 bit1 Relative Humidity 8 bit - Temperature 12 bit2 Relative Humidity 10 bit - Temperature 13 bit3 Relative Humidity 11 bit - Temperature 11 bitvdds
0 VDD OK (1.9V - 3.6V)1 VDD LOW (1.8V - 1.9V)heater
0 Disabled1 Enabledheater_setting
0 - 15local id, sda, scl = 0, 6, 5
i2c.setup(id, sda, scl, i2c.SLOW) -- call i2c.setup() only once
si7021.setup()
res, vdds, heater, heater_set = si7021.setting(si7021.RH12_TEMP14)
res, vdds, heater, heater_set = si7021.setting(si7021.RH12_TEMP14, si7021.HEATER_ENABLE, 0x01)
Initializes the device on fixed I²C device address (0x40).
si7021.setup()
none
nil
local sda, scl = 6, 5
i2c.setup(0, sda, scl, i2c.SLOW) -- call i2c.setup() only once
si7021.setup()