نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

پروژه و آموزش فشار سنج و ارتفاع سنج با arduino

به نام الله : تو این مطلب از سری مطالب پروژه آردینو، میخوام آموزش کار با سنسور فشار سنج و ارتفاع سنج سری BMP رو براتون قرار بدم، دیتاشیت فارسی سنسور فشار سنج رو قرار بدم، به آموزش نوشتن کتابخونه برای ماژول های میپردازم، یه فایل PDF آموزش و ترجمه دیتاشیت سنسور های سری BMP رو براتون میزارم که توش فرمول محاسبه فشار رو براتون قرار دادم، فرمول محاسبه ارتفاع، توضیح ریجسترها و امکانات این سری از سنسور ها و تفاوت سنسور BM085 و BMP180 رو براتون گزاشتم، یه کتابخونه برا این دو سنسور نوشتم و قرار دادم براتون، کلا هر چی مربوط به این سنسور بود رو براتون قرار دادم، عرضم به حظورتون که این مطلب تو سایت ربات پرنده کاربرد داره(مطلب نه خود سنسور ^_^ کاربرد داره)، شکل زیر سنسور فشار سنج هستش(فک کنم) حالا کدوم مدل هستش دقیقا نمیدونم >>> پروژه و آموزش فشار سنج و ارتفاع سنج با arduino
پروژه و آموزش فشار سنج و ارتفاع سنج با arduino

پروژه و آموزش فشار سنج و ارتفاع سنج با arduino

کارهایی که با سنسور bmp (فشار سنج) میشه انجام داد

  1. محاسبه فشار محیط
  2. محاسبه فشار سطح دریا
  3. محاسبه دمای محیط
  4. محاسبه ارتفاع از سطح دریا
  5. محاسبه ارتفاع از سطح زمین

 

معرفی پایه های ماژول bmp

همین اول اینو بگم که هر کسی میتونه آیسی bmp رو برداره و طبق دیتاشیت مدارش رو ببنده و لذا ممکنه n نوع ماژول bmp085 و bmp180 تو بازار موجود باشه، ظاهرشون فرق داره ولی دیگه پایه هاشون که فرق نداره که، در زیر من برا  bmp085 مثال میزنیم یه برد رو و توضیحش میدم پایه هاش رو(البته شکل زیر رو ببینید معلوم هستش و نیاز به توضیح نداره ولی یکمکی توضیح میدم باز) – در ضمن یه وقت پیش خودتون نگید داش مهدی سنسور bmp085 رو توضیح داد و اون یکی رو نداد حالا من چیکار کنم>>> عرضم به حظورتون که هر دو سنسور پایه های اصلیشون یکسان هستش و در هر دو موجود هستش(کلا برا هر دوم سنسور، در هر بردی با هر شکل و شمایلی شما ببینید پایه های VCC و GND و SDA و SCL فقط مورد نیاز ما هستش و هر دو سنسور این 4 تا پایه رو دارن و فقط همین 4 تا پایه به کار ما میاد و در هر بردی با هر شکل شمایلی و ساخت هر ناکجا آبادی این 4 تا پایه موجود هستش، در ضمن اینو هم بگم ریجستر های دو سنسور فوق با هم یکسان هستش و لذا اگه کتابخونه ای پیدا کردید که برا یکی از سنسور های فوق جواب داد به احتمال 101% برا اون یکی هم جواب میده.)
معرفی پایه های ماژول bmp
توجه کنید که بعضی برد ها دو تا پایه تغذیه دارن، یکی 5 ولت و یکی 3.3 ولت، اولا شما باید از یکی از این پایه ها استفاده کنید و بهش ولتاژ بدید و نه هر دو، دوما تغذیه سنسور حدودا 3.3 ولت هستش(دقیقا 3.3 ولت نیستش و 3.3 ولت شاملش هستش، اول دیتاشیتش رو ببینید نوشته – حالا زیاد هم مهم نیست) ولی بعضی برد ها و ماژول ها اومدن و یه رگولاتور گزاشتن تا شما بتونید ولتاژ 5 ولت به ماژول اعمال کنید(برا وقتایی که ولتاژ 3.3 ولت ندارید مناسب هستش)
پایه های SCL  و SDA مربوط به ارتباط I2C  هستن که در مطلب زیر آموزشش رو قرار دادم و باید به صورت جدول زیر به میکرو وصل بشن : آموزش جامع آردوینو جلسه ۱۶ پروتکول i2c twi

