BMP280 เป็นเซ็นเซอร์ที่มีความแม่นยำสูงซึ่งวัดความดันบารอมิเตอร์อุณหภูมิและระดับความสูง มีการใช้กันอย่างแพร่หลายในสถานีอากาศตัวติดตามความสูงและอุปกรณ์ IoT เนื่องจากตัวเลือกการสื่อสารที่แม่นยำและ I2C/SPI บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ BMP280 กับ Arduino
สิ่งที่คุณต้องการ
- โมดูลเซ็นเซอร์ BMP280
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง 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" ทำให้ง่ายต่อการเชื่อมต่อกับเซ็นเซอร์
ขั้นตอนในการติดตั้งไลบรารี:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "Adafruit BMP280" แล้วคลิก ติดตั้ง.
- นอกจากนี้ให้ติดตั้งไลบรารี "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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - สังเกตอุณหภูมิความดันและการอ่านระดับความสูงที่แสดงในจอภาพอนุกรม
แอปพลิเคชันของ BMP280
- สถานีอากาศ
- การวัดระดับความสูงในโดรน
- การตรวจสอบสิ่งแวดล้อม IoT
- การนำทางตามแรงดันบารอมิเตอร์
การแก้ไขปัญหา
- ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบสายไฟอีกครั้งและตรวจสอบให้แน่ใจว่าที่อยู่ I2C ตรงกับการตั้งค่า
- การอ่านที่ไม่ถูกต้อง: ตรวจสอบให้แน่ใจว่าเซ็นเซอร์ไม่ได้สัมผัสกับสภาพแวดล้อมที่รุนแรงหรือการรบกวนการไหลเวียนของอากาศ
- ข้อผิดพลาดของห้องสมุด: ตรวจสอบห้องสมุด "Adafruit BMP280" ได้รับการติดตั้งอย่างถูกต้อง
บทสรุป
คุณประสบความสำเร็จในการเชื่อมต่อเซ็นเซอร์ BMP280 กับ Arduino ทำให้สามารถวัดอุณหภูมิความดันและระดับความสูงได้อย่างแม่นยำ เซ็นเซอร์อเนกประสงค์นี้เหมาะสำหรับการใช้งานที่หลากหลายตั้งแต่การตรวจสอบสภาพอากาศไปจนถึงการนำทางเสียงพึมพำ ทดลองเพิ่มเติมโดยการรวม BMP280 เข้ากับตัวบันทึกข้อมูลการแสดงหรือแพลตฟอร์ม IoT สำหรับโครงการขั้นสูง!