دزدگیر هوشمند
PIR_Node MCU
در این جلسه قصد داریم پروژه دزدگیر هوشمند رو با برد NodeMCU وماژول سنسور PIR به شما آموزش بدیم این پروژه کاربرد های بسیاری دره و داخل جاهای مختلفی میشه ازش استفاده کرد. از این پروژه داخل سیستم های حفاظتی امنیتی – سیستم های کنترل ورود و خروج و.. استفاده میشه. همچنین برای مشاهده ویدیوی کامل انجام پروژه می تونید روی دکمه زیر کلیک نمایید و مراحل انجام آن را در آپارات براحتی بینید:
قطعات مورد نیاز :
برای خرید هر کدام از قطعات مورد نیاز این پروژه می تونید براحتی با کلیک روی آنها وارد فروشگاه شوید و قطعه خود را تهیه نمایید:
ماژول PIR :
ماژول PIR یا Passive Infra-Red میتونه با مادون قرمز و گرمای بدن حرکت در محیط رو تشخیص بده.
این ماژول داخل سیستم های حفاظتی – چشمی های ساختمان – و کنترل حرکت در اتاق و.. کاربرد داره.
سه تا پایه داره این ماژول یکی VCC و یکی OUT ویکی GND هستش .
پایه وسط OUT هستش که وقتی حرکت تشخیص داده بشه مقدار دیجیتالش یک میشه.
ولتاژ کاری این ماژول از ۵ تا ۱۲ ولت هستش و جریان کمی مصرف میکنه .
یک نکته ای رو دقت کنید که برای تغذ یه برق این ماژول پایه VCC رو به پایه VIN و پایه GND رو به پایه GND برد NodeMCU وصل کنین .
این ماژول دوتا پیچ داره یکی برای تنظیم مقدار حساسیت و یکی برای تنظیم تایم برای اماده شدن حرکت بعدی هستش.
در بعضی جاها که حرکت زیاد هستش بجای استفاده از delay داخل کد نویسی از پیچ تایم ماژول استفاده میکنن.
اگه خیلی تغییرات خاصی ندارین و فقط میخواین یه حرکت رو به صورت ساده تشخیص بدین بهتره پیچ هارو دست کاری نکنین چون یکم تنظیمش زمان بره.
شماتیک و اتصالات مدار:
- پایه مثبت LED = پایه D1 برد nodemcu
- پایه منفی LED = پایه GND برد nodemcu
- پایه مثبت بازر = پایه D3 برد nodemcu
- پایه منفی بازر= پایه GND برد nodemcu
- پایه خروجی سیگنال ماژول PIR = پایه D2 برد nodemcu
- پایه GND ماژول PIR = پایه GND برد nodemcu
- پایه VCC ماژول PIR = پایه VIN برد nodemcu
کد نویسی :
برنامه ای که نوشتیم به این شکل کار میکنه که وقتی مقدار خروجی ماژول PIR یک بشه یا HIGH بشه (یعنی اگه حرکت تشخیص داده بشه)LED و بازر روشن بشه.
واگه حرکتی تشخیص داده نشه یعنی مقدار دیجیتال خونده شده از ماژول PIR صفر یا LOW باشه LED وبازر خاموش میشه.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ |
int led = D1; int pirsensor = D2; int buzer = D3; void setup() { Serial.begin(۱۱۵۲۰۰); pinMode(led, OUTPUT); pinMode(buzer, OUTPUT); pinMode(pirsensor, INPUT); } void loop(){ if (digitalRead(pirsensor) == HIGH) { digitalWrite(led, HIGH); digitalWrite(buzer, HIGH); } else { digitalWrite(led, LOW); digitalWrite(buzer, LOW); } } |
توضیحات کدها :
اول از همه سه تا متغیر برای معرفی پایه های LED و ماژول PIR و بازر مینویسیم.
۱ ۲ ۳ |
int led = D1; int pirsensor = D2; int buzer = D3; |
داخل void setup مقدار بادریت رو روی ۱۱۵۲۰۰ مینویسیم و بعد حالت پایه های LED وبازر و ماژول PIR رو مشخص میکنیم و مینویسیم.
۱ ۲ ۳ ۴ ۵ ۶ |
void setup() { Serial.begin(۱۱۵۲۰۰); pinMode(led, OUTPUT); pinMode(buzer, OUTPUT); pinMode(pirsensor, INPUT); } |
حالا داخل void loop شرطی مینویسیم به این صورت که اگه مقدار دیجیتال خونده شده از ماژول PIR یک یا HIGH بود LED و بازر روشن بشه در غیر این صورت LED و بازر خاموش بشه.
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ |
void loop(){ if (digitalRead(pirsensor) == HIGH) { digitalWrite(led, HIGH); digitalWrite(buzer, HIGH); } else { digitalWrite(led, LOW); digitalWrite(buzer, LOW); } } |