ที่ BMP280 คือ เซ็นเซอร์ความดันบารอมิเตอร์และอุณหภูมิ ที่ให้ความดันบรรยากาศและการอ่านอุณหภูมิที่แม่นยำ มันใช้กันทั่วไปสำหรับ การตรวจสอบสภาพอากาศการติดตามระดับความสูงและการตรวจจับสิ่งแวดล้อม- คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ไฟล์ BMP280 พร้อม Raspberry Pi โดยใช้ การสื่อสาร Python และ I2C/SPI.
สิ่งที่คุณต้องการ
- Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
- โมดูลเซ็นเซอร์ BMP280
- เครื่องหั่นขนมปังและสายจัมเปอร์
- ติดตั้ง Python บนราสเบอร์รี่ pi
ขั้นตอนที่ 1: เดินสาย BMP280 ไปยัง Raspberry Pi
ที่ BMP280 รองรับทั้งการสื่อสาร I2C และ SPI.
สำหรับโหมด I2C (แนะนำ)
bmp280 pin | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
SDA | SDA (พิน 3, GPIO2) |
SCL | SCL (PIN 5, GPIO3) |
สำหรับโหมด SPI
bmp280 pin | Raspberry Pi Pin |
---|---|
VCC | 3.3V (พิน 1) |
gnd | พื้นดิน (พิน 6) |
SCK | SCLK (PIN 23, GPIO11) |
SDI | Mosi (พิน 19, gpio10) |
SDO | MISO (PIN 21, GPIO9) |
CS | CE0 (PIN 24, GPIO8) |
บันทึก: BMP280 ทำงานที่ 3.3V. อย่า เชื่อมต่อกับ 5V เนื่องจากอาจสร้างความเสียหายให้กับโมดูล
ขั้นตอนที่ 2: เปิดใช้งาน I2C หรือ SPI บน Raspberry Pi
สำหรับการสื่อสาร I2C
- เปิดเครื่องมือกำหนดค่า Raspberry Pi:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
- รีบูตราสเบอร์รี่ pi:
sudo reboot
- ตรวจสอบว่า ตรวจพบ BMP280 บนรถบัส I2C:
ที่ BMP280 ควรปรากฏตามที่อยู่sudo i2cdetect -y 1
0x76
หรือ0x77
.
สำหรับการสื่อสาร SPI
- เปิดใช้งาน SPI โดยใช้:
sudo raspi-config
- นำทางไปยัง ตัวเลือกอินเตอร์เฟส> SPI และเปิดใช้งาน
- รีบูตราสเบอร์รี่ pi:
sudo reboot
- ตรวจสอบอินเทอร์เฟซ SPI โดยใช้:
คุณควรเห็นls /dev/spidev*
/dev/spidev0.0
และ/dev/spidev0.1
.
ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ
- อัปเดตรายการแพ็คเกจ Raspberry Pi ของคุณ:
sudo apt update && sudo apt upgrade -y
- ติดตั้งที่ต้องการ เครื่องมือ I2C/SPI และไลบรารี Python:
sudo apt install -y python3-smbus python3-spidev python3-pip pip3 install adafruit-circuitpython-bmp280
ขั้นตอนที่ 4: การอ่านข้อมูลจาก BMP280
รหัส Python สำหรับโหมด I2C
import time
import board
import busio
import adafruit_bmp280
# Initialize I2C bus and BMP280 sensor
i2c = busio.I2C(board.SCL, board.SDA)
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
# Set sea level pressure (optional, for altitude calculations)
bmp280.sea_level_pressure = 1013.25
try:
while True:
print(f"Temperature: {bmp280.temperature:.2f} °C")
print(f"Pressure: {bmp280.pressure:.2f} hPa")
print(f"Altitude: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Exiting...")
รหัส Python สำหรับโหมด SPI
import time
import board
import busio
import digitalio
import adafruit_bmp280
# Initialize SPI bus and BMP280 sensor
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D8) # Use GPIO8 (Pin 24) for CS
bmp280 = adafruit_bmp280.Adafruit_BMP280_SPI(spi, cs)
try:
while True:
print(f"Temperature: {bmp280.temperature:.2f} °C")
print(f"Pressure: {bmp280.pressure:.2f} hPa")
print(f"Altitude: {bmp280.altitude:.2f} m")
print("------------------------")
time.sleep(2)
except KeyboardInterrupt:
print("Exiting...")
ขั้นตอนที่ 5: แอปพลิเคชันของ BMP280 กับ Raspberry Pi
- การตรวจสอบสภาพอากาศ -รวบรวมข้อมูลอุณหภูมิและความดันสำหรับการวิเคราะห์สภาพอากาศแบบเรียลไทม์
- การวัดระดับความสูง - ใช้ข้อมูลความดันเพื่อประเมินการเปลี่ยนแปลงระดับความสูง
- โครงการ IoT - ส่งข้อมูลเซ็นเซอร์ไปยังแพลตฟอร์มคลาวด์สำหรับการตรวจสอบระยะไกล
- ระบบอัตโนมัติในบ้าน - ปรับการระบายอากาศและเครื่องปรับอากาศตามการอ่านสิ่งแวดล้อม
การแก้ไขปัญหา
-
ไม่พบ BMP280 (
i2cdetect
ไม่แสดง0x76
หรือ0x77
)- ตรวจสอบให้แน่ใจว่า หมุด SDA/SCL มีสายอย่างถูกต้อง
- ตรวจสอบว่า เปิดใช้งาน I2C โดยใช้
sudo raspi-config
.
-
การอ่านไม่ถูกต้อง
- ตรวจสอบ การเชื่อมต่อที่หลวม หรือ ปัญหาแหล่งจ่ายไฟ.
- ตรวจสอบให้แน่ใจว่าเซ็นเซอร์คือ ไม่ได้สัมผัสกับการเปลี่ยนแปลงอุณหภูมิอย่างฉับพลัน.
-
ปัญหาการสื่อสาร SPI
- ตรวจสอบให้แน่ใจว่าเปิดใช้งาน SPI (
ls /dev/spidev*
ควรแสดงรายการอุปกรณ์) - ตรวจสอบ แก้ไขการเลือกพิน CS ในสคริปต์ Python
- ตรวจสอบให้แน่ใจว่าเปิดใช้งาน SPI (
บทสรุป
ที่ เซ็นเซอร์ BMP280 จัดเตรียมให้ การวัดความดันบารอมิเตอร์อุณหภูมิและระดับความสูงที่แม่นยำทำให้เหมาะสำหรับ สถานีอากาศแอปพลิเคชัน IoT และการตรวจสอบด้านสิ่งแวดล้อม- โดยทำตามคำแนะนำนี้คุณสามารถรวม BMP280 เข้ากับของคุณได้อย่างง่ายดาย โครงการ Raspberry Pi สำหรับการรวบรวมและวิเคราะห์ข้อมูลแบบเรียลไทม์! 🚀