آردوینو پروژه های آردوینو

طراحی و پیاده سازی سیستم هشدار اعلام حریق با سنسور NTC و MQ135

create--fire-alarm-system-arduino-mq135-ntc-sensor-digispark
نوشته شده توسط معین صابری

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

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

 


ساز و کار عملکرد سیستم اعلام حریق


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

مکانیزم عملکرد پروژه اعلام حریق آردوینو - دیجی اسپارک

 

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

 


قطعات پروژه اعلام حریق آردوینو


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

سنسور MQ135 در اعلام حریق آردوینو - دیجی اسپارک

 

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

نمایشگر سگمنت TM1637 در اعلام حریق آردوینو - دیجی اسپارک

 

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

قطعات پروژه اعلام حریق آردوینو - دیجی اسپارک

 

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

 


شماتیک و اتصالات پروژه اعلام حریق


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

شماتیک و اتصالات پروژه اعلام حریق آردوینو - دیجی اسپارک

 

با مشاهده تصویر فوق، اتصالات پروژه را به شکل زیر ادامه می دهیم.

 


اتصالات نمایشگر و آردوینو


  • اتصال پایه CLK به پایه ۴ آردوینو
  • اتصال پایه DIO به پایه ۵ آردوینو
  • اتصال پایه VCC نمایشگر به ۵ ولت آردوینو
  • اتصال پایه GND نمایشگر به GND آردوینو

 


اتصالات سنسور دما و آردوینو


  • اتصال یک پایه سنسور دما به ۵ ولت
  • اتصال پایه دیگر سنسور دما به یک پایه مقاومت ۱۰ کیلو
  • اتصال پایه دیگر مقاومت ۱۰ کیلو به زمین
  • اتصال محل تلاقی پایه سنسور و مقاومت ۱۰ کیلو به پایه A0 آردوینو

توجه: سنسور دما مستقل از پلاریته است؛ به عبارت دیگر در اتصال پایه ها فرقی نخواهند داشت.

 


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


  • اتصال پایه VCC سنسور به ۵ ولت آردوینو
  • اتصال پایه GND سنسور به پایه GND آردوینو
  • اتصال پایه A0 سنسور به پایه A1 آردوینو
  • اتصالات بازر و ترانزیستور به آردوینو
  • اتصال پایه ۲ آردوینو با یک مقاومت یک کیلو اهم به صورت سری به پایه بیس ترانزیستور
  • اتصال پایه امیتر ترانزیستور به GND مدار
  • اتصال پایه کلکتور ترانزیستور به پایه منفی بازر
  • اتصال پایه مثبت بازر به ۵ ولت آردوینو

 


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


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

اصول نصب کتابخانه در آردوینو - دیجی اسپارک

 

پس از کلیک بر روی گزینه Manage Libraries، در صفحه ظاهر شده، در قسمت کادر جستجو، عبارت SevenSegmentTM1637.h را جستجو نموده و کتابخانه مشخص شده در تصویر زیر را نصب نمایید.

نصب کتابخانه در ساخت ترازو دیجیتال آردوینو - دیجی اسپارک

 

پس از نصب کتابخانه مربوط به نمایشگر، نوبت به نصب کتابخانه سنسور دما می رسد. جهت نصب کتابخانه، در منوی جست و جوی کتابخانه ها عبارت thermistor را تایپ کنید. با تایپ این عبارت با تصویر زیر رو به رو خواهید شد. مطابق تصویر، کتابخانه مشخص شده با کادر قرمز رنگ را نصب نمایید.

کتابخانه مناسب در پروژه اعلام حریق آردوینو - دیجی اسپارک

توجه: پس از نصب کتابخانه سنسور دما، وارد فولدر کتابخانه آن شوید. به این منظور در فولدر Documents ویندوز، فولدر Arduino و سپس Libraries را انتخاب کنید. در این جا وارد فولدر Thermistor شده و فایل thermistor.cpp را باز کنید. با باز شدن این فایل، عبارت زیر را یافته و آن را کامنت کنید.

#define VERBOSE_SENSOR_ENABLED 1

جهت کامنت کردن، می بایست عبارت // را پیش از دستور قرار دهید. به عبارت دیگر دستور به صورت زیر تبدیل می شود.

#define VERBOSE_SENSOR_ENABLED 1//

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

 


کدهای پروژه اعلام حریق آردوینو


پس از برقراری اتصالات و نصب کتابخانه ها، نوبت به کدهای پروژه می رسد. کدهای زیر را بر روی برد آپلود نمایید.

#include "thermistor.h"
#include "HardwareSerial.h"
#define NTC_PIN               A0    //پین متصل به سنسور دما
#define alarm_pin 2   //پین آلارم
#define relay_pin 3  //پین رله
#include "SevenSegmentTM1637.h"  //کتابخانه نمایشگر
const byte PIN_CLK = 4;   // تعریف پایه کلاک برای نمایشگر
const byte PIN_DIO = 5;   // تعریف پایه دیتا برای نمایشگر
SevenSegmentTM1637    display(PIN_CLK, PIN_DIO);  //ایجاد شی و ارسال پارامترها
THERMISTOR thermistor(NTC_PIN,        // پین آنالوگ
                      ۱۰۰۰۰,          // میزان مقاومت به اهم سنسور در دما ی۲۵ درجه اتاق
                      ۳۹۵۰,           // پارامتر بتا سنسور
                      ۱۰۰۰۰);         // مقدار مقاومت سری شده با سنسور به اهم
uint16_t temp;   //متغیر جهت خواندن دما
void setup()
{
  Serial.begin(9600);
  pinMode(alarm_pin, OUTPUT);
  pinMode(relay_pin, OUTPUT);
  display.begin();  //راه اندازی نمایشگر
  display.setBacklight(100);  //تنظیم درخشمدگی نمایشگر

}
void loop()
{
  float mq = analogRead(A1);  //خواندن خروجی سنسور MQ
  mq = (mq * 5) / 1023;
  temp = thermistor.read();   // خواندن دما
  String data = String(temp / 10);  //دما توسط کتابخانه به ضریب ۱۰ محاسبه می شود که در اینجا بر ۱۰ آن را تقسیم کرد.
  data = data + " C";   //اضاه کردن عبارت C برای خواندن دما
  display.print(data);  //نمایش دما
  if (temp > 40 || mq > 2.5) {   //در صورتیکه دما بیش از ۴۰ شده و یا خروجی سنسور MQ بیش از ۲٫۵ شود آلارم فعال می شود. در حالت آلارم بیط به صورت هر یک ثاینه یکبار به صدا
    //در آمده و خروجی رله نیز فعال خواهد شد.
    digitalWrite(alarm_pin, HIGH);
    delay(1000);
    digitalWrite(alarm_pin, LOW);
    delay(1000);
    digitalWrite(relay_pin, HIGH);
  }
  else
    digitalWrite(relay_pin, LOW);  //قطع شدن خروجی رله

}

 


اجرای پروژه اعلام آتش آردوینو


پس از آپلود کدها روی برد، پروژه اجرا می شود. در این جا بر روی نمایشگر دمای محیط نمایش داده می شود. حال هرگاه که سنسور MQ دود تشخیص دهد یا اینکه دمای محیط از ۴۰ درجه بیشتر شود، خروجی آلارم و دیگر خروجی دیجیتال فعال می شوند.

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

 

توجه: بر روی سنسور MQ135 یک پتانسیومتر جهت تنظیم حساسیت تعبیه شده که با چرخاندن آن می توانید حساسیت را تنظیم کنید.

 


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


سنسور دمای NTC

ترانزیستور ۲N222

بازر اکیتو

 لینک خرید برد آردوینو UNO، کلیک کنید

لینک خرید مقاومت یک کیلو اهمی، کلیک کنید

لینک خرید مقاومت ۱۰ کیلو اهمی، کلیک کنید

لینک خرید نمایشگر سون سگمنت TM1637، کلیک کنید

 


جمع بندی


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

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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