用树莓pi处理i2c传感器的库
i2csense的Python项目详细描述
另一个用于处理通过 I2c总线(SDA,SCL管脚)到Raspberry Pi
此库实现以下I2C传感器: -Bosch BME280 Environmental sensor (temperature, humidity and pressure) -HTU21D temperature and humidity sensor -BH1750FVI light level sensor
安装
此库需要启用i2c总线,并使用 smbus-cffi要与之通信的模块,因此,在安装之前 pip,确保总线已启用,以及必需的依赖项 提供:
在Raspberry PI上安装SMBus支持的说明:
使用Raspberry PI配置实用程序启用I2C接口:
# Enable i2c interface
sudo raspi-config
选择Interfacing options->I2C选择<Yes>并点击Enter, 然后转到Finish,系统将提示您重新启动。
安装依赖项以使用smbus-cffi模块并重新启动:
sudo apt-get install build-essential libi2c-dev i2c-tools python-dev libffi-dev sudo reboot
检查传感器的I2C地址
安装i2c-tools后,可以使用一个新实用程序扫描 连接的传感器地址:
/usr/sbin/i2cdetect -y 1
它将输出如下表:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- 77
因此,您可以看到三个传感器位于0x23(bh1750),0x40 (htu21d)和0x77(bme280)地址。
使用pip
安装最后,在python环境中,
pip install i2csense
用法
此库用于其他应用程序,其中传感器 用它们的配置参数实例化,在 所需间隔。但是,如果您想通过 命令行中还提供了一个简单的cli来测试传感器。
importsmbusfromi2csense.bme280importBME280bus=smbus.Bus(1)sensor=BME280(bus)delta_secs=5whileTrue:sensor.update()ifnotsensor.sample_ok:print("An error has occured")breakprint(sensor.current_state_str)sleep(delta_secs)
cli用法
查找传感器:
i2csense # or specify the i2c bus: i2csense -b 0
测试传感器:
# Test BME280 sensor with default params: i2csense -s bme280 # Test BME280 sensor with custom params every 10 secs: i2csense -d 10 --bus 0 --address 0x77 --sensor bme280 --params osrs_t=4osrs_p=4osrs_h=4mode=2filter_mode=1
变更日志
- v0.0.1:第一版有3个传感器:BME280、BH1750、HTU21D
- v0.0.2:小修复
- v0.0.3:对BH1750的小修复,修复README.rst
待办事项:
- 附加更多传感器。
- 使用更好的帮助和更多配置选项完成CLI界面
尽管这个库只包含三个传感器,但是 继续在i2c上运行更多的传感器或执行器来完成它 巴士,所以我鼓励你贡献更多的传感器,或者复制, 更改、编辑或建议任何更改