مرگ خاموش واژه ناخوشایند ولی آشنا است که با شروع فصل سرد هرساله به گوش میرسد. مونوکسید کربن گازی بیرنگ و بیبو است که در اثر ناقص سوختن مواد سوختی، نقص سیستم گرمایشی و دودکش باعث مرگ بسیاری از هموطنان میشود. هرچند در سالیان اخیر نیروهای آتشنشانی و سازمانهایی مانند صداوسیما با شروع فصول سرد شروع به آموزش میکنند، اما باز هم شماری از هموطنان در اثر حوادثی ناخواسته دچار گازگرفتگی میشوند. اگر چه سهم این حوادث باز هم از نقصها و بیاحتیاطیها کمتر است، اما مرگ یک انسان هم در این مورد قابل قبول نیست.
سالیان گذشته معدن کاوها به همراه خود یک پرنده مانند قناری به عمق معدن میبردند تا در صورت وجود گاز آنها را هوشیار نماید. این پرندگان در واقع یک حسگر طبیعی برای گازها بودند. امروزه با توجه به رشد فناوری شرکتهای منازل هوشمند اقدام به ساخت آلارم های گاز نمودهاند. نمونه این دستگاهها در مارکت های اروپایی و آمریکایی در حدود ۵۰ دلار قابل خرید است.
در این مقاله سعی بر آن شده تا با مبلغی کمتر از صد و پنجاه هزار تومان بتوانید یک دستگاه آلارم مونوکسید کربن به وسیله برد آردوینو را برای خود تهیه کنید و بتوانید از جان خود و نزدیکانتان در مقابل گاز مونوکسید کربن نگهبانی و مراقبت نمایید.
تجهیزات لازم برای آلارم مونوکسید کربن به وسیله برد آردوینو
- برد آردوینو نانو
- سنسور MQ-7 CO
- ترانزیستور NPN در واقع هر ترانزیستوری که بتواند ۳۰۰ میلی آمپر و یا بیشتر کار کند
- مقاومت یک کیلو اهمی ۲ عدد
- مقاومت ده کیلو اهمی یک عدد
- خازن ۱۰ میکرو فارادی ۲ عدد
- ال ای دی قرمز و سبز یک عدد
- بازر پیزو الکتریک یک عدد
- برِد بُرد یک عدد
آشنایی با تجهیزات آلارم مونوکسید کربن
سنسور MQ-7 CO نوعی سنسور الکتروشیمی است که بایستی گرم شود و بعد از آن دادهها را دریافت کند. این سنسور دارای یک هیتر داخلی است. این سنسور توانایی تشخیص غلظت CO موجود در هوا را دارد. محدوده غلظت قابل سنجش این سنسور بین ۲۰ppm تا ۲۰۰۰ppm است. حساسیت بالا، پاسخگویی در کمترین زمان ممکن و خروجی آنالوگ از خصوصیات این سنسور است. راهاندازی این سنسور آسان است و شما بهراحتی میتوانید با اتصال خروجی آنالوگ سنسور به ADC آردوینو، آن را راهاندازی کنید. برای دریافت اطلاعات مراحل زیر رعایت شود:
- برق ورودی ۵ ولت به میزان ۶۰ ثانیه اعمال شود ولی دادهای از میزان CO یادداشت نشود.
- برق ورودی ۱.۴ ولت به میزان ۹۰ ثانیه اعمال گردد و دادههای مقدار CO یادداشت شود.
- رفتن به مرحله ۱
واضح است که برد آردوینو نمیتواند ولتاژ ۵ ولت منقطع را برای آلارم مونوکسید کربن مستقیماً تأمین کند و همچنین حداکثر جریان تولیدی آن نیز ۴۰ میلی آمپر است. در حالیکه هیتر این سنسور نیازمند ۱۵۰ میلی آمپر جریان ۵ ولت است. برای مقدار ۱.۴ ولت نیز میبایست از پایه PWM با پالسهای متفاوت استفاده نمود.
استفاده از ترانزیسور NPN میتواند دو مشکل قبل را حل نماد. اگر ترانزیستور باز باشد جریان ۵ ولت اعمال میشود و بعد از یک دقیقه پالس اعمالی به پایهی ترانزیستور ولتاژ ۱.۴ را تولید مینماید. این ولتاژ پالسی توسط خازنها صاف میشوند.
نحوه اتصالات برد آردوینو برای آلارم مونوکسید کربن
تجهیزات تهیه شده را مانند شکل زیر به هم متصل میکنیم. از پایه ۵ ولت برد آردوینو به مقاومت یک کیلو اهمی وصل و بعد از آن به ال ای دی های قرمز و سبز نصب میکنیم. خروجی ال ای دی قرمز به پایه دیجیتال ۱۰ و خروجی ال ای دی سبز به پایه ۹ دیجیتال برد آردوینو وصل میشود.
پایه شماره یک بازر به پایه ۶ دیجیتال و پایه ۲ بازر نیز به پایه ۵ دیجیتال متصل می شود. از پایه ۵ ولت یک انشعاب به پایه VIN سنسور متصل نمایید و بهصورت موازی به مثبت دو خازن ۱۰ میکرو فارادی متصل نمایید. پایه منفی خازن اول را به پایه یک آنالوگ برد آردوینو متصل نموده و همینگونه به خروجی زمین در سنسور و از پایه صفر آنالوگ به ورود AO سنسور متصل نمایید و سپس به منفی خازن دوم و یک اتصال نیز به مقاوت ۱۰ کیلو آهمی. خروجی مقاوت کیلو اهمی را به زمین متصل نمایید. از پایه GND به ورودی ترانزیستور متصل نمایید. خروجی ترانزیستور به زمین و ورودی گیت را به پایه دیجیتال سوم بعد از مقاومت یک کیلو اهمی متصل نمایید.
کالیبراسیون
سنسور برای هرگونه استفاده عملی نیاز به کالیبراسیون دستی دارد. بدون کالیبراسیون پارامترهای سنسور در این طرح ممکن است آلارم را در هوای تمیز نیز روشن شود یا غلظت مونوکسید کربن زیاد را کشف نکند.
کالیبراسیون حدسی میتواند بسیار آسان ولی پیچیده باشد. مراحل کالیبره نمودن سنسور مونوکسید کربن در ادامه آورده شده است. ابتدا PWM خود را جهت تولید پایدار ۱.۴ ولت مورد نیاز سنسور کالیبره میکنیم (عرض مناسب PWM به پارامترهای زیادی از جمله مقاومت دقیق، مقاومت این سنسور خاص، منحنی VA ترانزیستور و غیره بستگی دارد) بنابراین بهترین راه امتحان مقادیر مختلف است. به این صورت که یک حد بالا و یک حد پایین را مییابیم و با میان یابی به مقدار دقیق میرسیم. سپس، ما دائماً چرخه گرمایش ۶۰ ثانیهای و اندازهگیری ۹۰ ثانیهای را طی میکنیم.
این اجرا تا حدودی پیچیده است. ما باید از تایمرهای سخت افزاری استفاده کنیم، زیرا همه مواردی که در اینجا داریم برای عملکرد صحیح به PWM با فرکانس بالا و پایدار نیازمند است. کد در اینجا لینک ضمیمه شده است و میتوانید از GitHub همچنین منبع شماتیک در Fritzing بارگیری نمایید.
در برنامه ۳ عملکرد وجود دارد که تایمرها را کنترل میکنند: setTimer0PWM ،setTimer1PWM ،setTimer2PWM.
هر یک از آنها تایمر را در حالت PWM با پارامترهای داده شده تنظیم میکنند (در کد توضیح داده شده است) و عرض پالس را با توجه به مقادیر ورودی تنظیم می نمایند.
فازهای اندازهگیری با استفاده از توابع startMeasurementPhase و startHeatingPhase تغییر مییابند، آنها همه چیز را در داخل کنترل میکنند و مقادیر تایمر مناسب را برای جابجایی بین گرمایش ۵ ولت و ۱.۴ ولت تنظیم کنید.
حالت LED ها توسط عملکردها تنظیم می شود. شدت روشنایی سبز و قرمز LED ها از روی مقادیر ورودی خود تعیین خواهد شد (در مقیاس ۱-۱۰۰ بهصورت خطی).
حالت بازر با استفاده از توابع buzz_on ،buzz_off ،buzz_beep کنترل می شود. این توابع صدا را روشن و خاموش میکند، اگر بهطور دورهای فراخوانی شوند، عملکرد توالی بوق را به مدت زمان ۱.۵ ثانیه تولید میکند. این توالی صدایی شبیه بیپ-بیپ و یا آژیر خواهد داشت.
برنامه ابتدا عملکرد pwm_adjust را اجرا میکند، که عرض چرخه PWM مناسب برای دستیابی به ۱.۴ ولت در مرحله اندازهگیری مطلع شوید. سپس چند بار بوق میزند تا نشان دهد که سنسور آماده است، به مرحله اندازهگیری میرود و حلقه اصلی را شروع میکند.
در حلقه اصلی، برنامه بررسی میکند که آیا ما زمان کافی را در فاز فعلی گذراندهایم (۹۰ ثانیه برای فاز اندازهگیری، ۶۰ ثانیه برای فاز گرم کردن) و اگر بله بود، سپس فاز فعلی را تغییر میدهد. همچنین به طور مداوم با استفاده از هموارسازی نمایی، قرائت حسگر را بهروز میکند: new_value = 0.999 * old_value + 0.001 * new_reading با چنین پارامترهایی و چرخه اندازهگیری، میانگین سیگنال تقریباً در حدود ۳۰۰ میلیثانیه خواهد بود.
در ادامه کد برنامه قرار دارد. توجه شود که کالیبره نمودن سنسور اندازه گیری برای آلارم مونوکسید کربن تنها با کالیبره نمودن مقادیر PWM خواهد بود. البته اگر یک امکان اندازه گیری و صحه گذاری بر مقدار مونوکسید کربن موجود باشد صحت این محصول دو چندان خواهد شد.
/*
If you can improve this code, please do so!
//WARNING! Each sensor is different!
int time_scale = 8; //time scale: we altered main system timer, so now all functions like millis(), delay() etc
void setTimer0PWM(byte chA, byte chB) //pins D5 and D6
void setTimer2PWM(byte chA, byte chB) //pins D11 and D3
void setTimer1PWM(int chA, int chB) //pins D9 and D10
float opt_voltage = 0;
void pwm_adjust()
float alarm_ppm_threshold = 100; //threshold CO concentration for buzzer alarm to be turned on,
float sensor_reading_clean_air = 620; //fill raw sensor value at the end of measurement phase (before heating starts) in clean air here! That is critical for proper calculation
float sensor_100ppm_CO_resistance_kOhm; //calculated from sensor_reading_100_ppm_CO variable
byte phase = 0; //1 – high voltage, 0 – low voltage, we start from measuring
float sens_val = 0; //current smoothed sensor value
float raw_value_to_CO_ppm(float value)
void startMeasurementPhase()
void startHeatingPhase()
float br = br_red;
setTimer1PWM(1023-br, 1023-bg);
void setup() {
//WARNING! Each sensor is different!
pinMode(5, OUTPUT);
pwm_adjust();
Serial.print(“PWM result: width “);
startMeasurementPhase(); //start from measurement
void loop()
//WARNING! Each sensor is different!
unsigned long ms = millis();
//this condition runs 10 times per second, even if millis()
if(last_CO_ppm_measurement > alarm_ppm_threshold) //if at 50 seconds of measurement cycle we are above threshold
setLEDs(br_green, br_red); //set LEDs brightness
float v = analogRead(A0); //reading value
|
امیدواریم نحوه ساخت آلارم مونوکسید کربن به وسیله برد آردوینو برای شما مفید بوده باشد.
مجله اینترنتی تحلیلک