View Source Ccs811
Driver for CCS811 Ultra-Low Power Digital Gas Sensor for Monitoring Indoor Air Quality
installation
Installation
If available in Hex, the package can be installed
by adding ccs811
to your list of dependencies in mix.exs
:
def deps do
[
{:ccs811, "~> 0.3.0"}
]
end
usage
Usage
standalone
Standalone
iex(1)> Ccs811.initialize
iex(2)> Ccs811.read_alg_result_data
%{
eco2: 1529,
error_id: %{
heater_fault: false,
heater_supply: false,
max_resistance: false,
measmode_invalid: false,
red_reg_invalid: false,
write_reg_invalid: false
},
status: %{app_valid: true, data_ready: true, error: false, fw_mode: true},
tvoc: 191
}
iex(23)> Ccs811.read_status
%{app_valid: true, data_ready: true, error: false, fw_mode: true}
with-telemetry
With Telemetry
Add to your application initialization
Ccs811.start_polling()
Which will set the driver to periodically execute a telemetry event named [:ccs811, :read]
with a new data map containing values for eCO2 :eco2
and TVOC tvoc
initialization
Initialization
both Ccs811.start_polling()
and Ccs811.initialize()
supports additional configuration parameters that can be passed as a keyword list
see Ccs811.start_polling/1
and Ccs811.initialize/1
for further details
missing-features
Missing features
- Configuring humidity and temperature
- Interrupt based data reading instead of polling
- Configuration for Bus-name (currently it uses the first available I2C bus)