Arduino UNO测试BME680环境传感器
原文链接:https://www.yourcee.com/newsinfo/2929148.html
BME680简介
BME680是一个四合一数字环境检测传感器,可以测量所处周围环境的温度、湿度、气压、有机挥发性化合物(VOC)。其内部的金属氧化物敏感元件用于测量空气中的VOCs,不同VOCs浓度下金属氧化物表面的电导率不一样从而输出不同的电阻值。这个传感器能给到一个关于周围空气中VOCs/污染物之和的定性概念,而不是特定的气体分子。
敏感元件 | 测量范围 | 精度 |
---|---|---|
温度 | -40 to 85 ºC | +/- 1.0 ºC |
湿度 | 0 to 100 % | +/- 3 % |
气压 | 300 to 1100 hPa | +/- 1 hPa |
接口说明
点击图片购买
VCC 供电正极3.3-5V
GND 供电负极
SCL SPI/IIC模式时钟信号输入
SDA SPI模式的MOSI数据信号的输入,IIC模式的数据信号的输入和输出
SDO SPI模式的MISO数据信号的输出,IIC模式时为IIC器件地址设置引脚,接GND时器件地址为1110110(0x76),接VCC时器件地址为1110111(0x77)
CS SPI/IIC模式的选择引脚,当接VCC时为IIC模式,当接GND时为SPI模式
BME680与Arduino UNO接线与程序
BME680 | SPI接线方式 | IIC接线方式 |
---|---|---|
SCL | D13 | A5 |
SDA | D11 | A4 |
SDO | D12 | / |
CS | D10 | / |
IIC接线方式
Arduino IDE库管理器安装 Adafruit_BME680 library
Arduino IDE库管理器安装Adafruit Unified Sensor
打开示例代码
/***************************************************************************This is a library for the BME680 gas, humidity, temperature & pressure sensorDesigned specifically to work with the Adafruit BME680 Breakout----> http://www.adafruit.com/products/3660These sensors use I2C or SPI to communicate, 2 or 4 pins are requiredto interface.Adafruit invests time and resources providing this open source code,please support Adafruit and open-source hardware by purchasing productsfrom Adafruit!Written by Limor Fried & Kevin Townsend for Adafruit Industries.BSD license, all text above must be included in any redistribution***************************************************************************/#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include "Adafruit_BME680.h"#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10#define SEALEVELPRESSURE_HPA (1013.25)Adafruit_BME680 bme; // I2C
//Adafruit_BME680 bme(BME_CS); // hardware SPI
//Adafruit_BME680 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK);void setup() {Serial.begin(9600);while (!Serial);Serial.println(F("BME680 async test"));if (!bme.begin()) {Serial.println(F("Could not find a valid BME680 sensor, check wiring!"));while (1);}// Set up oversampling and filter initializationbme.setTemperatureOversampling(BME680_OS_8X);bme.setHumidityOversampling(BME680_OS_2X);bme.setPressureOversampling(BME680_OS_4X);bme.setIIRFilterSize(BME680_FILTER_SIZE_3);bme.setGasHeater(320, 150); // 320*C for 150 ms
}void loop() {// Tell BME680 to begin measurement.unsigned long endTime = bme.beginReading();if (endTime == 0) {Serial.println(F("Failed to begin reading :("));return;}Serial.print(F("Reading started at "));Serial.print(millis());Serial.print(F(" and will finish at "));Serial.println(endTime);Serial.println(F("You can do other work during BME680 measurement."));delay(50); // This represents parallel work.// There's no need to delay() until millis() >= endTime: bme.endReading()// takes care of that. It's okay for parallel work to take longer than// BME680's measurement time.// Obtain measurement results from BME680. Note that this operation isn't// instantaneous even if milli() >= endTime due to I2C/SPI latency.if (!bme.endReading()) {Serial.println(F("Failed to complete reading :("));return;}Serial.print(F("Reading completed at "));Serial.println(millis());Serial.print(F("Temperature = "));Serial.print(bme.temperature);Serial.println(F(" *C"));Serial.print(F("Pressure = "));Serial.print(bme.pressure / 100.0);Serial.println(F(" hPa"));Serial.print(F("Humidity = "));Serial.print(bme.humidity);Serial.println(F(" %"));Serial.print(F("Gas = "));Serial.print(bme.gas_resistance / 1000.0);Serial.println(F(" KOhms"));Serial.print(F("Approx. Altitude = "));Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));Serial.println(F(" m"));Serial.println();delay(2000);
}
打开串口监视器显示出传感器测量的数据
总结
首次使用传感器器时建议使其工作48小时后其测量的数据相对稳定准确,建议使传感器工作半小时后读取到的气敏电阻值相对准确。通过本实验能快速直观的使用传感器获取所处环境的参数。
Arduino UNO测试BME680环境传感器相关推荐
- Arduino Uno 使用TCS3200D颜色传感器 分辨颜色
欢迎关注「凌顺实验室」微信公众号 TCS3200颜色传感器 实验效果 把色纸放在传感器2CM左右高的地方, 可以检测到该物体的RGB值, 然后我们通过画板可以检验出颜色是否正确 在实际环境中,自然光, ...
- Arduino UNO测试MH-Z16二氧化碳CO2传感器
原文链接:https://www.yourcee.com/newsinfo/2928917.html MH-Z16二氧化碳传感器简介 利用非色散红外(NDIR技术)原理对空气中存在的CO2 进行探测, ...
- Arduino UNO测试BMP280温度气压传感器
BMP280简介 BMP280是一个二合一数字环境检测传感器,传感器采用非常紧凑的封装.它是基于博世经过验证的压阻式压力传感器技术,可以测量所处周围环境的温度.气压.由于气压随高度变化,可以估算高度, ...
- 如何用Arduino UNO和DS18B20防水传感器制作一个温度计
使用Arduino UNO和DS18B20防水温度传感器自制温度计! 在本篇文章中,我们将使用Arduino UNO开发板和DS18B20温度传感器来制作温度计.当高精度应用需要良好的响应能力时,DS ...
- Arduino UNO测试BMP388温度气压传感器
原文链接:https://www.yourcee.com/newsinfo/2929077.html BMP388传感器简介 BMP388是一个二合一数字传感器,可以测量温度,绝对大气压.由于气压随高 ...
- Arduino Uno PM2.5粉尘传感器(GP2Y1010AU0F) 看看家里的空气质量
欢迎关注「凌顺实验室」微信公众号 这次用到的这个模块,是SHARP GP2Y10(粉尘传感器,其实我在怀疑是否也叫PM2.5) 买到手的时候,除了传感器还有随附的一个150欧姆的电阻和一个220uf的 ...
- Arduino Uno 实验14——声音传感器
声音传感器简介 声音传感器的作用相当于一个话筒(麦克风).它用来接收声波,显示声音的振动图像,但不能对噪声的强度进行测量. 该传感器内置一个对声音敏感的电容式驻极体话筒.声波使话筒内的驻极体薄 ...
- 第四篇、基于Arduino uno,获取土壤湿度传感器的原始值和含水量——结果导向
0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是含水量,如果是你想要的,可以接着往下看. 1.外观 说明:虽然土壤湿度传感器形态各异,但是原理和代码都是适用的. ...
- 第三十二篇、基于Arduino uno,获取光敏电阻传感器的原始值和光照强度——结果导向
0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是含光量,也就是光照强度,如果是你想要的,可以接着往下看. 1.外观 说明:虽然光敏电阻传感器形态各异,但是原理和代 ...
最新文章
- python dlib学习(七):人脸特征点对齐
- 一个word文档中,多个表格的批量调整(根据窗口调整表格和添加表格水平线)...
- 厦大复试计算机科学系,2019年厦门大学计算机系经验分享,复试篇!逆袭!
- mysql的索引介绍_2
- leetcode 796. Rotate String | 796. 旋转字符串(KMP)
- Hbase二级索引+CDH+Lily
- oracle中job的retry次数,有大佬帮忙看下我安装过程中到底出啥问题了么..
- idea 切换git仓库_Idea切换git分支及合并
- 2017web前端面试总结
- mysqlplus 批量插入_解决SpringBoot+Druid+Mybatis Plus 执行MySQL批量插入,更新 报错的问题...
- 信号与系统 chapter5 线性系统与非线性系统
- ubuntu查看显卡驱动以及其他驱动
- 软件著作权 php代码行数,申报软件著作权时,如何快捷计算源码行数
- 如何执行冲刺sprint
- Simulink中powergui的FFT分析怎么用m文件实现?
- 特价酒店预定应用HotelTonight获Battery和Accel 900万投资
- 已知三角函数值用计算机如何求角度,【已知三角函数值求角度】第一册已知三角函数值求角...
- 百练 4118 开餐馆
- matlab 反步法,反步法的Matlab仿真学习程序
- 快速读懂Http3协议总结