اردوينو واندرويد القائم على تقنية Bluetooth المحمية بكلمة مرور قفل الباب الذكي (احفظ منزلك): 8 خطوات (مع صور)

اردوينو واندرويد القائم على تقنية Bluetooth المحمية بكلمة مرور قفل الباب الذكي (احفظ منزلك): 8 خطوات (مع صور)

جدول المحتويات:

Anonim

نحن جميعاً قلقون بشأن أمن منزلنا. أصبح العالم أكثر ذكاءً وأكثر ذكاءً كل يوم ، ونريد التحكم في شيءنا وتأمينه بطريقة أكثر ذكاءً. في هذا البرنامج التعليمي سوف أشرح كيفية صنع قفل ذكي قائم على أساس اردوينو والذي يمكن فتحه وإغلاقه باستخدام كلمة المرور المرسلة من android android باستخدام Bluetooth.

هذا القفل الذكي هو قفل آمن وبسيط وسهل لإدارة منزلك. هذا القفل لا يحتاج إلى مفاتيح ويتم قفل القفل داخل الباب ويمكنك التحكم به من خارج الباب. كما القفل داخل الباب لا توجد وسيلة لكسر الباب عن طريق اللص.

يمكنك العثور على بعض قفل التحكم في الهاتف الذكي الذي يتطلب استبدال نظام القفل بالكامل ، لكن في البرنامج التعليمي الخاص بي سوف أقوم بصنع شيء باستخدام القفل القديم التقليدي.

يعتمد هذا المشروع على تطبيق android ، يقوم تطبيق android بإرسال كلمة المرور عبر البلوتوث. مطلوب تطبيق أندرويد لفتح وإغلاق القفل وسأشرح تفاصيل تطوير تطبيق أندرويد في الجزء الأخير من البرنامج التعليمي. إذا تمت مطابقة كلمة المرور بكلمة مرور القفل المسبق ، فسيتم فتح القفل وإرسال ملاحظات على هاتفك.

اللوازم:

الخطوة 1: المكونات المطلوبة لاردوينو بلوتوث قفل باب التحكم

1. اردوينو اونو حاسب شخصي 1
2. وحدة بلوتوث (HC-05) حاسب شخصي 1
3. علبة تحريك الليزر من قرص CD / DVD القديم حاسب شخصي 1
4. محرك السائق IC (L293D) حاسب شخصي 1
5. منظم الجهد (LM7805) حاسب شخصي 1
6. مكثف كهربائيا (0.33 فائق التوهج) حاسب شخصي 1
7. مكثف كهربائيا (1 فائق التوهج) حاسب شخصي 1
8. قفل الباب حاسب شخصي 1
9. اللوح حاسب شخصي 1
7. الروبوت الذكي حاسب شخصي 1
10. المسمار (اختياري)

6PCS
11. أسلاك العبور

الخطوة 2: تفاصيل مكونات قفل الباب الذكي

اردوينو أونو: Arduino Uno هو مجلس التنمية الأكثر شعبية في عائلة Arduino. ليس من الضروري استخدام اردوينو أونو ، يمكنك استخدام عضو آخر من عائلة اردوينو مثل اردوينو نانو أو اردوينو مايكرو. يمكنك أيضًا استخدام atmega328p المستقل دون استخدام برنامج arduino baord. شرح تعليمي جيد "من اردوينو إلى متحكم على اللوح" متحكم مستقل atmega هنا.

وحدة بلوتوث (HC-05): Bluetooth هي نوع من الاتصالات اللاسلكية المستخدمة لنقل الصوت والبيانات بسرعات عالية باستخدام موجات الراديو. يستخدم على نطاق واسع في الهواتف المحمولة لإجراء المكالمات وسماعات الرأس ومشاركة البيانات. هذا النوع من الاتصالات هو وسيلة رخيصة وسهلة للتحكم في شيء عن بعد باستخدام اردوينو. للتواصل مع اردوينو باستخدام blutooth ، يجب توصيل وحدة بلوتوث مع اردوينو نموذج عدة من وحدة بلوتوث المتاحة. أنا استخدم هنا HC-05 واحدة شائعة جدا ورخيصة. وحدة HC-05 لديها 6 دبابيس. علينا أن نربط 4 دبابيس لاردوينو ، فهي:

RXD

TXD

VCC

GND

سوف RXD تلقي البيانات من اردوينو. سوف TXD إرسال البيانات إلى اردوينو. VCC هو مصدر الطاقة (3.3 فولت إلى 6.6 فولت) و GND هو الأرض. للحصول على التفاصيل ، انقر هنا.

تجربة حركة Leaser: أنا لا أعرف الاسم الفعلي للجزء.هذا جزء من مشغل CD / DVD الذي يحرك مؤشر LED المقيد لقراءة القرص المضغوط. هذا الجزء يحتوي على اثنين من المحركات العاصمة. واحد للغزل CD وآخر لتحريك الصمام الثنائي leaser. نحن لسنا بحاجة إلى محرك الغزل CD ، يمكنك إزالته. يمكنك أيضا العثور على هذا الجزء من جهاز الكمبيوتر القديم CD / DVD ROM. لتفكيك هذا من محرك الأقراص المضغوطة ، تحقق من الرابط: http: //www.instructables.com/id/Disassembling-a-CD …

محرك سائق ic (L293D): L293D عبارة عن دائرة متكاملة ذات محرك مزدوج H-bridge. يعمل سائقو المحركات كمكبرات صوت حالية لأنهم يأخذون إشارة تحكم منخفضة التيار ويقدمون إشارة حالية أعلى. يتم استخدام هذه الإشارة الحالية المرتفعة لقيادة المحركات.

L293D يحتوي على دائرتي تشغيل H-bridge يحملان ثناياه عوامل في وضع التشغيل المشترك ، يمكن تشغيل محركي التيار المستمر في وقت واحد ، سواء في الاتجاه الأمامي أو الخلفي. يمكن التحكم في العمليات الحركية للمحركين عن طريق منطق الإدخال في السنين 2 و 7 و 10 و 15. وسيقوم منطق الإدخال 00 أو 11 بإيقاف المحرك المقابل. المنطق 01 و 10 سوف يدور في اتجاه عقارب الساعة وعكس اتجاه عقارب الساعة ، على التوالي.

يجب أن يكون تمكين المسامير 1 و 9 (المطابقان للمحركين) مرتفعين لبدء تشغيل المحركات. عندما يكون إدخال تمكين مرتفعًا ، يتم تمكين برنامج التشغيل المرتبط. ونتيجة لذلك ، تصبح المخرجات نشطة وتعمل في مرحلة مع مدخلاتها. وبالمثل ، عندما يكون دخل التمكين منخفضًا ، يتم تعطيل برنامج التشغيل هذا ، وتكون مخرجاته معطلة وفي حالة مقاومة عالية. للحصول على تفاصيل L293D تحقق من ورقة البيانات المرفقة طيه أو انقر هنا.

منظم الجهد (LM7805): هذا هو منظم 5 فولت. يتم إعطاء إخراج محول التيار المتردد لإدخال منظم. وينظم إخراج من 5V. يتم إعطاء هذا الإخراج إلى L293D و متحكم. يتم إرفاق Pinout ورقة البيانات من IC.

الخطوة 3: الأدوات واللوازم لأمن الهواتف الذكية باب التحكم

1. مفك براغي
2. Soldering Iron and Solder إذا كنت ترغب في استخدام PCB بدلاً من اللوح
3. مسدس الغراء الساخن
4. الوصول إلى الكمبيوتر

الخطوة 4: اتصال الدائرة من اردوينو وأندرويد قفل باب التحكم

اتصال الدائرة لقفل الباب الذكي لدينا ليست معقدة للغاية. تمكين ، IN1 و IN2 من IC موتور سائق متصل اردوينو 9 و 10 و 11 دبوس. يتم توصيل Out1 و Out2 من برنامج تشغيل المحرك بمحرك DC لآلية حركة أقل. يتميز L293D بجهد إدخال واحد ، أحدهما لتيار IC والآخر لجهد المحرك. لقد قمت بتوصيل 5V لكلا الدبوس ، وسيعمل محركنا بشكل جيد في 5V. يحتوي برنامج التشغيل هذا على 4 دبوس أرضي ، وجميعها متصلة بالأرض. المشتت الحراري غير مطلوب هنا. يتم استخدام IC منظم 5 فولت (LM7805) هنا ويتم توصيل مدخلاته بإخراج محول التيار المتردد. سوف يعمل محول التيار المتردد إلى التيار المتردد من 7.5 فولت إلى 12 فولت بشكل جيد يتم توصيل ناتج المهايئ مباشرة بلوحة اردوينو VIN لأن لوحة اردوينو بها منظم جهد داخلي.

متصل TX pin of HC-05 بـ arduino RX pin ، و RX pin of HC-05 متصل بـ arduino TX pin. قد يكون هذا مربكًا بعض الشيء ولكن الحقيقة هي أن البيانات المرسلة بواسطة HC-05 يتم تلقيها بواسطة arduino (HC-05 TX إلى arduino RX) ، ويتم تلقي البيانات المرسلة من arduino بواسطة HC-05 (arduino TX إلى HC -05 RX).

يتم تحميل مخطط الدائرة ، ومصدر Proteus ، ومخطط اتصال اللوح ، رسم Fritzing جميعًا هنا.

الخطوة 5: برنامج اردوينو للتحكم في كلمة مرور بلوتوث قفل الباب المحمي

رمز للتحكم في بلوتوث قفل الباب الذكي بسيط جدا. لقد قمت بتصميم تطبيق Android بحيث أرسل أمرًا بكلمة مرور. في الواقع لقد قمت بتعيين أمرين ، أحدهما هو "OPEN =" والآخر هو "CLOSE =" وقد تحتوي كلمة المرور على أي رقم ، لاحقًا أو رمز أو مجموعة منهم كما تريد. في التطبيق ، استخدم زران أحدهما لفتح الباب والآخر لإغلاق الباب. عند إعطاء كلمة المرور لمربع كلمة المرور والنقر فوق الزر "فتح" من تطبيق "الأمر" OPEN = "كلمة المرور وإرسالها إلى اردوينو. أقوم بإضافة '=' sign with command لذلك سأقوم بفصل الأمر وكلمة المرور باستخدام هذا '='. بعد تلقي السلسلة من برنامج اردوينو الهاتف يفصل الأمر وكلمة المرور من سلسلة التلقي وحفظها في اثنين من المتغيرات منفصلة. ثم تحقق من كلمة المرور أولاً ، إذا كانت كلمة المرور متطابقة مع كلمة المرور المحفوظة ، ثم افتح الباب للأمر "OPEN" ، وأغلق الباب للأمر "CLOSE". "=" يساعد على فصل الأوامر وكلمة المرور. ويرد أدناه رسم تخطيطي لاردوينو.

أكمل اردوينو كود