SCL SDA Any Arduino
A5 A4 Uno, Redboard, Pro/Mini
21 20 Mega2560, Due
3 2 Leonardo, Pro/Micro

خرید ماژول BMP180

ماژول نسخه 180 جدید ترین نسخه از این سری از ماژول های فشار سنج هستش و از همه نظر نسبت به نسخه قبلیش یعنی 085 برتری داره و قیمتشون هم آنچنان فرقی نداره با هم و لذا عقلانی نیستش که بری نسخه 085 رو بخرید.
ماژول فشار بارومتریک BOSCH BMP180

مطالب مرتبط با سنسور فشار سنج

Grove – Barometer Sensor
Using the BMP085
(Arduino Weather Station (AWS
این مطلب هم بخونید خالی از لطف نیستش : ارتفاع شهر های ایران از سطح دریای آزاد و تاثیر آن بر پرواز

توضیحاتی درمورد فشار

دانستنی 1 : تاریخچه بارومتر
دانستنی 2 : کاربرد سنسور فشارسنج در موبایل
دانستنی 3 : واحدهای فشار >>>> یه سایت خوب برای تبدیل انواع واحد به همدیگه : مبدل واحدهای اندازه گیری
دانستنی 4 : Barometer یا فشار سنج وسیله ای کاربردی برای سنجش فشار هوا است. هر چند به نظر هوا بدون وزن به نظر می رسد اما وزن هوا در هر متر مربع از سطح زمین برابر 10 تن است. این نیروی ایجاد شده را فشار می نامیم.
دانستنی 5 : فرض کنیم که فشار هوا کم شود، این تغییر به ما فهماند که باد و طوفانی دارد پیوسته به منطقه ی ما نزدیک می شود. زیرا همیشه باد به سوی مناطق کم فشار روی می آورد. اما بر عکس هر گاه فشار بالا برود نشان خوبی وضع هواست. (منبع : چگونه با فشار سنج هوا را پیش بینی می کنند)
دانستنی 6 : با افزایش ارتفاع هوا کمتر شده(تراکم هوا کم میشود) و وزن و فشار آن کاسته می شود لذا فشار با افزایش ارتفاع کم می شود. ( منبع : بارومتر یا فشار سنج هوا)
دانستنی 7 : افزایش فشار باعث افزایش دما میشه.
دانستنی 8 : فشار هوا در سطح دریاهای آزاد برابر با ستونی از جیوه به ارتفاع 760 میلی متر هستش و هر میلی متر جیوه هم معادل 1.333224 میلی بار هستش، لذا ارتفاع در سطح دریاهای آزاد تقریبا برابر 101,325 پاسکال هستش.

760 mm HG = 1013.25 m bar = 101,325 Pa = 1 atm

سایتی برای تبدیل (میلی بار به میلی متر جیوه و برعکس) : mBar to mmHg

تحقیق درباره خواص و ویژگی ها و... فشار

تحقیق درباره خواص و ویژگی ها و... فشار

چد تا عکس زیر رو ببینید و برید درباره خواص دیگه فشار مطالعه کنید، شاید چیزی به اون فکرتون رسید برا ساختن شاید هم اختراع، در کل به نظرم اگه کار با یه قطعه و خواص اونو بدونید کارای خوبی میتونید انجام بدید و فکرتون باز میشه :
اول این لینک رو ببینید و بعد عکس ها رو : نقطه جوش آب در ارتفاعات
2

1

5

4

دیتاشیت فارسی سنسور فشار (BMP) + دیتاشیت انگلیسی

دیتاشیت فارسی سنسور فشار (BMP) + دیتاشیت انگلیسی

خب براتون قسمت های مهم دیتاشیت سنسور BMP رو ترجمه کردم و در زیر براتون قرار دادم، با خوندن این دیتاشیت ترجمه شده به راحتی میتونید برای این سنسور کتابخونه بنویسید(کلا دیتاشیت هر سنسور و IC یی رو بخونید میتونید براش کتابخونه بنویسید :-D)

دیتاشیت فارسی و انگلیسی سنسور فشار سنج BMP

توضیح توابع کتابخانه فشار سنج و ارتفاع آردوینو + دانلود کتابخانه سنسور bmp

توضیح توابع کتابخانه فشار سنج و ارتفاع آردوینو + دانلود کتابخانه سنسور bmp

این کتابخونه رو میتونید در زیر دانلود کنید :

دانلود کتابخانه سنسور bmp (هر دوم مدل 085 و 185)

این کتابخونه شامل توابع زیر هستش(این کتابخونه برا سنسور های BMP085 و BMP180 جواب میده)

که در زیر مورد به مورد توضیحش میدم.

اولین کاری که شما انجام باید بدید اینه که 3 خط بالا رو در اول پروژتون قرار بدید؛ که برا فراخوانی کتابخونه های مورد نیاز هستش و خط سوم هم ساخت یه شئی با نام bmp هستش تا بتونیم از توابع کتابخونه DMF313_BMP استفاده کنیم.

برای شروع برقراری ارتباط با سنسور bmp باید در ابتدای تابع Setup تابع بالا رو قراربدید، اون پارامتر تابع هم مد تابع رو تعیین میکنه که بهتره چیزی برای پارامتر به این تابع ندید، اگه میخواین اطلاعات بیشتری درباره مدهای سنسور فشار سنج بدونید باید دیتاشیت فارسی و یا انگلیسی یی که براتون گزاشتم رو بخونید چون اون جا توضیح داده و منم ترجمه کردم؛ لذا دیگه اینجا قرارش نمیدم توضیحاتش رو
از تابع بالا بهتره به صورت زیر استفاده کنید، تا زمانی که به سنسور وصل نشه و ازش دیتا نگیره از تابع خارج نمیشه و صبر میکنه تازمانی که به سنسور وصل شد و سنسور رو تشخیص داد، اون وقت به کارش ادامه میده.

 

این تابع برای خوندن دما هستش، که دما رو به صورت اعشاری بر میگردونه(باید از متغییر های float برا دریافتش استفاده کنید)

این تابع برا خوندن فشار محیط هستش، که فشار محیط رو به صورت عددی صحیح و 32 بایتی بر میگردونه.

این تابع برای محاسبه ارتفاع شما از سطح دریا هستش، که باید فشار محیط رو به عنوان پارامتر اول(Pressure) و فشار سطح دریا رو به عنوان پارامتر دوم(SeaLevelPressure) بهش بدید، اگه به پارامتر دوم مقداری ندهید مقدار عمومی و عرف فشار دریا که برابر 101325 هستش به عنوان فشار سطح دریا در نظر گرفته میشود(که ممکنه فشار سطح دریا همیشه این مقادر نباشه و یکم بالا پایین باشه، برا حل این مشکل باید از تابع زیر استفاده کنید و مقداری که بهتون میده رو در پارامتر دوم قرار بدید)

این تابع فشار سطح دریا رو به شما میده، فقط یک بار کافیه در طول پروژه فراخونیش کنید، و مقدارش رو ذخیره کنید و در تابع بالا(Altitude) از این مقدار استفاده کنید، این تابع فشار سطح دریا رو به صورت دقیق به شما میده، بر حسب ارتفاع شما از سطح دریا و فشار محیط شما، برای استفاده از این تابع باید شما ارتفاعتون از سطح دریا رو به عنوان پارامتر به این تابع بدید، برای به دست ابردن ارتفاع محیط شما از سطح دریا میتونید از لینک زیر استفاده کنید :
تعیین ارتفاع از سطح دریا با نقشه گوگل

این تابع هم استفاده ازش زیاد ظرروری نیستش ولی برای پیدا کردن مشکل پروژه میتونه مفید باشه، این تابع اعداد 0 تا 4 رو بر میگردونه که هر عدد بیانگر یه چیزی هستش :
۰ : قطع ارتباط با موفقیت انجام شده
۱ : دیتا در بافر ارسال وجود دارد
۲ : گرفته NACK در آدرس ارسالی
۳ : گرفته NACK در دیتای ارسالی
۴ : ارور ها و خطاهای دیگه
اگه مطلب زیر رو بخونید نحوه کار این تابع رو متوجه میشید(توضیحات تابع endTransmission رو بخونید در مطلب زیر) : آموزش جامع آردوینو جلسه ۱۶ پروتکول i2c twi

 

پروژه فشار سنج و ارتفاع سنج با آردوینو

در زیر دو تا پروژه براتون قرار میدم، یکی اطلاعات رو تو پنجره سریال نمایش میده و یکی تو نمایشگر رنگی 1.8 اینچ
نمایشگر 1.8 اینچ رنگی رو هم میتونید از لینک زیر تهیه کنید : ماژول TFT LCD تمام رنگ 1.8 اینچ
و اموزش جامع کار با این نمایشگر رو هم قبلا گزاشتم تو سایت : پروژه و آموزش راه اندازی lcd tft 1.8 inch با آردوینو

دانلود دو پروژه زیر – سنجش ارتفاع و فشار با سنسور bmp

پروژه فشار سنج و ارتفاع سنج با آردوینو - نمایش اطلاعات در پنجره سریال
شماتیک پروژه
پروژه فشار سنج و ارتفاع سنج با آردوینو

کد پروژه

پروژه فشار سنج و ارتفاع سنج با آردوینو - نمایش اطلاعات در lcd tft 1.8 inch
شماتیک پروژه
پروژه فشار سنج و ارتفاع سنج با آردوینو

کد پروژه

عکس پروژه در عمل
پروژه فشار سنج با آردوینو

خب امیدوارم این مطلب برای شما دوستان مفید بوده باشه، حامی مالی این مطلب آقای Ali Ghahramani بود، که باعث شد من این مطلب کوچولو موچولو رو براتون بنویسم.
اگه مفید بود هزینه این مطلب رو پرداخت کنید لطفا : برا تموم بیمارها دعا کنید تا هرچه زود تر سلامتیشون رو بدست بیارن
فعلا یا علی

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
30

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    reza

    باعرض سلام …..لطفا یک ماژول ارتفاع سنج نام ببرید که عمق آب(ازسطح آب تا پایین ترین نقطه آب) را از 2 میلی متر تا 20 سانتی بتواند اندازه گیری کند

  2. Avatar

    مهمان

    mahdy

    توی برنامه اون قسمتی که نوشتید ” ارتفاع من از سطح دریا ” اینو اگه یبار وارد کنیم بعد از اینکه دستگاه ریست میشه بعدش خطا میوفته همش و همون مقدار رو جایگزین می کنه و به کل ارتفاع اشنباه میشه.
    چه راه حلی دارید برای قضیه؟
    ممنون

  3. Avatar

    مهمان

    بهرام

    با سلام
    بعد از runکردن برنامه این متن رو برام میفرسته
    Could not find a valid BMP085 sensor, check wiringنمیدونم چکار کنم؟
    لطفا راهنمایی کنین

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام
      تنها چیزی که به فکرم میرسه – سنسور خراب-اتصصالات اشتباه- هستش فعلا – غیر اون باید مدار پیشم باشه خودم تست کنم.

  4. Avatar

    مهمان

    علی

    سلام خسته نباشید
    من پروژه ارتفاع سنج با سریال مانیتور رو انجام دادم فقط طرز کار با سریال مانیتور چطوره؟

  5. Avatar

    مهمان

    بهنام ارشادیان

    با سلام و تشکر از مطلب جالبی که زحمتش رو کشیدی.من ماژول BMP180و نمایشگر 1.8 رو خریدم.فقط برد اردینویی که خریدم نانو ATMEL MEGA 328 P هست.هر کار میکنم برنامه آپلود نمیشه و پیام خطا میده.میشه راهنمایی بفرمایین چه تغییری باید در برنامه ایجاد کنم.آیا شماره ورودیها و خروجیها اشتباهه؟

  6. Avatar

    مهمان

    علیرضا

    لطفا لطفا راه اندازی این سنسور رو با کدویزن توصیح دهید…

  7. Avatar

    مهمان

    ali

    سلام
    برای راه اندازی ماژول از طریق کدویژن باید از i2c سخت افزاری استفاده کرد؟؟؟؟؟؟؟؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-فرقی نداره ولی خب سخت افزار بهتره.

  8. Avatar

    مهمان

    مهدی

    سلام
    ممنون از مطلب خوبتون
    من یک مشکلی دارم و اون هم اینه هر کاری می کنم خطای :Could not find a valid BMP085 sensor, check wiring! : رو می نویسه توی خروجی!!!!
    لطفا راهنمایی کنید.
    سنسور را چند بار عوض کردم باز هم نشد.چکار باید بکنم تا جواب بگیرم؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – یه عکس از مدارت بفرست – طوری که اتصالات و خود ماژول و آردوینو معلوم و واضح باشن کاملا.

  9. Avatar

    مهمان

    نیما

    سلام
    پشت lcd یک جای sd card هستش.میشه برنامه رو طوری نوشت که هر چند ثانیه یک بار اطلاعاتی که از ماژول میاد رو ذخیره کنه!؟
    لطفا راهنمایی کنید

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – هر کاری بخواین میتونین بکنید!
      سوالتون کلی بود.

      • Avatar

        مهمان

        نیما

        چه جوری انجام بدم؟
        منبعی رو دارید که معرفی کنید؟

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          آموزش میکروکنترلر مددنظرتون+آموزش sdکارت با میکرو مد نظرتون رو تو نت سرچ کنید و مطالعه کنید.

      • Avatar

        مهمان

        Nims

        سلام
        بی زحمت میشه دیتاشیت فارسی nrf24l01 رو با فرمت word قرار بدین

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          سلام
          تو پروژه ان آر اف با آردوینو گزاشتم

  10. Avatar

    مهمان

    میر میکائیل

    این با avr نداره؟

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تو این سایت نه.

  11. Avatar

    مهمان

    مهدی

    اما چرا ارتفاع هی تغییر میکنه؟ ثابت نیست؟ در صورتی که دستگاه ثابته!

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تو مطلب فک کنم گفتم که خطا داره و 1-2 متری حداقل در نظر بگیرید – چون فشار محاسبه شده دقیق نیست – سنسور خب یکم خطا داره – به دیتاشیت مراجعه کن.

      • Avatar

        مهمان

        مهدی

        خطاش هرچقدر هم باشه قابل تحمله و دقتش هم هرچی باشه.
        اما توی یک ثانیه عدد متفاوت میشه! این برای رباطی که بخواد پرواز کنه و بعدش بشینه کار رو سخت میکنه!

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          اینو از اونایی بپرس که ربات پرنده ساختن – تا جایی که من شنیدم سنسور srf میزنن زیر ربات برا این کار.
          حالا چقدر بالا پایین میشه؟
          میشه ترکیبی از bmp و srf ساخت

  12. Avatar

    مهمان

    مهدی

    سلام .
    فایل کتابخانه رو چطوری به برنامه اردوینو اضافه کنم . فایل زیپ نیست که!

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – تو نت سرچ کن – تا مطلب جلسه اول آردوینو – قسمت آخر اون لینک هایی گه گزاشتم رو ببین تا جایی که یادمه – زیپ هم نباشه موردی نیست

      • Avatar

        مهمان

        مهدی

        بله
        بسیار ممنون
        فایل رو از زیپ خارج کردم . تو پوشه کتابخانه های اردوینو کپی کردم تو کتابخونه ها اضافه شد.

  13. Avatar

    مهمان

    حسین

    سلام. خدا قوت
    رفیق یه سوال داشتم. توی آخرین عکسی که گذاشتید در این پست روی نمایشگر ارتفاع هم نمایش داده شده. این ارتفاع از سطح زمین هست؟؟
    واقعا این ماژول این قابلیت را داره که ارتفاع از سطح زمین را بده ؟
    و در آخر اینکه دقت اندازه گیری ارتفاع چقدره؟
    واقعیت من تحصیلات و یا تجربه الکترونیک ندارم و برای یه موضوعی احتیاج دارم ارتفاع از سطح زمین ز کف تا 40 متر را دائم بدونم و ثبت بشه… دنبال سنسور مناسب این کار هستم که موانع هم روش تاثیر نداشته باشه
    ممنون از مطالبتون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام آقا حسین
      خب اگه ما ارتفاع سنسور سطح دریا رو داشته باشیم – ارتفاع منقطه زندگیمون از سطح دریا رو هم داشته باشیم – به یه جمع و تفریق میتونیم ارتفاع سنسور از سطح زمین رو محاسبه کرد – البته خب رو دقتش من تضمین نمیکنم – با یکم تست میتونی خطاش رو در بیاری

  14. Avatar

    مهمان

    Meyti

    سلام
    ممنون از توضیحاتتون
    این کتابخانه bmp180 میشه داخل کد ویژن استفاده کرد؟
    و این کتابخانه برای bmp280 میشه استفاده کرد؟
    ممنون

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-در حالت عادی نه – نمیدونم