2个不稳定版本
0.2.0 | 2020年9月10日 |
---|---|
0.1.0 | 2020年1月27日 |
#2034 in 嵌入式开发
每月 22次下载
58KB
938 行
Rust CCS811 驱动程序:用于监控室内空气质量的超低功耗数字气体传感器
这是一个使用embedded-hal
特质实现的、适用于所有平台的CCS811超低功耗数字VOC传感器驱动程序,用于监控室内空气质量(IAQ)。
此驱动程序允许您
- 在应用模式下
- 设置测量模式。见:
set_mode()
。 - 检查是否有新数据准备好。见:
has_data_ready()
。 - 获取算法和原始结果数据。见:
data()
。 - 获取原始数据。见:
raw_data()
。 - 获取当前基线。见:
baseline()
。 - 设置基线。见:
set_baseline()
。 - 设置环境温度和相对湿度。见:
set_environment()
。 - 设置中断模式。见:
set_interrupt_mode()
。 - 设置中断的eCO2阈值。见:
set_eco2_thresholds()
。
- 设置测量模式。见:
- 在启动模式下
- 启动应用。见:
start_application()
。 - 重置、擦除、下载并验证新的应用。见:
update_application()
。 - 擦除应用。见:
erase_application()
。 - 验证应用程序。请参阅:
verify_application()
。 - 下载应用程序。请参阅:
download_application()
。
- 启动应用。见:
- 在任一模式下
- 获取固件模式。请参阅:
firmware_mode()
。 - 检查是否加载了有效的应用程序。请参阅:
has_valid_app()
。 - 获取硬件ID。请参阅:
hardware_id()
。 - 获取硬件版本。请参阅:
hardware_version()
。 - 获取固件引导加载程序版本。请参阅:
firmware_bootloader_version()
。 - 获取固件应用程序版本。请参阅:
firmware_application_version()
。 - 执行软件重置。请参阅:
software_reset()
。
- 获取固件模式。请参阅:
设备
CCS811是一种超低功耗数字气体传感器解决方案,它集成了金属氧化物(MOX)气体传感器,用于检测广泛的挥发性有机化合物(VOCs),并通过微控制器单元(MCU)进行室内空气质量监测,该单元包括模拟数字转换器(ADC)和I²C接口。
CCS811基于ams独特的微热板技术,该技术为气体传感器提供了高度可靠的解决方案,非常快的循环时间,并显著降低了平均功耗。
集成的MCU管理传感器驱动模式和测量。I²C数字接口显著简化了硬件和软件设计,使产品上市时间更快。
CCS811支持智能算法,用于处理原始传感器测量值,输出等效总VOC(eTVOC)和等效CO2(eCO2)值,其中VOCs的主要来源是人类。
CCS811支持多种测量模式,这些模式在活动传感器测量和空闲模式下已优化以降低功耗,从而延长便携式应用程序的电池寿命。
文档
使用
要使用此驱动程序,请导入此crate和embedded_hal
实现,然后实例化设备。
请在此存储库中查找使用硬件的附加示例:[driver-examples](https://github.com/eldruin/driver-examples)
extern crate linux_embedded_hal as hal;
use embedded_ccs811::{prelude::*, Ccs811, MeasurementMode, SlaveAddr};
use nb::block;
fn main() {
let dev = hal::I2cdev::new("/dev/i2c-1").unwrap();
let nwake = hal::Pin::new(17);
let delay = hal::Delay {};
let address = SlaveAddr::default();
let sensor = Ccs811::new(dev, address, nwake, delay);
let mut sensor = sensor.start_application().ok().unwrap();
sensor.set_mode(MeasurementMode::ConstantPower1s).unwrap();
loop {
let data = block!(sensor.data()).unwrap();
println!("eCO2: {}, eTVOC: {}", data.eco2, data.etvoc);
}
}
支持
有关问题、问题、功能请求和其他更改,请在[github项目](https://github.com/eldruin/embedded-ccs811-rs/issues)中提交问题。
许可
根据您选择的以下任一许可
- Apache License,版本2.0 ([LICENSE-APACHE](https://github.com/eldruin/embedded-ccs811-rs/blob/1f1a3294dade8b83dd7bc13d0145d648f97a27d9/LICENSE-APACHE) 或 [https://apache.ac.cn/licenses/LICENSE-2.0](https://apache.ac.cn/licenses/LICENSE-2.0))
- MIT许可 ([LICENSE-MIT](https://github.com/eldruin/embedded-ccs811-rs/blob/1f1a3294dade8b83dd7bc13d0145d648f97a27d9/LICENSE-MIT) 或 [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可定义,您有意提交给作品的所有贡献,将按照上述方式双许可,不附加任何额外条款或条件。
依赖关系
~71KB