/ * Athor: Md. Khairul Alam التاريخ: 1 سبتمبر ، 2015 هذا البرنامج مخصص لقفل الأبواب الذكية المحمية بكلمة مرور * / String inputString = ""؛ أمر السلسلة = ""؛ قيمة السلسلة = ""؛ كلمة مرور السلسلة = "arduPi"؛ // هذه هي كلمة المرور لفتح وغلق بابك // يمكنك تعيين أي كلمة مرور تريدها باستخدام الرقم والرموز boolean stringComplete = false؛ int motorPin1 = 10 ؛ // pin 2 on L293D IC int motorPin2 = 11؛ // pin 7 on L293D IC int motorEnablePin = 9؛ // pin 1 on L293D IC int Speed ​​= 100؛ void setup () {// start connection serial Serial.begin (9600)؛ / معدل الباود هو 9600 يجب أن يتطابق مع تقنية Bluetooth / تتيح لك وظيفة String reserve () تخصيص مخزن مؤقت في الذاكرة لمعالجة السلاسل. inputString.reserve (50)؛ // reserve 50 بايت في الذاكرة للحفظ من أجل command manipulation command.reserve (50)؛ value.reserve (50)؛ سلسلة منطقية = خطأ ؛ pinMode (motorPin1 ، OUTPUT) ؛ pinMode (motorPin2 ، OUTPUT) ؛ pinMode (motorEnablePin ، OUTPUT) ؛ } void loop () {// إذا تلقى arduino حرف إنهاء سلسلة مثل n stringComplete سيتم تعيينه على true إذا (stringComplete) {//Serial.println(inputString)؛ تأخير (100)؛ حدد // posiion لـ '=' في السلسلة وقم بتعيين الفهرس الخاص به على pos متغير int pos = inputString.indexOf ('=')؛ / / قيمة المتغير pos> أو = 0 تعني '=' موجودة في السلسلة المستلمة. إذا كانت (pos> -1) {// substring (start، stop) تقطع جزء معين من السلسلة من start to stop // هنا ، فسيكون الأمر جزءًا من السلسلة المستلمة حتى '=' // دع السلسلة المستلمة مفتوحة = test123 // ثم الأمر هو 'open' command = inputString.substring (0، pos)؛ ستكون قيمة // من بعد = إلى سطر سطر جديد // لقيمة المثال أعلاه هي test123 // نحن فقط نتجاهل '=' أخذ المعلمة الأولى من السلسلة الفرعية كـ 'pos + 1' // نحن نستخدم '=' فاصل بين command و vale // بدون '=' يمكن استخدام أي شخصية أخرى // نحن نستخدم = menas يجب ألا يحتوي الأمر أو كلمة المرور على أي '=' ، وإلا فإنه سيتسبب في قيمة الخطأ = inputString.substring (pos + 1 ، inputString.length () - 1)؛ // extract الأمر حتى n المستبعد //Serial.println(command)؛ //Serial.println(value)؛ // password.compareTo (value) قارن بين كلمة المرور وسلسلة القيمة ، إذا تطابق المطابقة 0 if (! password.compareTo (value) && (command == "OPEN")) {// إذا كانت كلمة المرور متطابقة وكان الأمر "OPEN" من الباب يجب فتح openDoor () ؛ // call openDoor () function Serial.println ("OPEN")؛ // أرسل ملاحظات مفتوحة إلى تأخير الهاتف (100) ؛ } if if (! password.compareTo (value) && (command == "CLOSE")) {// إذا كانت كلمة المرور متطابقة وكان الأمر "CLOSE" من الباب يجب إغلاقه closeDoor ()؛ Serial.println ("CLOSE") ؛ // أرسل سلسلة "CLOSE" إلى تأخير الهاتف (100) ؛ } if if (password.compareTo (value)) {// إذا كانت كلمة المرور غير متطابقة من إرسال تعليقات خاطئة إلى phone Serial.println ("WRONG") ؛ تأخير (100)؛ }} // امسح السلسلة من أجل التكرار التالي inputString = ""؛ stringComplete = false ؛ }} void serialEvent () {while (Serial.available ()) {// الحصول على البايت الجديد: char inChar = (char) Serial.read ()؛ //Serial.write(inChar)؛ / / إضافته إلى inputString: inputString + = inChar؛ // إذا كان الحرف الوارد عبارة عن سطر جديد أو حرف إرجاع ، فقم بتعيين علامة // حتى تتمكن الحلقة الرئيسية من فعل شيء حيال ذلك: إذا (inChar == ' n' || inChar == ' r') {stringComplete = صحيح }}} void openDoor () {digitalWrite (motorPin1، HIGH)؛ digitalWrite (motorPin2، LOW)؛ digitalWrite (motorEnablePin ، عالية) ؛ // use السطر التالي إذا كنت ترغب في تغيير السرعة ، ثم استخدم millis () بدلاً من ذلك إذا كان delay () // analogWrite (motorEnablePin، Speed)؛ تأخير (1500)؛ digitalWrite (motorEnablePin، LOW)؛ // off motor} void closeDoor () {digitalWrite (motorPin1، LOW)؛ digitalWrite (motorPin2 ، عالية) ؛ digitalWrite (motorEnablePin ، عالية) ؛ // analogWrite (motorEnablePin، Speed)؛ تأخير (1500)؛ digitalWrite (motorEnablePin، LOW)؛ }

