「雕爷学编程」Arduino动手做(27)——BMP280气压传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验二十七:GY-BMP280-3.3 高精度大气压强传感器模块
BMP280
博世Sensortec - BMP280 是一种专为移动应用设计的绝对气压传感器。该传感器模块采用极其紧凑的封装。得益于小尺寸和低功耗特性,这种器件可用在如移动电话、GPS 模块或手表等电池供电型设备中。与上代产品相同,BMP180、BMP280 也基于Bosch 成熟的压阻式压力传感器技术,具有高确度和线性度,以及长期稳定性和很高的 EMC 稳健性。多种设备工作选择带来了最高灵活性,可以在功耗、分辨率和滤波性能方面对设备进行优化。
BMP280是博世最新推出的数字气压传感器,具有卓越的性能和低廉的价格,相对精度为±0.12 hPa(相当于±1米),传感器功耗仅有2.7μA。BMP280具有业界最小封装,采用极其紧凑的8引脚金属盖LGA封装,占位面积仅为2.0×2.5mm2,封装高度为0.95 mm。包括有压力和温度测量功能。该气压传感器支持SPI和IIC通信接口,相比上一代的BMP180,精度已有相当大的提升,非常适合应用于低成本的多旋翼飞行器飞行控制器上,价格仅有目前流行的MS5611的四分之一。传感器模块它的小尺寸和2.74μA@ 1Hz的低功耗允许在电池驱动的设备中实现。门内导航,医疗保健以及GPS改进的新兴应用需要高相对精度和低TCO。
BMP280芯片结构图
BMP280非常适用于地板水平检测等应用,因为传感器具有±0.12 hPa的优异相对精度,相当于±1m高度差,偏移温度系数(TCO)仅为1.5 Pa / K(相当于12.6厘米/ K)。作为广泛实施的BMP180的继承者,BMP280最初在2011年开始大量使用手机中的气压测量,BMP280在所有需要精确压力测量的应用中实现了高性能。同时,BMP280具有更高的应用灵活性,新的滤波器模式和SPI接口,而且相对于BMP180,占位面积缩小了63%。
应用范围
1、GPS 导航增强(例如改进初次定位时间、航位推算、斜率检测)
2、室内导航(室内检测、电梯检测)
3、户外导航,休闲和运动应用
4、天气预报
5、健康保健应用(如肺活量测定)
6、垂直速度指示(如上升/下沉速度)
GY-BMP280-3.3 高精度大气压强传感器模块
是个低功耗数字复合传感器,它可以测量环境温度和大气压强。气压敏感元件是一个低噪高精度高分辨率绝对大气压力压电式感应元件;温度感测元件具有低噪高分辨率特性,温度值可以对气压进行温度补偿自校正。通过配置采样率寄存器,可以设置敏感元件的采样率。非常适合空间有限的移动设备,如智能是手机、平板电脑、智能手表和可穿戴设备、天气预报、垂直速度指示、飞控设备、室内室外导航、智能家居装置。
模块电原理图
Adafruit_BMP280_Library,用于BMP280传感器的Arduino库
下载地址
https://github.com/adafruit/Adafruit_BME280_Library
https://github.com/mahfuz195/BMP280-Arduino-Library
https://github.com/adafruit/Adafruit_BMP280_Library/releases(最新版本1.0.3)
还要下载这个库--Adafruit_Sensor
https://github.com/adafruit/Adafruit_Sensor
需要的材料和硬件连接
注意的是这块板子的额定电压是3.3v,且同时支持两种连接方式: I²C 和 SPI ,下面的连接方式是SPI的连接方式和程序。
左边的是BMP280的6个接口,右边是Arduino的6个接口,两者用杜邦线连接即可。将USB线缆连接到电脑,选择好合适的开发板以及端口,上传并打开串口监视器,查看数值变化。
GY-BMP 280 Arduino UNO
VCC 3.3v
GND gnd
SCL 13
SDA 11
CSB 10
SDO 12
备注:不要使用5V,可能会损坏BMP280传感器
/* 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真) 实验二十七:GY-BMP280-3.3 高精度大气压强传感器模块(高度与温度计) */ #include <Wire.h> #include <SPI.h> #include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h> #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11 #define BMP_CS 10 Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); void setup() { Serial.begin(9600); Serial.println(F("BMP280 测试")); if (!bmp.begin()) { Serial.println(F("找不到对应的传感器")); while (1); } } void loop() { Serial.print(F("温度 = ")); Serial.print(bmp.readTemperature()); Serial.println(" *C"); Serial.print(F("气压 = ")); Serial.print(bmp.readPressure()); Serial.println(" Pa"); Serial.print(F("海拔 = ")); Serial.print(bmp.readAltitude(1013.25)); Serial.println(" m"); Serial.println(); delay(2000); }
I²C 的连接方式和程序
「雕爷学编程」Arduino动手做(27)——BMP280气压传感器的更多相关文章
- 「雕爷学编程」Arduino动手做(15)——手指侦测心跳模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(9)——火焰传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(10)——敲击传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(14)——倾斜角度模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(13)——触摸开关模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(12)——霍尔磁力模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(11)——金属触摸模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(8)——湿度传感器模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践出真知(动手试试)的理念,以学习和交流为目的,这里准备 ...
- 「雕爷学编程」Arduino动手做(7)——旋转电位器模块
37款传感器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验 ...
- 「雕爷学编程」Arduino动手做(41)---激光接收管模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
随机推荐
- 数字签名---RSA算法
保证信息在传输过程中的安全性: 保密通信.密钥交换.数字签名. RSA算法 Diffie-Hellman算法 DSA算法 保密通信 √ × × 密钥交换 √ √ × 数字签 ...
- 数据库 MySQL 练习
一.sql语句基础 1.顯示德國 Germany 的人口 SELECT population FROM world WHERE name = 'Germany' 2.查詢面積為 5,000,000 ...
- python学习笔记(二)---for循环与操作列表
内容概要 for循环 range(start,end,step)函数 生成随机数列表 list()函数 将range()的结果整合到某个列表 列表的操作 切片(start: end :step) 元组 ...
- 点击 QTableView,触发事件
Here is an example of how you can get a table cell's text when clicking on it. Suppose a QTableView ...
- 2.Python是什么?使用Python的好处是什么?
Python是什么?使用Python的好处是什么? 答: Python is a programming language with objects, modules, threads, except ...
- vue项目中上拉加载和下拉刷新页面的实现
功能:上拉加载,下拉刷新 使用方法: 自己创建一个.vue的文件(我自己是创建了一个PullToRefresh.vue的文件),将代码粘贴进去,具体的样式问题自己在该文件中调整. <templa ...
- 几年前的今天,Google发了这几篇“大”新闻
免责声明: 因阅读本文所导致的任何时间或经济上的损失,皆由您自行承担,本小编概不负责. 估计今天我的朋友圈会被"震惊!"刷屏,来看看 Google 做过哪些令人"震惊&q ...
- webpack打包多入口配置
在它的entry入口设置多文件入口即可,例: entry: { core: './src/core.js', design: './src/design.js' }, 单一出口输出: output: ...
- spark系列-4、spark序列化方案、GC对spark性能的影响
一.spark的序列化 1.1.官网解释 http://spark.apache.org/docs/2.1.1/tuning.html#data-serialization 序列化在任何分布式应用程序 ...
- JSP、ASP、PHP Web应用程序怎么这么多P!
之前我们说完了计算机网络应用程序的两种结构:C/S,B/S(传送门)今天我们详细说一说B/S开发中的这么多P是干什么的. 1.什么是Web应用程序 一个Web应用程序是由完成特定任务的各种Web组件( ...