پروژه ساعت زنگ دار با آردوینو و نور قابل تنظیم بلوتوث اندروید
محتویات
سلام. آموزش پروژه ساعت زنگ دار با نور قابل تنظیم توسط ماژول بلوتوث HC-05 و گوشی اندروید در آردوینو (آلارم+RGB) را آماده کردیم.
پروژه ساعت زنگ دار با نور قابل تنظیم بلوتوث
ما در این پروژه آردوینو میخواهیم یک دستگاه را بسازیم که در طول روز رنگ راه مختلف را نشان دهد و همچنین دارای یک ساعت آلارم دار (هشدار) است. همانطور که میدانید هر کدام از رنگ ها تاثیر خاصی بر سیستم عصبی بدن ما میگذارند. به طور مثال در هنگام زنگ بیدار باش از رنگ نارنجی (نور آفتاب) استفاده میکنیم. همچنین با استفاده از یک LDR نور دستگاه را در طور روز خاموش میکنیم. این دستگاه را از طریق ماژول بلوتوث به گوشی موبایل اندروید متصل میکنیم و از طریق نرم افزار android آن راه کنترل میکنیم. همچنین میتوانید در این دستگاه زمان خواب را تنظیم کنید تا رنگ آن به بنفش ملایم تغییر کند.
کروموتراپی ، تاثیر انواع رنگ ها بر بدن !
شما تا کنون بسیاری از پروژه ها را دیده اید که از لامپ های RGB استفاده میکنند و به صورت تصادفی رنگ را تغییر میدهند. با کمی سرچ میتوانید تاثیر خاص هر یک از رنگ ها را دریابید و از رنگ های خاصی در پروژه های خود استفاده کنید. در جدول زیر خواس رنگ ها بر بدن را میبینید.
رنگ | تاثیر روانی | تاثیر جسمی |
قرمز | انرژی دهنده | کلیه ، حس بویایی ، ستون فقرات |
زرد | بهبود هضم ، کشنده افسردگی | معده ، کبد ، روده |
آبی | آرامش دهنده ، پایین آورده فشار خون | دهان ، گوش ، گلو ، میگرن |
سبز | تحریک رشد و تقویت استخوان | استخوان ، سیستم ایمنی ، بافت ها |
بنفش | حس خواب | چشم ها ، سیستم عصبی |
نارنجی | خلاقیت | تنفس |
صورتی | تصفیه خون | خون ، رگ ها |
مدار ساعت هشدار دار با آردوینو و نور متغیر
- ال ای دی Neo Pixel
- برد آردوینو Pro mini (یا هر آردوینوی دیگری)
- ماژول زمان واقعی DS3231
- ماژول بلوتوث HC-05
- مقاومت نوری LDR
- مقاومت 100 کیلو اهم
- منبع تغذیه 12 ولت
توضیحات مدار
ما در این پروژه برای تنظیم زمان واقعی از ماژول RTC DS3231 استفاده کردیم. این ماژول با کمک ارتباط I2C کار میکند و میتوند مستقیما به پین 5 ولت Arduino متصل شود. پین های SDA و SCL به پین های A4 و A5 آردوینو متصل میشوند.
ما از ماژول بلوتوث HC05 استفاده کردیم. با استفاده از این ماژول و اتصال به تلفن همراه میتوانیم رنگ LED را به صورت دلخواه و ساعت خواب و زمان بیدار شدن را تنظیم کنیم. ماژول بلوتوث نیز از پین 5 ولت تغذیه میشود و پین های Tx و Rx به ترتیب از طریق پین های 11 و 10 به آردوینو متصل میشوند.
ما از LDR برای تشخیص میزان روشنایی در اتاق استفاده کرده ایم و اگر بسیار روشن باشد LED ها به طور خودکار خاموش می شوند و فقط در هنگام تاریک بودن اتاق روشن می شوند.
سرانجام پیکسل نئو به پین 6 آردوینو متصل می شود که یک پین PWM است و توسط پین 5 ولت (vcc) آردوینو تغذیه می شود. من از Arduino Pro-mini برای پروژه خود استفاده کرده ام زیرا کوچکتر است و هنگام بسته بندی آن داخل محفظه ، بهتر خواهد بود. می توانید از هر برد دیگر که مورد نظر شما است استفاده کنید.
توضیحات سنسور زمان واقعی RCT DS3231
DS3231 یک ماژول RTC هستش . خب RTC یعنی چی ؟ RTC یعنی Real Time Clock . این ماژول برای این است که حتی اگر منبع تغذیه قطع شد زمان بهم نخورد . این ماژول برای این کار یک باتری CR2032 دارد. این ماژول همچنین یک سنسور دما هم دارد که میتوانیم برای پروژه های مرتبط با دما از آن استفاده کنیم. این ماژول از پروتکل ارتباطی I2C استفاده میکند.
آموزش تنظیم ساعت و نور توسط گوشی موبایل اندروید
پس اتصال مدار و بارگذاری کد پروژه ، نوبت به آزمایش مدار میرسد. ما باز هم از برنامه ترمینال بلوتوث استفاده میکنیم. برای دانلود نرم افزار اندروید کلیک کنید !
قبل از راه اندازی برنامه ، اطمینان حاصل کنید که ماژول بلوتوث را با تلفن خود با استفاده از رمز عبور “1234” متصل کرده اید. پس از راه اندازی برنامه ، به دستگاه بلوتوث خود متصل شوید که باید به عنوان “HC-05” نامگذاری شود.
برای شروع ارتباطات ، فقط یک حرف تصادفی را از طریق تلفن ارسال کنید ، در این حالت ما “g” را ارسال کرده ایم. با این کار ارتباط اندروید با آردوینو شروع می شود و صفحه زیر را مشاهده خواهید کرد.
در اینجا میتوانید منو را ببینید :
- با ارسال 0 وارد منوی تنظیم هشدار میشوید.
- با ارسال 1 وارد منوی تنظیم رنگ لامپ میشوبد.
- با ارسال x به منوی اصلی باز میگردید
به طور مثال ما میخواهیم زمان زنگ بیدار باش صبح را تنظیم کنیم. پس اول 0 را ارسال میکنیم تا وارد منوی تنظیم هشدار صبح یا شب شویم . با ارسال کردن 0 وارد منوی تنظیم هشدار خواب و با ارسال کردن 1 وارد منوی تنظیم بیدار باش میشویم.
پس از ورود به منوی تنظیم هشدار بیدار باش ، ابتدا ساعت را وارد میکنیم ما اینجا 06 را وارد کردیم. سپس دقیقه پرسیده میشود که ما 30 را وارد کردیم. یعنی آلارم ساعت ما در 6:30 دقیقه فعال میشود. در تصویر زیر این مراحل را میبینید :
سپس ما x را ارسال میکنیم و با ارسال 1 وارد منوی تنظیم رنگ لامپ میشویم. تصویر زیر این منو را نشان میدهد :
در این منو با ارسال اعداد از 0 تا 7 رنگ LED RGB را تغییر میدهیم. توضیحات رنگ و ورودی ها را در پایین میبینید
- 0 : قرمز
- 1 : نارنجی
- 2 :زرد
- 3 : سبز
- 4 : آبی سیر
- 5 : آبی
- 6 : بنفش
- 7 : صورتی
توضیحات کد پروژه
در این قسمت ما کتابخانه های مورد نیاز را فراخوانی میکنیم :
#include <SoftwareSerial.h> // ماژول بلوتوث با این پروتکل کار میکند #include <Adafruit_NeoPixel.h> // در فایل دانلودی قرار داده شده است #include <DS3231.h> // لینک دانلود در قسمت توضیحات سنسور RTC #include <EEPROM.h>
در این قسمت ما رنگ ها را برای ال ای دی Neo Pixel تعریف میکینم :
#define Red 1 // قرمز #define Orange 20 // نارنجی #define Yellow 30 // زرد #define Green 70 //سبز #define Cyan 100 // آبی سیر #define Blue 130 // آبی #define Purple 200 // بنفش #define Pink 240 // صورتی
در این قسمت ، در خط دوم رنگ هایی که در طور روز نشان داده میشود را تعریف میکنیم. در خط سوم رنگ هایی که در طول شب نشان داده میشود را تعریف میکنیم. در خط چهارم نیز تمام رنگ هایی که از طریق گوشی اندروید تنظیم میشوند را تعریف میکنیم.
char current_rainbow[8] = {}; char morning_rainbow[4] = {Red, Orange, Green, Pink}; //رنگ های روز char evening_rainbow[4] = {Yellow, Cyan, Blue, Purple}; //رنگ های شب char all_rainbow[8] = {Red, Orange, Yellow, Green, Cyan, Blue, Purple, Pink}; //رنگ های اندروید
تنظیمات منوی بلوتوث یعنی متن ها و ورودی ها مورد نظرتان را در این قسمت تغییر میدهید.
Bluetooth.println("0-> Set Alarm "); // تنظیم ورودی آلارم Bluetooth.println("1 -> Control Lamp"); // تنظیم رنگ لامپ Bluetooth.println("x -> Exit Anytime"); // بازگشت به منوی اصلی
در صورتی که 0 را وارد کنید منوی زیر نمایش داده میشود و شما میتوانید ورودی و متن ها را تغییر دهید :
Bluetooth.println("Setting Alarm"); Bluetooth.println("0-> Sleep alarm"); // ورودی تنظیم آلارم خواب Bluetooth.println("1 -> Wake up Alarm"); // ورودی تنظیم آلارم بیدار
در دو کد زیر میتوانید ورودی های منوی تنظیم ساعت بیدار باش و خواب را تنظیم کنید.
ساعت خواب :
Bluetooth.print("Sleep alarm set at: "); // پیام تنظیم Bluetooth.print(sleep_alarm_hour); // تنظیم ساعت Bluetooth.print(" : "); Bluetooth.println(sleep_alarm_minute); // تنظیم دقیقه
ساعت بیدار باش :
Bluetooth.print("Wake up alarm set at: "); //پیام تنظیم Bluetooth.print(wake_alarm_hour); //تنظیم ساعت Bluetooth.print(" : "); Bluetooth.println(wake_alarm_minute); // تنظیم دقیقه
و اگر در منوی اول عدد 1 را وارد کنید وارد منوی تنظیم رنگ میشوید و توسط کد زیر میتوانید ورودی ها و متن ها را تغییر دهید :
Bluetooth.println("0-> Red"); // تنظیم قرمز Bluetooth.println("1-> Orange"); // تنظیم نارنجی Bluetooth.println("2-> Yellow"); // تنظیم زرد Bluetooth.println("3-> Green"); // تنظیم سبز Bluetooth.println("4-> Cyan"); // تنظیم آبی سیر Bluetooth.println("5-> Blue"); // تنظیم آبی Bluetooth.println("6-> Purple"); // تنظیم بنفش Bluetooth.println("7-> Pink"); // تنظیم صورتی
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
با سلام امکان جایگزین کردن ds3231 با ds1307 وجود داره؟ در صورت امکان در چه جاهایی کد باید تغییر کنه؟
سلام عزیز
بله امکانش هست اما نیاز به تغییرات زیادی در کد هست