خانه هوشمند سیم کارت GSM - GPRS

طراحی و پیاده سازی قفل هوشمند با قابلیت فعال سازی از طریق DTMF

smart-door-lock-with-dtmf-arduino-simcard-module-sim800l-digispark
نوشته شده توسط معین صابری

قفل ها یکی از قدیمی ترین و پرکاربردرتین ابزارها جهت کنترل تردد به شمار می روند. از این ابزار در خانه ها، ادارات، فروشگاه ها، خودروها و… به وفور استفاده می گردد. در سال های اخیر، با پیشرفت فناوری، ابزارهای امنیتی نظیر قفل ها نیز تغییرات زیادی داشته اند. امروزه قفل های هوشمند پا به عرصه بازار گذاشته اند. به کمک این قفل ها کاربران به سادگی می توانند ورود و خروج را کنترل کنند. این موضوع برای افرادی که مشکل گم کردن کلیدها را با خود حل نکرده اند!!! بسیار مهم خواهد بود. پیشتر در آموزشی در رابطه با قفل RFID همکارم پروژه کاملی را شرح داده که با کلیک بر روی این لینک می توانید آموزش آن را دنبال کنید. در این این آموزش به کمک فناوری DTMF تلفن همراه و ماژول سیم کارت SIM800L، اقدام به طراحی و پیاده سازی قفل هوشمند با قابلیت کنترل از راه دور می پردازیم. پیشتر در رابطه با قابلیت DTMF در این لینک صحبت کرده و به کمک آن یک پروژه که در این لینک قابل دسترسی است را اجرا کرده ایم، در این آموزش به کمک این قابلیت و با وارد کردن رمز قفل حین تماس تلفنی به کمک قابلیت DTMF، قفل را از راه دور فعال و یا غیر فعال می کنیم. این پروژه جذاب و کاربردی به پیشنهاد یکی از کاربران و همراهان خوب دیجی اسپارک، آقای محمد رهایی، اجرا می گردد. در اینجا از ایشان و سایر کاربران همراه، صمیمانه سپاسگزاریم.  در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.

 


DTMF تعریف و کاربرد


ماژول SIM800L قابلیت ارسال و دریافت پیامک، اتصال به اینترنت و تبادل داده در فضای وب را در خود جای داده است. به عنوان مثال، در این آموزش، کنترل پیامکی رله به کمک این ماژول شرح داده شده است. با توجه به اینکه این ماژول قادر است تماس صوتی دو طرفه ایجاد کند و از طرفی دیگر سرویس DTMF در آن تعبیه شده، بنابراین می توان از این قابلیت در جهت کنترل وسایل از راه دور و به کمک تماس صوتی، اقدام نمود. سرویس DTMF که مخفف عبارت Dual Tone Multiple Frequency است، می تواند در تماس های تلفنی صوتی، در صورت فشرده شدن کلیدهای صفحه کلید موبایل، کلید را تشخیص دهد.

DTMF تعریف و کاربرد - دیجی اسپارک

 

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

 


ماژول سیم کارت SIM800L


ماژول SIM800L، یک ماژول مخابراتی با قابلیت اتصال به شبکه تلفن همراه است. این ماژول که دقیقا مثل یک تلفن همراه عمل کرده و به سادگی از طریق رابط سریال UART کنترل می شود. این ماژول دارای یکسری از دستورات استاندارد و از پیش تعیین شده به نام AT-Command ها بوده که کلیه قابلیت های ماژول، از طریق ارسال فرامین AT، کنترل و اجرا می شوند. این فرامین بسیار ساده بوده و شما می توانید به سادگی به ارسال و دریافت پیامک، اینترنت و تماس تلفنی بپردازید. توسط این ماژول امکان کنترل وسایل برقی فراهم است. در این پروژه اقدام به باز و یا بستن قفل هوشمند با DTMF توسط همین ماژول می‌کنیم.

ماژول Sim800L در پروژه کنترل وسایل برقی با DTMF - دیجی اسپارک

 

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

 


ماژول کاهنده ولتاژ LM2596


