</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

  • خانه
  • الکترونیک
  • پرینت سه‌بعدی
  • حکاکی و برش لیزری
  • ابزار کارگاهی
  • پهپاد
  • ربات زمینی UGV
  • ربات پرنده UAV
  • صنایع دستی
  • آموزش
  • پروژه‌ها
  • درباره ما
خانه›ربات‌های پرنده (UAV)›ساخت Barometer Logger با BMP280 و Arduino: اندازه‌گیری ارتفاع پهپاد (فارسی)
ربات‌های پرنده (UAV) پروژه‌ها

ساخت Barometer Logger با BMP280 و Arduino: اندازه‌گیری ارتفاع پهپاد (فارسی)

​ ژوئن 11, 2026 1 دقیقه مطالعه
لاگر BMP280 فشارسنج ارتفاع پهپاد Arduino

BMP280 و اندازه‌گیری ارتفاع با فشار هوا چیست؟ (برای مبتدی)

با بالا رفتن ارتفاع، فشار هوا کاهش می‌یابد. این رابطه فیزیکی پایه کار Barometer (فشارسنج) در پهپادها است. ماژول BMP280 یک سنسور دیجیتال فشار و دما با دقت بالا است که از طریق I2C یا SPI به Arduino متصل می‌شود.

با فرمول Barometric Formula، از اختلاف فشار بین نقطه پرواز و زمین می‌توان ارتفاع نسبی را با دقت ±۱ متر محاسبه کرد. فلایت کنترلرهای ArduPilot و iNAV هم از همین اصل برای Altitude Hold و Auto Landing استفاده می‌کنند.

یک لاگر Barometer مستقل می‌تواند در تحلیل پرواز، بررسی بازدهی PID Altitude، و تنظیم پارامترهای موتور بسیار مفید باشد.

محصولی که می‌سازید

یک لاگر فشار/ارتفاع با BMP280 که داده را روی SD Card ذخیره می‌کند و ارتفاع را روی OLED نمایش می‌دهد.

  • زمان ساخت: ۲ تا ۳ ساعت
  • هزینه: ۳۰۰ تا ۴۵۰ هزار تومان
  • دقت ارتفاع: ±۱ متر

BMP280 I2C فشار+دما Arduino Nano محاسبه ارتفاع SD + OLED لاگ + نمایش Excel/Python گراف ارتفاع Barometer Logger — فشار → ارتفاع نسبی → CSV → تحلیل

کد Arduino — BMP280 + SD Logger


#include <Wire.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_SSD1306.h>
#include <SD.h>

Adafruit_BMP280 bmp;
Adafruit_SSD1306 oled(128, 64, &Wire, -1);
File logFile;

float groundPressure;  // فشار سطح زمین

float calcAltitude(float pressure) {
  // فرمول Barometric برای ارتفاع نسبی
  return 44330.0 * (1.0 - pow(pressure / groundPressure, 0.1903));
}

void setup() {
  Serial.begin(115200);
  bmp.begin(0x76);
  bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
                  Adafruit_BMP280::SAMPLING_X2,
                  Adafruit_BMP280::SAMPLING_X16,
                  Adafruit_BMP280::FILTER_X16,
                  Adafruit_BMP280::STANDBY_MS_500);
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);

  // کالیبراسیون: میانگین ۳۰ نمونه اول
  float pSum = 0;
  for(int i=0; i<30; i++) { pSum += bmp.readPressure(); delay(50); }
  groundPressure = pSum / 30.0;
  Serial.print("Ground P: "); Serial.println(groundPressure);

  SD.begin(10);
  logFile = SD.open("baro_log.csv", FILE_WRITE);
  if(logFile) logFile.println("ms,pressure,temp,altitude");
}

void loop() {
  float press = bmp.readPressure();
  float temp  = bmp.readTemperature();
  float alt   = calcAltitude(press);

  oled.clearDisplay(); oled.setTextSize(2); oled.setCursor(0,0);
  oled.print(alt, 1); oled.println("m");
  oled.setTextSize(1); oled.setCursor(0,20);
  oled.print(press/100.0, 2); oled.println(" hPa");
  oled.print(temp, 1); oled.println(" C");
  oled.display();

  if(logFile) {
    logFile.print(millis()); logFile.print(",");
    logFile.print(press,2);  logFile.print(",");
    logFile.print(temp,2);   logFile.print(",");
    logFile.println(alt,3);
    if(millis() % 5000 < 100) logFile.flush();
  }
  delay(200);
}

چک‌لیست تست

تست نتیجه
در سطح زمین ارتفاع ≈ 0m است؟ بله — بعد از کالیبراسیون
بالا بردن ۱ متر → ارتفاع ≈ 1m؟ بله
فایل CSV روی SD ایجاد شده؟ بله
دمای سنسور با دماسنج محیط تطابق دارد؟ ±۲°C قابل قبول

نمونه گراف ارتفاع — رفت و برگشت پرواز 0s 60s 30m 0m

ویدئوهای آموزشی


منابع بیشتر

  • آپارات: BMP280 ارتفاع‌سنج فارسی
  • Random Nerd: BMP280 Arduino Guide
برچسب‌ها: Barometer BMP280 SD Card آردوینو آموزش گام‌به‌گام ارتفاع فشارسنج پهپاد
​
مطلب بعدی ساخت UGV شش‌پا (Hexapod) با سرووموتور و Arduino: گام برداشتن خودکار (فارسی) مطلب قبلی راهنمای iNAV Waypoint Mission: برنامه‌ریزی مسیر خودکار برای FPV Fixed-Wing (فارسی)
</> Make for Iran – بسازیم برای ایران

پروژه‌ها، آموزش‌ها و ابزارها برای سازندگان و علاقه‌مندان الکترونیک

یاد بگیر، بساز، به اشتراک بگذار. جامعه‌ای برای سازندگان، مهندسان و علاقه‌مندان به فناوری در ایران.

دسته‌بندی‌ها

  • پروژه‌ها
  • ربات‌های پرنده (UAV)
  • آموزش
  • ربات‌های زمینی (UGV)
  • الکترونیک
  • پهپاد و مولتی‌روتور

پیوندها

  • خانه
  • درباره ما
  • تماس
  • فید RSS

آخرین مطالب

  • خلاصه دوره ArduPilot/iNAV و گام‌های بعدی (فارسی)
  • رادیو تله‌متری در مقابل LTE/4G برای کنترل از راه دور (فارسی)
  • Ground Station روی موبایل و تبلت — QGroundControl و Solex (فارسی)
  • راه‌اندازی Ground Station با Mission Planner (فارسی)
© 2026 Make for Iran – بسازیم برای ایران. تمامی حقوق محفوظ است.
ساخته شده با ❤️ برای سازندگان ایران  |  ورود