ہماری روز مرہ کی زندگی میں سیکیورٹی ایک بہت بڑا تشویش ہے ، اور ڈیجیٹل لاک ان سیکیورٹی سسٹمز کا ایک اہم حصہ بن چکے ہیں۔ ہماری جگہ کو محفوظ بنانے کے لئے بہت سارے قسم کے حفاظتی نظام موجود ہیں۔ کچھ مثالیں پی آئی آر پر مبنی سیکیورٹی سسٹم ، آریفآئڈی پر مبنی سیکیورٹی سسٹم ، ڈیجیٹل لاک سسٹم ، بائیو میٹرکس سسٹم ، الیکٹرانکس کوڈ لاک ہیں۔ اس پوسٹ میں ، آئیے آرڈینوو کا استعمال کرتے ہوئے ایک خفیہ دستک کا پتہ لگانے والا دروازہ لاک بنائیں جو دروازے پر آپ کی دستک کے نمونوں کا پتہ لگاسکتا ہے اور اگر اس دستک کا نمونہ صحیح نمونہ سے ملتا ہے تب ہی اس لاک کو کھول دے گا۔ مناسب کام کرنے والے ڈیمو کے لئے ، آخر میں ویڈیو دیکھیں ۔
اجزاء:
- ارڈینو اونو
- دبانے والا بٹن
- بزر
- 1M ریسسٹٹر
- طاقت
- مربوط تاروں
- ڈبہ
- امدادی موٹر
سرکٹ کی وضاحت:
اس دستک پیٹرن کا پتہ لگانے والا سرکٹ ڈایاگرام بہت آسان ہے جس میں منصوبے کے پورے عمل ، پش بٹن ، بززر اور سروو موٹر کو کنٹرول کرنے کے لئے ارڈینو موجود ہے۔ ایردوینو مکمل عمل کو کنٹرول کرتی ہے جیسے پاس ورڈ فارم بزر یا سینسر لینے ، نمونوں کا موازنہ کرنا ، کھولو کے لئے امدادی ڈرائیونگ کرنا اور گیٹ کو بند کرنا اور اس پیٹرن کو ارڈینو میں محفوظ کرنا۔
پش بٹن زمین کے سلسلے میں Ardino کے پن D7 کو براہ راست منسلک کرتا ہے۔ اور ایک بوزر زمین کے لحاظ سے اور A0 اور زمین کے مابین 1M مزاحمت کے ساتھ اردوینو کے ینالاگ پن A0 پر منسلک ہے۔ اردوینو کے پی ڈبلیو ایم پن D3 سے بھی ایک सर्वो موٹر منسلک ہے۔
اردوینو میں دستک دینے کا نمونہ پلانا:
اس سرکٹ میں ، ہم نے سسٹم میں دستک ان پٹ کا نمونہ لینے کیلئے بزر یا پییزو سینسر کا استعمال کیا ہے۔ یہاں ہم سینسر سے ان پٹ لینے اور اسے اردوینو میں محفوظ کرنے کی اجازت دینے کیلئے پش بٹن استعمال کررہے ہیں۔ اس سسٹم کو موریس کوڈ پیٹرن سے آئیڈی لیتے ہوئے ڈیزائن کیا گیا ہے لیکن اس کے ساتھ بالکل مماثلت نہیں ہے۔
یہاں ہم نے مظاہرے کے لئے کارڈ بورڈ کا باکس استعمال کیا ہے۔ ان پٹ لینے کے لئے ہم پش بٹن دبانے کے بعد بورڈ پر دستک دیتے ہیں۔ یہاں ہم نے 500 میگاڑیوں کا وقت مدنظر رکھتے ہوئے کھٹکھٹایا ہے۔ یہ 500 ملی میٹر اس لئے ہے کہ ہم نے اسے کوڈ میں طے کیا ہے اور اس پر منحصر ان پٹ نمونہ ہے۔ یہ 500ms ٹائم پیریڈ 1 یا 0 کی ان پٹ کی وضاحت کرے گا اس چیز کو سمجھنے کے لئے نیچے کا کوڈ چیک کریں۔
جب ہم اسے کھٹکھٹاتے ہیں تو ، ارڈینو پہلی دستک سے دوسری دستک کے وقت کی نگرانی کرنا شروع کردیتی ہے اور اسے ایک صف میں ڈال دیتی ہے۔ یہاں اس سسٹم میں ، ہم 6 دستک دے رہے ہیں۔ اس کا مطلب ہے کہ ہمیں 5 ٹائم پیریڈ ملیں گے۔
اب ہم ایک ایک کرکے ٹائم پیریڈ چیک کرتے ہیں۔ سب سے پہلے ، ہم پہلی دستک اور دوسری دستک کے درمیان وقت کی جانچ پڑتال کرتے ہیں اگر ان 500s کے درمیان وقت کا فرق کم ہو تو یہ 0 ہو گا اور اگر 500ms سے زیادہ یہ 1 ہو گا اور اسے متغیر میں محفوظ کیا جائے گا۔ اب اس کے بعد ، ہم دوسری دستک اور تیسری دستک کے درمیان وقت کی جانچ پڑتال کرتے ہیں۔
آخر میں ، ہمیں 0 اور 1 شکل (بائنری) میں 5 ہندسوں کی آؤٹ پٹ ملے گی۔
ورکنگ وضاحت:
کا کام کرنا دستک مبنی اسمارٹ لاک پروجیکٹ آسان ہے. پہلے ہمیں سسٹم میں ایک نمونہ بچانا ہے۔ لہذا جب تک ہم 6 بار دستک نہ کریں ہمیں پش بٹن دبائیں اور اسے تھامنا ہوگا۔ یہاں اس پروجیکٹ میں ، میں نے 6 دستکیں استعمال کیں لیکن صارف اپنی مرضی کے مطابق اسے تبدیل کرسکتا ہے۔ چھ بار دستک دینے کے بعد ، اردوینو دستک کا نمونہ تلاش کریں اور اسے EEPROM میں محفوظ کریں۔ اب ان پٹ کو بچانے کے بعد ، دبائیں اور فوری طور پر سینسر سے انڈو لے کر ارڈوینو پر لاک کھولنے کیلئے دبائیں۔ اب ہمیں 6 بار دستک دینا پڑے گی۔ اس کے بعد ، اردوینو اسے ڈی کوڈ کرتی ہے اور محفوظ کردہ نمونہ کا موازنہ کرتی ہے۔ اگر کوئی میچ ہوتا ہے تو اردوینو نے موٹر موٹر چلا کر گیٹ کھول دیا۔
نوٹ: جب ہم دبائیں یا دبائیں اور دبائیں بٹن کو دبائیں Ardino 10 سیکنڈ کا ٹائمر تمام 6 دستک لینے کے لئے شروع کریں۔ اس کا مطلب ہے کہ صارف کو اس 10 سیکنڈ کے وقت میں دستک دینے کی ضرورت ہے۔ اور صارف لاگ دیکھنے کیلئے سیریل مانیٹر کھول سکتا ہے۔
پروگرامنگ کی وضاحت:
ایک پروگرام میں سب سے پہلے ہم ہیڈر فائل کو شامل کرتے ہیں اور ان پٹ اور آؤٹ پٹ پن کی وضاحت کرتے ہیں اور میکرو اور اعلان کردہ متغیرات کی وضاحت کرتے ہیں جیسا کہ آپ کوڈ سیکشن میں مکمل کوڈ میں دیکھ سکتے ہیں۔
اس کے بعد ، سیٹ اپ فنکشن میں ، ہم تعریف شدہ پن کو ہدایت دیتے ہیں اور سروو موٹر شروع کرتے ہیں۔
باطل سیٹ اپ () {پن موڈ (سو ، INPUT_PULLUP)؛ myServo.attach (servoPin)؛ myServo.write (180)؛ سیریل.بیگین (9600)؛ }
اس کے بعد ، ہم ان پٹ لیتے ہیں اور ان پٹ پیٹرن کو بچاتے ہیں یا کسی صف میں دستک دیتے ہیں۔
باطل لوپ () i انٹ i = 0؛ if (digitalRead (sw) == LOW) ial Serial.println ("start")؛ تاخیر (1000)؛ طویل stt = ملیس ()؛ جبکہ (ملیس () <(اسٹوٹ + پیٹرن آئپٹ ٹائم)) {انٹارٹ = اینالاگ ریڈ (A0)؛ اگر (عارضی> حساسیت اور& پرچم == 0 && i <= نمونہ) L…………..
اس کے بعد ، ہم ان پٹ پیٹرن کو ڈی کوڈ کرتے ہیں
کے لئے (INT i = 0؛ i)
اور پھر اگر دبائیں بٹن کو ابھی بھی دبایا گیا ہے تو محفوظ کریں
اگر (ڈیجیٹل ریڈ (sw) == 0) {for (int i = 0؛ i)
اور اگر پش بٹن ابھی بھی دبایا نہیں گیا ہے تو پھر آرڈینو ان پٹ ڈی کوڈ پیٹرن کا موازنہ کریں محفوظ کردہ پیٹرن کے ساتھ کریں گے۔
نہیں {اگر (دستک == 1) {کے لئے (INT i = 0؛ i
اگر کوئی پاس ورڈ مماثل ہے ، تو سروو گیٹ کھول دے ورنہ کچھ نہیں ہوا لیکن صارف سیریل مانیٹر پر نتیجہ دیکھ سکتا ہے۔
سیریل.پرنٹلن (قبول فلگ)؛ اگر (સ્વીد فلاگ> = پیٹرنلینتھ -1) ial سیریل.پرنٹلن ("قبول")؛ myServo.write (اوپن گیٹ)؛ تاخیر (5000)؛ myServo.write (قریب گیٹ)؛ } دوسری سیریل ڈاٹ کام ("مسترد")؛ }
آپ نیچے ڈیمو ویڈیو کے ذریعے مکمل کوڈ چیک کرسکتے ہیں ۔