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

1397/10/04
144 بازدید

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

 

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

1- حسگر LDR یا Photoresistor

2- خازن 100 کیلو اهم

3- برد آردوینو uno

4- Breadboard

 


boolean flag3=false; int sensorPin = A5; // انتخاب پین برای دیتای ماژول LDR int sensorValue = 0; // متغیری برای ذخیره میزان شدت نور

flag 3 مانند برنامه های قبل به این منظور تعریف شده است که از زمان آغاز برنامه این حسگر در یک حلقه بی نهایت تا مدت بی نهایت کار کند.

void checklight()
{
flag3=true;
sensorValue = analogRead(sensorPin); // خواندن میزان روشنایی از حسگر
// تشحیص میزان روشنایی و چاپ آن
if((sensorValue>650)&&(sensorValue<1000)) 
{
mySerial.print("so,");  // میزان روشنایی زیاد
}
if((sensorValue>400)&&(sensorValue<650))
{
mySerial.print("Bright,");  // میزان روشنایی معمولی
}
if((sensorValue>50)&&(sensorValue<399))
{
mySerial.print("Glimmer,");  // میزان روشنایی کم
}
}

همچنین در این پروژه هم همچنین یک تابع جدا به نام ()checklight برای تشخیص شدت نور و روشنایی تعریف می کنیم. با یکبار اجرای این تابع مقدار flag3 به مقدار True تغییر می کند.
سپس تابع ()checklight را در تابع دیگری به نام ()checkreceive بر اساس رشته ورودی دریافت شده ،فراخوانی می کنیم.

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;
case'5':
checklight();
}}}

در نهایت ()checkrecieve را در Loop فراخوانی کرده و با true شدن flag3 مدت زمان کار حسگر ، در یک حلقه بی نهایت با تاخیر هر نیم ثانیه قرار می گیرید.

void loop(){
checkreceive();
if(flag==true)
{
delay(500);
readSensor();
}
if(flag2==true)
{
delay(500);
checkmotion();
}
if(flag3==true)
{
delay(500);
checklight();
}
}
بلاک های اندروید:

برای فعال سازی حسگر شدت نور نیاز داریم تا یک کاراکتر یا عدد که اینجا “5” برای فعال سازی می باشد به آردوینو از طریق بلوتوث ارسال کنیم.

 

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

“SO – Bright – Glimmer” واژه های “تاریک،روشن،خیلی روشن” برای نمایش میزان روشنایی محیط می باشد.

 

 

برای نمایش بهتر میزان روشنایی در یک Label ، یک بلاک تایمر تعریف می کنیم.در این بلاک مشخص می شود هر چند ثانیه میزان روشنایی را نمایش و به روز رسانی کند. در نتیجه خروجی 3 مقدار شدت روشنایی بر روی صفحه نمایش داده می شود.

 

خروجی:

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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