سیستم کنترل حرکت در آپارتمان آردوینو. سیستم امنیتی GSM برای خانه مبتنی بر آردوینو. ویژگی های اصلی ماژول کارت حافظه SD


نحوه درست کردن GSM سادهسیستم هشدار برای SIM800L و آردوینو برای گاراژ یا کلبه تابستانی. ما خودمان این کار را بر اساس ماژول های آماده Aliexpress انجام می دهیم. ماژول های پایه- ماژول GSM SIM800L، آردوینو نانو (شما می توانید از هر Uno و غیره استفاده کنید)، برد کشویی، باتری از تلفن همراه.

برنج. 1. چیدمان ماژول های هشدار امنیتی در آردوینو

تولید سیگنال

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



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



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

بیشتر در ویدیو

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

ماژول آردوینو چیست؟

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

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

آیا کار با آردوینو سخت است؟

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

برنامه های مدیریت ماژول ها با استفاده از C ++ معمولی و افزونه های موجود در فرم نوشته می شوند توابع سادهکنترل فرآیندهای ورودی / خروجی روی مخاطبین ماژول. علاوه بر این، نرم افزار رایگان Arduino IDE که تحت ویندوز، لینوکس یا مک او اس کار می کند، می تواند برای برنامه نویسی استفاده شود.

با ماژول های آردوینو، روش مونتاژ دستگاه ها بسیار ساده شده است. سیگنال دهی GSM در آردوینو می تواند بدون نیاز به آهن لحیم کاری ایجاد شود - مونتاژ با استفاده از تخته نان، جامپر و سیم انجام می شود.

چگونه با استفاده از آردوینو زنگ هشدار ایجاد کنیم؟

الزامات اصلی که سیستم هشدار gsm تولید شده در آردوینو باید با دستان خود برآورده کند عبارتند از:

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

برای ایجاد زنگ هشدار شما نیاز دارید:

  • ماژول آردوینو؛
  • مجموعه ای از سنسورهای کاربردی؛
  • یا یک مودم؛
  • منبع تغذیه مستقل؛
  • دستگاه های اجرایی خارجی

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

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

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

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

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

"توجه داشته باشید!

برای ارتباط با صاحب تسهیلات، علاوه بر ماژول های GSM، می توان از مودم های معمولی نیز استفاده کرد که ارتباط از طریق اینترنت را فراهم می کند.

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

نتیجه گیری

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

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

نویسنده می خواست از ماژول مادون قرمز استفاده کند، اما از آنجایی که برد محدودی دارد و به علاوه می تواند کار کند فقطخط دید به گیرنده، بنابراین او یک ماژول RF را انتخاب کرد که می تواند به برد تقریباً 100 متر دست یابد.


به منظور سهولت در مشاهده مجموعه دزدگیر برای بازدیدکنندگان، تصمیم گرفتم مقاله را به 5 مرحله تقسیم کنم:
مرحله 1: ساخت یک فرستنده.
مرحله 2: یک گیرنده ایجاد کنید.
مرحله 3: نصب نرم افزار.
مرحله 4: تست ماژول های مونتاژ شده.
مرحله 5: مونتاژ کیس و نصب ماژول در آن.

تمام چیزی که نویسنده نیاز داشت این بود:
- 2 برد ARDUINO UNO / ARDUINO MINI / ARDUINO NANO برای گیرنده و فرستنده.
- ماژول گیرنده RF (433 مگاهرتز)؛
- سنسور حرکت PIR
- باتری های 9 ولت (2 قطعه) و کانکتورهای آنها.
- زنگ
- دیود ساطع نور؛
- مقاومت با مقاومت 220 اهم؛
- تخته نان؛
- جامپر / سیم / جامپر.
- تخته مدار؛
- اتصالات پین برد به برد؛
- سوئیچ ها؛
- محفظه برای گیرنده و فرستنده.
- کاغذ رنگی؛
- نوار نصب؛
- اسکالپل تنظیم تایپ.
- چسب حرارتی تفنگی؛
- آهن لحیم کاری؛
- برش سیم / ابزار سلب.
- قیچی برای فلز.


مرحله ی 1.
بیایید شروع به ایجاد فرستنده کنیم.
در زیر نموداری از نحوه عملکرد سنسور حرکت ارائه شده است.


فرستنده خود شامل موارد زیر است:
- حسگر حرکتی؛
- بردهای آردوینو؛
- ماژول فرستنده


سنسور خود سه خروجی دارد:
- VCC؛
- GND؛
- بیرون.

بعد از آن، عملکرد سنسور را بررسی کردم


توجه!!!
قبل از دانلود سیستم عامل، نویسنده مطمئن می شود که برد فعلی و پورت سریال به درستی در تنظیمات Arduino IDE تنظیم شده است. سپس طرح را آپلود کردم:

بعداً با تشخیص حرکت سنسور حرکت در جلوی خود، LED روشن می شود و همچنین می توانید پیام مربوطه را در مانیتور مشاهده کنید.


طبق نمودار زیر.


فرستنده 3 پین دارد (VCC، GND و Data)، ما آنها را به هم وصل می کنیم:
- VCC> 5 ولت توسط پین روی برد.
- GND> GND؛
- داده> 12 پین روی برد.

مرحله 2.


گیرنده خود شامل موارد زیر است:
- ماژول گیرنده RF؛
- بردهای آردوینو
- زنگ (بلندگو).

مدار گیرنده:


گیرنده، مانند فرستنده، دارای 3 پین (VCC، GND، و Data) است، ما آنها را به هم وصل می کنیم:
- VCC> 5 ولت توسط پین روی برد.
- GND> GND؛
- داده> 12 پین روی برد.


مرحله 3.
نویسنده فایل کتابخانه را به عنوان مبنایی برای کل سیستم عامل انتخاب کرده است. من که هست رو دانلود کردم و گذاشتمش تو پوشه کتابخانه های آردوینو.

نرم افزار فرستنده.
قبل از آپلود کد سیستم عامل روی برد، نویسنده پارامترهای IDE زیر را تنظیم می کند:
- برد -> آردوینو نانو (یا هر بردی که استفاده می کنید)؛
- پورت سریال ->


پس از تنظیم پارامترها، نویسنده فایل فریمور Wireless_tx را دانلود کرده و روی برد آپلود می کند:

نرم افزار گیرنده
نویسنده همان مراحل را برای تابلوی دریافت کننده تکرار می کند:
- برد -> آردوینو UNO (یا هر بردی که استفاده می کنید)؛
- پورت سریال -> COM XX (بررسی کنید که بورد شما به چه پورتی متصل است).



پس از تنظیم پارامترها توسط نویسنده، فایل wireless_rx را دانلود کرده و در برد آپلود می کند:


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

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


مرحله 5.
مونتاژ نهایی فرستنده
ابتدا نویسنده پین ​​های بیرون زده از گیرنده، فرستنده، بردهای آردوینو و غیره را قطع می کند.


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


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

ابتدا او را برید: یک سوراخ برای سوئیچ، و سوراخ گردبرای سنسور حرکت، و سپس آن را به بدنه چسباند.




سپس نویسنده یک ورق کاغذ رنگی را جمع کرد و تصویر را روی جلد جلو چسباند تا قسمت‌های داخلی محصول خانگی را پنهان کند.


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



مونتاژ نهایی گیرنده
نویسنده تصمیم به ارتباط گرفت برد آردوینوبا یک صفحه نصب با یک باند لاستیکی و همچنین یک گیرنده RF را نصب کنید.


در مرحله بعد، نویسنده دو سوراخ در مورد دیگر، یکی برای زنگ و دیگری برای سوئیچ برش می دهد.


و آن را می چسباند.


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




سپس نویسنده تخته تمام شده را داخل جعبه قرار می دهد و آن را با چسب دو طرفه ثابت می کند.

سلام به همه، امروز قصد داریم دستگاهی به نام حسگر حرکتی را بررسی کنیم. بسیاری از ما در مورد این چیز شنیده ایم، حتی شخصی با این دستگاه برخورد کرده است. سنسور حرکتی چیست؟ بیایید سعی کنیم آن را بفهمیم، بنابراین:

سنسور حرکت یا سنسور جابجایی - وسیله ای (دستگاهی) که حرکت هر جسمی را تشخیص می دهد. اغلب از این دستگاه ها در سیستم های امنیتی، هشدار و نظارت استفاده می شود. فاکتورهای زیادی برای این سنسورها وجود دارد، اما ما دقیقاً ماژول سنسور حرکت را برای اتصال به بردها در نظر خواهیم گرفت. آردوینو،و از طرف شرکت است RobotDyn. چرا این شرکت خاص؟ من نمی خواهم این فروشگاه و محصولاتش را تبلیغ کنم، اما محصولات این فروشگاه بودند که به دلیل کیفیت بالای ارائه محصولاتشان به مصرف کننده نهایی، به عنوان نمونه آزمایشگاهی انتخاب شدند. بنابراین، ما با حسگر حرکت آشنا می شویم(سنسور PIR)از RobotDyn:


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

اصلی مشخصات فنیسنسور حرکت (سنسور PIR):

منطقه کار سنسور: از 3 تا 7 متر

زاویه ردیابی: تا 110 درجه

ولتاژ کاری: 4.5 ... 6 ولت

جریان مصرف: تا 50μA

توجه داشته باشید:عملکرد استاندارد سنسور را می توان با اتصال سنسور نور به پین ​​های IN و GND گسترش داد و سپس سنسور حرکت فقط در تاریکی کار می کند.

مقداردهی اولیه دستگاه

وقتی سنسور روشن می شود، تقریباً یک دقیقه طول می کشد تا مقداردهی اولیه شود. در طول این مدت، سنسور ممکن است سیگنال های اشتباه بدهد، این باید هنگام برنامه ریزی میکروکنترلر با سنسور متصل به آن یا در مدارها در نظر گرفته شود. دستگاه های اجراییاگر اتصال بدون استفاده از میکروکنترلر انجام شود.

زاویه و مساحت تشخیص

زاویه تشخیص (ردیابی) 110 درجه است، محدوده فاصله تشخیص از 3 تا 7 متر است، تصویر زیر همه اینها را نشان می دهد:

تنظیم حساسیت (فاصله تشخیص) و تاخیر زمانی.

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


اتصال سنسور:

  • سنسور PIR - آردوینو نانو
  • سنسور PIR - آردوینو نانو
  • سنسور PIR - آردوینو نانو
  • سنسور PIR - برای سنسور نور
  • سنسور PIR - برای سنسور نور

یک نمودار اتصال معمولی در نمودار زیر آورده شده است، در مورد ما سنسور به طور معمول از پشت نشان داده شده است و به برد آردوینو نانو متصل است.

طرحی که عملکرد سنسور حرکت را نشان می دهد (از برنامه استفاده کنید):

/ * * سنسور PIR -> آردوینو نانو * سنسور PIR -> آردوینو نانو * سنسور PIR -> آردوینو نانو * / تنظیم void () (// برقراری اتصال به پورت سریال monitor.begin (9600)؛) حلقه خالی ( ) ( // مقدار آستانه را از پورت A0 بخوانید // اگر سیگنال وجود داشته باشد معمولاً از 500 بالاتر است (analogRead (A0)> 500) (// سیگنال از سنسور حرکت Serial.println ("حرکت وجود دارد ! !!");) else (/ / بدون سیگنال Serial.println ("همه چیز ساکت است ..."))

این طرح یک تست معمولی از سنسور حرکت است، دارای اشکالات زیادی است، مانند:

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

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

اکنون زمان اصلاح طرح مورد استفاده برای آزمایش سنسور حرکت است. در این طرح است که تاخیر رله خاموش اجرا می شود، زیرا سنسور حرکت خود زمان سیگنال بسیار کوتاهی در خروجی هنگام راه اندازی دارد. این برنامه یک تاخیر 10 ثانیه ای را در هنگام فعال شدن سنسور اجرا می کند. در صورت تمایل می توان این زمان را با تغییر مقدار متغیر کم یا زیاد کرد DelayValue... در زیر یک طرح و ویدئو از کل مدار مونتاژ شده است:

/ * * سنسور PIR -> آردوینو نانو * سنسور PIR -> آردوینو نانو * سنسور PIR -> آردوینو نانو * ماژول رله -> آردوینو نانو * / // رلووت - پین (سیگنال خروجی) برای ماژول رله مستلزم تغییر مجدد = 3 ; // prevMillis - متغیر برای ذخیره زمان چرخه اسکن برنامه قبلی // فاصله - فاصله زمانی برای شمارش ثانیه تا زمانی که رله خاموش شود prevMillis طولانی بدون علامت = 0; فاصله int = 1000; // DelayValue - دوره ای که در طی آن رله در حالت روشن نگه داشته می شود. int DelayValue = 10; // initSecond - متغیر تکرار حلقه اولیه int initSecond = 60; // countDelayOff - شمارنده فواصل زمانی static int countDelayOff = 0; // trigger - پرچم سنسور حرکتی که باعث راه‌اندازی static bool trigger = false; void setup () (// روش استاندارد برای مقداردهی اولیه پورتی که ماژول رله به آن متصل است // مهم !!! - برای اینکه ماژول رله در حالت اولیه خاموش بماند // و در هنگام راه اندازی اولیه راه اندازی نشود، باید مقدار HIGH را در پورت I/O // بنویسید، با این کار از "چرخش" کاذب جلوگیری می شود و // وضعیت رله را همانطور که قبل از روشن شدن کل مدار روی pinMode بود، ذخیره می کند. OUTPUT)؛ digitalWrite (relout، HIGH)؛ // همه چیز در اینجا ساده است - ما تا پایان 60 چرخه (متغیر initSecond) // به مدت 1 ثانیه صبر می کنیم، در این مدت سنسور برای (int i = خود مقدار دهی اولیه می کند) 0؛ من< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) (// تنظیم پرچم ماشه سنسور حرکت اگر (! ماشه) (ماشه = درست؛)) // در حالی که پرچم ماشه سنسور حرکت تنظیم شده است در حالی که (ماشه) (// اجرا زیر دستورالعمل// ذخیره در متغیر currMillis // مقدار میلی ثانیه ای که از شروع // اجرای برنامه گذشته است بدون علامت currMillis = millis (); // با مقدار قبلی میلی ثانیه مقایسه کنید // اگر اختلاف بیشتر از بازه مشخص شده باشد، سپس: if (currMillis - prevMillis> interval) (// مقدار فعلی میلی ثانیه را در متغیر prevMillis ذخیره کنید prevMillis = currMillis؛ // شمارشگر تاخیر را با مقایسه آن با مقدار دوره // بررسی کنید که در طی آن رله باید روشن بماند // وضعیت اگر (countDelayOff> = DelayValue) (// اگر مقدار برابر است، سپس: // پرچم حرکت را بازنشانی کنید ماشه حسگر = نادرست؛ // بازنشانی شمارشگر تأخیر DelayOff = 0؛ // رله دیجیتال را خاموش کنید (reout, HIGH)؛ // قطع حلقه را لغو کنید؛) در غیر این صورت (// اگر مقدار همچنان کمتر است، // شمارشگر تاخیر را یک countDelayOff ++ افزایش دهید؛ // رله را روی DigitalWrite نگه دارید (reout, LOW )))))

این برنامه شامل یک ساختار است:

طولانی بدون علامت prevMillis = 0;

فاصله int = 1000;

...

بلند بدون امضا currMillis = millis ();

if (currMillis - prevMillis> بازه)

{

prevMillis = currMillis;

....

// عملیات ما در بدنه سازه محصور شده است

....

}

برای روشن شدن موضوع، قرار شد به طور جداگانه در مورد این ساخت و ساز اظهار نظر شود. بنابراین، این طرحبه شما اجازه می دهد تا یک نوع کار موازی را در برنامه انجام دهید. بدنه سازه تقریباً یک بار در ثانیه تحریک می شود، این توسط متغیر تسهیل می شود فاصله... اول، متغیر currMillisمقدار بازگردانده شده هنگام فراخوانی تابع را اختصاص می دهد میلیس ()... عملکرد میلیس ()تعداد میلی ثانیه از شروع برنامه را برمی گرداند. اگر تفاوت currMillis - prevMillisبزرگتر از مقدار متغیر فاصلهپس این بدان معناست که بیش از یک ثانیه از شروع اجرای برنامه گذشته است و شما باید مقدار متغیر را ذخیره کنید. currMillisبه یک متغیر prevMillisسپس عملیات محصور شده در بدنه سازه را انجام دهید. اگر تفاوت currMillis - prevMillisکمتر از مقدار متغیر فاصله، سپس یک ثانیه هنوز بین چرخه های اسکن برنامه سپری نشده است و عملیات محصور در بدنه سازه نادیده گرفته می شود.

خوب، در پایان مقاله، ویدئویی از نویسنده:

لطفاً جاوا اسکریپت را فعال کنید تا نظرات کار کنند.

سنسورهای مادون قرمز (IR، IR) معمولاً برای اندازه‌گیری فاصله استفاده می‌شوند، اما می‌توان از آنها برای تشخیص اجسام نیز استفاده کرد. با اتصال چندین سنسور IR به آردوینو، می توانید ایجاد کنید دزدگیر.

بررسی اجمالی

سنسورهای مادون قرمز (IR، IR) معمولاً برای اندازه‌گیری فاصله استفاده می‌شوند، اما می‌توان از آنها برای تشخیص اجسام نیز استفاده کرد. سنسورهای IR از یک فرستنده مادون قرمز و یک گیرنده مادون قرمز تشکیل شده اند. فرستنده پالس های تابش مادون قرمز ساطع می کند در حالی که گیرنده هر گونه بازتابی را تشخیص می دهد. اگر گیرنده یک انعکاس را تشخیص دهد، به این معنی است که یک جسم در فاصله ای در جلوی سنسور وجود دارد. اگر انعکاس نباشد، شیئی هم وجود ندارد.

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

با اتصال چند سنسور IR به آردوینو، می توانیم یک دزدگیر ساده بسازیم. ما سنسورها را روی قاب در نصب خواهیم کرد و با تراز کردن صحیح سنسورها، می‌توانیم تشخیص دهیم که شخصی از در عبور می‌کند. وقتی این اتفاق بیفتد، سیگنال خروجی سنسور IR تغییر می کند و ما با خواندن مداوم خروجی سنسورها با آردوینو، این تغییر را تشخیص می دهیم. V این مثالما می دانیم که هنگامی که خوانش خروجی سنسور مادون قرمز از 400 بیشتر شود، یک شی از در عبور می کند. وقتی این اتفاق بیفتد، آردوینو زنگ هشدار را راه اندازی می کند. برای تنظیم مجدد زنگ، کاربر می تواند دکمه را فشار دهد.

اجزاء

  • 2 x سنسور فاصله IR;
  • 1 عدد آردوینو مگا 2560;
  • 1 x زنگ؛
  • دکمه 1 x;
  • مقاومت 1 x 470 اهم؛
  • 1 x ترانزیستور NPN؛
  • جامپرها

نمودار اتصال

نمودار این پروژه در شکل زیر نشان داده شده است. خروجی های دو سنسور IR به پایه های A0 و A1 متصل می شوند. دو پایه دیگر به 5 ولت و GND متصل هستند. یک زنگ 12 ولتی از طریق ترانزیستور به پایه 3 وصل می شود و دکمه ای که برای خاموش کردن آلارم استفاده می شود به پایه 4 متصل می شود.


عکس زیر نشان می دهد که چگونه حسگرها را برای این آزمایش به قاب درب چسباندیم. البته در صورت استفاده مداوم سنسورها را متفاوت نصب می کردید.


نصب و راه اندازی

  1. پایه های 5 ولت و GND برد آردوینو را به پایه های پاور و GND سنسورها وصل کنید. شما همچنین می توانید برق خارجی را برای آنها تامین کنید.
  2. سیم های خروجی سنسورها را به پایه های A0 و A1 برد آردوینو وصل کنید.
  3. پایه 3 آردوینو را از طریق یک مقاومت 1K به پایه ترانزیستور وصل کنید.
  4. 12 ولت را به کلکتور ترانزیستور اعمال کنید.
  5. سیم مثبت زنگ 12 ولت را به امیتر و سیم منفی را به ریل زمین وصل کنید.
  6. پایه 4 را از طریق یک دکمه به پایه 5 ولت وصل کنید. به دلایل ایمنی، همیشه بهتر است این کار را از طریق یک مقاومت کوچک اضافی انجام دهید تا از جریان جریان بالا جلوگیری کنید.
  7. برد آردوینو را از طریق کابل USB به کامپیوتر خود متصل کرده و با استفاده از Arduino IDE برنامه را روی میکروکنترلر آپلود کنید.
  8. برد آردوینو را با استفاده از منبع تغذیه، باتری یا کابل USB روشن کنید /

کد

const int buzzer = 3; // پین 3 یک خروجی زنگ هشدار int pushbutton = 4 است. // پین 4 ورودی تنظیمات خالی دکمه () است (pinMode (آژیر، OUTPUT)؛ // پایه 3 را روی حالت خروجی pinMode (دکمه فشاری، INPUT) تنظیم کنید؛ // پایه 4 را روی ورودی تنظیم کنید) حلقه خالی () (/ / خروجی هر دو سنسور را بخوانید و نتیجه را با آستانه int sensor1_value = analogRead (A0)؛ int sensor2_value = analogRead (A1)؛ if (sensor1_value> 400 || sensor2_value> 400) (در حالی که (درست) (digitalWrite (buz) , HIGH) ؛ // فعال کردن آلارم در صورتی که (digitalRead (دکمه فشاری) == HIGH) شکسته شود؛)) other (digitalWrite (buzzer, LOW)؛ // غیر فعال کردن زنگ هشدار))

ویدئو