ใช้ BMP280 กับ Raspberry Pi

Using the BMP280 with the Raspberry Pi

ที่ BMP280 คือ เซ็นเซอร์ความดันบารอมิเตอร์และอุณหภูมิ ที่ให้ความดันบรรยากาศและการอ่านอุณหภูมิที่แม่นยำ มันใช้กันทั่วไปสำหรับ การตรวจสอบสภาพอากาศการติดตามระดับความสูงและการตรวจจับสิ่งแวดล้อม- คู่มือนี้จะนำคุณผ่านการตั้งค่าและใช้ไฟล์ BMP280 พร้อม Raspberry Pi โดยใช้ การสื่อสาร Python และ I2C/SPI.


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

  1. Raspberry Pi (รุ่นใด ๆ ที่มีการสนับสนุน GPIO เช่น PI 3, PI 4)
  2. โมดูลเซ็นเซอร์ BMP280
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. ติดตั้ง 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

  1. เปิดเครื่องมือกำหนดค่า Raspberry Pi:
    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> i2c และเปิดใช้งาน
  3. รีบูตราสเบอร์รี่ pi:
    sudo reboot
    
  4. ตรวจสอบว่า ตรวจพบ BMP280 บนรถบัส I2C:
    sudo i2cdetect -y 1
    
    ที่ BMP280 ควรปรากฏตามที่อยู่ 0x76 หรือ 0x77.

สำหรับการสื่อสาร SPI

  1. เปิดใช้งาน SPI โดยใช้:
    sudo raspi-config
    
  2. นำทางไปยัง ตัวเลือกอินเตอร์เฟส> SPI และเปิดใช้งาน
  3. รีบูตราสเบอร์รี่ pi:
    sudo reboot
    
  4. ตรวจสอบอินเทอร์เฟซ SPI โดยใช้:
    ls /dev/spidev*
    
    คุณควรเห็น /dev/spidev0.0 และ /dev/spidev0.1.

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

  1. อัปเดตรายการแพ็คเกจ Raspberry Pi ของคุณ:
    sudo apt update && sudo apt upgrade -y
    
  2. ติดตั้งที่ต้องการ เครื่องมือ 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

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

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

  1. ไม่พบ BMP280 (i2cdetect ไม่แสดง 0x76 หรือ 0x77)

    • ตรวจสอบให้แน่ใจว่า หมุด SDA/SCL มีสายอย่างถูกต้อง
    • ตรวจสอบว่า เปิดใช้งาน I2C โดยใช้ sudo raspi-config.
  2. การอ่านไม่ถูกต้อง

    • ตรวจสอบ การเชื่อมต่อที่หลวม หรือ ปัญหาแหล่งจ่ายไฟ.
    • ตรวจสอบให้แน่ใจว่าเซ็นเซอร์คือ ไม่ได้สัมผัสกับการเปลี่ยนแปลงอุณหภูมิอย่างฉับพลัน.
  3. ปัญหาการสื่อสาร SPI

    • ตรวจสอบให้แน่ใจว่าเปิดใช้งาน SPI (ls /dev/spidev* ควรแสดงรายการอุปกรณ์)
    • ตรวจสอบ แก้ไขการเลือกพิน CS ในสคริปต์ Python

บทสรุป

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

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

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.