BME280传感器
BME280是博世公司的一款小尺寸、高性能的数字式温度、湿度、压力传感器。传感器模块安装在一个非常紧凑的金属盖LGA封装中,占地面积仅为2.5×2.5 mm²,高度为0.93 mm,非常适合空间有限的移动设备,如智能手机,平板电脑、智能手表和可穿戴设备。
BME280有两颗MEMS芯片和一颗ASIC芯片。其中,MEMS压力传感器采用博世APSM工艺制程,集成柔性压力薄膜和硅基温度二极管;相对湿度传感器采用了一种创新的电阻式测量技术,响应快速、准确,且芯片尺寸非常小。三种功率模式和用于压力与温度测量的各自配置过采样率可使BME280适应广泛的应用场合。该BME280提供出色的整体精度。压力读数的相对精度为±12hPa,相当于高度差为±1m处分辨率为37.5px。
BME280是增强高性能GPS应用的理想选择,它可以实现更精确和更快的位置测定,BME280特别适合电池驱动的应用场合。
参数指标
应用领域
● 健康监测
● 智能家居
● 物联网
● GPS增强
● 室内、室内导航
● 天气预报
● 垂直速度指示(如上升/下沉速度)
读、写和延时函数
signed char BME280_I2C_bus_read(unsigned char device_addr,unsigned char reg_addr,unsigned char *reg_data,unsigned char cnt)
{
int iError=0;
unsigned char array[I2C_BUFFER_LEN];
unsiqned char stringpos;
array[0]= reg_addr;
iError = I2C_write_read_string(I2C0,device_addr, array, array,1,cnt);
for(stringpos=0;stringpos<cnt;stringpos++)
{
*(reg_data + stringpos)= array[stringpos];
}
return (siqned char)iError;
}
signed char BME280_I2c_bus_write(unsigned char device_addr,unsigned char reg_addr,unsigned char *reg_data,unsigned char cnt)
{
int iError=0;
unsigned char array[I2C_BUFFER_LEN];
unsiqned char stringpos;
array[0]= reg_addr;
for(stringpos=0;stringpos<cnt;stringpos++)
{
array[stringpos+1] = *(reg_data + stringpos);
}
iError = I2C_write_string(I2C0,device_addr, array, array,cnt+1);
return (siqned char)iError;
}
void BME280_delay_msec(BME280_U16_t msec) //delay in milliseconds
{
BME280_U32_t counter;
for (counter =0; counter/2000 < msec; counter++);// 2000 counts = 1 msec
}
补偿公式
8.1 双精度浮点数中的补偿公式
8.2 32位定点压力补偿
数据手册
如果需要给传感器增加无线传输功能,可以通过增加无线物联网控制器实现。
● 内置电池或外接5V电源供电
● 无线传输方式支持4G、NB、WIFI、LORA等
● 支持所有传感器接口
【单片机-传感器】项目定制开发 |