- Componentes necessários
- Módulo sensor de pressão BMP280:
- Diagrama de circuito para interface BMP280 com Arduino:
- Programa Arduino para fazer a interface BMP280 com Arduino:
- Trabalho do projeto de interface do sensor de pressão Arduino BMP280
Se você deseja construir seu próprio sistema de monitoramento de temperatura ou medir a altitude de seu drone ou simplesmente deseja medir a pressão atmosférica em sua área, um dos melhores módulos para você usar em seu projeto é o módulo sensor de pressão BMP280. O BMP280 é um sensor absoluto de monitoramento de pressão e temperatura que é a versão atualizada dos sensores BMP085, BMP180, BMP183. Por que é chamada de versão atualizada? Isso será discutido nas seções seguintes. Já usamos a versão mais antiga BMP180 com Arduino em um de nossos tutoriais anteriores.
O módulo sensor BMP280 pode ser usado junto com microcontroladores como Arduino, PIC, AVR, etc. Para este projeto vamos usar o Arduino Uno com BMP280 junto com um módulo de display LCD 16x2, para mostrar valores de temperatura e pressão. Antes de fazer a interface do BMP280 com o Arduino, precisamos baixar a biblioteca BMP280 do Arduino, que é desenvolvida pela Adafruit. Clique neste link da biblioteca Adafruit BMP280 para abrir a respectiva página do Github e adicionar o arquivo de cabeçalho ao seu Arduino IDE.
Componentes necessários
- Arduino
- BMP280
- Fios de conexão
- Tábua de pão
- LCD- 16x2
Módulo sensor de pressão BMP280:
O módulo sensor BMP280 trabalha com tensão mínima (VDD) de 1,71V, enquanto os módulos sensores da versão anterior trabalham com 1,8V (VDD). Quando se trata de consumo de corrente, o BMP280 consome 2,7uA, enquanto o BMP180 consome 12uA e o BMP183 e o BMP085 consomem 5uA cada. O BMP280 também oferece suporte a novos modos de filtro. O módulo sensor BMP280 oferece suporte aos protocolos I2c e SPI, enquanto o sensor restante oferece suporte a I2c ou SPI. O módulo sensor BMP280 tem uma precisão de ± 0,12 hPa, que é equivalente a ± 1 m de diferença de altitude. Devido a esses recursos principais, ele é usado principalmente em várias aplicações. O sensor BMP consiste em um elemento de detecção de pressão, um elemento de detecção de umidade e um elemento de detecção de temperatura que são posteriormente conectados ao front-end de pressão, front-end de umidade e front-end de temperatura. Esses IC's front-end são amplificadores analógicos de sensibilidade usados na amplificação de pequenos sinais. A saída deste CI analógico front-end é alimentada ao ADC como um sinal de entrada. Neste, os valores analógicos são convertidos em tensão digital e esta tensão é alimentada para os circuitos lógicos para posterior interface com o mundo exterior.
O módulo do sensor BMP280 consiste em três modos de energia, modo de suspensão, modo forçado e modo normal. No modo de espera, nenhuma medição é realizada e o consumo de energia é mínimo. No modo forçado, uma única medição é realizada de acordo com as opções de medição e filtro selecionadas. O modo normal alterna continuamente entre a medição e o período de espera, e o período de tempo dos ciclos será definido pelo Tstandby. A corrente no modo de espera é ligeiramente mais alta do que no modo de espera.
Diagrama de circuito para interface BMP280 com Arduino:
O diagrama de circuito para conectar o Arduino com o sensor BMP280 e o LCD é mostrado abaixo. Se você é completamente novo no Arduino e no LCD, pode verificar este tutorial do Arduino LCD para entender como usar o Arduino com monitores LCD.
Os pinos VCC e GND do sensor são conectados aos pinos 3v3 e GND do Arduino. Os pinos SCL e SDA do sensor são conectados ao A5 e A4 da placa Arduino. As conexões do LCD são as seguintes
Nome do pino LCD |
Pin Arduino |
VSS e RW |
GND |
RS |
D9 |
E |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Programa Arduino para fazer a interface BMP280 com Arduino:
O código BMP280 Arduino completo pode ser encontrado na parte inferior desta página, que pode ser carregado diretamente para sua placa Arduino. A explicação do mesmo é dada abaixo
Essas bibliotecas são incluídas para ativar as funções especiais. Nos arquivos de cabeçalho #include podemos ler diretamente os valores vindos do sensor. O #include
#incluir
Criando no objeto BMP para Adafruit_BMP280. Um arquivo de objeto é criado para acessar funções especiais.
Adafruit_BMP280 bmp; // I2C
Configurando os pinos do Arduino para se comunicarem com o LCD. Usando esses pinos, os dados serão transferidos.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Inicializando o LCD e a comunicação serial.
configuração vazia () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("teste BMP280")); lcd.print ("Bem-vindo a"); lcd.setCursor (0,1); lcd.print ("CIRCUITO DIGEST"); atraso (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Não foi possível encontrar um sensor BMP280 válido, verifique a fiação!")); enquanto (1); }
Esta função funciona quando a inicialização do objeto bmp falha.
/ * Configurações padrão da folha de dados. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Operating Mode. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280:: SAMPLING_X16, / * Pressure oversampling * / Adafruit_BMP280 / FILTER_X16. * / Adafruit_BMP280:: STANDBY_MS_500); /* Tempo de espera. * /}
Esta parte do código imprime a temperatura no monitor serial e é para fins de depuração.
loop vazio () {Serial.print (F ("Temperatura =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
As funções bmp.readPressure e bmp.readTemprature são usadas para invocar funções especiais e retornar os valores de temperatura e pressão.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Trabalho do projeto de interface do sensor de pressão Arduino BMP280
As funções bmp.readTemprature () e bmp.readPressure () são usadas para retornar os valores de temperatura e pressão. Essas funções são um grupo de instruções que executam uma tarefa especial, no nosso caso retornar arquivos de temperatura e pressão. Essas funções são chamadas usando as funções bmp.readTemprature () e bmp.readPressure () . O lcd.setCursor define o cursor do LCD para a posição necessária na tela. O lcd.print comando imprime os dados da posição definida pelo programador. Se não houver uma posição definida para o LCD por padrão, ele usa (0,0) como a posição inicial e a impressão contínua dos dados. Os próximos dados assumem a posição da próxima coluna e o procedimento continua até atingir o final da linha e passar para a próxima linha.
O BMP280 pode ser usado em brinquedos voadores, telefones celulares, tablets, PCs, dispositivos GPS, dispositivos portáteis de saúde, estações meteorológicas residenciais, etc. Seguindo este procedimento e usando arquivos de cabeçalho e algumas funções especiais, podemos facilmente fazer a interface do BMP280 com o Arduino. O trabalho completo também pode ser encontrado no vídeo abaixo, espero que você tenha gostado deste tutorial do Arduino BMP280 e aprendido algo útil. Se você tiver alguma dúvida, deixe-os na seção de comentários abaixo ou use os fóruns para outras questões técnicas.