آردوینو 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");
      }

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

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

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

دانلود فایل های پروژه

میخواهید برنامه نویسی STM32 را یاد بگیرید؟

دوره آموزش STM32

میخواهید الکترونیک را یاد بگیرید؟

دوره آموزش الکترونیک
دوره آموزش آردوینو

میخواهید آردوینو را به صورت پروژه محور یاد بگیرید؟ برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید

محمد رحیمی

محمد رحیمی

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

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

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