ماژول کاهنده ولتاژ LM2596، یکی از کاربردی ترین ماژول ها در جهت تغذیه مورد نیاز قطعات و ماژول های مختلف است. به کمک این ماژول می توانید ولتاژ مورد نظر خود را در خروجی تنظیم کنید. خروجی توان این ماژول ۳ آمپر بوده و کاملا مناسب تغذیه ماژول SIM800L است. با توجه به اینکه ماژول SIM800L دارای بازه تغذیه ۳٫۴ الی ۴٫۴ بوده و در لحظه اول راه اندازی نیاز به جریان دو آمپر دارد، ماژول کاهنده ولتاژ LM2596 برای تغذیه ماژول SIM800L، بسیار کاربردی خواهد بود.

Activation of relays via DTMF call with voice report - دیجی اسپارک

 


ماژول رله Relay


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

Activation of relays via DTMF call with voice report - دیجی اسپارک

 

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

 


برد آردویینو UNO


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

برد آردوینو UNO برای هوشمند سازی خانه - دیجی اسپارک

 

در این پروژه، برد آردویینو UNO با تشخیص تماس تلفنی، آن را برقرار می سازد. پس از برقراری تماس، برد آردویینو منتظر ارسال کلید از کاربر برای مدت ۸ ثانیه می ماند. پس از این مرحله، در صورتیکه کلیدهای ارسالی در ۴ رقم با شماره رمز از پیش تعیین شده یکسان باشند، به رله فرمان باز شدن قفل صادر می گردد.

 


قفل برقی


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

قفل برقی جهت هوشند سازی با DTMF - دیجی اسپارک

 


شماتیک و اتصالات پروژه


در این قسمت به بررسی شماتیک و اتصالات پروژه می پردازیم. در ابتدا به تصویر زیر که شمای کلی از اتصالات مدار نشان می دهد، توجه نمایید.

شماتیک و اتصالات پروژه قفل برقی با DTMF - دیجی اسپارک

در ادامه، اتصالات مدار فوق را در پیش می گیریم. توجه داشته باشید که در این پروژه ما از یک آداپتور ۱۲V با قابلیت چریان دهی ۵ آمپر جهت تغذیه کل مدار استفاده می کنیم. این آداپتور به جک آردوینو متصل شده و تغذیه کل مدار فراهم خواهد شد. به همین ترتیب، اتصالات ماژول کاهنده ولتاژ lm2596 به شکل زیر خواهد بود.

  • اتصال پایه مثبت ورودی LM2596 به پایه VIN آردوینو
  • اتصال پایه منفی ورودی LM2596 به پایه GND آردوینو

پس از برقراری اتصالات ورودی، نوبت به اتصالات خروجی ماژول می رسد. پیش از اصتال، به کمک مولتی ترن آبی رنگ(ولوم) روی ماژول، ولتاژ خروجی را بر روی ۴٫۲ تنظیم کنید. پس از تنظیم ولتاژ، به شکل زیر عمل کنید.

  • اتصال پایه مثبت خروجی lm2596 به پایه VCC ماژول SIM800L
  • اتصال پایه منفی خروجی LM2596 به پایه GND ماژول SIM800L

در ادامه اتصالات بین ماژول SIM800L و آردوینو UNO را به شکل زیر اجرا کنید.

  • اتصال پایه TX ماژول SIM800L به پایه RX برد آردوینو
  • اتصال پایه TX برد آردوینو به کمک تقسیم مقاومتی(هر مقاومت ۱ کیلو اهم) به پایه RX ماژول SIM800L

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

  • اتصال پایه GND ماژول رله به GND آردوینو
  • اتصال پایه VIN ماژول رله به پایه ۵V آردوینو
  • اتصال پایه SIGNAL و یا IN ماژول رله به پایه GPIO4 برد آردوینو

در ادامه، می بایست اتصالات رله و قفل برقی ۱۲ ولت را انجام دهیم. به همین منظور، کابل منفی تغذیه قفل برقی به GND مدار متصل گردد. در طرف دیگر، کابل مثبت تغذیه قفل به پایه NC رله متصل شود. پس از آن، یک سیم از پایه VIN آردوینو به پایه COM رله وصل کنید. در این حالت رله به صورت سری در مسیر تغذیه قفل قرار گرفته که با دریافت فرمان از آردوینو، تغذیه قفل را قطع و وصل می کند. جهت اطلاعات بیشتر در رابطه با استفاده از رله در پروژه ها، می توانید آموزش آن را با کلیک بر روی این لینک مطالعه نمایید.

 


کدهای پروژه


در این قسمت کدهای پروژه قفل برقی با قابلیت کنترل از طریق DTMF می پردازیم. این کدها برای برد آردوینو UNO توسعه یافته اند. پیش از آپلود کد به موارد زیر توجه نمایید.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 


