วิธีใช้เซ็นเซอร์อุณหภูมิและความดัน BMP280 กับ Arduino

How to Use the BMP280 Temperature and Pressure Sensor with Arduino

BMP280 เป็นเซ็นเซอร์ที่มีความแม่นยำสูงซึ่งวัดความดันบารอมิเตอร์อุณหภูมิและระดับความสูง มีการใช้กันอย่างแพร่หลายในสถานีอากาศตัวติดตามความสูงและอุปกรณ์ IoT เนื่องจากตัวเลือกการสื่อสารที่แม่นยำและ I2C/SPI บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ BMP280 กับ Arduino


สิ่งที่คุณต้องการ

  1. โมดูลเซ็นเซอร์ BMP280
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจ BMP280

เซ็นเซอร์ BMP280 รองรับทั้งการสื่อสาร I2C และ SPI กระดานฝ่าวงล้อมส่วนใหญ่เริ่มต้นเป็นโหมด I2C ซึ่งต้องใช้สายไฟน้อยลง

bmp280 pinout

เข็มหมุด การทำงาน
VCC แหล่งจ่ายไฟ (3.3V หรือ 5V)
gnd พื้น
SCL สายนาฬิกา i2c
SDA สายข้อมูล i2c
CSB ชิปเลือกสำหรับ SPI (ไม่บังคับ)
SDO การเลือกที่อยู่ SPI Data/I2C
  • บันทึก: สำหรับการสื่อสาร I2C ให้เชื่อมต่อ SDO ถึง GND สำหรับที่อยู่เริ่มต้น (0x76) หรือไปยัง VCC สำหรับ 0x77.

ขั้นตอนที่ 2: เดินสาย BMP280 ไปยัง Arduino

นี่คือวิธีการเชื่อมต่อ BMP280 กับ Arduino UNO ในโหมด I2C:

bmp280 pin พิน Arduino
VCC 5V
gnd gnd
SCL A5
SDA A4

บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้ตรวจสอบพิน I2C เฉพาะในเอกสารของคณะกรรมการของคุณ


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

ไลบรารี "Adafruit BMP280" ทำให้ง่ายต่อการเชื่อมต่อกับเซ็นเซอร์

ขั้นตอนในการติดตั้งไลบรารี:

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "Adafruit BMP280" แล้วคลิก ติดตั้ง.
  4. นอกจากนี้ให้ติดตั้งไลบรารี "Adafruit Unified Sensor" หากได้รับแจ้ง

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือตัวอย่างร่างเพื่ออ่านอุณหภูมิความดันและความสูงจาก BMP280:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp; // Create BMP280 object

void setup() {
  Serial.begin(9600);
  while (!Serial);

  Serial.println("BMP280 Sensor Test");

  if (!bmp.begin(0x76)) { // Default I2C address is 0x76
    Serial.println("Could not find a valid BMP280 sensor, check wiring!");
    while (1);
  }
}

void loop() {
  Serial.print("Temperature: ");
  Serial.print(bmp.readTemperature());
  Serial.println(" °C");

  Serial.print("Pressure: ");
  Serial.print(bmp.readPressure() / 100.0F); // Convert to hPa
  Serial.println(" hPa");

  Serial.print("Approx. Altitude: ");
  Serial.print(bmp.readAltitude(1013.25)); // Standard sea level pressure in hPa
  Serial.println(" m");

  Serial.println();
  delay(2000); // Wait for 2 seconds before the next reading
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. สังเกตอุณหภูมิความดันและการอ่านระดับความสูงที่แสดงในจอภาพอนุกรม

แอปพลิเคชันของ BMP280

  1. สถานีอากาศ
  2. การวัดระดับความสูงในโดรน
  3. การตรวจสอบสิ่งแวดล้อม IoT
  4. การนำทางตามแรงดันบารอมิเตอร์

การแก้ไขปัญหา

  • ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบสายไฟอีกครั้งและตรวจสอบให้แน่ใจว่าที่อยู่ I2C ตรงกับการตั้งค่า
  • การอ่านที่ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าเซ็นเซอร์ไม่ได้สัมผัสกับสภาพแวดล้อมที่รุนแรงหรือการรบกวนการไหลเวียนของอากาศ
  • ข้อผิดพลาดของห้องสมุด: ตรวจสอบห้องสมุด "Adafruit BMP280" ได้รับการติดตั้งอย่างถูกต้อง

บทสรุป

คุณประสบความสำเร็จในการเชื่อมต่อเซ็นเซอร์ BMP280 กับ Arduino ทำให้สามารถวัดอุณหภูมิความดันและระดับความสูงได้อย่างแม่นยำ เซ็นเซอร์อเนกประสงค์นี้เหมาะสำหรับการใช้งานที่หลากหลายตั้งแต่การตรวจสอบสภาพอากาศไปจนถึงการนำทางเสียงพึมพำ ทดลองเพิ่มเติมโดยการรวม BMP280 เข้ากับตัวบันทึกข้อมูลการแสดงหรือแพลตฟอร์ม IoT สำหรับโครงการขั้นสูง!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.