إذا استلمت اردوينو كلمة مرور خاطئة ، فأرسلت رسالة إلى هاتف أندرويد تفيد بأن كلمة المرور خاطئة. في الواقع اردوينو أرسلت سلسلة "خاطئة". يقوم برنامج Android بعد ذلك بعرض رسالة كلمة مرور خاطئة.

الخطوة 6: إعداد وتشغيل قفل الباب الذكي المحمي بكلمة مرور Bluetooth

اضبط آلية حركة الليزر واللوحة على بابك باستخدام مسدس الغراء الساخن الموضح أعلاه. تأكد ، يجب أن يكون عمودان (حركة القفل والليزر) متوازيين. بعد وضع هذه في الموضع الصحيح تصل السلطة باستخدام محول الجدار. يجب أن الصمام وحدة بلوتوث وامض باستمرار. شغّل تطبيق Android (تحقق من الخطوة 7 و 8) وقم بإقران هذا الهاتف معك باستخدام زر الزوج إن لم يكن مقترنًا من قبل. لأول مرة سيطلب منك رمزًا ، واستخدم 1234 ، ثم انقر فوق "موافق". الآن قم بتوصيله بجهازك باستخدام زر الاتصال. بعد الاتصال ، أدخل كلمة المرور لتعيين برنامج اردوينو الخاص بك (قمت بتعيين "arduPi" ، يمكنك استخدام كلمة المرور الخاصة بك) في مربع كلمة المرور وانقر فوق إغلاق زر الباب. سيتم إغلاق الباب بنجاح. مرة أخرى أدخل كلمة المرور وافتح الباب. الباب مفتوح؟ إذا كانت الإجابة بنعم ، من التهاني! لقد أكملت مشروعك بنجاح.

الخطوة 7: تطوير تطبيق Android لقفل حماية الباب بكلمة مرور

سأوضح لك كيفية تطوير تطبيق Bluetooth android باستخدام MIT App Inventor. أنا أستخدم App Inventor لأنه لا يتطلب أي تشفير وعدم تثبيت البرنامج. تحتاج فقط إلى حساب جوجل. انتقل إلى http://ai2.appinventor.mit.edu/ ، سوف تطلب تسجيل الدخول باستخدام حساب google.

قم بتسجيل الدخول إلى App Inventor باستخدام gmail واتبع الخطوات أدناه.

أنا قبول الشروط والأحكام الصورة 1
ثانيا انقر فوق "إجراء الاستطلاع لاحقًا" ثم "متابعة" لإغلاق شاشة البداية الصورة 2 ، 3
ثالثا بدء مشروع جديد (بدون مسافات!) صورة 4
رابعا اسم المشروع "BluetoothControlDoorLock" (بدون مسافات!) صورة 5

أنت الآن في "المصمم" ، حيث تضع "واجهة المستخدم" للتطبيق (الصورة 6). "نافذة المصمم" هي المكان الذي تضع فيه مظهر التطبيق الخاص بك وشعوره ، وتحدد الوظائف التي ينبغي أن يكون عليها. يمكنك اختيار أشياء لأشياء واجهة المستخدم مثل أزرار ، صورة ، تسمية ، مربعات نص ، وظائف مثل تحويل النص إلى كلام ، وتقنية بلوتوث ، وأجهزة الاستشعار ، ونظام تحديد المواقع العالمي.

الآن ، اتبع الشكل 7 وأضف قائمة منتقي إلى العارض. أعد تسميته إلى "Connect to Bluetooth device" (الصورة 8). إضافة تسمية واحدة ، مربع نص كلمة مرور واحد ، واثنين من الأزرار المعروضة في الشكل 10. قم بتغيير خصائص النص للمكونات مثل "إدخال كلمة المرور" ، "فتح الباب" ، و "إغلاق الباب" على التوالي. يجب أن تبدو واجهة المستخدم النهائية بالشكل 11. قم الآن بإضافة عميل Bluetooth إلى العارض. إنه عنصر غير مرئي وليس له واجهة مستخدم. انظر الصورة 12.

التبديل إلى محرر كتل

