Como usar o sensor multiuso BME680 com Arduino

Como usar o sensor multiuso BME680 com Arduino

BME680 é um sensor digital multifuncional, desenvolvido pela Bosch após anos de pesquisa, que pode medir temperatura, umidade, gases e pressão barométrica. A comunicação com este sensor é possível através dos protocolos Serial Peripheral Interface (SPI) e I2C.

A precisão da temperatura e da pressão barométrica é +-1 e a umidade é +-3. Os gases são medidos como compostos orgânicos voláteis (VOCs) no ar. Os VOCs fornecem um único valor de resistência para a saída. Isto significa que podemos prever que o gás está presente no ar, mas não conseguimos distinguir se é etanol, monóxido de carbono ou álcool, etc.

Para este projeto, faremos a interface do sensor BME680 com Arduíno. O sensor principal é pequeno e compacto, e resistores e capacitores externos são necessários para uma configuração adequada. Por exemplo, tanto um pull-up I2C quanto um resistor VOC são necessários quando um divisor de tensão é necessário. O sensor BME680 pode funcionar em 3,3 e 5V.

Diagrama de circuito
O diagrama de circuito para este projeto é bastante simples. Decidimos fazer a interface do sensor com o Arduino Nano usando o protocolo SPI. Os pinos SPI do Arduino estão disponíveis nos pinos digitais 10 a 13. O sensor é alimentado pela saída de 3,3 V do Arduino.

Aqui está um diagrama…

O código

Adafruit oferece uma biblioteca predefinida que possui quase todas as funções deste sensor disponíveis. No entanto, o Adafruit BME A biblioteca de sensores requer primeiro o sensor Adafruit, bem como a biblioteca de fios SPI e I2C do Arduino para configurar e iniciar corretamente o BME680.

Após importar a biblioteca, os pinos SPI são declarados. Os pinos devem ser passados ​​ao construtor BME para inicialização.

Além disso, para a medição da pressão barométrica, é necessário especificar uma pressão de referência. Assim, utilizamos a pressão típica ao nível do mar como referência para o cálculo da pressão barométrica para este projeto.

Como funciona
Na função setup, o monitor serial do Arduino é iniciado a 9600 bps. Em seguida, o sensor deve ser sondado para verificar se a conexão foi estabelecida com sucesso.

Na função loop, as leituras são recebidas continuamente do sensor. Se a solicitação de dados for bem-sucedida, os valores dos parâmetros individuais serão exibidos no monitor serial do Arduino IDE.

Nota: Os valores do gás e da pressão são divididos por 1000 e 100, respectivamente, para atribuir-lhes unidades em kOhm e hpa.

Para obter valores mais estáveis ​​para os parâmetros individuais, basta aumentar a taxa de amostragem para eles.

Instruções

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 por 150 ms

Para visualizar os resultados, abra o monitor serial do Arduino IDE a 9600 bps. Durante a inicialização inicial, o sensor levará alguns segundos. Após algumas leituras, o sensor estabilizará e produzirá valores precisos.

Onde comprar as peças?

  • ArduinoNano: rato
  • Sensor BME680: Digi-Key

Tillbaka till blogg

Lämna en kommentar

Notera att kommentarer behöver godkännas innan de publiceras.