ال BMP280 هو استشعار الضغط البارومتري ومستشعر درجة الحرارة وهذا يوفر ضغطًا دقيقًا للضغط الجوي وقراءات درجة الحرارة. يستخدم عادة ل مراقبة الطقس وتتبع الارتفاع والاستشعار البيئي. سوف يسير هذا الدليل من خلال إعداد واستخدام BMP280 مع Raspberry Pi استخدام Python و I2C/SPI الاتصالات.
ماذا ستحتاج
- التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
- وحدة استشعار BMP280
- الأسلاك الأسلاك والبلوز
- بيثون مثبت على التوت PI
الخطوة 1: توصيل BMP280 إلى Raspberry Pi
ال يدعم BMP280 كل من الاتصالات I2C و SPI.
لوضع I2C (موصى به)
BMP280 دبوس | التوت بي دبوس |
---|---|
VCC | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
SDA | SDA (PIN 3 ، GPIO2) |
SCL | SCL (PIN 5 ، GPIO3) |
لوضع SPI
BMP280 دبوس | التوت بي دبوس |
---|---|
VCC | 3.3V (دبوس 1) |
GND | الأرض (دبوس 6) |
SCK | SCLK (PIN 23 ، GPIO11) |
SDI | MOSI (PIN 19 ، GPIO10) |
SDO | MISO (PIN 21 ، GPIO9) |
CS | CE0 (PIN 24 ، GPIO8) |
ملحوظة: يعمل BMP280 في 3.3V. لا قم بتوصيله بـ 5 فولت ، لأنه قد يضر بالوحدة.
الخطوة 2: تمكين I2C أو SPI على Raspberry Pi
لتواصل I2C
- افتح أداة تكوين Raspberry Pi:
sudo raspi-config
- انتقل إلى خيارات الواجهة> i2c وتمكينها.
- أعد تشغيل Raspberry Pi:
sudo reboot
- تحقق من أن تم الكشف عن BMP280 في حافلة I2C:
ال يجب أن يظهر BMP280 على العنوانsudo i2cdetect -y 1
0x76
أو0x77
.
لتواصل SPI
- تمكين SPI باستخدام:
sudo raspi-config
- انتقل إلى خيارات الواجهة> SPI وتمكينها.
- أعد تشغيل Raspberry 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 وبيثون مكتبات:
sudo apt install -y python3-smbus python3-spidev python3-pip pip3 install adafruit-circuitpython-bmp280
الخطوة 4: قراءة البيانات من BMP280
رمز بيثون لوضع 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...")
رمز بيثون لوضع 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
- مراقبة الطقس -جمع بيانات درجة الحرارة والضغط لتحليل الطقس في الوقت الفعلي.
- قياس الارتفاع - استخدم بيانات الضغط لتقدير تغييرات الارتفاع.
- مشاريع إنترنت الأشياء - إرسال بيانات المستشعر إلى المنصات السحابية للمراقبة عن بُعد.
- أتمتة المنزل - ضبط التهوية وتكييف الهواء على أساس القراءات البيئية.
استكشاف الأخطاء وإصلاحها
-
لم يتم اكتشاف BMP280 (
i2cdetect
لا تظهر0x76
أو0x77
)- ضمان دبابيس SDA/SCL سلكية بشكل صحيح.
- تحقق من ذلك تم تمكين I2C استخدام
sudo raspi-config
.
-
قراءات غير صحيحة
- تحقق من اتصالات فضفاضة أو قضايا إمداد الطاقة.
- تأكد من أن المستشعر لا تتعرض لتغيرات درجة الحرارة المفاجئة.
-
قضايا الاتصال SPI
- تأكد من تمكين SPI (
ls /dev/spidev*
يجب أن تسرد الأجهزة). - يؤكد اختيار دبوس CS الصحيح في السيناريو بيثون.
- تأكد من تمكين SPI (
خاتمة
ال مستشعر BMP280 يوفر ضغط البارومتري الدقيق ودرجة الحرارة وقياسات الارتفاعمما يجعلها مثالية ل محطات الطقس وتطبيقات إنترنت الأشياء والمراقبة البيئية. باتباع هذا الدليل ، يمكنك بسهولة دمج BMP280 في مشاريع التوت PI لجمع البيانات في الوقت الحقيقي وتحليلها! 🚀