بسم الله الرحمن الرحيم
بعد ان قمنا بتصميم عدة مشاريع عن المنزل الذكي سنصمم مشاريع الغرض منها حماية المنزل ودمجها مع مشاريع السمارت هوم
هذا المشروع الغرض منه هو حماية المنزل عن طريق استخدام keypad و موتور سيرفو
ملحوظة : تم الإستغناء عن جزء الخاص بانذار الحرائق
الأدوات :
Arduino uno
keypad
motor servo
Arduino uno
المتحكم الذي استخدمته ويمكن استبداله باي متحكم اخر
keypad
لوحة المفاتيح وهي مخصصة للتعامل مع الأردوينو وتحتوي علي 4 صفوف و 4 اعمده
motor servo
موتور السيرفو الذي سيتم استخدامه في فتح او غلق القفل الخاص بالباب
ثانيا التوصيلات :
يحتوي keypad علي 8 منافذ
4 منافذ للصفوف و 4 منافذ للأعمدة يتم توصيلهم جميعا الي المنافذ الرقمية الخاصه بالأردوينو
وموتور سيرفو يحتوي علي 3 منافذ منفذ الإشارة يتم توصيله الي المنفذ الرقمي ومنفذ الطاقة الي 5 فولت ومنفذ السالب الي السالب
ثالثا الكود :
#include <Servo.h>
#include <Keypad.h>
const byte row = 4;
const byte col = 4;
char keys[row][col]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowpin[row]={r1,r2,r3,r4};
byte colpin[col]={c1,c2,c3,c4};
Keypad kpd(makeKeymap(keys),rowpin,colpin,row,col);
Servo servo;
#define serv servopin
char StorePass[]="your password";
int i=0,count=0,number=sizeof(StorePass)-1;
char pass[sizeof(StorePass)-1];
void setup() {
servo.attach(serv);
}
void loop() {
char key = kpd.getKey();
if (key>'0'&&key!='D'){
pass[i]=key;
i++;}
if(key=='D'){
if(i==number){
for(int j=0;j<number;j++){
if(pass[j]==StorePass[j])count++;
}
if(count==number){
servo.write(165);
delay(2000);
i=0;
count=0;}}}
servo.write(5);}
هذا هو الكود الخاص بمنظومة الحماية وهذا الكود سيكون مدمج مع اكواد التحكم باﻷجهزة التي قمنا بتصميمها من قبل
في البداية يجب تعريف المكتبات وتعريف الحروف والأرقام الخاصة ب keypad وتعريف منفذ الموتور وتعريف منافذ keypad الصفوف والأعمده وتعريف متغيرات الخاصة بالباسورد ومتغيرات خاصه لبعض العمليات الأخري
#include <Servo.h>
#include <Keypad.h>
const byte row = 4;
const byte col = 4;
char keys[row][col]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowpin[row]={r1,r2,r3,r4};
byte colpin[col]={c1,c2,c3,c4};
Keypad kpd(makeKeymap(keys),rowpin,colpin,row,col);
Servo servo;
#define serv servopin
char StorePass[]="your password";
int i=0,count=0,number=sizeof(StorePass)-1;
char pass[sizeof(StorePass)-1];
void setup() {
servo.attach(serv);}
بعد ذلك تم انشاء متغير لتخزين ما تم ضغطه علي keypad في هذا المتغير
بعد ذلك تخزين ما تم ضغطه داخل مصفوفة ومقارنة عناصر المصفوفة التي قمنا بانشاءها مع عناصر المصفوفة الأخري التي تحتوي علي الباسورد الصحيح وفي حالة تطابق المصفوفتين يتم تحريك موتور السيرفوا بزاوية 165 و الإنتظار ثانيتين و بعد ذلك تحريك الموتور بزاية 5 درجات
وفي النهاية لإدخال الباسورد يجب الضغط علي حرف D فهو بمثابة زر enter في لوحة المفاتيح
هناك نوع من القفول الأوتوماتيكيى التى تعمل على 12 فولت والتى يمكن إستخدامها مع الأردوينو بإستعمال ترانزيستور
لتحميل الكود :
تصميم وبرمجة : بلال حسان سعدي