آردوینو آموزش آردوینو سنسور آردوینو پروژه های آردوینو کیت آردوینو

آموزش ساخت کیت هشدار نشت گاز شهری با سنسور MQ5 بر پایه آردوینو

Arduino-Gas-detector-MQ5-Module-digispark
نوشته شده توسط پریسا پوربلورچیان

احتمالا در قسمت حوادث روزنامه ها و یا تیتر اول خبرگزاری های آنلاین با تیتر گاز گرفتگی رو به رو شده اید. عدم کنترل کیفیت و استفاده نادرست از وسایل گازی عواقب جبران ناپذیری را بر جای خواهد گذاشت. وجود یک سیستم هشدار جهت تخشیص گاز از بروز بسیاری از این قبیل حوادث جلوگیری خواهد کرد. سیستم هشدار آلودگی پس از تشخیص گاز در محیط ، توسط خروجی های تعریف شده روشن شده و سپس از طریق آلارم و یا هر گجت دیگر وجود گاز را اعلام خواهد کرد. در اختیار داشتن یک سیستم هشدار تشخیص سنسور گاز از نظر هزینه بسیار به صرفه است و به راحتی با هزینه ای کمتر از ۱۰۰ هزار تومان میتوانید آن را تهیه و در محل مورد نظر نصب کنید. در ادامه با مرجع آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

سنسور گاز Gas Sensor MQ5

 سنسورهای گازی برای تشخیص نشت گاز در محیط مسکونی و اداری کاربرد دارند. ماژول MQ5 برای تشخیص گازهای Alcohol, H2, LPG, CH4, CO مناسب است. به علت حساسیت بالا و زمان پاسخ دهی سریع، اندازه‌گیری غلظت گاز در سریع‌ترین زمان ممکن انجام می‌گیرد. حساسیت سنسور را می‌توان با استفاده از پتانسیومتر قرار گرفته روی ماژول MQ5 تنظیم کرد. مقدار و Value سنسور تنها یک روند تقریبی از میزان غلظت گاز محیط در محدوده خطای مجاز را نمایش می‌دهد. به عبارتی ماژول‌های سنسور گاز غلظت دقیق گاز محیط را نمایش نمی‌دهد. تشخیص دقیق آن نیاز به تجهیزات دقیق‌تر دارد و بسیار پر هزینه خواهد بود. دقت کنید اگر پروژه شما در یک محیط صنعتی است و نیاز به نمایش غلظت دقیق گاز در محیط دارید، این سنسور پیشنهاد نمی‌شود. ماژول MQ5 دارای ۴ پایه به ترتیب AD,DO,GND,VCC است. در این آموزش از پایه آنالوگ برای خروجی سنسور استفاده خواهیم کرد. در جدول زیر پارامترهای سنسور کامل شرح داده شده است.

 

 

هدف آموزش کیت هشدار نشت گاز

در این آموزش توسط سنسور گاز MQ5، یک مدار تشخیص آلودگی طراحی می‌کنیم. با تعریف دو خروجی در آردوینو، تغییرات سنسور گاز را مشاهده خواهیم کرد. سنسور گاز MQ5 قابلیت تشخیص گازهای LPG را دارد. با تولید این گاز در مجاورت سنسور، ماژول ال ای دی LED روشن شده و در نهایت رله Relay فعال خواهد شد. با استفاده از یک ال سی دی کاراکتری تغییرات و میزان گاز موجود در محیط را نمایش خواهیم داد.

 

 ال ای دی LED 7 رنگ

یک ال دی جذاب هفت رنگ! این ال ای دی LED تنها دارای ۲ پایه است و پایه کوتاه آن GND و بلندتر پایه سیگنال (S) است. با روشن شدن ال ای دی LED همزمان به ۷ رنگ تغییر رنگ خواهد داد. لینک خرید آن در متن آموزش در قسمت وسایل مورد نیاز قرار گرفته شده است.

 

ماژول رله Relay Module

در بسیاری از پروژه های DIY برای استفاده کاربردی از پروژه‌ها به ماژول رله Relay نیاز داریم. با اتصال وسایل الکترونیکی به خروجی رله، کنترل آن‌ها را دست خواهیم گرفت. آموزش استفاده از رله Relay در پروژه های اینترنت اشیا IOT در یک پست جداگانه کامل توضیح داده شده است. آن را مطالعه کنید و در صورت برخورد به مشکل، سوال از آن طریق مطرح نمایید.

 

فراخوانی کتابخانه MQ

در این آموزش برای نمایش مقادیر سنسور گاز MQ5، از ال سی دی کاراکتری استفاده می‌کنیم. ال سی دی LCD به کار رفته در این آموزش همراه با درایور I2C است. برای عملکرد ال سی دی LCD نیاز به فراخوانی کتابخانه آن داریم. راه اندازی ال سی دی کاراکتری همراه با درایور I2C در پست جداگانه کاملا آموزش داده شده است. در صورتیکه در راه اندازی آن با مشکل مواجه شدید، پیشنهاد می‌شود آموزش را مطالعه و نحوه‌ی راه اندازی ال سی دی LCD را فراگیرید. در این آموزش نیاز به کتابخانه Liquidcrystall_I2C داریم. لینک دانلود کتابخانه در صفحه محصول ماژول نمایشگر ۲X16 کاراکتری با راه انداز I2C در قسمت دانلود قرار گرفته شده است. آن را دانلود و در لیست کتابخانه نرم افزار آردوینو خود قرار دهید.

کیت هشدار نشت گاز شهری با آردوینو و سنسور گاز MQ5 - دیجی اسپارک

 

وسایل مورد نیاز

 

اتصالات

  1. پایه آنالوگ Analog ماژول گاز MQ5 را به پایه A0 آنالوگ آردوینو اتصال دهید.
  2. پایه VCC سنسور تشخیص گاز MQ5 را به پایه تغذیه ۵ ولت آردوینو اتصال دهید.
  3. پایه GND سنسور تشخیص گاز MQ5 را به پایه GND آردوینو اتصال دهید.
  4. پایه منفی ( کوتاه) ال ای دی هفت رنگ را به پایه GND آردوینو اتصال دهید.
  5. پایه سیگنال ( بلند ) ال ای دی هفت رنگ را به پایه ۹ دیجیتال آردوینو اتصال دهید.
  6. پایه سیگنال S ماژول رله تک کانال Relay را به پایه ۱۰ دیجیتال آردوینو اتصال دهید.
  7. پایه VCC ماژول رله تک کانال Relay را به پایه تغذیه ۵ ولت آردوینو اتصال دهید.
  8. پایه GND ماژول رله تک کانال Relay را به پایه GND آردوینو اتصال دهید.

 

اتصال ال سی دی کاراکتری به آردوینو

  1. پایه SCL ماژول ال سی دی کاراکتری I2C را به پایه A5 آنالوگ آردوینو اتصال دهید.
  2. پایه SDA ماژول ال سی دی کاراکتری I2C را به پایه A4 آنالوگ آردوینو اتصال دهید.
  3. پایه VCC ماژول ال سی دی کاراکتری I2C را به پایه تغذیه ۵ ولت آردوینو اتصال دهید.
  4. پایه GND ماژول ال سی دی کاراکتری I2C را به پایه GND آردوینو اتصال دهید.

 

کد آردوینو کیت هشدار نشت گاز شهری

 

تحلیل کد آردوینو نشت گاز شهری MQ5

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

نکته مهم:

دقت کنید در این آموزش از ال سی دی LCD کاراکتری با راه انداز I2C و ابعاد ۲*۱۶ استفاده شده است. برای استفاده از ال سی دی LCD با مشخصاتی غیر از این ال سی دی باید در کد برنامه تغییرات را اعمال کنید.

حال پس از انتقال کد به محیط برنامه، اتصالات را انجام دهید و سپس برنامه را آپلود کنید. همزمان می‌توانید تغییرات را در سریال مانیتور نرم افزار مشاهده کنید. در این خصوص باید سریال مانیتور را روی بادریت ۹۶۰۰ تنظیم کرده و سپس مشاهده کنید. با آپلود برنامه، در ابتدا سنسور MQ5 شناسایی شده و کالیبره خواهد شد. همزمان عبارت Calibrating در ال سی دی LCD نمایش داده می‌شود.

سپس سنسور فعال شده و عبارت SENSOR ACTIVE در ال سی دی نمایش داده خواهد شد.

در ابتدا سنسور با توجه به محیط و عدم وجود گاز، غیر فعال بوه و تنها یک مقدار خاص را همراه با متن No Gas در ال سی دی نمایش می‌دهد:

 

تعیین بازه فعال شدن سنسور MQ5

در این آموزش به دلخواه یک بازه و محدوده مشخص برای فعال شدن سنسور گازی در نظر گرفته شده است. با تولید گاز در مجاورت سنسور تشخیص گاز MQ5، سنسور عمل کرده و پس از رسیدن به محدوده مورد نظر ما، فعال شده و همزمان عبارت Gas is Detected در ال سی دی نمایش داده می‌شود:

با فعال شدن سنسور گاز، همانطور که در کدها تعریف کرده ایم، ال ای دی هفت رنگ روشن شده و ماژول رله فعال خواهد شد. شما می‌توانید این بازه را به دلخواه در برنامه تغییر دهید و مقدار مورد نظر خود را تعریف کنید:

 

مدار تشخیص نشت گاز شهری با آردوینو Arduino و MQ5 دیجی اسپارک

پروژه

اخیرا تصمیم گرفته‌ایم برای تعامل بیشتر با شما کاربران و ایجاد موقعیتی در راستای رقابت دانش کاربران، در انتهای هر آموزش یک پروژه تعریف می‌کنیم. به اولین کاربری که به پروژه تعریف شده پاسخ صحیح بدهد، بن خرید به ارزش ۳۰ هزار تومان از فروشگاه دانشجو کیت ارایه خواهد شد. پروژه: همانطور که در بالا اشاره شد سنسور MQ5 توانایی سنجش گازهای  Alcohol, H2, LPG, CH4, CO را دارد. با استفاده از ماژول کارت خوان Micro SD میزان گاز شناسایی شده توسط سنسور را در بازه‌های ۱۰ دقیقه داخل مموری لاگ کنید. خروجی مموری باید به صورت یک فایل متنی باشد و در هر ستون مقدار گازهای شناسایی شده را نمایش دهد. بازه زمانی هم هر ۱۰ دقیقه یکبار خواهد بود.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۸۲ دیدگاه

  • سلام خانوم مهندس بلورچیان
    من تحلیل کد خیلی بلد نیستم. این سنسور تازه از دانشجوکیت خریدم. چه جوری عددی که به مقدار مورد نظرم برسه و خروجی فعال بشه رو تغییر بدم؟

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

  • سلام و خسته نباشین خدمت شما و همه همکاران گرامیتان.
    میخاستم بدونم توی قسمت اول شرط وقتی که سنسور بیشتر ازعدد ۳۵۰ رو ببینه رله قطع میکنه یا وصل میکنه؟ با تشکر.

    • سلام
      از توجه شما ممنونم.
      در این خصوص دقت کنید که با توجه به ایکه حالت پیش فرض رله ها متفاوت است، شما می‌توانید رله را تست کنید و تغییرات را در کد اعمال کنید. یه عنوان مثال پس از رسیدن به محدوده مورد نظر خروجی رله را LOW و یا HIGH تعریف کنید. در کد برنامه خط ۴۶ تا ۴۹ این حالت تعریف شده است.

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

  • سلام
    سنسور هایی که با اردوینو راه اندازی میشن رو نمیشه با بورد node MUC راه اندازی کرد ؟!
    GPIO های برد node MCU با ۳٫۳ ولت کار میکنن ؟!
    ممنون

    • با سلام
      بله درست می‌فرمایید. در حال حاضر برای ارسال پروژه بایستی در فایل متنی توسط سایت‌های اشتراک گذاری فایل بارگذاری کرده و سپس لینک را اینجا ارسال کنید.

    • سلام
      از توجه شما ممنونم.
      پروژه بررسی شد، صحیح اما ناقص است و باید نوع گازها و مقدار آن ها مشخص شود.
      همانطور که در بالا اشاره شد سنسور MQ5 توانایی سنجش گازهای Alcohol, H2, LPG, CH4, CO را دارد. با استفاده از ماژول کارت خوان Micro SD میزان گاز شناسایی شده توسط سنسور را در بازه‌های ۱۰ دقیقه داخل مموری لاگ کنید. خروجی مموری باید به صورت یک فایل متنی باشد و در هر ستون مقدار گازهای شناسایی شده را نمایش دهد. بازه زمانی هم هر ۱۰ دقیقه یکبار خواهد بود.

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

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

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

  • سلام خانوم پوربلورچیان ببخشید من آشنایی چندان زیادی درباره برنامه نویسی آردینو ندارم
    من الان این کد ها رو
    http://s9.picofile.com/file/8323566276/GasLogger_MQ5_Full.zip.html
    آپلود کنم تو آردینو پروژه ام مثل ویدیو ای که گذاشتین کار میکنه
    اکه کد ها اشتباهه لطفا درستش رو بفرستین
    با سپاس

  • سلام خانم بلورچیان
    من یه چیزی رو متوجه نشدم .. آیا مقدار خروجی سنسور در چه بازه ای است و نسبت به تغییر هر مقدار خوانده شده ADC چند ppm افزایش پیدا میکنه .. و اینکه با تغییر دقت ADC مثلا به ۸ بیت نحوه خواندن به چه شکل است

    با تشکر فراوان

    • سلام
      در این کد مقادیر به صورت PPM خوانده نمی‌شود و برای دریافت مقادیر PPM باید سنسور را کالیبره کنید که در آموزش های بعدی به این مورد خواهیم پرداخت.

  • Wire.begin(); // فراخوانی ال سی دی
    سلام با تشکر از زحمات شما … من فقط توی همین خط از برنامه ارور میده… از خط ۱۳ برنامه ای ک قرار دادین

  • اون مشکل قبلی رو رفع کردم ولی مشکل دیگه ای پیش اومده کع انگاری نوع ال سی دی رو درست تشخیص نمیده و ارور میده براش خط ۱۴ کد شما
    و چنین اروری میده :
    no matching function for call to ‘LiquidCrystal_I2C::begin(int, int)’

    کتابخانه ها رو هم طبق دستور العمل که توی کامنتها بیان کرده بودین آوردم … wire هم فراخوانی دادم …

    • سلام مجدد
      از کدام یک از مدل های ال سی دی استفاده می‌کنید؟ ال سی دی با درایور I2C در این کد فراخوانی شده است.
      ;(LiquidCrystal_I2C lcd(0x27, 16, 2 به عنوان مثال در این آموزش از ال سی دی ۲*۱۶ استفاده شده و در کد مشخص شده است.
      موارد را بررسی و حتما نتیجه را اعلام کنید تا راهنمایی کنم.

      • منم I2C استفاده میکنم
        تمام مشکلات قبلی رو حل کردم.
        ولی الان برنامه کامل درست اجرا میشه و سنسور گاز رو سنس میکنه و فرمان قطع به رله هم داده میشه و کار میکنه …
        منتهی روی ال سی دی چیزی نمایش داده نمیشه… نه کالیبره شدن سنسور… نه تشخیص گاز و نه عدم وجود گاز…
        هیچکدوم ازین جمله ها رو نمینویسه…کد هم دقیقا کدی هست که اینجا ارایه دادین…

      • میشه کد مربوط به ال سی دی ۱۶*۲ بدون درایور I2C رو قرار بدین بیزحمت… من برای یک کار عملی نیاز دارم این کد رو و مهلت تحویل هم چیزی نمونده واقعا ممنون میشم کد رو قرار بدین… من مطلب مربوط به راه اندازی انواع ال سی دی رو هم خوندم ولی توی اجرا خیلی مشکل خوردم و متاسفانه چیزی دستگیرم نشد… با تشکر

        • امکان تغییر کد نیست و با توجه به آموزش های متعددی که برای هر دو مدل در سایت قرار داده شده است، باید خودتان تغییرات را اعمال کنید.
          برای استفاده از ال سی دی بدون درایور I2C تنها باید کتابخانه <include <LiquidCrystal.h# و پایه های استفاده شده را فراخوانی کنید. به عنوان مثال اگر برای اتصال ال سی دی از پایه های ۱۲،۱۱،۵،۴،۳،۲ استفاده می‌کنید، باید دستور ;(LiquidCrystal lcd(12, 11, 5, 4, 3, 2 را فراخوانی کنید.
          در آموزش راه اندازی سه مدل ال سی دی یک نمونه کد ساده به همراه توضیحات کامل قرار داده شده است، آن را مطالعه و مرحله به مرحله طبق آموزش پیش بروید. ۱۰۰ درصد مشکلی نخواهید داشت. در صورت برخورد به مشکل حتما ارورهایی که با آن مواجه شدید را بنویسید تا راهنمایی کنم.

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

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

  • سلام، آموزش خوب و کاربردی بود
    حتی میشه با اضافه کردن یک ماژول سیم کارتی، زمانیکه آتش سوزی رخ داد، از طریق یک تماس یا پیامک کاربر مطلع بشه
    حتی در نوع پیشرفته تر میشه هر زمانیکه آتش سوزی رخ داد، اطلاعات مکان حادثه به همراه آدرس، به طور خودکار به آتش نشانی ارسال بشه و روند کمک رسانی در سریعترین زمان صورت بگیره

    • با سلام و تشکر از توجه شما، ایده‌ی بسیار جالبی است. یکی از مهم‌ترین موارد در رسانه دیجی اسپارک بوجود آمدن ایده‌های جدید برای شما کاربران و قشر زیادی از کاربران فارسی زبان خواهد بود. برای اجرای این پروژه چندین روش قابل اجرا می‌باشد. چنانچه جنابعالی یا دیگر کاربران علاقمند به توسعه چنین پروژه‍ای باشید می‌توانید در این بستر آن را توسعه داده و منتشر کنید.

      • از لطف شما سپاسگزارم، علاقه مند به توسعه این پروژه در بستر دیجی اسپارک هستم، البته بیشتر حوزه کاری اینجانب میکروکنترلرهای avr است، از آنجاییکه رویکرد آموزش ها در دیجی اسپارک مبتنی بر آردویینو است، می بایست با کمی تغییر کدهای پروژه را به آردویینو تبدیل نمود.

        • با سلام
          از توجه و علاقمندی جنابعالی بسیار خرسند هستم. دقت داشته باشید که عملکرد دیجی اسپارک قرار نیست به همین موارد محدود باشد. شما می‌توانید در سایت ثبت نام کرده و آموزش‌هایتان را با کمک تیم تحریریه به نگارش در آورید.

  • سلام. وقت بخیر. موقع راه اندازی lcd i2c هرکاری می کنم فقط حرف اول رو یعنی V رو نشون میده و بقیه Value رو نشون نمیده تمام کاراکترهای lcd هم سالم هستند. ممنون میشم راهنماییم کنید.

  • سلام و و خسته نباشید.خانوم بلورچیان
    راهی هست که بتوانیم حساسیت سنسور رو با ماژول بلوتوث و اندروید کنترل کنیم؟ اگر هست
    ممکنه کد برنامه رو بفرستید.راه اندازی ماژول بلوتوث رو بلدم اما اینکه بتونیم مثلا با بلوتوث سطح حساسیت رو بالا پایین کنیم رو نمیدونم..