工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

BMP280:温度、圧力、高度を測定します

コンポーネントと消耗品

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

このプロジェクトについて

こんにちは。ArduinoUNOボードとOLEDディスプレイを使用して、BMP280を使用して温度、圧力、高度を測定するこのチュートリアルへようこそ。データシートのBMP280キーパラメータの一部を次に示します。

<図>

したがって、このプロジェクトでは、モジュールを使用して、通常どおりメートル法とインペリアル法の両方でこれらすべてを測定します。単位についてはよくわかりませんが、コードを使用していつでも変換できます。これからコンポーネントを使用します。使用:

<図> <図> <図>

テストとトラブルシューティング:

モジュールを配線した後、下の図のようにモジュールが検出されない場合は、ライブラリの例のコードを「BMP280test」という名前でテストすることをお勧めします。

<図>

i²cスキャナーコードを実行できます(ただし、LCDやOLEDなどの他のi²cデバイスは取り外します)。モジュールが壊れていない場合、またははんだの問題がない場合は、デバイスがスキャナーによって検出されていることがわかります。 :

<図>

ここで、アドレスを指定してライブラリのc ++ファイルに移動します。ライブラリは通常、「Documents / Arduino / Libraries」にインストールされます。

<図>

そして、適切なエディターで開きます。私はDev c ++を使用しています

<図>

次に、行「41」に移動し、_i2caddrで「a」をシリアルモニターで見つけたアドレスに変更します。

<図>

すべて保存して閉じます。ライブラリは、i²cアドレスとして0x77のモジュールで動作するようになっていますが、私が使用しているモジュールのモジュールは0x76です。

テストコードを再実行します:

<図>

写真のテスト:

<図> <図>

それがあなたのために働くことを願っています、そしてあなたが何か問題があればコメントにそれを残してください。

コード

  • bmp280_Serial_metric.ino
  • bmp280_Serial_Imperial.ino
  • bmp280_OLED_m.ino
  • bmp280_OLED_US.ino
bmp280_Serial_metric.ino Arduino
 / *このコードはAdafruitBMP280(メートル法)で使用します*温度と圧力の両方を測定し、高度とともにシリアルモニターに表示します*これはAdafruitサンプルコードの修正バージョンです* www.surtrtechを参照してください.comまたはSurtrTechYoutubeチャンネル* /#include  Adafruit_BMP280 bmp; // I2C Interfacevoid setup(){Serial.begin(9600); Serial.println(F( "BMP280テスト")); if(!bmp.begin()){Serial.println(F( "有効なBMP280センサーが見つかりませんでした。配線を確認してください!")); while(1); } / *データシートのデフォルト設定。 * / bmp.setSampling(Adafruit_BMP280 ::MODE_NORMAL、/ *動作モード。* / Adafruit_BMP280 ::SAMPLING_X2、/ *温度オーバーサンプリング* / Adafruit_BMP280 ::SAMPLING_X16、/ *圧力オーバーサンプリング* / Adafruit_BMP280 ::F * / Adafruit_BMP280 ::STANDBY_MS_500); /* 待機時間。 * /} void loop(){Serial.print(F( "Temperature =")); Serial.print(bmp.readTemperature()); Serial.println( "* C"); Serial.print(F( "Pressure =")); Serial.print(bmp.readPressure()/ 100); //圧力をhPaで表示し、単位を変更できますSerial.println( "hPa"); Serial.print(F( "おおよその高度=")); Serial.print(bmp.readAltitude(1019.66)); // "1019.66"は、お住まいの地域の1日の海面気圧(hPa)ですSerial.println( "m"); //わからない場合は、現在の高度を取得するまで変更しますSerial.println(); delay(2000);} 
bmp280_Serial_Imperial.ino Arduino
 / *このコードはAdafruitBMP280(インペリアル)で使用します*温度と圧力の両方を測定し、高度とともにシリアルモニターに表示します*これはAdafruitサンプルコードの修正バージョンです* www.surtrtechを参照してください.comまたはSurtrTechYoutubeチャンネル* /#include  Adafruit_BMP280 bmp; // I2Cvoid setup(){Serial.begin(9600); Serial.println(F( "BMP280テスト")); if(!bmp.begin()){Serial.println(F( "有効なBMP280センサーが見つかりませんでした。配線を確認してください!")); while(1); } / *データシートのデフォルト設定。 * / bmp.setSampling(Adafruit_BMP280 ::MODE_NORMAL、/ *動作モード。* / Adafruit_BMP280 ::SAMPLING_X2、/ *温度オーバーサンプリング* / Adafruit_BMP280 ::SAMPLING_X16、/ *圧力オーバーサンプリング* / Adafruit_BMP280 ::F * / Adafruit_BMP280 ::STANDBY_MS_500); /* 待機時間。 * /} void loop(){float f =bmp.readTemperature()* 9/5 + 32; // CからFへの変換Serial.print(F( "Temperature =")); Serial.print(f); Serial.println( "* F"); float P =bmp.readPressure()/ 3386.39; //圧力を水銀柱インチで表​​示し、単位を変更できますSerial.print(F( "Pressure =")); Serial.print(P); Serial.println( "inHg"); float A =bmp.readAltitude(1019.66)* 3.28084; //「1019.66」は、お住まいの地域の1日の海面での気圧(hPa)ですSerial.print(F( "概算高度=")); //わからない場合は、現在の高度を取得するまで変更しますSerial.print(A); Serial.println( "ft"); Serial.println(); delay(2000);} 
bmp280_OLED_m.ino Arduino
 / *このコードはAdafruitBMP280とOLEDスクリーン(メートル法)で使用します*温度と圧力の両方を測定し、高度とともにOLEDディスプレイに表示します*これはAdafruitサンプルコードの修正バージョンです*参照www.surtrtech.comまたはSurtrTechYoutubeチャンネル* /#include  // OLEDおよびBMP280のライブラリ#include  #include  #define SCREEN_WIDTH 128 // OLEDディスプレイ幅、 in pixel#define SCREEN_HEIGHT 32 // OLEDディスプレイの高さ、in pixel#define OLED_RESET -1 //リセットピン#(またはArduinoリセットピンを共有している場合は-1)Adafruit_SSD1306 display(SCREEN_WIDTH、SCREEN_HEIGHT、&Wire、OLED_RESET); //表示名の宣言(display)Adafruit_BMP280 bmp; void setup(){bmp.begin(); // bmp display.begin(SSD1306_SWITCHCAPVCC、0x3C);を開始します// OLEDディスプレイを開始しますdisplay.clearDisplay(); display.display(); display.setTextColor(WHITE); display.setTextSize(1); display.print( "SurtrTech"); //名前を表示します。名前を削除するか、置き換えることができますdisplay.setCursor(32,12); display.setTextSize(2); display.println( "BMP280"); display.display(); delay(2000);} void loop(){display.clearDisplay(); float T =bmp.readTemperature(); // Cで温度を読み取りますfloatP =bmp.readPressure()/ 100; //圧力をPaで読み取り、hPaに変換float A =bmp.readAltitude(1019.66); //高度を計算すると、「1019.66」はお住まいの地域の日の海面での気圧(hPa)です//わからない場合は、場所の高度を取得するまで変更してくださいdisplay.setCursor(0 、0); // Oledディスプレイ、テキストサイズとカーソルで遊んで、必要なディスプレイを取得します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(); delay(2000);} 
bmp280_OLED_US.ino Arduino
 / *このコードはAdafruitBMP280とOLEDスクリーン(インペリアル)で使用します*温度と圧力の両方を測定し、高度とともにOLEDディスプレイに表示します*これはAdafruitサンプルコードの修正バージョンです*参照www.surtrtech.comまたはSurtrTechYoutubeチャンネル* / #include  // OLEDおよびBMP280のライブラリ#include  #include  #define SCREEN_WIDTH 128 // OLEDディスプレイ幅、 in pixel#define SCREEN_HEIGHT 32 // OLEDディスプレイの高さ、in pixel#define OLED_RESET -1 //リセットピン#(またはArduinoリセットピンを共有している場合は-1)Adafruit_SSD1306 display(SCREEN_WIDTH、SCREEN_HEIGHT、&Wire、OLED_RESET); //表示名の宣言(display)Adafruit_BMP280 bmp; void setup(){bmp.begin(); // bmp display.begin(SSD1306_SWITCHCAPVCC、0x3C);を開始します// OLEDディスプレイを開始しますdisplay.clearDisplay(); display.display(); display.setTextColor(WHITE); display.setTextSize(1); display.print( "SurtrTech"); //名前を表示します。名前を削除するか、置き換えることができますdisplay.setCursor(32,12); display.setTextSize(2); display.println( "BMP280"); display.display(); delay(2000);} void loop(){display.clearDisplay(); float T =bmp.readTemperature()* 9/5 + 32; //温度を摂氏で読み取り、Fに変換しますfloat P =bmp.readPressure()/ 3386.39; //圧力をPaで読み取り、水銀柱インチに変換A =bmp.readAltitude(1019.66)* 3.28084; //高度を計算すると、「1019.66」はお住まいの地域の日の海面での気圧in(hPa)です//わからない場合は、場所の高度を取得するまで変更してくださいdisplay.setCursor(0 、0); // Oledディスプレイ、テキストサイズとカーソルで遊んで、必要なディスプレイを取得します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(); delay(2000);} 
BMP280_Adafruit_library
チュートリアルのように変更することをお勧めしますhttps://github.com/adafruit/Adafruit_BMP280_Library
AdafruitGFXライブラリ
https://github.com/adafruit/Adafruit-GFX-Library
Adafruit SSD1306
https://github.com/adafruit/Adafruit_SSD1306

回路図

どちらのモジュールもi²cインターフェース、A4とA5を備えたSDA / SCLを使用し、BMP280は5vで動作し、OLEDは3.3vを使用しています。

製造プロセス

  1. QR、RFID、温度検証によるアクセス制御
  2. 1線式DS18B20センサーとRaspberryPiを使用して温度を測定します
  3. PythonとRaspberryPiの温度センサー
  4. ラズベリーパイの簡単な温度と湿度
  5. DIY:HomeBrewの温度監視と規制
  6. ラズベリーパイの読み取り値BMP085温度と圧力
  7. 実験室および科学プロジェクトの温度測定
  8. ラズベリーパイ温度および光センサー
  9. アナログセンサーを備えた圧力気流測定装置
  10. 温度および湿度データロガー
  11. Arduinoを使用した周波数とデューティサイクルの測定