فهرست مطالب:

PIR زنگ هشدار به WiFi (و اتوماسیون خانگی): 7 مرحله (همراه با تصاویر)
PIR زنگ هشدار به WiFi (و اتوماسیون خانگی): 7 مرحله (همراه با تصاویر)

تصویری: PIR زنگ هشدار به WiFi (و اتوماسیون خانگی): 7 مرحله (همراه با تصاویر)

تصویری: PIR زنگ هشدار به WiFi (و اتوماسیون خانگی): 7 مرحله (همراه با تصاویر)
تصویری: Crypto Pirates Daily News - January 21st 2022 - Latest Crypto News Update 2024, نوامبر
Anonim
Image
Image
PIR زنگ هشدار به WiFi (و اتوماسیون خانگی)
PIR زنگ هشدار به WiFi (و اتوماسیون خانگی)

بررسی اجمالی

این دستورالعمل به شما این امکان را می دهد که آخرین تاریخ/زمان (و اختیاری سابقه زمان) زمانی که PIR های هشدار خانه (حسگرهای مادون قرمز منفعل) شما فعال شده اند را در نرم افزار اتوماسیون خانگی خود مشاهده کنید. در این پروژه ، نحوه استفاده از OpenHAB (نرم افزار رایگان اتوماسیون خانگی ، که من شخصاً از آن استفاده می کنم) را مورد بحث قرار خواهم داد ، اگرچه با هر نرم افزار یا برنامه دیگر اتوماسیون خانگی که از MQTT پشتیبانی می کند (که بعداً در این مقاله توضیح داده شد) نیز کار می کند. این دستورالعمل مراحل لازم را در مورد نحوه اتصال یک برد مدار و Wemos D1 mini (یک برد IOT که از تراشه ESP8266 استفاده می کند) که به زنگ هشدار در جعبه کنترل زنگ هشدار شما ضربه می زند تا زمانی که یک منطقه (شامل یک یا چند PIR) فعال می شود ، Wemos پیامی را به صورت بی سیم با استفاده از پروتکل MQTT به نرم افزار اتوماسیون خانگی شما ارسال می کند که به نوبه خود آخرین تاریخ/زمان آن ماشه را نمایش می دهد. کد آردوینو برای برنامه ریزی Wemos نیز ارائه شده است.

معرفی

تصویر بالا چیزی است که من از طریق یکی از صفحه های برنامه OpenHAB در iPhone خود می بینم. متن تاریخ/زمان به صورت رنگی کدگذاری شده است تا سریعتر از زمان فعال شدن PIR نشان دهد - قرمز (در 1 دقیقه گذشته فعال می شود) ، نارنجی (در 5 دقیقه گذشته فعال می شود) ، سبز (در 30 دقیقه گذشته فعال می شود) نشان داده می شود. ، آبی (در آخرین ساعت فعال می شود) یا در غیر این صورت ، سیاه. با کلیک بر روی تاریخ/زمان ، نمای تاریخی از راه اندازهای PIR نمایش داده می شود ، جایی که 1 به معنای فعال شدن است و 0 بیکار است. موارد زیادی برای این مورد وجود دارد ، به عنوان مثال می تواند راه حل حضور شما در خانه را تکمیل کند ، می تواند حرکت را در صورت نبودن تشخیص دهد و از طریق قوانین OpenHAB ، اعلان ها را به تلفن خود ارسال کنید ، می توانید از من استفاده کنید تا ببینید آیا فرزندان من هستند بیدار شدن در نیمه شب ، توسط PIR که در خارج از اتاق خواب آنها قرار دارد!

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

مفروضات

این دستورالعمل فرض می کند که قبلاً دارید (یا راه اندازی می کنید):

  • بدیهی است که یک سیستم زنگ خطر خانه با PIRs (سنسورهای مادون قرمز غیرفعال) وجود دارد و شما برای اتصال سیم کشی لازم به جعبه کنترل زنگ هشدار دسترسی دارید.
  • OpenHAB (نرم افزار رایگان اتوماسیون خانگی منبع باز) در حال اجرا است ، اگرچه همانطور که گفته شد باید با هر نرم افزار اتوماسیون خانگی کار کند که می تواند شامل اتصال MQTT باشد. متناوبا ، شما می توانید کد را متناسب با نیازهای خود تغییر دهید.
  • کارگزار Mosquitto MQTT (یا مشابه) نصب شده و با OpenHAB پیکربندی شده است (MQTT یک پروتکل نوع اشتراک/انتشار پیام است که سبک است و برای ارتباط بین دستگاه ها عالی است)

اگر OpenHAB و کارگزار MQTT را اجرا نمی کنید ، این مقاله عالی را در وب سایت MakeUseOf ببینید

من به چه چیزی احتیاج دارم؟