اجرای پروژه


در این قسمت به اجرای پروژه می پردازیم. جهت اجرای پروژه، پس از روشن نمودن مدار، ابتدا برای چند لحظه جهت اتصال ماژول سیم کارت به شبکه صبر کرده و سپس با شماره سیم کارت تماس بگیرید. پس از برقراری تماس، برای مدت ۸ ثانیه فرصت دارید که رمز را وارد کنید. در اینجا ما رمز را ۵۵۳۶ تعیین کرده ایم. با شماره گیری عدد ۵۵۳۶ از طریق صفحه کلید تلفن همراه خود، قفل فعال می شود. بدین ترتیب شما می توانید از راه دور و تنها با یک تماس تلفنی، رمزر را وارد کرده و در را باز کنید.

پروژه درباز کن با تماس تلفنی DTMF و ماژول سیم کارت - دیجی اسپارک

 


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


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

check_connect(): این تابع اتصال ماژول به شبکه GSM را کنترل کرده و تا اتصال ماژول به شبکه منتظر باقی خواهد ماند.

call_handler(): این تابع وظیفه مدیریت تماس، دریافت رمز و فعال سازی قفل در صورت صحیح بودن رمز را بر عهده دارد. این تابع به مدت ۸ ثانیه صبر کرده و سپس به تحلیل داده های دریافتی از طریق DTMF می پردازد.

در این برنامه، زمانیکه تماسی با ماژول برقرار شود، ماژول عبارت RING را در بافر سریال ارسال می کند. در اینجا به کمک تابع find ، به دنبال این عبارت می گردیم. هرگاه این عبارت یافت شد، یعنی تماس تلفنی برقرار شده و تابع call_handler را اجرا خواهیم نمود.

 


لوازم مورد نیاز


برد آردویینو UNO

ماژول SIM800L

ماژول رله

قفل برقی

ماژول کاهنده ولتاژ LM2596

مقاومت یک کیلو اهمی

برد بورد و کابل

 


جمع بندی


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

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۲ دیدگاه

  • سلام مهندس
    فقط بهتر این بود که از طریق پیامک یا تماس میشد رمز را هم تغییر داد چون اگه بخواهیم رمز را تغییر دهیم باید دوباره اردوینو را پروگرام کنیم

  • سلام مهندس
    پروژه فرستنده و گیرنده بیسیم سریال درست کنید به این صورت که
    با استفاده از دو ماژول nrf یا esp8266 دیتا را انتقال دهیم
    مثلاً میخواهیم با اردوینو برد esp32 cam را پروگرام کنیم قسمت فرستنده را به کامپیوتر متصل و پورت را از نرم افزار اردوینو انتخاب و در قسمت گیرنده برد مد نظر که قصد پروگرام داریم را متصل میکنیم

    • سلام
      مورد جالبیست
      آموزش OTA اما فرک کنم روی دیجی اسپارک قرار دادر، آموزشی که در آن از راه دور ESP8266 را می توان پروگرام نمود.

  • سلام مهندس پروژه ساعت سخنگو بزارید
    به این صورت که با استفاده از ماژول MP3 و ماژول ساعت و اردوینو یه ساعت سخنگو بسازیم که وقتی دکمه ساعت را فشار میدهیم ساعت را برای ما بصورت ساعت دقیقه ثانیه بخونه

  • مهندس پروژه جعبه هوشمند بزارید
    به این صورت که با استفاده از ماژول MP3 ماژول ساعت و اردوینو و بتونیم برای جعبه یک سری ساعت تعریف کنیم مثلاً در این ساعت ماژول MP3 صدایی برایمان پخش کند و این جعبه به چند کشو تقسیم شده باشد مثلاً چهار کشو کشو اول کشو دوم و ….
    و این جعبه را میتونیم برای خوردن به موقع دارو یا قرص ها استفاده کنیم به این صورت که قبلش برای دستگاه تعریف کنیم که سر ساعت مثلاً ال ای دی کشو اول روشن بشه و ماژول MP3 برامون بخونه که مثلاً موقع خوردن قرص شده لطفاً کشو اول را باز کنید

  • سلام مهندس اگه میشه ساخت کنترلر دستگاه جوجه کشی را بزارید
    که باهاش بشه دما و رطوبت را کنترل کرد