در این پروژه ما قصد داریم با استفاده از یک برنامه اندرویدی از طریق بلوتوث و قفل برقی، قفل درب را کنترل کنیم درنتیجه مجبور نیستیم به سنسورهای اثر انگشت دست بزنیم و فقط از تلفن های شخصی خود برای کنترل قفل استفاده می کنیم. ادامه این مطلب به طور کامل کنترل قفل با سنسور اثر انگشت موبایل و آردوینو (قفل برقی) توضیح داده شده است.
کنترل قفل با سنسور اثر انگشت موبایل و آردوینو (قفل برقی)
المانهای مورد نیاز برای این پروژه به شرح زیر می باشد:
- برد آردوینو نانو
- ماژول بلوتوث HC-05
- قفل برقی سلونوئید
- بازر پیزوالکتریک
- LED قرمز 5 میلی متر
- LED سبز 5 میلی متر
- ماسفت IRF540N N-Channel
- ترانزیستور BC547 NPN
- مقاومت ها : 550Ω ، 2k0Ω ، 220Ω
- تنظیم کننده ولتاژ 1 × 7805
- 1 ، DC Jack
قفل برقی
قفل برقی سلونوئید دارای یک سیم پیچ برقی ولتاژ پایین است که در صورت اعمال ولتاژ مناسب به آن درب را به داخل می کشد و تا زمانی که ولتاژ برداشته نشود باز می ماند.در نتیجه می توانیم با کنترل ولتاژ با استفاده از یک دکمه فشاری آن را کنترل کنیم.
دیاگرام مدار برای کنترل قفل برقی
برای کنترل قفل برقی سلونوئید ، باید از یک مدار کنترل استفاده کنیم که شامل ترانزیستور NPN و MOSFET است. ما ترانزیستور NPN را با اتصال پایه D9 نانو به پایه Base ترانزیستور از طریق مقاومت 550 اهم کنترل خواهیم کرد .تا جریان ورودی به ترانزیستور کنترل شود. وقتی پایه D9 فعال شود ، ترانزیستور روشن شده و پایه Gate ماسفت LOW می شود و MOSFET را خاموش می کند که در نتیجه قفل برقی را خاموش می کند و وقتی پایه D9 غیرفعال است ، ترانزیستور NPN خاموش است به این معنی است که Gate ماسفت از طریق مقاومت پول آپ 2k اهم به 12 ولت متصل می شود تا MOSFET روشن شود و قفل برقی را تغذیه کند.
به این ترتیب می توانید قفل برقی را با استفاده از آردوینو نانو خود کنترل کنید. شما نمی توانید مستقیماً IRF540N MOSFET را با پین های 5 ولت از نانو کنترل کنید زیرا یک MOSFET در سطح منطقی نیست بنابراین با 5 ولت از نانو کاملاً روشن یا خاموش نمی شود ، از این رو ما از ترانزیستور BC547 NPN برای کنترل استفاده خواهیم کرد. نمودار کامل مدار که نحوه اتصال و کنترل قفل سلونوئید با آردوینو از طریق MOSFET را نشان می دهد ،به صورت زیر است.
همانطور که در نمودار مدار نشان داده شده است ، اتصالات بسیار ساده هستند ،ما باید ماژول بلوتوث HC-05 را به منبع تغذیه 5 ولت نانو و پین TX را به پین RX میکروکنترلر و پین RX را به پین TX میکروکنترلر متصل کنیم. یک LED قرمز برای نمایش وضعیت و یک LED سبز برای نشان دادن قفل بودن درب .همچنین از یک بازر استفاده می کنیم .
مدار کامل را روی یک تخته perf لحیم کرده ایم که فشرده شود.
کد آردوینو برای کنترل قفل برقی
ابتدا متغیرهایی را برای کنترل لوازم جانبی مانند BUZZER و LED و قفل برقی سلونویئد ایجاد می کنیم.
1 2 3 4 |
int value1; #define led 12 #define bjt 9 #define buzzer 7 |
حال آردوینو را با بادریت 9600 راه اندازی می کنیم.سپس وضعیت متغیرها را مشخص می کنیم که ورودی هستند و یا خروجی.
1 2 3 4 5 6 |
Serial.begin(9600); pinMode(bjt, OUTPUT); pinMode(led,OUTPUT); pinMode(buzzer, OUTPUT); digitalWrite(bjt, HIGH); digitalWrite(led, LOW); |
درتابع Loop ابتدا داده ای را که به صورت سری از بلوتوث آمده است را می خوانیم .اگر اثر انگشت به درستی شناخته شود ماژول بلوتوث عدد1 را ارسال می کند و قفل سلونوئید در باز می شود و بازر به مدت 1 ثانیه به صدا در می آید . قفل سلونوئید به مدت 7 ثانیه باز می ماند و پس از آن درب بسته می شود.اگر گر مقدار خوانده شده “0” باشد ، به این معنی که اثر انگشت تشخیص داده نمی شود. بنابراین زنگ هشدار سه بار در هر ثانیه به زنگ در می آید.
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 |
Serial.println("Reading"); while(Serial.available()==0); value1 = Serial.read(); Serial.println(value1); if (value1==1) { Serial.println("Unlocking"); digitalWrite(bjt, LOW); digitalWrite(buzzer, HIGH); digitalWrite(led, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(6000); digitalWrite(bjt, HIGH); digitalWrite(led, LOW); } if (value1==0) { digitalWrite(bjt, HIGH); digitalWrite(buzzer, HIGH); Serial.println("Locking"); delay(1000); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); } |
برنامه Android برای خواندن داده های اثر انگشت و ارسال به آردوینو از طریق بلوتوث
برای ایجاد یک برنامه با Kodular ، به Kodular.io می رویم و ابتدا حساب کاربری ایجاد می کنیم و سپس روی گزینه ی “create app“کلیک می کنیم.
پس از آن ، به صفحه پروژه ها منتقل می شویم. برای ایجاد یک پروژه روی دکمه “create project” کلیک می کنیم.
برنامه را نامگذاری کرده و روی “Finish” کلیک می کنیم . پروژه ایجاد می شود و شما به صفحه Designer پروژه منتقل می شویم. اکنون در صفحه Designer، این چهار مورد را از Components Palette اضافه می کنیم تا یک طرح برای برنامه ایجاد کنید: Bluetooth Client ، Fingerprint ، List Picker و Image Button. List Picker و Image Button را می توان در “User Interface” یافت ، Fingerprint و Bluetooth Client را می توان از قسمت “Sensors” و “Connectivity” انتخاب کرد.
با تغییر properties هر بلوک می توان خصوصیات صفحه را تغییر داد.
پس از آن ، به صفحه “Blocks” می رویم تا برنامه را با استفاده از بلوک ها بسازیم.
روی “List_Picker1” کلیک می کنیم و اولین بلوک کد را همانطور که در تصویر نشان داده شده می کشیم و رها می کنیم:
در مرحله بعد ، روی بلوک “Control” کلیک می کنیم و سپس اولین بلوک کد را در صفحه Viewer می کشیم و رها می کنیم.
پس از آن ، به بلوک “Bluetooth_client1” می رویم و بلوک کد “Bluetooth_client.connect” را انتخاب می کنیم.
پس از آن ، به بلوک “Bluetooth_client1” می رویم و بلوک کد “Bluetooth_client.connect” را انتخاب می کنیم.
سپس به بلوک “List_Picker” می رویم و “selection” را همانطور که در تصویر زیر نشان داده شده است ، انتخاب می کنیم.
اکنون در مرحله بعدی ، دوباره به بلوک “List_Picker” می رویم و “text” را انتخاب می کنیم بلوک کد در تصویر زیر نشان داده شده است.
پس از آن ، به بلوک “Text” می رویم و اولین بلوک کد را انتخاب می کنیم.
با این کار ، اولین بلوک کد به پایان رسید. ما باید سه بلوک کد دیگر ایجاد کنیم تا با حسگر اثر انگشت تلفن Android ارتباط برقرار کنیم و اثر انگشت را تأیید کنیم. بلوک کامل کد در تصویر زیر است:
وقتی همه بلوک ها متصل شدند، فایل apk را در لپ تاپ خود export کنید یا می توانید با استفاده از QR Code مستقیماً apk را در تلفن خود دریافت کنید.
تست برنامه ی کنترل قفل برقی
برای کنترل قفل برقی سلونوئید ابتدا باید فایل apk را در گوشی خود دانلود و نصب کنیم.سپس کد را روی آردوینو آپلود می کنیم سپس بلوتوث تلفن همراه خود را روشن کرده و با دستگاه بلوتوث مورد استفاده جفت و برنامه را باز می کنیم . اکنون روی نماد بلوتوث در برنامه ضربه می زنیم و به دستگاه بلوتوث متصل می شویم و نماد بلوتوث در برنامه به نماد قفل تبدیل می شود. اکنون باید روی نماد اثر انگشت ضربه بزنیم تا اثر انگشت را با استفاده از اسکنر گوشی بررسی کند و مقدار آن به Arduino Nano ارسال می کند.
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 |
int value1; #define led 12 #define bjt 9 #define buzzer 7 void setup() { Serial.begin(9600); pinMode(bjt, OUTPUT); pinMode(led,OUTPUT); pinMode(buzzer, OUTPUT); digitalWrite(bjt, HIGH); digitalWrite(led, LOW); } void loop() { Serial.println("Reading"); while(Serial.available()==0); value1 = Serial.read(); Serial.println(value1); if (value1==1) { Serial.println("Unlocking"); digitalWrite(bjt, LOW); digitalWrite(buzzer, HIGH); digitalWrite(led, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(6000); digitalWrite(bjt, HIGH); digitalWrite(led, LOW); } if (value1==0) { digitalWrite(bjt, HIGH); digitalWrite(buzzer, HIGH); Serial.println("Locking"); delay(1000); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); delay(1000); digitalWrite(buzzer, HIGH); delay(1000); digitalWrite(buzzer, LOW); } } |
ارسال پاسخ