Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

BMP280:Medir temperatura, pressão e altitude

Componentes e suprimentos

Arduino UNO
× 1
Adafruit BMP280
× 1
Adafruit OLED 128x32 i2c
× 1

Sobre este projeto




Olá, seja bem vindo a este tutorial onde utilizo o BMP280 para medir temperatura, pressão e também altitude, com a ajuda de uma placa Arduino UNO e um display OLED. Aqui estão alguns dos principais parâmetros do BMP280 de sua folha de dados:

Então, para este projeto, vamos usar o módulo para medir todas essas coisas em sistemas métricos e imperiais, como de costume. Não tenho certeza sobre as unidades, mas você sempre pode convertê-las por meio do código, e aqui estão os componentes que iremos usar:





Teste e solução de problemas:


Depois de conectar seu módulo, é melhor testar o código do exemplo de biblioteca, seu nome é “BMP280test”, se seu módulo não for detectado como na imagem abaixo:

Você pode executar o código do scanner i²c (mas desconecte qualquer outro dispositivo i²c como um LCD ou OLED), e se o seu módulo não estiver quebrado ou não tiver um problema de solda, você verá que o dispositivo foi detectado pelo scanner :

Agora observe esse endereço e vá para o arquivo c ++ de sua biblioteca, a biblioteca geralmente é instalada em “Documentos / Arduino / Bibliotecas”:

E abri-lo com um editor adequado, estou usando Dev c ++

Em seguida, vá para a linha “41” e _i2caddr altere o “a” com o endereço que você encontrou no monitor serial:

Salve tudo e feche, a biblioteca deve funcionar com módulos que têm 0x77 como endereço i²c, mas o que estou usando tem 0x76.

Execute o código de teste novamente:





Imagens de teste:


Espero que funcione para você, e se você tiver algum problema, deixe um comentário.

Código

  • bmp280_Serial_metric.ino
  • bmp280_Serial_Imperial.ino
  • bmp280_OLED_m.ino
  • bmp280_OLED_US.ino
bmp280_Serial_metric.ino Arduino
 / * Este código deve ser usado com Adafruit BMP280 (métrico) * Ele mede a temperatura e a pressão e as exibe no monitor serial com a altitude * É uma versão modificada do código de exemplo Adafruit * Consulte www.surtrtech .com ou SurtrTech Youtube channel * / # include  Adafruit_BMP280 bmp; // I2C Interfacevoid setup () {Serial.begin (9600); Serial.println (F ("teste BMP280")); if (! bmp.begin ()) {Serial.println (F ("Não foi possível encontrar um sensor BMP280 válido, verifique a fiação!")); enquanto (1); } / * Configurações padrão da folha de dados. * / bmp.setSampling (Adafruit_BMP280 ::MODE_NORMAL, / * Modo de operação. * / Adafruit_BMP280 ::SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280 ::SAMPLING_X16, / * Sobreamostragem de pressão * / Adafruit_BMP280 / FILTER_X16. * / Adafruit_BMP280 ::STANDBY_MS_500); /* Tempo de espera. * /} void loop () {Serial.print (F ("Temperatura =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C"); Serial.print (F ("Pressão =")); Serial.print (bmp.readPressure () / 100); // exibindo a pressão em hPa, você pode alterar a unidade Serial.println ("hPa"); Serial.print (F ("Altitude aproximada =")); Serial.print (bmp.readAltitude (1019.66)); // O "1019.66" é a pressão (hPa) ao nível do mar durante o dia em sua região Serial.println ("m"); // Se você não sabe, modifique-o até obter sua altitude atual Serial.println (); atraso (2000);} 
bmp280_Serial_Imperial.ino Arduino
 / * Este código deve ser usado com Adafruit BMP280 (Imperial) * Ele mede a temperatura e a pressão e as exibe no monitor serial com a altitude * É uma versão modificada do código de exemplo Adafruit * Consulte www.surtrtech .com ou SurtrTech Youtube channel * / # include  Adafruit_BMP280 bmp; // I2Cvoid setup () {Serial.begin (9600); Serial.println (F ("teste BMP280")); if (! bmp.begin ()) {Serial.println (F ("Não foi possível encontrar um sensor BMP280 válido, verifique a fiação!")); enquanto (1); } / * Configurações padrão da folha de dados. * / bmp.setSampling (Adafruit_BMP280 ::MODE_NORMAL, / * Modo de operação. * / Adafruit_BMP280 ::SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280 ::SAMPLING_X16, / * Sobreamostragem de pressão * / Adafruit_BMP280 / FILTER_X16. * / Adafruit_BMP280 ::STANDBY_MS_500); /* Tempo de espera. * /} void loop () {float f =bmp.readTemperature () * 9/5 + 32; // Conversão de C para F Serial.print (F ("Temperatura =")); Serial.print (f); Serial.println ("* F"); float P =bmp.readPressure () / 3386,39; // exibindo a pressão em polegadas de mercúrio, você pode alterar a unidade Serial.print (F ("Pressure =")); Serial.print (P); Serial.println ("inHg"); float A =bmp.readAltitude (1019,66) * 3.28084; // O "1019.66" é a pressão (hPa) ao nível do mar durante o dia em sua região Serial.print (F ("Approx altitude =")); // Se você não sabe, modifique-o até obter sua altitude atual Serial.print (A); Serial.println ("ft"); Serial.println (); atraso (2000);} 
bmp280_OLED_m.ino Arduino
 / * Este código deve ser usado com Adafruit BMP280 e tela OLED (Métrica) * Mede temperatura e pressão e as exibe no display OLED com a altitude * É uma versão modificada do código de exemplo Adafruit * Consulte www.surtrtech.com ou SurtrTech Youtube channel * / # include  // Bibliotecas para OLED e BMP280 # include  #include  #define SCREEN_WIDTH 128 // Largura do display OLED, em pixels # define SCREEN_HEIGHT 32 // altura do display OLED, em pixels # define OLED_RESET -1 // Redefine o pino # (ou -1 se compartilhar o pino de redefinição do Arduino) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Declarando o nome de exibição (display) Adafruit_BMP280 bmp; void setup () {bmp.begin (); // Inicie o bmp display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Inicia o display OLED display.clearDisplay (); display.display (); display.setTextColor (WHITE); display.setTextSize (1); display.print ("SurtrTech"); // Mostra o nome, você pode removê-lo ou substituí-lo display.setCursor (32,12); display.setTextSize (2); display.println ("BMP280"); display.display (); atraso (2000);} void loop () {display.clearDisplay (); float T =bmp.readTemperature (); // Lê a temperatura em C float P =bmp.readPressure () / 100; // Leitura da pressão em Pa e conversão para hPa float A =bmp.readAltitude (1019.66); // Calculando a Altitude, o "1019.66" é a pressão em (hPa) ao nível do mar durante o dia em sua região // Se você não sabe, modifique até obter a altitude do seu local display.setCursor (0 , 0); // display Oled, apenas brincando com o tamanho do texto e o cursor para obter o display que você deseja display.setTextColor (WHITE); display.setTextSize (2); display.print ("Temp"); display.setCursor (0,18); display.print (T, 1); display.setCursor (50,17); display.setTextSize (1); display.print ("C"); display.setTextSize (1); display.setCursor (65,0); display.print ("Pres"); display.setCursor (65,10); display.print (P); display.setCursor (110,10); display.print ("hPa"); display.setCursor (65,25); display.print ("Alt"); display.setCursor (90,25); display.print (A, 0); display.setCursor (110,25); display.print ("m"); display.display (); atraso (2000);} 
bmp280_OLED_US.ino Arduino
 / * Este código deve ser usado com Adafruit BMP280 e tela OLED (Imperial) * Ele mede temperatura e pressão e as exibe no display OLED com a altitude * É uma versão modificada do código de exemplo Adafruit * Consulte www.surtrtech.com ou SurtrTech Youtube channel * / #include  // Bibliotecas para OLED e BMP280 # include  #include  #define SCREEN_WIDTH 128 // Largura do display OLED, em pixels # define SCREEN_HEIGHT 32 // altura do display OLED, em pixels # define OLED_RESET -1 // Redefine o pino # (ou -1 se compartilhar o pino de redefinição do Arduino) Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); // Declarando o nome de exibição (display) Adafruit_BMP280 bmp; void setup () {bmp.begin (); // Inicie o bmp display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // Inicia o display OLED display.clearDisplay (); display.display (); display.setTextColor (WHITE); display.setTextSize (1); display.print ("SurtrTech"); // Mostra o nome, você pode removê-lo ou substituí-lo display.setCursor (32,12); display.setTextSize (2); display.println ("BMP280"); display.display (); atraso (2000);} void loop () {display.clearDisplay (); float T =bmp.readTemperature () * 9/5 + 32; // Lê a temperatura em C e conversão para F float P =bmp.readPressure () / 3386.39; // Leitura da pressão em Pa e conversão em polegadas de mercúrio flutuante A =bmp.readAltitude (1019.66) * 3.28084; // Calculando a Altitude, o "1019.66" é a pressão em (hPa) ao nível do mar durante o dia em sua região // Se você não sabe, modifique até obter a altitude do seu local display.setCursor (0 , 0); // display Oled, apenas brincando com o tamanho do texto e o cursor para obter o display que você deseja display.setTextColor (WHITE); display.setTextSize (2); display.print ("Temp"); display.setCursor (0,18); display.print (T, 1); display.setCursor (50,17); display.setTextSize (1); display.print ("F"); display.setTextSize (1); display.setCursor (65,0); display.print ("Pres"); display.setCursor (65,10); display.print (P); display.setCursor (100,10); display.print ("inHg"); display.setCursor (65,25); display.print ("Alt"); display.setCursor (90,25); display.print (A, 0); display.setCursor (110,25); display.print ("ft"); display.display (); atraso (2000);} 
BMP280_Adafruit_library
Você pode querer mudar coisas como no tutorialhttps://github.com/adafruit/Adafruit_BMP280_Library
Biblioteca Adafruit GFX
https://github.com/adafruit/Adafruit-GFX-Library
Adafruit SSD1306
https://github.com/adafruit/Adafruit_SSD1306

Esquemas

Ambos os módulos usam a interface i²c, SDA / SCL com A4 e A5, o BMP280 é alimentado por 5v enquanto o OLED está usando o 3.3v.

Processo de manufatura

  1. Controle de acesso com QR, RFID e verificação de temperatura
  2. Meça temperaturas com um sensor DS18B20 de 1 fio e Raspberry Pi
  3. Sensor de temperatura Python e Raspberry Pi
  4. Temperatura e umidade fáceis no Raspberry Pi
  5. DIY:Monitoramento e regulação de temperatura para HomeBrew
  6. Leitura de Raspberry Pi BMP085 Temperatura e pressão
  7. Medição de temperatura para projetos de laboratório e ciências
  8. Temperatura do Raspberry Pi e sensor de luz
  9. Dispositivo de medição de pressão de fluxo de ar com sensor analógico
  10. Registrador de dados de temperatura e umidade