برای ایجاد کنترلر بی سیم ، باید قسمت های زیر را منبع کنید:

  • Wemos D1 mini V2 (دارای CHIP بی سیم ESP8266 داخلی)
  • یک مقایسه کننده LM339 (این امر PIR را در حالت آماده به کار در مقابل فعال شده بررسی می کند)
  • منبع تغذیه 5 ولت DC برای Wemos (OR ، مبدل باک DC-DC. توجه: تنظیم کننده ولتاژ LM7805 ممکن است برای این برنامه کار نکند همانطور که بعداً در این پروژه مورد بحث قرار گرفت)
  • دو مقاومت برای تقسیم ولتاژ (اندازه بستگی به ولتاژهای زنگ هشدار شما دارد ، که بعداً در پروژه مورد بحث قرار گرفت)
  • یک مقاومت 1K اهم برای کنترل قدرت LM339 به عنوان یک مقاومت کششی عمل می کند
  • یک ماسفت 2N7000 (یا مشابه) برای روشن کردن منطقی LM339 (احتمالاً اختیاری ، که بعداً در پروژه مورد بحث قرار گرفت)
  • یک نان برد با اندازه مناسب برای راه اندازی و آزمایش مدار
  • یک دسته سیم تخته نان برای اتصال همه چیز به یکدیگر
  • ابزار مورد نیاز: برش های جانبی ، سیم تک هسته ای
  • چند متری DC (اجباری!)

مرحله 1: جعبه کنترل سیستم هشدار دهنده

جعبه کنترل سیستم هشدار دهنده
جعبه کنترل سیستم هشدار دهنده

ابتدا چند هشدار و سلب مسئولیت

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

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

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

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

  • تاریخ/زمان تنظیم نشده بود (برای پیکربندی مجدد به کد اصلی و دنباله کلید از دفترچه راهنما نیاز داشتم)
  • این که باتری پشتیبان متصل نبود (تعمیر آسان ، من فقط فراموش کرده بودم که باتری را دوباره وصل کنم)

3. در زنگ هشدار من ، 4 بلوک اتصال منطقه x (با برچسب Z1 -Z4) برای اتصال PIR به صفحه اصلی زنگ هشدار وجود دارد - اما سیستم زنگ خطر من در واقع قادر به 8 منطقه است. هر بلوک اتصال منطقه می تواند هر کدام 2 x منطقه اجرا کند (Z1 Z1 و Z5 ، Z2 Z2 و Z6 و غیره). سیستم زنگ هشدار دارای محافظت در برابر دستکاری برای جلوگیری از گفتن کسی ، بازکردن درب روی سیستم زنگ هشدار همانطور که در بالا ذکر شد ، یا قطع سیم ها به یک PIR است. از طریق مقاومت های EOL (انتهای خط) بین هرگونه دستکاری منطقه تمایز قائل می شود. اینها مقاومتهای با اندازه خاصی هستند که در "انتهای خط" قرار دارند - به عبارت دیگر ، در داخل PIR (یا سوئیچ دستکاری جعبه کنترل ، یا جعبه آژیر یا هر چیزی که به آن منطقه وصل شده است) همانطور که گفته شد ، این مقاومتها به عنوان "دستکاری" استفاده می شوند. حفاظت ' - از نظر فنی ، اگر کسی کابل ها را به PIR قطع کند - زیرا سیستم زنگ خطر انتظار دارد مقاومت خاصی از آن PIR مشاهده شود ، در صورت تغییر مقاومت ، فرض بر این است که شخصی سیستم را دستکاری کرده و زنگ خطر را فعال می کند.

مثلا:

در زنگ هشدار من ، منطقه "Z4" دارای 2 سیم است ، یکی به PIR در راهرو من خاموش می شود و دیگری به سوئیچ دستکاری جعبه کنترل هشدار خاموش می شود. داخل PIR راهرو ، دارای مقاومت 3300 اهم است. سیم دیگری که به سوئیچ دستکاری جعبه کنترل می رود ، دارای مقاومت 6800 اهم است که به صورت سری سیم کشی شده است. اینگونه است که سیستم زنگ هشدار (منطقی) بین دستکاری کننده های "Z4" و "Z8" تمایز قائل می شود. به همین ترتیب ، منطقه "Z3" دارای یک PIR (با مقاومت 3300 اهم در آن) و همچنین سوئیچ گیرنده آژیر (با مقاومت 6800 اهم در آن) است که "Z7" را تشکیل می دهد. نصب کننده زنگ هشدار را از قبل پیکربندی کرده بود تا بداند چه دستگاهی به هر ناحیه وصل شده است (و اندازه مقاومت EOL را متناسب با آن تغییر داده است ، زیرا سیستم زنگ هشدار طوری برنامه ریزی شده است که اندازه های مختلف مقاومت های EOL را اندازه گیری کند. به هیچ وجه نباید ارزش این مقاومت ها را تغییر دهید!)

