هوشمند سازی منازل : قسمت دوم (تشخیص حضور)

1403/09/27
153 بازدید

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

سخت افزار مورد نیاز و نحوه اتصال:

1- حسگر SR505

2- برد آردوینو UNO

 

 

کد های سمت آردوینو:

برای راحتی و خوانا بودن کد ها، آن ها را در یک تابع نوشته و تابع را در در جای دیگر برنامه فراخوانی کرده.

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

 

//Variables And Setup 
boolean flag2=false;
const int pirPin = 10; // معرفی پین شماره 10
void setup(){
// put your setup code here, to run once:
pinMode(pirPin, INPUT); // فراهم آوردن پین ورودی
digitalWrite(pirPin,LOW);// فرستادن مقدار صفر به پین
mySerial.begin(9600); // 
dht.begin(); 
}

 

در تابع loop  تابع checkreceive  فراخوانی می شود.

void loop(){
checkreceive();
if(flag==true)
{
delay(500);
readSensor(); 
}
if(flag2==true)
{
delay(500);
checkmotion(); 
}
}

checkrecieve برای تشخیص ورودی از سمت نرم افزار اندروید می باشد. با توجه به هر مقدار فرستاده شده یک مجموعه  کاری خاص اجرا می شود.

void checkreceive() // تابع خواندن مقادیر ورودی
{if(mySerial.available()>0)
{delay(2);
char c = mySerial.read();
switch(c)
{ case'1':
mySerial.println("it is on,");
digitalWrite(LED_PIN, HIGH);
break;
case'2': 
digitalWrite(LED_PIN, LOW); 
mySerial.println("it is off,");
break;
case'3':
readSensor(); 
break;
case'4':
checkmotion();
break; }}}

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

void checkmotion()
{flag2=true;
if (digitalRead(pirPin) == HIGH)
{
mySerial.print("MD,");
} 
else{
mySerial.print("no motion,"); }
delay(1000);
}

مقدار High بیانگر تشخیص از سمت حسگر می باشد و pirPin که پین متصل شده به حسگر تشخیص است با مقدار High برابر باشد “,MD”چاپ می شود.

flag2 که قبل تر گفته شد در این تابع True  میشود. اگر به تابع loop برگردیم خواهیم دید که flag2 در آنجا چک می شود. این چک شدن برای ادامه کار حسگر تشخیص حرکت  برای مدت زمان بی نهایت تا هنگام قطع برق برد می باشد. همچنین همان طور که گفته شد در تابع checkmotion زمانی که حرکتی تشخیص داده شد رشته با محتوای “,MD” را در ترمینال چاپ و به برنامه اندروید از طریق بلوتوث ارسال می کند.

بلاک های اندروید:

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

 

حالا پس از ارسال کاراکتر “4” ، از سمت برد آردوینو کد های مشخصی اجرا شده و در صورت تشخیص حرکت رشته ای با محتوای “,MD” در ترمینال چاپ و به اپلیکیشن موبایل ارسال می شود. همچنین برای دریافت داده ها یک لیست ایجاد می کنیم و رشته دریافتی را بررسی می کنیم. در این حالت رشته “,MD” را به نشانه دریافت حرکت در محیط می باشد.در زمان دریافت این رشته یک تایمر به نام Clock2 که از ابتدا غیر فعال است ، فعال می شود و پیغام MotionDetect بر روی لیبل بر روی صفحه نمایان می شود.در بلاک Clock2 به مدت 5 ثانیه این پیغام نمایش داده می شود و بعد غیرفعال می شود تا زمانی که دوباره حسگر تشخیص محتوایی را تشخیص دهد و به اپلیکیشن موبایل اعلام کند.

 

خروجی:

 

 

ساخت اپلیکیشن اندروید برای کاربرد های...

امروزه با فراگیر شدن اینترنت اشیا و ت...

هوشمند سازی منازل - قسمت اول ( کنترل ...

3 زبان برنامه نویسی برتر جهت توسعه Io...

زبان های برنامه نویسی روز به روز در ح...

 ٣ روش ساده برای ساخت یک دستگاه امن IoT

چند-فناوری: آینده موقعیت جغرافیایی در...

در دنیای بزرگ آیوتی، ردیابی مکانی خط ...

پنج نوع از رایج ترین هک و آسیب پذیری ...

وسایل اینترنت اشیا به صورت قابل توجه ...

پنج راهی که آیوتی تجارت امروزه را متح...

آیوتی همچنان به سرعت در حال پیشرفت اس...

تکنولوژی های اتصالاتی آیوتی : شبکه ها...

اینترنت اشیا به ارتباطات و اتصالات مط...

هشت دلیل برای پیوستن به IIoT

توسعه وب (Web Development) محیطی فراه...

چگونه اینترنت اشیاء تغییراتی در توسعه...

توسعه وب (Web Development) محیطی فراه...

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *