پروژه الکترونیکپروژه های آردوینوپروژه های امنیتی

کد پروژه قفل در هوشمند با آردوینو (باز کردن درب با نوع در زدن)

سلام. پروژه قفل در هوشمند با آردوینو (باز کردن درب با نوع در زدن) را آماده کردیم.

آموزش ساخت قفل امنیتی با Arduino

امنیت همیشه یک نگرانی اساسی در زندگی روزمره بوده است. قفل های دیجیتال به بخش مهمی از سیستم های امنیتی تبدیل شده اند. انواع بسیاری از سیستم های امنیتی برای تامین امنیت ما وجود دارند. برخی مبتنی بر RFID هستند و برخی مبتی بر اثر انگشت و …

در این پروژه آردوینو میخواهیم یک قفل در مخفی و هوشمند بسازیم که با نحوه در زدن ما باز میشود. یعنی میتوانید الگوی ضربه زدن شما را حس کنید و در صورت مطابقت با الگوی از پیش تعریف شده ، قفل در را باز میکند.

این پروژه چگونه کار میکند ؟

در اینجا ما از دکمه استفاده میکنیم تا با فشردن آن از سنسور ورودی بگیریم و آن را در Arduino ذخیره کنیم. در این پروژه ما از یک حعبه استفاده میکنیم. پس از فشردن دکمه 500 میلی ثانیه فرصت داریم تا به جعبه بکوبیم. یعنی هر 500 میلی ثانیه فرصتی برای کوبیدن بر روی جعبه است. و اگر شما در هر 500 میلی ثانیه به جعبه بکوبید، مقدار 1 در آردوینو مربوط به آن دوره ذخیره میشود و اگر در 500 میلی ثانیه به جعبه نکوبید مقدار 0 در Arduino ذخیره میشود.

شما میتوانید این زمان را مطابق میل خود تغییر دهید. این سیستم با الگو گرفتن از کد مورس طراحی شده است اما کاملا شبیه به آن نیست.

آموزش ساخت قفل امنیتی با Arduino

هنگامی که دکمه را فشار دهیم. آردوینو شروع به نظارت بر زمان ضربه اول تا ضربه دوم میکند و آن را در یک آرایه قرار میدهد. در اینجا ما 6 ضربه میزنیم به این معنی که ما 5 دوره زمانی خواهیم داشت. سپس آردوینو دوره زمانی را بررسی میکند. سرانجام ، ما 5 خروجی رقمی را با فرمت 0 و 1 (باینری) دریافت خواهیم کرد.

توضیحات کار پروژه قفل امنیتی

کار این پروژه بسیار ساده است. ابتدا باید الگویی را در سیستم ذخیره کنیم. بنابراین باید دکمه را فشار دهیم. باید دکمه را فشرده و نگه داریم و به طور مثال تا 6 بار ضربه بزنیم. ما از 6 ضربه استفاده کرده ایم. اما شما میتوانید به صورت مورد علاقه خود الگو را طراحی کنید. آردوینو پس از شش بار ضربه زدن الگو را پیدا کرده و آن را در EEPROM ذخیره میکند.

توضیحات کار پروژه قفل امنیتی

پس از ذخیره الگوی ورودی، دکمه را فشار دهید تا سنسور فعال شود، سپس مطابق با الگو ضربه بزنید تا آردوینو الگوی ضربه های شما رابا الگوی از پیش تعیین شده مقایسه کند. در صورت تطابق سروو موتور فعال شده و در باز میشود. و پس از 5 ثانیه سروو موتور به حالت قبلی خود بر میگردد و درب بسته خواهد شد.

اگر میخواهید آردوینو را به صورت اصولی و پروژه محور (برنامه نویسی حرفه ای، ارتباط آردوینو با اندروید، ساخت ربات با آردوینو) یاد بگیرید، روی دوره آموزش آردوینو کلیک کنید.

توجه: هنگامی که دکمه را فشار میدهید تا 10 ثانیه وقت دارید ضربات را وارد کنید. همچنین میتوانید از سریال مانیتور آردوینو برای مشاهده جزئیات استفاده کنید.

توضیحات شماتیک مدار پروژه

شماتیک مدار این پروژه را در تصویر زیر مشاهده میکنید. مدار بسیار ساده است و از برد آردوینو برای کنترل تمامی مراحل پروژه استفاده شده است.

توضیحات مدار پروژه قفل در هوشمند

دکمه فشار مستقیماً از GND به پین ​​D7 برد Arduino متصل است. و یک بازر  در پین آنالوگ A0 آردوینو از GND و با مقاومت 1M بین A0 و GND متصل می شود. یک موتور سروو همچنین به PWM پین D3 آردوینو متصل شده است.

قطعات مورد نیاز

  1. برد آردوینو Uno
  2. دکمه
  3. بازر
  4. مقاومت 1 مگا اهم
  5. سروو موتور

توضیحات کد پروژه

کد کامل پروژه در فایل دانلودی انتهای صفحه قرار داده شده است. در اینجا قسمت های مهم کد را توضیح میدهیم. در ابتدا کتابخانه ها و پین های خروجی و متغیر  ها را تعریف میکنیم.

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

سپس در در void setup ما پین ها را تعریف کرده و سروو موتور را راه اندازی میکنیم. و همچنین نرخ باود سریال را روی  9600 قرار میدهیم.

void setup() 
{
  pinMode(sw, INPUT_PULLUP);
  myServo.attach(servoPin);
  myServo.write(180);
  Serial.begin(9600);
}

سپس ورودی را گرفته و الگوی ضربات را ذخیره میکنیم.

void loop() 
{
   int i=0;
   if(digitalRead(sw) == LOW)
   {   
      Serial.println("Start");
      delay(1000);
      long stt= millis();
      while(millis()<(stt+patternInputTime))
      {
        int temp=analogRead(A0);
        if(temp>sensitivity && flag==0 && i<=patternLenth)
        {
.... .
..... ....

بعد از آن الگوی ورودی را رمزگشایی می کنیم.

      for(int i=0;i<patternLenth;i++)
      {
         knok=1;
         if(slot[i+1]-slot[i] <500 )
            pattern[i]=0;
         else
            pattern[i]=1;
         Serial.println(pattern[i]);
      }

و اگر دکمه فشار هنوز فشرده نباشد، آردوینو الگوی رمزگشایی ورودی را با الگوی ذخیره شده مقایسه می کند.

      else
      {
         if(knok == 1)
         {
            for(int i=0;i<patternLenth;i++)
            {
               if(pattern[i] == EEPROM.read(i))
               {
                  Serial.println(acceptFlag++);
               }

               else
               {
                    Serial.println("Break");
                    break;                
               }
            }
         }

اگر هر الگوی ورودی مطابقت داشته باشد، آنگاه Servo را باز می کند، در غیر این صورت هیچ اتفاقی نمی افتد ولی همچنان میتوانید در سریال مانیتور گزارشات را مشاهده کنید.

         Serial.println(acceptFlag);
         if(acceptFlag >=  patternLenth-1)
         {
             Serial.println(" Accepted");
             myServo.write(openGate);
             delay(5000);
             myServo.write(closeGate);
         }
         else
            Serial.println("Rejected");
      }

فیلم عملکرد پروژه

فیلم زیر به شما در درک نحوه کار پروژه کمک میکند.

فیلم عملکرد مدار : کلیک کنید !

موارد موجود در فایل : سورس کامل ، شماتیک کامل

پروژه ها رایگان هستند. برای دانلود فایل های پروژه باید در سایت عضو باشید. ثبت نام / ورود

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید
امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. مالکیتی بر مطالب ارائه شده ندارم. اکثر فعالیت بنده در زمینه ترجمه است. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *