ساخت دزدگیر منزل !!!
شاید در نگاه اول عنوان این پروژه آردوینو از مبحث آموزش آردوینو یعنی ساخت یک دزدگیر منزل به کمک آردوینو برای برخی از افراد تعجب آور و دور از دسترس باشد و یا تا به حال ساخت دزدگیر اماکن را برای خود کاری دشوار و سخت تصور می کردند. اما ما با طرح این پروژه می خواهیم به شما بیاموزیم که چگونه خودتان می توانید یک دزدگیر کاربردی در خانه توسط برد آردوینو برنامه نویسی و بسازید.
با فراگیری این آموزش و ساخت پروژه، می توانید یک دستگاه دزدگیر کاملا مشابه با نمونه های موجود در بازار با قابلیت اتصال 4 سنسور تشخیص حرکت HC-SR501 و یا چشمی های آماده موجود در بازار داشته باشید. علاوه بر داشتن ویژگی دزدگیر در مدار پروژه با استفاده از آن می توانید دو وسیله برقی را نیز توسط ریموت کنترل خاموش و یا روشن کنید.
برای کار آفرینی آماده اید !!!
با کمی تحقیق در بازار می توانید بیابید که 99 درصد دستگاه های دزدگیر موجود در بازار که با قیمت های بسیار بالایی به فروش می رسند، از خارج از کشور وارد می شوند و تولید کنندهای بسیار اندکی هستند که در داخل کشور عزیزمان ایران، دست به تولید دزدگیرهای اماکن زده اند و البته افرادی که محصول تولیدی آن ها دارای کیفیت برتر بوده در این مسیر به موفقیت نیز رسیده اند.
یکی از اهداف بزرگ تیم فنی الکترونیک98 ارائه آموزش ها و پروژه های کاربردی است که شخص بتواند با فراگیری و توسعه آن ها وارد بازار کار شود و بتواند به عنوان یک کار آفرین کسب و کار خود را آغاز کند. در همین راستا در این پست قصد داریم تا نحوه ساخت یک دزدگیر اماکن ساده را آموزش دهیم. شما عزیزان می توانید با فراگیری این آموزش با نحوه عملکرد دزدگیرهای اماکن آشنا شوید و در صورت تمایل با توسعه آن قدم به عرصه تولید دزدگیرهای امکان بگذارید.
دانلود ویدئو با لینک مستقیم از سرورهای پرقدرت الکترونیک 98
معرفی ماژول سنسور تشخیص حرکت HC-SR501
اصلی ترین بخش یک دزدگیر منزل سنسورهای تشخیص حرکت آن یا PIR (Passive Infra Red) است که البته در بازار ایران به نام چشمی های دزدگیر نیز معروف هستند. وظیفه این سنسور، همانطورکه از نام آن مشخص است، تشخیص حرکت انسان است. سنسورهای تشخیص حرکت می توانند تا فاصله معینی حرکت یک جسم را تشخیص دهند و در نهایت با صفر و یا یک کردن یک پایه در خروجی خود آنرا به مدار دزدگیر اطلاع دهند.
یکی از سنسورهای معروف در زمینه آشکار سازی حرکات انسان، ماژول تشخیص حرکت HC-SR501 می باشد. ماژول تشخیص حرکت HC-SR501 می تواند در زاویه 120 درجه، حرکات موجود در یک محیط 3 الی حداکثر 7 متری را آشکار کند. عملیات آشکار سازی حرکت با استفاده از صفر و یک کردن پایه OUT در خروجی ماژول اعلام می شود. یعنی زمانیکه شخصی از مقابل سنسور عبور پیدا کند، پایه ای به نام OUT در خروجی ماژول ولتاژ مثبت 3/3 ولت می گیرد. همچنین لازم به ذکر است ولتاژ تغذیه این ماژول بین 5 الی حداکثر 20 ولت DC است.
قطعات مورد نیاز برای ساخت دزدگیر منزل با برد آردوینو
لیست قطعات مورد نیاز
برد آردوینو NANO با میکروکنترلر Atmega328 | 1 عدد |
ماژول تشخیص حرکت اجسام مدل HC-SR501 با لنز متوسط | 4 عدد |
رگولاتور ولتاژ 5 ولت L7805 | 1 عدد |
آی سی ULN2804A مدل DIP اورجینال | 1 عدد |
آی سی دیکودر PT2272-M4 مدل DIP | 1 عدد |
ماژول گیرنده 315MHz مناسب ریموت کنترل های کدفیکس | 1 عدد |
ریموت کنترل کدفیکس 4 کانال 315MHz مگاهرتز | 1 عدد |
سوکت آی سی 18 پایه مدل معمولی | 2 عدد |
دیود 1N4007 | 5 عدد |
مقاومت 1 کیلو اهم با توان 0.25 وات و تلرانس 5 درصد | 6 عدد |
مقاومت 4.7 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 4 عدد |
مقاومت 330 اهم با توان 0.25 وات و تلرانس 1 درصد | 4 عدد |
مقاومت 1 مگا اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
لامپ LED سبز سایز 5mm میلی متر مدل مات | 7 عدد |
خازن الکترولیتی 1000uf میکروفاراد 16 ولت | 2 عدد |
خازن عدسی 100nF نانوفاراد | 1 عدد |
رله 12V ولت معمولی تک کنتاکت با جریان 10 آمپر | 3 عدد |
دیپ سوئیچ 8 کاناله معمولی | 1 عدد |
ترمینال پیچی 2 پین مدل KF300 رنگ آبی | 2 عدد |
ترمینال پیچی 3 پین مدل KF300 رنگ آبی | 2 عدد |
پین هدر نری صاف 1x40 با ارتفاع 11 میلیمتر - مشکی | 1 عدد |
پین هدر مادگی صاف 1x40 با فاصله پایه 2.54 میلیمتر - مشکی | 1 عدد |
آداپتور 12V ولت 2A آمپر مدل بین راهی ساخت ایران | 1 عدد |
بازر 12 ولتی با اسیلاتور داخلی | 1 عدد |
نقشه شماتیک پروژه
نقشه مدار چاپی (PCB) ساخت دزدگیر منزل با ماژول تشخیص حرکت PIR و برد آردوینو
برنامه برد آردوینو در نرم افزار آردوینو
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
//***************************************** //Programmer = Farhad Akbari //Email = ofogh.ideh@yahoo.com //Website = www.electronics98.com //Application = www.electronics98.com/app //*****************************************Config Output PIN const int pin_rly_alarm = 2; const int pin_rly1 = 3; const int pin_rly2 = 4; const int pin_led_zone1 = A1; const int pin_led_zone2 = A2; const int pin_led_zone3 = A3; const int pin_led_zone4 = A4; //*****************************************Config Input PIN const int pin_remote_rly2 = 5; const int pin_remote_unLock = 6; const int pin_remote_rly1 = 7; const int pin_remote_Lock = 8; const int pin_zone1 = 12; const int pin_zone2 = 11; const int pin_zone3 = 10; const int pin_zone4 = 9; //*****************************************Basic Settings Alarm long time_sensor = 60000;//Milli second long time_alarm = 300000;//Milli second //*****************************************Config variable boolean key = 0; boolean error = 0; boolean alarm = 0; boolean status_rly1 = 0; boolean status_rly2 = 0; boolean start_alarm = 0; unsigned long start_time = 0; unsigned long currentMillis = 0; //*****************************************void setup() void setup() { pinMode(pin_rly_alarm, OUTPUT); pinMode(pin_rly1, OUTPUT); pinMode(pin_rly2, OUTPUT); pinMode(pin_led_zone1, OUTPUT); pinMode(pin_led_zone2, OUTPUT); pinMode(pin_led_zone3, OUTPUT); pinMode(pin_led_zone4, OUTPUT); pinMode(pin_remote_rly2, INPUT); pinMode(pin_remote_unLock, INPUT); pinMode(pin_remote_rly1, INPUT); pinMode(pin_remote_Lock, INPUT); pinMode(pin_zone1, INPUT); pinMode(pin_zone2, INPUT); pinMode(pin_zone3, INPUT); pinMode(pin_zone4, INPUT); delay (2000); } //*****************************************void loop() void loop() { Relay_control(); Zone_control(); Alarm_control(); Error_control(); } //*****************************************void Relay_control() void Relay_control() { if (digitalRead(pin_remote_rly1) == 1 && key == 0) { key = 1; if (status_rly1 == 0) { status_rly1 = 1; digitalWrite(pin_rly1, HIGH); } else { status_rly1 = 0; digitalWrite(pin_rly1, LOW); } } if (digitalRead(pin_remote_rly2) == 1 && key == 0) { key = 1; if (status_rly2 == 0) { status_rly2 = 1; digitalWrite(pin_rly2, HIGH); } else { status_rly2 = 0; digitalWrite(pin_rly2, LOW); } } if (digitalRead(pin_remote_rly1) == 0 && digitalRead(pin_remote_rly2) == 0 && digitalRead(pin_remote_unLock) == 0 && digitalRead(pin_remote_Lock) == 0 && key == 1) { key = 0; } } //*****************************************Zone_control() void Zone_control() { Led_control(pin_zone1 , pin_led_zone1); Led_control(pin_zone2 , pin_led_zone2); Led_control(pin_zone3 , pin_led_zone3); Led_control(pin_zone4 , pin_led_zone4); } //*****************************************void Led_control() void Led_control(int pin_name_zone , int pin_name_led) { if (digitalRead(pin_name_zone) == 1) { digitalWrite(pin_name_led, LOW); if (alarm == 1 && error == 0) { start_time = millis() + time_alarm; error = 1; } } else if (alarm == 0) { digitalWrite(pin_name_led, HIGH); } } //*****************************************void Alarm_control() void Alarm_control() { if (digitalRead(pin_remote_Lock) == 1 && key == 0) { key = 1; if (error == 1) { digitalWrite(pin_rly_alarm, LOW); delay(200); } start_alarm = 1; alarm = 0; error = 0; start_time = millis() + time_sensor; digitalWrite(pin_rly_alarm, HIGH); delay(200); digitalWrite(pin_rly_alarm, LOW); } if (digitalRead(pin_remote_unLock) == 1 && key == 0) { key = 1; if (error == 1) { digitalWrite(pin_rly_alarm, LOW); delay(200); } start_alarm = 0; start_time = 0; alarm = 0; error = 0; digitalWrite(pin_rly_alarm, HIGH); delay(100); digitalWrite(pin_rly_alarm, LOW); delay(50); digitalWrite(pin_rly_alarm, HIGH); delay(100); digitalWrite(pin_rly_alarm, LOW); } if (start_alarm == 1 && alarm == 0) { currentMillis = millis(); if (currentMillis > start_time) { alarm = 1; } } } //*****************************************void Error_control() void Error_control() { if (error == 1) { digitalWrite(pin_rly_alarm, HIGH); currentMillis = millis(); if (currentMillis > start_time) { error = 0; digitalWrite(pin_rly_alarm, LOW); } } } |
سلام دوست عزیز
این موضوع را به صورت عملی تست نکرده ایم، اما فکر نمی کنیم مشکلی وجود داشته باشد، اما جهت اطمینان بیشتر می توانید دیتاشیت هر دو تراشه را با یکدیگر مقایسه کنید.
سلام یک مشکل داخل مدار دارم یکی از زون ها بدون تحریک فعال هست و پایه منفی و تحریک رو که اتصال میدم خاموش میشه
بقیه زون ها به صورت اتصال کوتاه درست عمل میکنه ولی با سنسور عمل نمیکنه سنسور ها هم تست کردم سالمه راهنمایی کنید خیلی مهمه
سلام دوست عزیز
هر 4 زون موجود در پروژه با اعمال ولتاژ 5 ولت مثبت تحریک می شوند، اگر با اتصال ولتاژ 5 ولت به زون ها (به شرط فعال بودن دزدگیر) مدار شروع به آژیر کشیدن می کند یعنی مدار به صورت صحیح کار می کند و مشکل از سمت سنسورها است.
اما اگر با فعال سازی دزدگیر و بدون تحریک زون ها، آژیر دزدگیر فعال می شود باید تمامی اتصالات موجود بر روی برد را به صورت دقیق با یک مولتی متر بررسی کنید و مطمئن شوید تمامی مقاومت های 4/7 کیلو اهمی به درستی بر روی مدار قرار گرفته باشند.
مشکل در حال حاضر از بخش زون ها دارم.هنگامی که پایه مثبت و تحریک را به هم اتصال میدم زون ها به درستی کار میکنند اما زمانی که سنسور رو وصل میکنم هیچ عکس العملی نشون نمیده.از 4 سنسور جداگانه استفاده کردم ولی همین مشکل رو دارم سنسور ها رو با یم مدار تستی که خودم ساختم که از پایه تحریک در خروجی یک ال ای دی و مقاوت داره تست کردم.سنسور ها عمل میکنند ولی ال ای دی رو با نور کم روشن میکنن مشکل از چیه
با سلام و احترام
این مشکل به دلیل ولتاژ تحریک پایین در خروجی سنسور است، برای رفع این موضوع می توانید از یک ترانزیستور NPN در خروجی سنسور استفاده کنید.
با سلام و خسته نباشید
ببخشید مهندس چطور می تونیم به جای ماژول گیرنده ریموت کد فیکس از یه گیرنده کدلرن استفاده کنیم؟ درواقع باید کدوم پایه ها رو دستکاری کنیم؟اگه میشه کمی راهنمایی کنید. با تشکر فراوان
سلام دوست عزیز
برای استفاده از ریموت کنترل کدلرن باید برنامه پروژه توسعه پیدا کند و همچنین تغییراتی در قسمت طراحی مدار به وجود آید
درود و ارادت
مهندس امکان اضافه کردن ماژول سیکارت به مدار دزدگیرهست؟ اگر هست لطفا راهنمایی کنید
سلام دوست عزیز
بله این امکان وجود دارد اما اجرا و کدنویسی آن نیاز به آشنایی شما با دستورات راه اندازی ماژول های GSM و همچنین تسلط کامل شما به برنامه نویسی آردوینو دارد.
سلام مهندس لطفا میتونید راهنمایی کنید برای مشکل تقویت پایه تحریک زون ها که گفتید از ترانزیستورnpnاستفاده کنم از چه ترانزیستوری استفاده کنم و چجوری در مدار قرارش بدم این مشکل خیلی اذیتم کرده واقعا تمام مدارم درست کار میکنه به جز تحریک زون ها
با سلام و احترام
می توانید مطابق نقشه شماتیک زیر عمل کنید:
سلام دوستانی که مشکل عدم شناسایی توسط سنسور رادارند کنار پایه gnd سنسور pir یک مقاومت یک کیلو هست(102اس ام دی) یک مقاومت یک کیلو هم خودتون با اون موازی کنید یعنی مقاومت اخر میشه 500 اهم مشکل برطرف میشه
سلام در صورت امکان مدار و برنامه اضافه کردن ماژول سیم کارت را به این برنامه آموزش بدهید. سپاس
درد به شرفتان و خیلی ممنون بابت این پروژه با ارزش پایدار باشید
مهندس اکبری عزیز اسمبل شده و بسته شده این پروژه چقدر میشه اگه لطف کنید و جواب بدین