- قائمة المكونات
- مخطط الدائرة لقفل باب لوحة مفاتيح Arduino
- كود اردوينو لقفل باب لوحة المفاتيح الرقمية
- Arduino Keypad DoorLock تجميع واختبار قفل الباب
في كثير من الأحيان ، نحتاج إلى تأمين غرفة في منزلنا أو مكتبنا (ربما مختبر دكستر السري) حتى لا يتمكن أي شخص من الوصول إلى الغرفة دون إذن منا وضمان الحماية ضد السرقة أو فقدان الملحقات والأصول الهامة. هناك العديد من أنواع أنظمة الأمان الموجودة حاليًا ولكن خلف الكواليس ، للمصادقة ، تعتمد جميعها على بصمة الإصبع ، وماسح الشبكية ، وماسح قزحية العين ، ومعرف الوجه ، وماسح اللسان ، وقارئ RFID ، وكلمة المرور ، والدبوس ، والأنماط ، وما إلى ذلك. التكلفة المنخفضة هي استخدام كلمة مرور أو نظام يعتمد على رقم التعريف الشخصي. لذلك ، في هذا المشروع ، قمت ببناء قفل باب لوحة مفاتيح Arduino يمكن تثبيته على أي من أبوابك الحالية لتأمينها بكلمة مرور رقمية. في السابق ، قمنا أيضًا ببناء أقفال أبواب أخرى مثيرة للاهتمام مذكورة أدناه.
- اردوينو قفل الباب RFID
- قفل باب اردوينو
- قفل الرمز الرقمي Raspberry Pi
- 555 الموقت قفل الباب الإلكتروني
قبل إنشاء مشروع قفل الباب بكلمة مرور ، نحتاج أولاً إلى جمع المكونات المطلوبة ثم المضي قدمًا واتباع عملية البناء خطوة بخطوة.
قائمة المكونات
- Arduino Uno / Pro / Mini أو لوحة مخصصة باستخدام متحكم Atmega 328p
- 16 × 2 LCD (شاشة بلورية سائلة)
- لوحة مفاتيح مصفوفة 4 × 3 أو 4 × 4 لاردوينو
- أجهزة السيارات
- خزانة باب مطبوعة ثلاثية الأبعاد / خزانة باب مخصصة
- مكونات إضافية لإمداد الطاقة لشاحن متنقل 1 أمبير 5 فولت
- صناديق بلاستيكية 4 '' / 6 '' ، أسلاك توصيل ، براغي صواميل ، غلاف بلاستيكي ، إلخ.
مخطط الدائرة لقفل باب لوحة مفاتيح Arduino
يظهر أدناه مخطط الدائرة الكاملة لمشروع قفل باب لوحة المفاتيح الرقمية المستند إلى Arduino.
بادئ ذي بدء ، نبدأ من عقل هذا المشروع وهو لوحة Arduino UNO. لوحة Arduino متصلة بشاشة LCD ومحرك مؤازر. يستخدم محرك سيرفو لدفع (قفل) أو سحب (فتح) مزلاج الباب. مطلوب شاشة LCD مقاس 16 × 2 لعرض الرسالة بواسطة Arduino ، وتعني 16 × 2 أنه يحتوي على 16 عددًا من الأعمدة وعدد 2 من الصفوف. إذا كنت جديدًا تمامًا على وحدات عرض LCD مقاس 16 × 2 ، يمكنك التحقق من هذا البرنامج التعليمي Arduino LCD Interfacing لمعرفة المزيد عنها.
هنا ، أستخدم محركًا مؤازرًا 5 فولت Towerpro SG90 لصنع خزانة باب مخصصة. إنه محرك سيرفو أساسي ويعمل بشكل جيد مع Arduino بدون أي دائرة قيادة أو وحدة خارجية. أيضًا ، تكلفة محرك السيرفو هذا أقل جدًا بحيث يمكنك بسهولة شرائه. يمكنك أيضًا التحقق من هذا البرنامج التعليمي Arduino Servo Motor Control لمعرفة المزيد حول محرك المؤازرة وكيف يعمل. قم بتوصيل محرك سيرفو مع Arduino Digital pin D9 ومزود طاقة 5 فولت. يحتوي محرك سيرفو على إجمالي 3 خطوط إدخال (GND ، + 5V و SIGNAL LINE).
في هذا المشروع ، استخدمت لوحة مفاتيح مصفوفة 4 × 4 (لكن جزء لوحة المفاتيح 4 × 4 غير متوفر في التضاؤل لعمل هذا التمثيل الرسومي) ، ولكن لا تقلق لأن لوحة مفاتيح ماتريكس 4 × 3 تعمل أيضًا بشكل جيد مع الترميز الخاص بي. نحتاج إلى لوحة مفاتيح لإدخال كلمة المرور وقفل خزانة الباب المخصصة يدويًا. يتكون من 16 مفتاحًا (مفتاح ناعم) 4 مفاتيح في الصفوف (R1 ، R2 ، R3 ، R4) و 4 مفاتيح في الأعمدة (C1 ، C2 ، C3 ، C4) عند الضغط على مفتاح ، فإنه ينشئ اتصالًا بين الصفوف المقابلة والأعمدة. يوضح الجدول أدناه كيفية توصيل Arduino بلوحة المفاتيح.
لوحة المفاتيح | اردوينو |
دبوس 1 (الصف 1) | دبوس رقمي 1 |
دبوس 2 (الصف 2) | دبوس رقمي 2 |
دبوس 3 (الصف 3) | دبوس رقمي 3 |
دبوس 4 (الصف 4) | دبوس رقمي 4 |
دبوس 5 (الأعمدة 5) | دبوس رقمي 5 |
دبوس 6 (الأعمدة 6) | دبوس رقمي 6 |
دبوس 7 (الأعمدة 7) | دبوس رقمي 7 |
كود اردوينو لقفل باب لوحة المفاتيح الرقمية
يمكن العثور على رمز قفل باب Arduino الكامل في أسفل هذه الصفحة. يمكنك تحميل الكود مباشرة ، لكن يوصى بقراءة الفقرات أدناه لفهم كيفية عمل الكود. أيضًا ، من المهم التأكد من أنك أضفت مكتبة لوحة المفاتيح التالية إلى Arduino IDE الخاص بك لترجمة الكود بنجاح. للقيام بذلك فقط افتح الرابط أدناه وقم بتنزيل ملف ZIP. ثم في Arduino IDE ، انتقل إلى Sketch -> Include Library -> Add.ZIP Library وتصفح للوصول إلى الملف الذي قمت بتنزيله للتو.
- مكتبة لوحة مفاتيح اردوينو
بعد إدخال جميع ملفات الرأس والمكتبة ، عيّن كل الدبوس لشاشة LCD وحدد طول كلمة المرور واضبط الموضع الأولي للمؤازرة على 0. بعد ذلك ، خذ نوع بيانات "char" للإعلان عن الرقم الذي يمكنه الاحتفاظ به بما في ذلك حرف فارغ.
//#تضمن
باستخدام هذا الجزء من الكود (char Master = "123456" ؛) - تحت Char Master ، أعلن كلمة مرور قفل الباب ، ثم قم بتعيين عدد الصفوف والأعمدة في لوحة المفاتيح وأعلن أيضًا عن خرائط المفاتيح واتصل بالصفوف و الأعمدة. في ظل إعداد الفراغ ، قم بتهيئة دبوس إشارة المؤازرة D9 ، وإغلاق حالة المؤازرة وطباعة اسم المشروع / الجهاز / الشركة مع تأخير لمدة 3 ثوانٍ على وقت بدء تشغيل الجهاز.
إعداد باطل () {myservo.attach (9) ؛ ServoClose () ؛ lcd.begin (16 ، 2) ؛ lcd.print ("باب اردوينو") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("- Look project--") ؛ تأخير (3000) ؛ lcd.clear () ؛ }
تحت وظيفة الحلقة ، يوجد شرط if-else البسيط. وفقًا للحالة (تم قفله تلقائيًا) ، اطبع "الباب مغلق" مع تأخير لمدة 3 ثوانٍ وتدوير المؤازرة لإغلاق الموضع ، ويتم احتساب بيانات الباب على أنها 1 ، وإلا تظل خزانة الباب مفتوحة وعدد البيانات 0 ، وتدوير المؤازرة إلى الموضع 0 درجة إلى 180 درجة وإغلاقها من 180 إلى 0. تظهر أدناه وظائف فتح وإغلاق المؤازرة.
void ServoOpen () {for (pos = 180؛ pos> = 0؛ pos - = 5) {// ينتقل من 0 درجة إلى 180 درجة // في خطوات من 1 درجة myservo.write (pos) ؛ // أخبر المؤازرة بالانتقال إلى الموضع في تأخير "نقاط البيع" المتغير (15) ؛ // ينتظر 15 مللي ثانية حتى يصل المؤازر إلى الموضع}} باطل ServoClose () {لـ (pos = 0 ؛ pos <= 180 ؛ pos + = 5) {// ينتقل من 180 درجة إلى 0 درجة myservo.write (pos) ؛ // أخبر المؤازرة بالانتقال إلى الموضع في تأخير "نقاط البيع" المتغير (15) ؛ // ينتظر 15 مللي ثانية حتى تصل المؤازرة إلى الموضع}}
اكتب موضع المؤازرة مع 15 ثانية من التأخير للوصول إلى وضع المؤازرة. ضمن وظيفة الفتح الفارغ ، اطبع على شاشة LCD "أدخل كلمة المرور" ، ثم يحدد الشرط أن كلمة المرور التي تم إدخالها يجب أن تكون مماثلة للمفتاح المخصص ، ضمن بيانات الجسم هذه التي يتم حسابها وتخزين الأحرف في مصفوفة البيانات ، وكلمة المرور المتزايدة والمطبوعة على شاشة LCD إذا كان يتطابق طول البيانات (رقم المفتاح) وكلمة مرور الإدخال مع Data Master (حيث توجد المفاتيح المحددة مسبقًا). ثم كشاشة عرض LCD واضحة ، محرك سيرفو ، اطبع على شاشة LCD "الباب مفتوح" ويتم إعادة تعيين عداد البيانات إلى 0.
إذا كان مفتاح الإدخال لا يتطابق مع Data Master ، كإجراء على شاشة LCD واضحة الطباعة على شاشة LCD "كلمة مرور خاطئة" للإخطار مع تأخير لمدة ثانية واحدة ويظل في وضع القفل مع مجموعات عداد البيانات إلى 1 ومتابعة هذه العملية في حلقة.
if (data_count == Password_Lenght - 1) // إذا كان فهرس المصفوفة يساوي عدد الأحرف المتوقعة ، قارن البيانات بالسيد {if (! strcmp (Data، Master)) // يساوي (strcmp (Data، Master) == 0) {lcd.clear () ؛ ServoOpen () ، lcd.print ("الباب مفتوح") ؛ الباب = 0 ؛ } else {lcd.clear ()؛ lcd.print ("كلمة مرور خاطئة") ؛ تأخير (1000) ؛ الباب = 1 ؛ } امسح البيانات()؛ }
Arduino Keypad DoorLock تجميع واختبار قفل الباب
الآن ، قم بتركيب كل شيء على صندوق بلاستيكي مقاس 4 بوصات / 6 بوصات وقم بتشغيله باستخدام شاحن للهاتف المحمول ، وقم بمحاذاة كل شيء بشكل جيد باستخدام الغلاف. من الناحية المثالية ، كان بإمكاني استخدام الطباعة ثلاثية الأبعاد لتجميع القفل الخاص بي ، ولكن بعد تصميم ملفاتي ، وجدت أن الطباعة ثلاثية الأبعاد مكلفة للغاية ، لذلك قمت للتو بإصلاح المؤازرة أولاً ، ثم قمت بتوصيل خزانة الشرائح العادية مع المؤازرة الخاصة بي باستخدام لوحة معدنية ومغطاة مع الألياف الزجاجية ، على الرغم من أنها تعمل بشكل جيد ، إلا أنها أقل أمانًا.
إذا كنت تريد المزيد من الأمان ، فعليك طباعة نموذج قفل باب ثلاثي الأبعاد يعمل داخليًا مع هذه الماكينة. يمكنك تنزيل ملفات STL المطلوبة من الرابط أدناه وطباعتها ثلاثية الأبعاد إذا كان لديك وصول إلى طابعة ثلاثية الأبعاد.
قم بتنزيل ملفات STL للطباعة ثلاثية الأبعاد
تظهر ملفات التصميم أيضًا في الصورة أدناه.
في بداية المشروع ، في اللحظة التي نقوم فيها بتشغيله لأول مرة ، نحتاج إلى إعطاء اسم المشروع (يمكنك عرض اسم الشركة أيضًا) بحيث يبدو ذكيًا وحصريًا مثل جهاز تجاري (كما ترى في الصورة أدناه).
مع تأخير لمدة 3 ثوانٍ ، أغلق الباب بسرعة وافحص الشاشة مباشرةً لمعرفة حالة قفل الباب كما هو موضح في الصورة أدناه.
عندما تقوم بقفل الباب يدويًا بالضغط على مفتاح "#" ، فإنه يظهر أولاً أن الباب مغلق لمدة ثانية واحدة ثم يعرض إدخال كلمة المرور. من ناحية أخرى ، عند فتح الباب عن طريق إدخال كلمة المرور الصحيحة ، يظهر الباب مفتوحًا.
إذا ظل الباب في حالة فتح ، فسيتم عرضه - الباب مفتوح ما دمت تقفل الباب يدويًا وفقًا للترميز. لقد قدمت الرمز ويمكنك تخصيص الإعدادات عن طريق تغيير معلمة عرض الكود كما هو مطلوب. يمكنك أيضًا التحقق من العمل الكامل مع الفيديو المرتبط أسفل هذه الصفحة.