الـ BMP280 هو حساس الضغط الجوي ودرجة الحرارة الذي يوفر قراءات دقيقة للضغط الجوي ودرجة الحرارة. يُستخدم عادةً في مراقبة الطقس، تتبع الارتفاع، والاستشعار البيئي. سيرشدك هذا الدليل خلال إعداد واستخدام BMP280 مع Raspberry Pi باستخدام Python وI2C/SPI للتواصل.
ما ستحتاجه
- Raspberry Pi (أي طراز يدعم GPIO، مثل Pi 3، Pi 4)
- BMP280 وحدة الحساس
- لوحة تجارب وأسلاك توصيل
- تثبيت Python على Raspberry Pi
الخطوة 1: توصيل BMP280 بـ Raspberry Pi
يدعم BMP280 كل من واجهتي I2C وSPI.
لوضع I2C (مستحسن)
| BMP280 دبوس | دبوس Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | الأرضي (Pin 6) |
| SDA | SDA (Pin 3, GPIO2) |
| SCL | SCL (Pin 5, GPIO3) |
لوضع SPI
| BMP280 دبوس | دبوس Raspberry Pi |
|---|---|
| VCC | 3.3V (Pin 1) |
| GND | الأرضي (Pin 6) |
| SCK | SCLK (Pin 23, GPIO11) |
| SDI | MOSI (Pin 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 - انتقل إلى Interface Options > I2C وقم بتمكينها.
- أعد تشغيل Raspberry Pi:
sudo reboot - تحقق من اكتشاف BMP280 على ناقل I2C:
sudo i2cdetect -y 1
BMP280 على العنوان 0x76يجب أن يظهرأو0x77للتواصل عبر SPI.
فعل SPI باستخدام:
- sudo raspi-config
انتقل إلى - Interface Options > 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 ومكتبات 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 # تهيئة ناقل I2C ومستشعر
BMP280
i2c = busio.I2C(board.SCL, board.SDA)
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
# تعيين ضغط سطح البحر (اختياري، لحساب الارتفاع)
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 # تهيئة ناقل SPI ومستشعر
BMP280
spi = busio.SPI(board.SCK, board.MOSI, board.MISO)
cs = digitalio.DigitalInOut(board.D8) # استخدم GPIO8 (Pin 24) لـ 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 pins بشكل صحيح.تحقق من أن
- I2C is enabled باستخدام sudo raspi-config
قراءات غير صحيحة.
-
تحقق من
- loose connections أو power supply issuesتأكد من أن الحساس .
- غير معرض لتغيرات حرارة مفاجئةمشاكل اتصال SPI.
-
تأكد من تمكين SPI (يجب أن يسرد الأمر
- ls /dev/spidev*
الأجهزة).تحقق من - correct CS pin selection في سكربت Python.الخلاصة
- ls /dev/spidev*
حساس
BMP280 يوفر قراءات دقيقة للضغط الجوي ودرجة الحرارة والارتفاع، مما يجعله مثالياً لـ محطات الطقس، تطبيقات إنترنت الأشياء، والمراقبة البيئية. باتباع هذا الدليل، يمكنك دمج BMP280 بسهولة في مشاريع Raspberry Pi الخاصة بك لجمع وتحليل البيانات في الوقت الفعلي! 🚀