حان الوقت لإخبار تطبيقك بما يجب القيام به! انقر فوق "كتل" للانتقال إلى محرر الكتل (الصورة 13). فكر في أزرار "المصمم والكتل" مثل علامات التبويب - التي تستخدمها للتنقل ذهابًا وإيابًا بين المنطقتين في App Inventor. برنامج Block Blocks هو المكان الذي تقوم ببرمجة سلوك تطبيقك فيه. هناك كتلة مدمجة تتعامل مع أشياء مثل الرياضيات والمنطق والنص. أدناه هي الكتل التي تذهب مع كل مكون من مكونات التطبيق الخاص بك. من أجل إظهار الكتل الخاصة بمكون معين في محرر الكتل ، يجب عليك أولاً إضافة هذا المكون إلى تطبيقك من خلال "المصمم".

دعونا ، تصميم كتل لقائمة المنتقى. List Picker هو عنصر واجهة المستخدم عند النقر فوقها ، فإنه يظهر قائمة بالعناصر المقابلة هنا هي جهاز Bluetooth المقترن. يجب أن نضيف كتلتين ListPicker.BeforePicking و ListPicker.AfterPicking (الصورة 14). وتظهر كتل كاملة في الشكل 18 و 19.

جعل ملف apk

لقد اكتمل تصميمنا ، والآن نحتاج إلى إنشاء ملف apk لهاتفنا android. انقر لإنشاء القائمة وحدد "التطبيق (حفظ.apk إلى جهاز الكمبيوتر الخاص بي)". انتظر لدقيقه. سيتم تنزيل ملف apk إلى مجلد التنزيل الافتراضي. تثبيته واستخدامه.

الخطوة 8: ميزة أكثر الغنية تطبيق Android

في الخطوة السابقة ، أوضحت لك كيفية تطوير تطبيق بلوتوث أساسي في App Inventor. لكن هذا التطبيق ليس سهل الاستخدام. لن تظهر لك أي رسالة إما أن بابك مفتوح أو مغلق أو لا يمكن توصيل البلوتوث لأي خطأ. لقد أرفقت هنا تطبيقًا أكثر تقدماً لمشروعنا.

عند قيامك بتشغيل التطبيق ، تحقق من تمكين راديو البلوتوث الخاص بك أم لا ، وإذا لم يتم تمكين مربع حوار تمكين البلوتوث. انقر فوق نعم لتشغيل راديو Bluetooth الخاص بك. ثم قم بإقران الجهاز باستخدام زر الجهاز المزدوج. ثم انقر فوق الزر "الاتصال" ، إذا كان التطبيق متصلاً بأي جهاز بنجاح ، فسيظهر التطبيق عنوان MAC للجهاز المتصل واسمه. أدخل كلمة المرور في مربع كلمة المرور ، ثم انقر فوق زر فتح الباب ، إذا قمت بإدخال باب كلمة المرور الصحيح سيتم فتح وسيظهر لك التطبيق رسالة مفادها أن بابك مفتوح الآن. ثم أدخل كلمة المرور مرة أخرى إذا كنت تريد إغلاق الباب. إذا أعطيت كلمة مرور خاطئة ، فسيعرض التطبيق رسالة كلمة مرور خاطئة.

تم إرفاق الملف المصدر لمخترع التطبيق الكامل (BTcontrol.aia). إذا كنت لا ترغب في إنشاء تطبيق خاص بك أو تعديله ، فما عليك سوى تنزيل BTcontrol.apk وتثبيته على جهازك الذي يعمل بنظام Android.

يمكنك أيضًا تنزيله من متجر Google Play باستخدام الرابط:

play.google.com/store/apps/details؟id=appinventor.ai_khairul_uapstu.BTcontrol&hl=en

لتعديل المصدر ، انقر فوق قائمة "مشاريع" واختر "استيراد مشروع (.aia) من جهاز الكمبيوتر الخاص بي" الموضح في الشكل 24 وتصفح ملف BTcontrol.aia من جهاز الكمبيوتر الخاص بك. بعد الاستيراد يمكنك تعديله بسهولة.

إذا كنت تريد معرفة المزيد حول تطوير تطبيق Android باستخدام استعراض App Inventor: http://appinventor.mit.edu/explore/ai2/tutorials.html. يمكنك أيضًا تجربة

الوصيف في

تحدي السلامة