فهرست مطالب:

سوئیچ کنترل صدا با استفاده از Alexa و Arduino: 10 مرحله (همراه با تصاویر)
سوئیچ کنترل صدا با استفاده از Alexa و Arduino: 10 مرحله (همراه با تصاویر)

تصویری: سوئیچ کنترل صدا با استفاده از Alexa و Arduino: 10 مرحله (همراه با تصاویر)

تصویری: سوئیچ کنترل صدا با استفاده از Alexa و Arduino: 10 مرحله (همراه با تصاویر)
تصویری: حامد عینی و فیگور جلوی هنی رامبد 2024, جولای
Anonim
سوئیچ کنترل صدا با استفاده از Alexa و Arduino
سوئیچ کنترل صدا با استفاده از Alexa و Arduino

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

لیست مواد

  1. ماژول رله 12 ولت ==> 4.2 دلار
  2. آردوینو uno ==> 8 دلار
  3. سنسور دما DHT11 ==> 3 دلار
  4. ماژول ESP8266 ==> 4.74 دلار
  5. N26 optocoupler ==> 0.60 دلار
  6. تنظیم کننده ولتاژ LM1117 ==> 0.60 دلار
  7. تخته نان ==> 2.2 دلار
  8. سیم های بلوز ==> 2.5 دلار
  9. دکمه را فشار دهید ==> 2.5 دلار

هزینه کل پروژه حدود 30 دلار است. این پروژه به سه قسمت تقسیم شده است. ابتدا ، ما از heroku برای ایجاد یک برنامه استفاده می کنیم. دوم ، ما یک مهارت آمازون الکسا برای پیاده سازی کار خود ایجاد می کنیم (مهمترین بخش). سوم ، سخت افزار خود را تنظیم کرده و با استفاده از Arduino IDE برنامه ریزی می کنیم.

مرحله 1: پیوند Heroku با GitHub

پیوند Heroku با GitHub
پیوند Heroku با GitHub
پیوند دادن Heroku با GitHub
پیوند دادن Heroku با GitHub
پیوند Heroku با GitHub
پیوند Heroku با GitHub

Heroku یک بستر ابری به عنوان سرویس (PaaS) است که از چندین زبان برنامه نویسی پشتیبانی می کند و به عنوان مدل استقرار برنامه وب مورد استفاده قرار می گیرد. ابتدا به سایت heroku بروید و یک حساب جدید ایجاد کنید یا در آنجا وارد شوید. پیوند در زیر داده شده است

وب سایت Heroku

اجازه دهید با ایجاد یک برنامه جدید شروع کنیم. وقتی برنامه را مستقر می کنید ، نام برنامه من "iottempswitch" داده شده است ، پیوند ایجاد می شود.

پس از ایجاد برنامه به GitHub بروید. GitHub/

در صورتی که حساب کاربری ندارید وارد شوید یا ثبت نام کنید. پس از ورود به سیستم ، مخزن جدیدی ایجاد کنید. هر نامی را که می خواهید انتخاب کنید ، وارد کنید و سپس ایجاد مخزن را فشار دهید. در صفحه بعدی روی README کلیک کنید ، در این صفحه توضیحاتی را که می خواهید با دیگران به اشتراک بگذارید ، ارائه دهید. پس از آن روی commit new file کلیک کنید. بعد ، روی دکمه بارگذاری کلیک کنید.

دو گزینه وجود دارد یا پوشه را بکشید و رها کنید یا فایل را انتخاب کنید. فایلهای مورد نیاز را از زیر بارگیری کنید. پس از انتخاب فایل ها تغییرات را فشار دهید. برنامه ای را که در Heroku ایجاد کرده اید باز کنید و سپس به قسمت استقرار بروید. پس از آن بر روی GitHub کلیک کنید. نام مخزنی را که در سمت GitHub ایجاد کرده اید بدهید. در مورد من Smart-Relay است. آن را کپی کرده و در اینجا جایگذاری کنید. هنگامی که پیوند شما نشان داده شد ، روی اتصال کلیک کنید. در مرحله بعد ، روی استقرار شعبه (دستی) کلیک کنید. پس از استقرار می توانید پیوند را در گزارش ورود به سیستم مشاهده کنید یا پیوند را در تنظیمات مشاهده کنید. بعداً وقتی مهارت آمازون را ایجاد می کنیم به این پیوند نیاز داریم.

مرحله 2: آمازون

آمازون
آمازون
آمازون
آمازون
آمازون
آمازون

جدیدترین تصاویر از مهارت Alexa

در سایت توسعه دهندگان آمازون از مهارت آمازون برای کنترل ماژول سوئیچ با تنظیم دما و رطوبت استفاده می کنیم.

به سایت توسعه دهندگان آمازون بروید. پیوند در زیر داده شده است.

وب سایت توسعه دهنده آمازون

  • همانطور که در شکل i4 نشان داده شده است به Developer console در بالا سمت راست بروید
  • به Alexa بروید و Alexa Skill Kit را انتخاب کنید و سپس با کلیک روی افزودن مهارت جدید ، مهارت جدیدی ایجاد کنید.

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

1. اطلاعات مهارت (همانطور که در تصویر i7 نشان داده شده است)

ما باید نوع مهارت ، زبان ، نام ، نام فراخوانی را ارائه دهیم.

نوع مهارت ==> سفارشی را انتخاب کنید

  • نام ==> هر نامی را انتخاب کنید.
  • نام فراخوانی ==> که هنگام برقراری ارتباط با الکسا استفاده می کنید. به عنوان مثال ؛- الکسا ، از سنسور بخواهید که ماشه را روشن کند یا الکسا ، چراغ را روشن کنید در اینجا نام فراخوانی سنسور و نور است.
  • زبان ==> انگلیسی (هند). با توجه به کشور خود انتخاب کنید

روی ذخیره و سپس next کلیک کنید

2. مدل تعامل

در اینجا ، ما از مهارت ساز استفاده می کنیم. بنابراین ، روی Launch Skill Builder کلیک کنید. صفحه ای را مشاهده می کنید که در تصویر i8 نشان داده شده است.

ابتدا اهداف جدیدی ایجاد می کنیم. روی Add (در سمت چپ) کلیک کنید و هر نامی که می خواهید از "smartswitch" استفاده کردم بگذارید

  • نام نوع شکاف "اندازه گیری_ نوع" و مقادیر شکاف "دما" و "رطوبت" را همانطور که در تصویر i9 نشان داده شده است وارد کنید.
  • پس از آن نام نوع شکاف "query" را اضافه کنید و مقادیر شکاف "what" و "is" همانطور که در تصویر i10 نشان داده شده است.

  • پس از آن نوع شکاف "switchstate" را اضافه کنید و مقدار اسلات همانطور که در تصویر i11 نشان داده شده است "روشن" و "خاموش" است.
  • یک نوع شکاف دیگر "مقیاس دما" اضافه کنید و مقدار اسلات همانطور که در تصویر i12 نشان داده شده است "فارنهایت" و "celcuis" است.
  • پس از آن نوع شکاف جدید را در اینجا اضافه می کنیم ، ما از نوع شکاف موجود استفاده می کنیم ، بنابراین باید روی استفاده از شکاف موجود کلیک کنیم. در اسلات موجود amazon.number را جستجو کرده و این را انتخاب کرده و اضافه کنید. پس از افزودن آن ، آن را در انواع شکاف ها مشاهده می کنید ، همانطور که در تصویر i13 نشان داده شده است.

بنابراین ما با انواع اسلات ها کار می کنیم که کل نوع اسلات مورد استفاده ما 5 است. حالا ، به مرحله بعدی بروید. روی قصد ایجاد شده ما کلیک کنید ، در مورد من این smartswitch است. در سمت راست شکاف قصد را مشاهده می کنید همانطور که در تصویر i14 نشان داده شده است.

  • یک اسلات جدید ایجاد کنید ، نام آن را "Switch_State" بگذارید و با استفاده از دکمه کشویی همانطور که در تصویر i15 نشان داده شده ، آن را به "switchstate" ترسیم کنید.
  • شکاف جدیدی ایجاد کنید ، نام آن را "Sensor_Values" بگذارید و همانطور که در تصویر i16 نشان داده شده است ، آن را روی "type_type" قرار دهید.
  • شکاف جدیدی ایجاد کنید ، نام آن را "query" بگذارید و همانطور که در تصویر i17 نشان داده شده است ، روی "query" قرار دهید.
  • پس از آن شکاف جدیدی "tmp_scale" ایجاد کرده و آن را مطابق تصویر i18 روی "tempscale" قرار دهید.
  • شکاف جدید "Numbers" را ایجاد کرده و آن را مانند "Amazon. Numbers" در تصویر i19 نشان دهید.

اکنون کار با اسلات Intent تمام شده است. ما از 5 اسلات قصد استفاده می کنیم. پس از این ما به Sample Utterances حرکت می کنیم همانطور که در تصویر i20 نشان داده شده است.

این نمونه اظهارات را اضافه کنید.

ماشه سوئیچ را روی {Numbers} درصد {tmp_scale} تنظیم کنید

{query} حالت تغییر است

ماشه سوئیچ {Switch_State}

تنظیم سوئیچ روی {Numbers} درجه {tmp_scale}

چرخاندن سوئیچ {Switch_State}

{query} switch {Switch_State}

{query} {Sensor_Values} فعلی است

پس از این مدل را ذخیره کرده و بسازید. منتظر بمانید تا مدل بعد از آن روی پیکربندی کلیک شود. پس از ساخت ، پیامی را مشاهده خواهید کرد که در تصویر i21 و i22 نشان داده شده است.

3. پیکربندی

HTTPS را انتخاب کرده و پیوندی را که هنگام ایجاد برنامه heroku ایجاد شده است ، اضافه کنید. در مورد من https://iottempswitch.herokuapp.com/ است. پس از افزودن پیوند ، روی next کلیک کنید ، همانطور که در تصویر i23 نشان داده شده است.

4. SSL Certificate گزینه دوم را انتخاب کنید و مطابق تصویر i24 روی next کلیک کنید.

ما مهارت خود را با موفقیت ایجاد کرده ایم

مرحله 3: آردوینو

آردوینو
آردوینو
آردوینو
آردوینو
آردوینو
آردوینو

Arduino IDE را باز کنید. سپس به File ==> Preference بروید

در Additional Boards Manager ، URL را کپی و جایگذاری کرده و مطابق تصویر i26 روی ok کلیک کنید.

arduino.esp8266.com/versions/2.4.0/package_…

  • با رفتن به Tools ==> Board ==> Board Board مدیر مدیر را باز کنید.
  • همانطور که در تصویر i27 نشان داده شده ، nordemcu را باز کرده و عبارت nodemcu را جستجو کنید.
  • پس از آن کتابخانه ESP8266WiFi را بارگیری کنید. مدیر کتابخانه را باز کنید: Sketch ==> شامل کتابخانه ==> مدیریت کتابخانه ها.
  • کتابخانه ESP8266WiFi را جستجو کرده و آن را نصب کنید.
  • برد ==> Generic ESP8266 Module را انتخاب کنید.
  • قبل از بارگذاری کد به سه کتابخانه نیاز داریم.

کتابخانه های مورد نیاز

این کتابخانه ها را به پوشه کتابخانه های آردوینو منتقل کنید

شما باید سه چیز را در کد SSID ، PWD و پیوند برنامه heroku خود تغییر دهید. پس از آن کد را بارگذاری کنید. برای ESP Module باید دکمه فلش را هنگام بارگذاری کد فشار دهید و سپس دکمه تنظیم مجدد را یکبار فشار دهید و سپس دکمه فلش را رها کنید. پس از بارگذاری کد ، ترمینال را باز کنید. خروجی را مشاهده خواهید کرد

مرحله 4: توضیحات کامپوننت

شرح کامپوننت
شرح کامپوننت
شرح کامپوننت
شرح کامپوننت
شرح کامپوننت
شرح کامپوننت
شرح کامپوننت
شرح کامپوننت

1. رله چیست

رله یک دستگاه الکترومغناطیسی است که برای جداسازی دو مدار به صورت الکتریکی و اتصال آنها به صورت مغناطیسی استفاده می شود. آنها دستگاههای بسیار مفیدی هستند و به یک مدار اجازه می دهند مدار دیگری را تغییر دهد در حالی که کاملاً جدا هستند. آنها اغلب برای اتصال یک مدار الکترونیکی (کار با ولتاژ پایین) به یک مدار الکتریکی که در ولتاژ بسیار بالا کار می کند ، استفاده می شوند. به عنوان مثال ، یک رله می تواند یک مدار باتری 5 ولت DC ایجاد کند تا یک مدار شبکه 230 ولت AC را تغییر دهد.

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

سوئیچ رله را می توان به دو قسمت ورودی و خروجی تقسیم کرد. بخش ورودی دارای یک سیم پیچ است که هنگامی که ولتاژ کمی از مدار الکترونیکی به آن وارد می شود ، میدان مغناطیسی ایجاد می کند. به این ولتاژ ولتاژ کار می گویند. رله های متداول در پیکربندی های مختلف ولتاژهای عملکردی مانند 6V ، 9V ، 12V ، 24V و غیره در دسترس هستند. بخش خروجی شامل کنتاکتورهایی است که به صورت مکانیکی متصل یا قطع می شوند. در یک رله اصلی سه کنتاکتور وجود دارد: معمولاً باز (NO) ، معمولاً بسته (NC) و معمولی (COM). بدون حالت ورودی ، COM به NC متصل است. هنگام اعمال ولتاژ کار ، سیم پیچ رله فعال می شود و COM تماس خود را با NO تغییر می دهد. پیکربندی های مختلف رله مانند SPST ، SPDT ، DPDT و غیره در دسترس هستند که تعداد مخاطبین تغییر متفاوتی دارند. با استفاده از ترکیب مناسب کنتاکتورها ، می توان مدار الکتریکی را خاموش و روشن کرد. جزئیات داخلی در مورد ساختار سوئیچ رله را دریافت کنید.

ترمینال COM ترمینال رایج است. اگر پایانه های COIL با ولتاژ نامی تغذیه شوند ، پایانه های COM و NO پیوستگی دارند. اگر پایانه های COIL روشن نشوند ، پایانه های COM و NO پیوستگی ندارند.

پایانه NC ترمینال معمولاً بسته است. این ترمینال است که می تواند روشن شود حتی اگر رله هیچ ولتاژ کافی برای کار دریافت نکند.

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

2. سنسور درجه حرارت DHT

DHT11 یک سنسور رطوبت و دما است که خروجی دیجیتال کالیبره شده را تولید می کند. DHT11 می تواند با هر کنترلر میکرو مانند Arduino ، Raspberry Pi و غیره ارتباط برقرار کند و نتایج آنی را بدست آورد. DHT11 یک سنسور کم رطوبت و دما است که قابلیت اطمینان بالا و ثبات طولانی مدت را فراهم می کند.

3. ESP8266 توضیحات کامل

ESP8266 WiFi Module یک SOC مستقل با مجموعه پروتکل TCP/IP است که می تواند به هر میکروکنترلر دسترسی به شبکه WiFi شما را بدهد. ESP8266 قادر به میزبانی یک عملکرد شبکه برنامه از یک برنامه دیگر است. هر ماژول ESP8266 با یک دستور AT از پیش برنامه ریزی شده است.

ESP8266 از APSD برای برنامه های VoIP و رابط های مشترک بلوتوث پشتیبانی می کند ، دارای یک RF خود کالیبره شده است که به آن اجازه می دهد در همه شرایط عملیاتی کار کند و نیازی به قطعات RF خارجی ندارد.

امکانات

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P) ،
  • پشته پروتکل TCP/IP نرم نرم افزاری
  • سوئیچ یکپارچه TR ، balun ، LNA ، تقویت کننده قدرت و شبکه منطبق
  • PLL های یکپارچه ، تنظیم کننده ، DCXO و واحدهای مدیریت توان
  • +قدرت خروجی 19.5dBm در حالت 802.11b
  • خاموش کردن جریان نشت <10uA
  • حافظه فلش 1 مگابایت
  • CPU یکپارچه کم مصرف 32 بیتی می تواند به عنوان پردازنده برنامه استفاده شود
  • SDIO 1.1 / 2.0 ، SPI ، UART
  • STBC ، 1 × 1 MIMO ، 2 × 1 MIMOA-MPDU و A-MSDU تجمع و فاصله حفاظتی 0.4ms
  • بیدار شوید و بسته ها را در کمتر از 2 میلی ثانیه ارسال کنید
  • مصرف برق در حالت آماده به کار <1.0 میلی وات (DTIM3)

توضیحات پین همانطور که در تصویر i34 نشان داده شده است.

برای اتصال ماژول ESP به Arduino UNO به تنظیم کننده ولتاژ Lm1117 3.3 یا هر رگولاتور نیاز داریم زیرا آردوینو قادر به ارائه 3.3 ولت به ESP8266 نیست.

توجه:- هنگام بارگذاری کد دکمه فلش را فشار دهید و سپس دکمه تنظیم مجدد را فشار دهید و سپس دکمه فلش را همانطور که در تصویر i29 نشان داده شده است رها کنید.

برای اتصال سنسور و رله DHT11 از دو پین GPIO ماژول ESP8266 استفاده می کنیم. پس از بارگذاری کد می توانید پین RX ، TX ، GPIO0 را جدا کنید. من از GPIO0 برای سنسور DHT11 و GPIO2 برای رله ها استفاده کرده ام. سنسور DHT11 با ESP8266 خوب کار می کند ، اما برای رله ها ما به یک چیز اضافی نیاز داریم ، به عنوان مثال ایزوله کننده opto یا اتصال دهنده opto. تصویر i30 ، i31 ، i32 و i33 را ببینید.

مرحله 5: اتصالات

ESP8266 ===> DHT11GPIO0 ===> پین خروجی

ESP8266 ===> RelayGPIO2 ===> ورودی

ARDUINO ===> ESP8266

Gnd ===> GndTX ===> TX

RX ===> RX

دکمه تنظیم مجدد ===> RST

دکمه فلش ===> GPIO0

مرحله 6: بررسی همه موارد

بررسی همه چیز
بررسی همه چیز
بررسی همه چیز
بررسی همه چیز
بررسی همه چیز
بررسی همه چیز
بررسی همه چیز
بررسی همه چیز

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

برای این منظور ESP8266 شما روشن است زیرا سرور ما بر روی ESP8266 کار می کند. در اینجا من هیچ سنسوری را به ESP8266 وصل نکرده ام فقط بررسی می کنم که کار می کند یا خیر اما می توانید سنسور ، رله را به ESP8266 وصل کنید. پس از اتصال به Heroku ، اتصال را مشاهده خواهید کرد. برای آزمایش به مهارت آمازون که ایجاد کرده اید بروید ، سپس روی صفحه آزمایش کلیک کنید. پس از تأیید عملکرد آن ، سنسور خود را به ESP8266 وصل می کنم. می توانید نتایج را همانطور که در تصاویر i35 ، i36 ، 37 ، 38 ، 39 ، 40 نشان داده شده است مشاهده کنید.

اگر از آن بدون اتصال ESP8266 استفاده می کنید ، این خطا را همانطور که در تصویر i41 نشان داده شده است دریافت می کنید.

گفته ای که می توانید استفاده کنید

ماشه سوئیچ را روی {Numbers} درصد {tmp_scale} تنظیم کنید

مثال:- ماشه سوئیچ را روی 50 درصد رطوبت تنظیم کنید

{query} حالت تغییر است

روشن/خاموش حالت سوئیچ است

ماشه سوئیچ {Switch_State}

ماشه سوئیچ ex -on/off

تنظیم سوئیچ روی {Numbers} درجه {tmp_scale}

ماشه سوئیچ را روی 76 درجه فارنهایت تنظیم کنید

ماشه سوئیچ را روی 24 درجه سانتیگراد تنظیم کنید

چرخاندن سوئیچ {Switch_State}

سابق - روشن/خاموش کردن کلید

برای نتایج به تصویر i41 تا i46 مراجعه کنید.

هنگام صحبت با AlexaAlexa ، از arduino بخواهید که کلید سوئیچ را روشن/خاموش کند

الکسا ، از آردوینو بخواهید تا کلید سوئیچ را روی 24 درجه سانتیگراد تنظیم کند.

الکسا ، از آردوینو بخواهید تا کلید سوئیچ را روی 50 درصد رطوبت تنظیم کند

الکسا ، از arduino بخواهید که کلید را روشن/خاموش کند

مرحله 7: نمودار VUI (رابط کاربری صوتی)

نمودار VUI (رابط کاربری صوتی)
نمودار VUI (رابط کاربری صوتی)

مرحله 8: نسخه ی نمایشی

Image
Image

1. ماشه را برای دما و رطوبت تنظیم کنید.

2. ماشه را روی 20 درجه سانتیگراد تنظیم کنید.

3. ماشه را روی 80 درصد رطوبت تنظیم کنید.

مرحله 9: شماتیک

توصیه شده: