Como usar o sensor multiuso BME680 com Arduino

Cómo utilizar el sensor multipropósito BME680 con Arduino

BME680 es un sensor digital multifuncional, desarrollado por Bosch después de años de investigación, que puede medir temperatura, humedad, gases y presión barométrica. La comunicación con este sensor es posible a través de la interfaz periférica serie (SPI) y los protocolos I2C.

La precisión de la temperatura y la presión barométrica es +-1 y la humedad es +-3. Los gases se miden como compuestos orgánicos volátiles (COV) en el aire. Los COV proporcionan un valor de resistencia único para la salida. Esto significa que podemos predecir que el gas está presente en el aire, pero no podemos distinguir si es etanol, monóxido de carbono o alcohol, etc.

Para este proyecto, conectaremos el sensor BME680 con Arduino . El sensor principal es pequeño y compacto, y se requieren resistencias y condensadores externos para una configuración adecuada. Por ejemplo, se requieren tanto un pull-up I2C como una resistencia VOC cuando se requiere un divisor de voltaje. El sensor BME680 puede funcionar a 3,3 y 5V.

Diagrama de circuito
El diagrama de circuito para este proyecto es bastante simple. Decidimos conectar el sensor con el Arduino Nano utilizando el protocolo SPI. Los pines Arduino SPI están disponibles en los pines digitales 10 a 13. El sensor funciona con la salida de 3,3 V del Arduino.

Aquí hay un diagrama…

Código

Adafruit ofrece una biblioteca predefinida que tiene disponibles casi todas las funciones de este sensor. Sin embargo, la biblioteca de sensores Adafruit BME primero requiere el sensor Adafruit, así como la biblioteca de cables Arduino SPI e I2C para configurar e iniciar correctamente el BME680.

Después de importar la biblioteca, se declaran los pines SPI. Los pines deben pasarse al constructor BME para su inicialización.

Además, para medir la presión barométrica es necesario especificar una presión de referencia. Por lo tanto, utilizamos la presión típica al nivel del mar como referencia para calcular la presión barométrica para este proyecto.

Como funciona
En la función de configuración, el monitor serie Arduino comienza a 9600 bps. Luego se debe sondear el sensor para verificar que la conexión se haya establecido exitosamente.

En la función de bucle, las lecturas se reciben continuamente desde el sensor. Si la solicitud de datos tiene éxito, los valores de los parámetros individuales se mostrarán en el monitor serie del IDE de Arduino.

Nota: Los valores de gas y presión se dividen entre 1000 y 100, respectivamente, para asignarles unidades en kOhm y hpa.

Para obtener valores más estables para los parámetros individuales, simplemente aumente la frecuencia de muestreo para ellos.

Instrucciones

1. bme.setTemperatureOversampling(BME680_OS_8X);
2. bme.setHumidityOversampling(BME680_OS_2X);
3. bme.setPressureOversampling(BME680_OS_4X);
4. bme.setIIRFilterSize(BME680_FILTER_SIZE_3);
5. bme.setGasHeater(320, 150); // 320*C durante 150 ms

Para ver los resultados, abra el monitor serie Arduino IDE a 9600 bps. Durante el inicio inicial, el sensor tardará unos segundos. Después de algunas lecturas, el sensor se estabilizará y producirá valores precisos.

¿Dónde comprar las piezas?

  • ArduinoNano: ratón
  • Sensor BME680: Digi-Key

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.