بنابراین بر اساس موارد فوق ، زیرا در هر ناحیه ممکن است چندین دستگاه نیز متصل شده باشد (با مقادیر مقاومت متفاوت) ، و فرمول V = IR (ولتاژ = آمپر x مقاومت) را به خاطر بسپارید ، این نیز ممکن است به این معنی باشد که هر ناحیه ممکن است ولتاژهای متفاوتی داشته باشد. که ما را به مرحله بعدی هدایت می کند ، اندازه گیری هر منطقه IDLE در مقابل ولتاژ TRIGGERED…

مرحله 2: اندازه گیری ولتاژ منطقه زنگ خطر

اندازه گیری ولتاژ منطقه زنگ خطر
اندازه گیری ولتاژ منطقه زنگ خطر
اندازه گیری ولتاژ منطقه زنگ خطر
اندازه گیری ولتاژ منطقه زنگ خطر

هنگامی که به صفحه اصلی سیستم زنگ هشدار خود دسترسی پیدا کردید (و در صورت داشتن سوئیچ دستکاری (در صورت داشتن آن) ، مانند مرحله قبلی) سیستم هشدار خود را دوباره روشن کنید. اکنون باید ولتاژ هر ناحیه را هنگامی که IDLE آن (بدون حرکت در مقابل PIR) در مقابل TRIGGERED (PIR حرکت را تشخیص داده است) اندازه گیری کنیم. یک قلم و کاغذ بردارید تا بتوانید مقادیر ولتاژ خود را یادداشت کنید.

هشدار: بیشتر سیستم هشدار دهنده شما به احتمال زیاد روی 12 ولت DC کار می کند ، با این حال تغذیه اولیه آن 220 ولت (یا 110 ولت) AC است و ترانسفورماتور قدرت را از AC به DC تبدیل می کند. دفترچه راهنما را بخوانید و احتیاط بیشتری را انجام دهید تا مطمئن شوید هیچ پایانه AC را اندازه گیری نمی کنید! طبق تصویر سیستم هشدار من در این صفحه ، می بینید که پایین تصویر منبع تغذیه AC است که به 12 ولت DC تبدیل شده است. ما در حال اندازه گیری 12 ولت DC در جعبه های قرمز برجسته هستیم. هرگز برق AC را لمس نکنید. بسیار مراقب باشید!

اندازه گیری ولتاژ PIR

من 4 عدد PIR به Z1 از طریق Z4 متصل دارم. هر یک از مناطق خود را به صورت زیر اندازه گیری کنید.

  1. ابتدا ، پایانه GND و پایانه های منطقه را در صفحه زنگ هشدار شناسایی کنید. من این موارد را در تصویری که از دفترچه راهنمای زنگ بوش من نشان داده شده است برجسته کرده ام.
  2. مولتی متر خود را گرفته و اندازه گیری ولتاژ خود را روی 20 ولت DC تنظیم کنید. کابل مشکی (COM) را از مولتی متر خود به ترمینال GND روی زنگ وصل کنید. سیم قرمز (+) مولتی متر خود را در منطقه اول - در مورد من با برچسب "Z1" قرار دهید. قرائت ولتاژ را بنویسید. مراحل مشابه را برای مناطق باقی مانده انجام دهید. اندازه گیری ولتاژ من به شرح زیر است:
  • Z1 = 6.65 ولت
  • Z2 = 6.65 ولت
  • Z3 = 7.92V
  • Z4 = 7.92V

همانطور که در بالا ذکر شد ، دو منطقه اول من فقط PIR ها را به آنها متصل کرده اند. دو منطقه اخیر دارای هر دو PIR و حفاظت از دستکاری در آنها است (جعبه کنترل Z3 ، جعبه کنترل Z4 ، دستکاری آژیر Z4) به تفاوت ولتاژ توجه کنید.

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

  • Z1 = 0V
  • Z2 = 0V
  • Z3 = 4.30 ولت
  • Z4 = 4.30 ولت

همانطور که در بالا ذکر شد ، می بینم که وقتی مناطق 1 و 2 فعال می شوند ، ولتاژ از 6.65 ولت به 0 ولت کاهش می یابد. اما هنگامی که مناطق 3 و 4 فعال می شوند ، ولتاژ از 7.92V به 4.30V کاهش می یابد.

اندازه گیری منبع تغذیه 12 ولت

ما از نیروگاه 12 ولت DC از جعبه کنترل زنگ هشدار برای تغذیه پروژه خود استفاده خواهیم کرد. ما باید ولتاژ تغذیه 12 ولت DC زنگ را اندازه گیری کنیم. اگرچه در حال حاضر 12 ولت را بیان می کند ، اما ما باید خواندن دقیق تری را بدانیم. در مورد من ، در واقع 13.15V خوانده می شود. این را بنویسید ، در مرحله بعد به این مقدار نیاز خواهید داشت.

چرا ولتاژ را اندازه گیری می کنیم؟

دلیل اینکه ما نیاز به اندازه گیری ولتاژ برای هر PIR داریم ، مداری است که ایجاد می کنیم. ما از یک تراشه مقایسه کننده چهار دیفرانسیل LM339 (یا مقایسه کننده quad op-amp) به عنوان جزء اصلی الکتریکی برای این پروژه استفاده خواهیم کرد. LM339 دارای 4 مقایسه کننده ولتاژ مستقل (4 کانال) است که هر کانال 2 برابر ولتاژ ورودی می گیرد (یک ورودی معکوس (-) و یک ورودی غیر معکوس (+) ، نمودار را ببینید) اگر ولتاژ ولتاژ ورودی معکوس باید کمتر از ولتاژ غیر معکوس ، سپس خروجی مربوط به آن به زمین کشیده می شود. به همین ترتیب ، اگر ولتاژ ورودی غیر معکوس از ورودی معکوس کمتر شود ، خروجی تا Vcc کشیده می شود. به راحتی ، در خانه من 4 PIR/zone زنگ خطر دارم - بنابراین هر ناحیه به هر کانال روی مقایسه کننده وصل می شود. اگر بیش از 4 x PIR دارید ، به یک مقایسه کننده با کانال های بیشتر یا LM339 دیگر نیاز دارید!

توجه: LM339 در نانو آمپر مصرف می کند ، بنابراین بر مقاومت EOL سیستم زنگ خطر موجود تأثیر نمی گذارد.

اگر این مسئله گیج کننده است ، به هر حال به مرحله بعدی بروید ، پس از اتصال به آن معنا پیدا می کند!

مرحله 3: ایجاد تقسیم کننده ولتاژ

Image
Image

تقسیم کننده ولتاژ چیست؟

تقسیم ولتاژ مداری است که دارای 2 مقاومت x (یا بیشتر) به صورت سری است. ولتاژ را در (Vin) به اولین مقاومت (R1) می دهیم پای دیگر R1 به پایه اول مقاومت دوم (R2) متصل می شود و انتهای دیگر R2 به GND متصل می شود. سپس یک ولتاژ خروجی (Vout) از اتصال بین R1 و R2 می گیریم. این ولتاژ به ولتاژ مرجع ما برای LM339 تبدیل می شود. برای کسب اطلاعات بیشتر در مورد نحوه کار تقسیم کننده های ولتاژ ، به ویدیوی یوتیوب Adohms مراجعه کنید

(توجه: مقاومت ها قطبی ندارند ، بنابراین می توان آنها را به هر صورت سیم کشی کرد)

محاسبه ولتاژ مرجع ما

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

زنگ هشدارم را مثال می زنم…

ولتاژهای بیکار منطقه Z1 = 6.65V ، Z2 = 6.65V ، Z3 = 7.92V ، Z4 = 7.92V بودند. بنابراین کمترین ولتاژ خالی 6.65 ولت است

ولتاژهای منطقه عبارت بودند از: Z1 = 0V ، Z2 = 0V ، Z3 = 4.30V ، Z4 = 4.30V. بنابراین بیشترین ولتاژ تحریک شده 4.30V است

بنابراین ما باید یک عدد را در نیمه راه بین 4.30V و 6.65V انتخاب کنیم (لازم نیست دقیق ، فقط تقریباً) در مورد من ، ولتاژ مرجع من باید در حدود 5.46V باشد. توجه: اگر کمترین ولتاژ فعال و بیشترین ولتاژ تحریک شده به دلیل وجود چند ناحیه در محدوده ولتاژهای مختلف بسیار نزدیک یکدیگر هستند ، ممکن است نیاز به ایجاد 2 یا بیشتر تقسیم کننده ولتاژ داشته باشید.

محاسبه مقادیر مقاومت ما برای تقسیم ولتاژ

اکنون ما یک ولتاژ مرجع داریم ، ما باید محاسبه کنیم که چه اندازه مقاومت نیاز داریم تا یک تقسیم کننده ولتاژ ایجاد کنیم که ولتاژ مرجع ما را تأمین کند. ما از منبع ولتاژ 12V DC (Vs) از زنگ استفاده می کنیم. با این حال ، همانطور که در مرحله قبل هنگام اندازه گیری تغذیه DC 12V ما در واقع 13.15V دریافت کردیم. ما باید تقسیم ولتاژ را با استفاده از این مقدار به عنوان منبع محاسبه کنیم.

محاسبه Vout با استفاده از قانون اهم…

Vout = Vs x R2 / (R1 + R2)

… یا از ماشین حساب تقسیم ولتاژ آنلاین استفاده کنید:-)

شما باید مقادیر مقاومت را آزمایش کنید تا به خروجی مورد نظر خود برسید. در مورد من ، با R1 = 6.8k اهم و R2 = 4.7K اهم کار کرد ، که به صورت طولانی به شرح زیر محاسبه می شود:

Vout = Vs x R2 / (R1 + R2)

Vout = 13.15 x 4700 / (6800 + 4700)

Vout = 61 ، 805 /11 ، 500

Vout = 5.37V

مرحله 4: LM339 را سیم کشی کنید

سیم کشی Wemos D1 Mini
سیم کشی Wemos D1 Mini

تقسیم ولتاژ به ورودی معکوس LM339

همانطور که قبلاً در مورد مقایسه کننده LM339 صحبت شد ، 2 ورودی طول می کشد. یکی ولتاژ از هر PIR به هر کانال بدون مبدل (+) پایانه ، دیگری ولتاژ مرجع ما به ترمینال معکوس (-) ما خواهد بود. ولتاژ مرجع باید هر 4 ورودی معکوس مقایسه کننده را تغذیه کند. قبل از انجام این مراحل ، سیستم زنگ هشدار خود را خاموش کنید.

  • سیم را از بلوک 12 ولت DC روی سیستم زنگ هشدار به + ریل روی تخته نان خود بکشید *
  • سیم را از بلوک GND روی سیستم زنگ هشدار به راه آهن بکشید - روی تخته نان خود **
  • مقایسه کننده LM339 را در وسط تخته نان نصب کنید (شکاف نزدیک به پین 1 نشان می دهد)
  • برای ایجاد یک مدار تقسیم ولتاژ و سیم برای خروج ولتاژ تقسیم شده ، مقاومتهای 2 x را نصب کنید
  • سیم ها را از "ولتاژ تقسیم شده" Vout به هر پایانه معکوس LM339 اجرا کنید

* نکته: در صورت امکان از یک گیره تمساح برای قدرت استفاده کنید ، زیرا این امر باعث می شود که منبع تغذیه روشن/خاموش به پروژه شما آسان شود ** مهم! اگر Wemos را از پنل زنگ هشدار می دهید ، ممکن است MOSFET مورد نیاز باشد! در مورد من ، LM339 ، Wemos و Alarm همگی از یک منبع تغذیه دریافت می کنند (یعنی: خود سیستم هشدار دهنده) این به من اجازه می دهد تا با یک اتصال برق ، همه چیز را روشن کنم. با این حال ، به طور پیش فرض پین های GPIO روی Wemos به عنوان پین های "INPUT" تعریف می شوند - به این معنی که آنها هر ولتاژی را که به آنها وارد می شود می گیرند و برای ارائه سطوح صحیح ولتاژ (حداقل/حداکثر سطوح) به آن منبع اعتماد می کنند تا Wemos برنده شود " t تصادف کرده یا بسوزد در مورد من ، سیستم هشدار قدرت خود را می گیرد و دنباله راه اندازی خود را بسیار سریع شروع می کند - در واقع آنقدر سریع ، که این کار را قبل از اینکه Wemos بوت شود و پین های GPIO را به عنوان "INPUT_PULLUP" (ولتاژ کشیده شده داخل تراشه) این بدان معنا نیست که اختلاف ولتاژ باعث می شود Wemos با قدرت کامل کل سیستم خراب شود. تنها راه حل آن می توان به صورت دستی خاموش و روشن کردن Wemos بود. برای حل این مشکل ، MOSFET اضافه شده و به عنوان "سوئیچ منطقی" برای فعال کردن LM339 عمل می کند. این به Wemos اجازه می دهد تا بوت شود ، 4 پین مقایسه کننده GPIO خود را به عنوان "INPUT_PULLUP" تنظیم کند ، چند ثانیه به تأخیر بیندازد و سپس (از طریق پین GPIO دیگر D5 که به عنوان خروجی تعریف شده است) سیگنال "HIGH" را از طریق GPIO pin D5 به MOSFET ارسال کند ، که به طور منطقی LM339 را روشن می کند. من سیم کشی را در بالا توصیه می کنم ، اما اگر متوجه شدید که Wemos مانند من خراب می شود ، باید MOSFET را با مقاومت 1k اهم پایین بکشید. برای کسب اطلاعات بیشتر در مورد چگونگی انجام این کار ، به انتهای این دستورالعمل مراجعه کنید.

مناطق زنگ خطر برای ورودی های غیر معکوس LM339

اکنون باید سیم هایی را از هر ناحیه در صفحه کنترل زنگ هشدار به ورودی های مقایسه کننده LM339 اجرا کنیم. در حالی که سیستم زنگ خطر هنوز خاموش است ، برای هر ناحیه یک سیم به هر ورودی غیر معکوس (+) در مقایسه کننده LM339 وارد کنید. به عنوان مثال ، در سیستم من:

  • سیم از Z1 به ورودی LM339 1+ می رود
  • سیم از Z2 به ورودی LM339 2+ می رود
  • سیم از Z3 به ورودی LM339 3+ می رود
  • سیم از Z4 به ورودی LM339 4+ می رود

در صورت یادآوری ، به پین کردن LM339 در مرحله 3 مراجعه کنید (این کد با تصویر ورق نورد کدگذاری شده است). پس از اتمام کار ، نان برد شما باید شبیه تصویر نشان داده شده در این مرحله باشد.

سیستم هشدار را روشن کرده و ولتاژ خروجی از تقسیم ولتاژ را اندازه گیری کنید تا مطمئن شوید که برابر ولتاژ مرجع شما است که قبلاً محاسبه شده است.

مرحله 5: سیم کشی Wemos D1 Mini

سیم کشی Wemos D1 mini

اکنون همه ورودی های LM339 مورد مراقبت قرار گرفته اند ، اکنون باید سیم Wemos D1 mini را سیم کشی کنیم. هر پین خروجی LM339 به یک پین Wemos GPIO (ورودی/خروجی عمومی) می رود که ما از طریق کد به عنوان یک پین کشویی ورودی تعیین می کنیم. Wemos حداکثر 5 ولت را به عنوان ولتاژ Vcc (منبع ورودی) مصرف می کند (اگرچه این حالت را تا 3.3 ولت تنظیم می کند) ما از یک تنظیم کننده ولتاژ LM7805 بسیار رایج استفاده می کنیم (ویرایش: زیر را ببینید) تا ریل 12 ولت را روی تخته نان تا پایین رها کنید. 5 ولت برای تغذیه Wemos. برگه داده LM7805 نشان می دهد که ما به خازنی نیاز داریم که در هر طرف رگولاتور سیم کشی شده باشد تا بتواند برق را تنظیم کند ، همانطور که در تصویر ورق نشان داده شده است.پایه بلندتر خازن مثبت (+) است ، بنابراین مطمئن شوید که این سیم به طریقی درست وصل شده است.

تنظیم کننده ولتاژ ولتاژ (پین سمت چپ) ، زمین (پین وسط) و ولتاژ را (پین سمت راست) می گیرد اگر تنظیم کننده ولتاژ شما از LM7805 متغیر است ، پین را دوباره بررسی کنید.

(ویرایش: متوجه شدم آمپرهایی که از صفحه زنگ هشدار می آیند برای مدیریت LM7805 بسیار زیاد است. این باعث گرمای زیادی در هیت سینک کوچک LM7805 شده و باعث خرابی آن می شود و به نوبه خود باعث توقف Wemos می شود. من در عوض LM7805 و خازن ها را با مبدل باک DC-DC جایگزین کردم و از آن زمان هیچ مشکلی نداشتم. اتصال آنها بسیار آسان است. به سادگی ولتاژ ورودی را از زنگ هشدار وصل کنید ، ابتدا به مولتی متر متصل شوید و از پیچ پتانسیومتر استفاده کنید و تنظیم کنید تا ولتاژ خروجی V 5V باشد)

پین های ورودی GPIO

برای این پروژه ، ما از پین های زیر استفاده می کنیم:

  • منطقه Z1 => پین D1
  • منطقه Z2 => پین D2
  • منطقه Z3 => پین D3
  • منطقه Z4 => پین D5

مطابق تصویر ورق نورد نشان داده شده در این مرحله ، خروجی ها را از LM339 به پین های GPIO مربوط به صفحه Wemos وصل کنید. باز هم ، من ورودی ها و خروجی های منطبق را رنگ آمیزی کرده ام تا بتوانم راحت تر ببینم چه چیزی به چه چیزی اشاره می کند. هر پین GPIO در آردوینو به عنوان "INPUT_PULLUP" تعریف شده است ، به این معنی که در حالت عادی (IDLE) تا 3.3 ولت کشیده می شود و در صورت فعال شدن PIR ، LM339 آنها را به زمین می کشاند. کد تغییرات HIGH به LOW را تشخیص می دهد و پیامی را به صورت بی سیم به نرم افزار اتوماسیون خانگی شما ارسال می کند. اگر با این کار مشکلی دارید ، ممکن است ورودی های معکوس و غیر معکوس خود را برعکس داشته باشید (اگر ولتاژ PIR شما هنگام فعال شدن زیاد شود ، مانند بیشتر PIR های سرگرمی ، آنگاه می خواهید اتصالات راه دیگری در اطراف)

آردوینو IDE

Wemos را از روی صفحه بردار حذف کنید ، اکنون باید کد را روی آن بارگذاری کنیم (پیوند متناوب در اینجا) من در مورد نحوه انجام این کار به جزئیات نمی پردازم ، زیرا مقالات زیادی در وب در مورد بارگذاری کد به Wemos یا سایر ESP8266 وجود دارد. تخته های نوع کابل USB خود را به برد Wemos و رایانه خود وصل کرده و Arduino IDE را روشن کنید. کد را بارگیری کرده و در پروژه خود باز کنید. شما باید اطمینان حاصل کنید که برد صحیح برای پروژه شما نصب شده و بارگذاری شده و همچنین پورت COM صحیح انتخاب شده (Tools، Port). همچنین به کتابخانه های مناسب نصب شده نیاز دارید (PubSubClient، ESP8266Wifi) برای قرار دادن برد Wemos در طرح خود ، به این مقاله مراجعه کنید.

شما باید خطوط کد زیر را تغییر دهید و برای اتصال بی سیم خود SSID و رمز عبور خود را جایگزین کنید. همچنین ، آدرس IP را تغییر دهید تا به کارگزار MQTT خود اشاره کنید.

// وای فای

const char* ssid = "your_wifi_ssid_here"؛ const char* رمز عبور = "your_wifi_password_here"؛ // کارگزار MQTT IPAddress MQTT_SERVER (172 ، 16 ، 223 ، 254)

پس از تغییر ، کد خود را تأیید کنید و سپس از طریق کابل USB روی برد Wemos بارگذاری کنید.

یادداشت:

  • اگر از درگاه های مختلف GPIO استفاده می کنید ، باید کد را تنظیم کنید. اگر از مناطق بیشتر یا کمتر از من استفاده می کنید ، باید کد و TOTAL_ZONES = 4 را نیز تنظیم کنید. ثابت برای کت و شلوار
  • با راه اندازی سیستم هشدار دهنده من ، سیستم زنگ خطر را برای هر 4 x PIR آزمایش می کند که تمام GPIO متصل را به زمین می کشاند ، و باعث می شود Wemos فکر کند که مناطق در حال فعال شدن هستند. اگر فرض بر این باشد که سیستم هشدار در حال روشن شدن است ، کد در صورت مشاهده همه 4 منطقه x به طور همزمان ، ارسال پیام های MQTT را نادیده می گیرد.

پیوند بارگیری جایگزین کد در اینجا

مرحله 6: آزمایش و پیکربندی OpenHAB

تست و پیکربندی OpenHAB
تست و پیکربندی OpenHAB

تست MQTT

MQTT یک سیستم پیام "اشتراک / انتشار" است. یک یا چند دستگاه می توانند با "کارگزار MQTT" صحبت کرده و در یک موضوع خاص "مشترک" شوند. هرگونه پیام دریافتی از هر دستگاه دیگری که در همان موضوع "منتشر" شده است ، توسط کارگزار به تمام دستگاه هایی که مشترک آن شده اند ارسال می شود. این یک پروتکل بسیار سبک و ساده برای استفاده است و به عنوان یک سیستم محرک ساده مانند سیستم اینجا عالی است. برای آزمایش ، می توانید پیامهای MQTT ورودی از Wemos را به کارگزار MQTT خود با اجرای دستور زیر بر روی سرور Mosquitto خود مشاهده کنید (Mosquitto یکی از نرم افزارهای MQTT Broker موجود است). این فرمان مشترک پیامهای نگهدارنده ورودی می شود:

mosquitto_sub -v -t openhab/alarm/status

شما باید پیام های ورودی را از Wemos هر 30 ثانیه یا بیشتر با شماره "1" (به معنی "من زنده هستم") مشاهده کنید اگر "0" ثابت (یا بدون پاسخ) مشاهده می کنید ، هیچ ارتباطی وجود ندارد. هنگامی که مشاهده می کنید شماره 1 وارد می شود ، این بدان معناست که Wemos با کارگزار MQTT در حال ارتباط است (برای اطلاعات بیشتر در مورد نحوه عملکرد ، "MQTT Last Will and Testament" را جستجو کنید ، یا این ورودی واقعا خوب وبلاگ را ببینید)

هنگامی که ثابت کردید ارتباطات کاربردی است ، می توانیم آزمایش کنیم که وضعیت منطقه از طریق MQTT گزارش می شود. در مبحث زیر مشترک شوید (# یک حروف بزرگ است)

mosquitto_sub -v -t openhab/alarm/#

پیامهای معمولی وضعیت ، مانند آدرس IP خود Wemos باید وارد شوند. در مقابل یک PIR قدم بزنید ، همچنین باید ببینید که اطلاعات منطقه نشان می دهد که باز است ، سپس یک ثانیه یا بعد ، بسته می شود ، شبیه موارد زیر:

openhab/alarm/status 1

openhab/alarm/zone1 OPEN

openhab/alarm/zone1 بست

هنگامی که این کار کار می کند ، می توانیم OpenHAB را پیکربندی کنیم تا در GUI به خوبی نمایش داده شود.

پیکربندی OpenHAB

تغییرات زیر در OpenHAB مورد نیاز است:

فایل تبدیل 'alarm.map': (اختیاری ، برای آزمایش)

بسته = IdleOPEN = TriggeredNULL = ناشناس- = ناشناس

فایل تبدیل 'status.map':

0 = انجام نشد

1 = آنلاین -= پایین! NULL = ناشناخته

فایل "اقلام":

String alarmMonitorState "Alarm Monitor [MAP (status.map):٪ s]" {mqtt = "<[mqttbroker: openhab/alarm/status: state: default]"} String alarmMonitorIPAddress "Alarm Monitor IP [٪ s]" {mqtt = "<[mqttbroker: openhab/alarm/ipaddress: state: default]"} Number number1_Chart_Period "Zone 1 Chart" contact alarmZone1State "Zone 1 State [MAP (alarm.map):٪ s]" {mqtt = "<[mqttbroker: openhab/alarm/zone1: state: default "} String alarmZone1Trigger" PIR سالن [٪ 1 $ ta٪ 1 $ tr] "Number number2_Chart_Period" Chart 2 Chart "Contact alarmZone2State" Zone 2 State [MAP (alarm.map):٪ s] "{mqtt =" <[mqttbroker: openhab/alarm/zone2: state: default "} String alarmZone2Trigger" First Hall PIR [٪ 1 $ ta٪ 1 $ tr] "Number number3_Chart_Period" منطقه 3 نمودار "تماس با alarmZone3State" Zone 3 حالت [MAP (alarm.map):٪ s] "{mqtt =" <[mqttbroker: openhab/alarm/zone3: state: default "} String alarmZone3Trigger" PIR اتاق خواب [٪ 1 $ ta٪ 1 $ tr] "شماره zone4_Chart_Period "Zone 4 Chart" contact alarmZone4State "Zone 4 State [MAP (alarm.map):٪ s]" {mqtt = "<[mqttbroker: openha b/alarm/zone4: state: default "} String alarmZone4Trigger" PIR سالن اصلی [٪ 1 $ ta٪ 1 $ tr]"

فایل 'نقشه سایت' (شامل نمودار rrd4j):

آیتم نوشتاری = alarmZone1Trigger valuecolor = [<= 60 = "#ff0000"، <= 300 = "#ffa500"، <= 600 = "#008000"، 3600 = "#000000"] {Frame {Switch item = zone1_Chart_Period label = "Period" mappings = [0 = "Hour"، 1 = "Day"، 2 = "Week"] URL url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 0، zone1_Chart_Period = = Uninitialized] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 1] url تصویر = "https:// localhost: 8080/rrdchart.png" visibility = [zone1_Chart_Period == 2]}} مورد متن = alarmZone2Trigger valuecolor = [<= 60 = "#ff0000"، <= 300 = "#ffa500"، <= 600 = "#008000"، 3600 = "#000000"] {قاب {تغییر آیتم = zone2_Chart_Period label = "Period" mappings = [0 = "Hour"، 1 = "Day"، 2 = "Week"] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 0 ، zone2_Chart_Period == Uninitialized] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 1] url تصویر = "https:// localhost: 8080/rrdchart.png" visibility = [zone2_Chart_Period == 2]}} مورد متن = alarmZone3Trigger valuecolor = [<= 60 = "#ff0000"، <= 300 = "#ffa500"، <= 600 = "#008000"، 3600 = "#000000"] {Frame {Switch item = zone3_Chart_Period label = "Period" mappings = [0 = "ساعت" ، 1 = "روز" ، 2 = "هفته"] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 0، zone3_Chart_Period == Uninitialized] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 1] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone3_Chart_Period == 2]}} متن item = alarmZone4Trigger valuecolor = [<= 60 = "#ff0000"، <= 300 = "#ffa500"، <= 600 = "#008000"، 3600 = "#000000"] {قاب {سوئیچ مورد = zone4_Chart_Period label = " دوره "mappings = [0 =" ساعت "، 1 =" روز "، 2 =" هفته "] url تصویر =" https:// localhost: 8080/rrdchart.png "visibility = [zone4_Chart_Period == 0، zone4_Chart_Period == Uninitialized] تصویر url = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 1] url تصویر = "https:// localhost: 8080/rrdchart.png" visibility = [zone4_Chart_Period == 2] }} // اختیاری است اما برای تشخیص وضعیت و آدرس IP مفید است ss مورد متن = alarmMonitorState مورد متن = alarmMonitorIPAddress

فایل "قوانین":

قانون "تغییر وضعیت زنگ هشدار 1"

وقتی مورد alarmZone1State به OPEN تغییر کرد و سپس postUpdate (alarmZone1Trigger ، جدید DateTimeType ()) alarmZone1State.state = پایان بسته

قانون "تغییر وضعیت منطقه زنگ خطر 2"

هنگامی که مورد alarmZone2State به OPEN تغییر می کند و سپس postUpdate (alarmZone2Trigger ، DateTimeType جدید ()) alarmZone2State.state = پایان بسته

قانون "تغییر وضعیت منطقه زنگ خطر 3"

وقتی مورد alarmZone3State به OPEN تغییر کرد و سپس postUpdate (alarmZone3Trigger ، DateTimeType جدید ()) alarmZone3State.state = پایان بسته

قانون "تغییر وضعیت منطقه زنگ خطر 4"

وقتی مورد alarmZone4State به OPEN تغییر کرد و سپس postUpdate (alarmZone4Trigger ، جدید DateTimeType ()) alarmZone4State.state = پایان بسته

ممکن است لازم باشد پیکربندی OpenHAB فوق را کمی تغییر دهید تا متناسب با تنظیمات شما باشد.

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

موفق باشید!

توصیه شده: