BMP180 เป็นเซ็นเซอร์ความดันและอุณหภูมิที่มีความแม่นยำสูงซึ่งสามารถเชื่อมต่อกับ Arduino ได้อย่างง่ายดายโดยใช้โปรโตคอล I2C มีการใช้กันอย่างแพร่หลายในการตรวจสอบสภาพอากาศการวัดระดับความสูงและการใช้งาน IoT บทช่วยสอนนี้จะแนะนำคุณผ่านการเชื่อมต่อและใช้ BMP180 กับ Arduino
สิ่งที่คุณต้องการ
- โมดูลเซ็นเซอร์ BMP180
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
ขั้นตอนที่ 1: ทำความเข้าใจ BMP180
BMP180 วัดความดันและอุณหภูมิของบารอมิเตอร์และสามารถคำนวณความสูงตามการอ่านความดัน มันสื่อสารกับ Arduino โดยใช้โปรโตคอล I2C
bmp180 pinout
เข็มหมุด | การทำงาน |
---|---|
vin | แหล่งจ่ายไฟ (3.3V/5V) |
gnd | พื้น |
SDA | สายข้อมูล i2c |
SCL | สายนาฬิกา i2c |
ขั้นตอนที่ 2: เดินสาย BMP180 ไปยัง Arduino
นี่คือวิธีการเชื่อมต่อ BMP180 กับ Arduino Uno:
bmp180 pin | พิน Arduino |
---|---|
vin | 5V |
gnd | gnd |
SDA | A4 |
SCL | A5 |
บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้ตรวจสอบหมุด I2C ในเอกสารของคณะกรรมการของคุณ (เช่น Mega ใช้หมุด 20 และ 21 สำหรับ SDA และ SCL)
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ
ห้องสมุด "Adafruit BMP085 Unified" สามารถใช้สำหรับ BMP180 ได้เนื่องจากเข้ากันได้อย่างสมบูรณ์
ขั้นตอนในการติดตั้งไลบรารี:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "Adafruit BMP085 Unified" แล้วคลิก ติดตั้ง.
ขั้นตอนที่ 4: อัปโหลดรหัส
นี่คือตัวอย่างร่างเพื่ออ่านอุณหภูมิความดันและการคำนวณระดับความสูง:
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup() {
Serial.begin(9600);
Serial.println("BMP180 Sensor Test");
if (!bmp.begin()) {
Serial.print("Could not find a valid BMP180 sensor, check wiring!");
while (1);
}
}
void loop() {
sensors_event_t event;
bmp.getEvent(&event);
if (event.pressure) {
// Display pressure
Serial.print("Pressure: ");
Serial.print(event.pressure);
Serial.println(" hPa");
// Display temperature
float temperature;
bmp.getTemperature(&temperature);
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
// Calculate altitude
float seaLevelPressure = 1013.25; // hPa
Serial.print("Altitude: ");
Serial.print(bmp.pressureToAltitude(seaLevelPressure, event.pressure));
Serial.println(" m");
Serial.println();
} else {
Serial.println("Sensor error!");
}
delay(2000); // Wait 2 seconds before the next reading
}
ขั้นตอนที่ 5: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - สังเกตความดันอุณหภูมิและการอ่านระดับความสูงที่แสดงในจอภาพอนุกรม
แอปพลิเคชันของ BMP180
- ระบบตรวจสอบสภาพอากาศ
- การวัดระดับความสูงในโดรนและการบิน
- การตรวจสอบสิ่งแวดล้อม IoT
- การบันทึกข้อมูลแรงดันบารอมิเตอร์
การแก้ไขปัญหา
- ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบสายไฟและตรวจสอบให้แน่ใจว่าใช้พิน I2C ที่ถูกต้อง
- การอ่านที่ไม่ถูกต้อง: ตรวจสอบว่าเซ็นเซอร์ไม่ได้สัมผัสกับสภาพแวดล้อมที่รุนแรง
- ข้อผิดพลาดของห้องสมุด: ตรวจสอบให้แน่ใจว่ามีการติดตั้งไลบรารี "Adafruit BMP085 Unified" อย่างถูกต้อง
บทสรุป
คุณสามารถเชื่อมต่อเซ็นเซอร์ความดัน barometric BMP180 กับ Arduino ได้สำเร็จ เซ็นเซอร์อเนกประสงค์นี้เหมาะสำหรับโครงการที่ต้องการการวัดความดันและอุณหภูมิที่แม่นยำ ทดลองเพิ่มเติมโดยรวมเข้ากับตัวบันทึกข้อมูลการแสดงหรือแพลตฟอร์ม IoT!