فهرست مطالب:

مانیتورینگ خانه هوشمند با استفاده از الکسا و آردوینو: 9 مرحله (همراه با تصاویر)
مانیتورینگ خانه هوشمند با استفاده از الکسا و آردوینو: 9 مرحله (همراه با تصاویر)

تصویری: مانیتورینگ خانه هوشمند با استفاده از الکسا و آردوینو: 9 مرحله (همراه با تصاویر)

تصویری: مانیتورینگ خانه هوشمند با استفاده از الکسا و آردوینو: 9 مرحله (همراه با تصاویر)
تصویری: WiZ بررسی عمیق لامپ هوشمند 2024, نوامبر
Anonim
Image
Image
جمع آوری مواد
جمع آوری مواد

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

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

توابع زیر در این پروژه اجرا می شوند:

1) دستگاه های خانگی مانند فن و چراغ را کنترل کنید

2) وضعیت دستگاه ها را بیان می کند

3) وضعیت آب و هوایی خانه (دما و رطوبت) را بیان می کند

4) در صورت لزوم ، تصویر داخلی خانه را از طریق Gmail برای کاربر ارسال می کند.

5) اعلان ارسال می کند در صورت -

* مزاحم (عکس را نیز ارسال می کند)

* آتش

* مهمان (عکس را نیز ارسال می کند)

مرحله 1: جمع آوری مواد

جمع آوری مواد
جمع آوری مواد
جمع آوری مواد
جمع آوری مواد
جمع آوری مواد
جمع آوری مواد

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

آردوینو اونو

ESP8266 ماژول فای

Linkit Smart 7688 Duo

DHT11

رله ها

سنسور مانع IR

وبکم

آمازون اکو دات

تخته نان و سیم جامپر

نرم افزار و خدمات آنلاین:

Thingspeak.com

آردوینو IDE

مجموعه مهارت آمازون الکسا

آمازون Alexa Echosim.io (برای تست مهارت)

بدون پشتوانه

PushingBox

مرحله 2: برنامه نویسی Arduino و ESP8266

برنامه نویسی Arduino و ESP8266
برنامه نویسی Arduino و ESP8266
برنامه نویسی Arduino و ESP8266
برنامه نویسی Arduino و ESP8266

Arduino IDE را از وب سایت رسمی بارگیری کنید:

Arduino IDE را باز کرده و به آدرس file-> preferences-> در آدرس URL مدیر مدیریت اضافی بروید-https://arduino.esp8266.com/stable/package_esp8266…

به ابزارها -> تابلوها -> Board Manager رفته و بسته esp8266 را که در آخر یافت شده نصب کنید.

برای برنامه نویسی arduino کافی است کابل USB را از arduino به کامپیوتر وصل کرده و Arduino/Genuino UNO را در ابزار-> بردها انتخاب کنید. همچنین مطمئن شوید که حقوق پورت های COM را در Tools انتخاب کرده اید (شماره پورت COM را می توانید در Device manager پیدا کنید). برنامه مورد نیاز را بنویسید ، کامپایل کنید و در صورت عدم وجود خطا ، روی بارگذاری کلیک کنید.

برای برنامه ریزی ESP8266 اتصال را همانطور که در نمودار نشان داده شده است ، ایجاد کنید. usb را از arduino به کامپیوتر وصل کنید. در ابزار-> برد-> Generic ESP8266 را انتخاب کنید و همچنین پورت COM راست را انتخاب کنید. برنامه مورد نیاز را بنویسید ، کامپایل کنید و در صورت عدم وجود خطا ، روی بارگذاری کلیک کنید. مطمئن شوید که Arduino RST را به GND متصل کرده اید (arduino مانند یک برنامه نویس به ESP8266 عمل می کند).

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

مرحله 3: پیکربندی Thingspeak.com

پیکربندی Thingspeak.com
پیکربندی Thingspeak.com

ایجاد یک حساب کاربری در thingspeak.com.

ما برای ذخیره اطلاعات کنترل دستگاه و هدایت آن به arduino/alexa از کانال هایی در چیزهای دیگر استفاده می کنیم. ما همچنین مقادیر دما و رطوبت را در کانال ها ذخیره می کنیم. مانند محل ذخیره اطلاعات است.

وارد thingspeak شوید ، به کانالهای کانالهای من بروید و کانال جدیدی ایجاد کنید. نام و توضیحات را به کانال های خود بدهید. در پروژه ما به 8 کانال نیاز داریم (شما می توانید کار را با استفاده از کانال های کمتر انجام دهید اما هنگام برنامه نویسی کمی پیچیده خواهد بود). همچنین به هنگام به روزرسانی یک کانال ، چیزهای محدودیت زمانی دارد. بین بروزرسانی پی در پی یک کانال خاص باید 10-15 ثانیه فاصله وجود داشته باشد.

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

نام کانال (value1-meaning ، value2-meaning و غیره):

1) کنترل دستگاه (0 -lightON ، 1- lightOff ، 2- فن روشن ، 3- فن خاموش)

2) وضعیت نور (0- خاموش شدن چراغ ، 1- روشن بودن چراغ)

3) وضعیت فن (0- فن خاموش ، 1- فن روشن)

4) رطوبت (مقدار رطوبت)

5) دما (مقدار دما)

6) اعلان مزاحم (1- هشدار مزاحم)

7) اعلان آتش (1- هشدار آتش)

8) اعلان مهمان (1- هشدار مهمان)

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

درخواست http برای به روز رسانی کانال عبارت است از:

api.thingspeak.com/update؟api_key=&field1=

با کلیدهای نوشتن مربوطه کانال جایگزین می شود و می تواند (0/1 در صورت کنترل دستگاه یا مقادیر دما/رطوبت)

درخواست http برای خواندن ارزش از یک کانال این است:

api.thingspeak.com/channels//field/field1/last.html

با شناسه کانال خاص کانال که می خواهیم از آن بخوانیم جایگزین می شود.

مرحله 4: برنامه

این برنامه به 3 قسمت تقسیم می شود:

الف) برنامه آردوینو: برنامه آردوینو بسیار ساده است. داده ها را به صورت سریال از ESP8266 دریافت می کند و بر اساس داده های دریافتی دستگاه ها کنترل می شوند. اطلاعات بیشتر در مورد برنامه در نظرات خود برنامه موجود است.

ب) برنامه ESP8266: برنامه ESP8266 شامل 3 مورد است

1) به روز رسانی دما و رطوبت با استفاده از درخواست

client.print (String ("GET") + "/update؟ key = & field1 =" + رطوبت + "HTTP/1.1 / r / n" + "میزبان:" + host + "\ r / n" + "اتصال: بستن / r / n / r / n ")؛ // رطوبت را به روز کنید

client.print (String ("GET") + "/update؟ key = & field1 =" + دما + "HTTP/1.1 / r / n" + "میزبان:" + host + "\ r / n" + "اتصال: بستن / r / n / r / n ")؛ // دمای به روز رسانی

کلید نوشتن مربوطه که به ترتیب در کانال رطوبت و دما یافت می شود جایگزین می شود. و میزبان api.thingspeak.com است.

بارگیری کتابخانه dht از:

2) خواندن از کانال های مربوطه و کنترل دستگاه بر اساس مقادیر بدست آمده: client.print (String ("GET") + "/channels//field/field1/last.html HTTP/1.1 / r / n" + " میزبان: " + host +" / r / n " +" اتصال: بستن / r / n / r / n ")؛

جایی که با شناسه کانال مربوطه که در thingspeak یافت می شود جایگزین می شود.

3) ارسال هشدار در صورت دمای بالا از طریق جعبه فشار

String host1 = "api.pushingbox.com"؛

client.print (String ("GET") + "/pushingbox؟ devid = HTTP/1.1 / r / n" + "میزبان:" + host1 + "\ r / n" + "اتصال: بستن / r / n / r / n ")؛

جایی که با شناسه دستگاه شما در pushingbox جایگزین می شود.

مرحله 5: پیکربندی Linkit Smart 7688 Duo و وب کم

پیکربندی Linkit Smart 7688 Duo و وب کم
پیکربندی Linkit Smart 7688 Duo و وب کم
پیکربندی Linkit Smart 7688 Duo و وب کم
پیکربندی Linkit Smart 7688 Duo و وب کم
پیکربندی Linkit Smart 7688 Duo و وب کم
پیکربندی Linkit Smart 7688 Duo و وب کم

در این پروژه از وب کم و linkit smart 7688 duo برای گرفتن عکس مورد نیاز و ارسال آن به کاربر استفاده می شود. همچنین می توانید از ماژول دوربین آردوینو استفاده کنید و آن را با آردوینو متصل کنید یا از هر دوربین IP استفاده کنید.

دکمه wifi را در linkit smart 7688 به مدت 20 ثانیه فشار دهید و نگه دارید تا برد دوباره تنظیم شود. سپس پس از بازنشانی تنظیمات wifi ، می توانید نام نقطه دسترسی آن را در اتصالات شبکه بی سیم مشاهده کنید. حالا کامپیوتر را به آن شبکه وصل کنید. بعد از اتصال مرورگر را باز کرده و 192.168.100.1 را در نوار آدرس تایپ کنید. شما می توانید پورتال آن را مشاهده کنید. برای ورود به پورتال خود یک رمز عبور تعیین کنید.

پس از وارد شدن به برگه شبکه بروید و حالت ایستگاه را انتخاب کنید (برای دسترسی به اینترنت به آن نیاز داریم (linkit smart 7688 duo) و آن را به شبکه Wifi خود متصل کرده و Configure and restart را فشار دهید.

پس از راه اندازی مجدد برد ، آدرس IP محلی به آن اختصاص داده می شود. آدرس را با استفاده از ابزارهای IP یا پورتال روتر خود بیابید. در مورد من 192.168.1.4 بود. حالا آدرس IP محلی را در نوار آدرس مرورگر تایپ کنید. اطمینان حاصل کنید که رایانه به همان شبکه linkit smart متصل است. از شما خواسته می شود که دوباره وارد شوید.

برای فعال کردن پخش از وب کم باید-j.webp

پس از وارد شدن به برگه خدمات و بررسی فعال کردن پخش کننده-j.webp

پس از راه اندازی ، می توانید وب کم خود را از طریق کابل OTG به linkit smart 7688 duo usb host متصل کنید. حالا برای مشاهده جریان مرورگر را باز کرده و در نوار آدرس تایپ کنید: در مورد من 192.168.1.4:4400 است

برای گرفتن عکس فوری دستور زیر را وارد کنید:؟ action = snapshot

در حال حاضر این تصویر به صورت محلی در دسترس است ، اما ما باید آن را در دسترس سرویس جعبه فشار قرار دهیم. برای دستیابی به این هدف ما باید حمل و نقل پورت را انجام دهیم. انتقال پورت را می توان در پورتال روتر انجام داد. شناسه فرآیند برای روترهای مختلف متفاوت است. فقط کافیست در Google جستجو کنید تا بدانید چگونه برای روترهای خاص به جلو انتقال دهید. معمولاً تحت سرویس NAT موجود است. پس از پورت رو به جلو ، می توانید از IP خارجی خود به این پورت (یعنی.. 4440) دسترسی پیدا کنید. با اتصال "whats my ip" در Google می توانید IP خارجی را پیدا کنید.

شما باید این آدرس را قرار دهید

یعنی.. https://::؟ action = snapshot

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

همچنین می توانید تصویر را در کارت sd ذخیره کنید زیرا Linkit smart 7688 duo همچنین دارای اسلات کارت sd برای ذخیره اطلاعات است. اطلاعات بیشتر در این مورد را می توانید در آدرس زیر بیابید:

docs.labs.mediatek.com/resource/linkit-sm…

مرحله 6: پیکربندی PushingBox

پیکربندی PushingBox
پیکربندی PushingBox

pushingbox برای ارسال اعلان در مورد هشدارهای مختلف در پروژه به gmail استفاده می شود.

ورود به سیستم pushingbox با استفاده از حساب Google:

به سرویس افزودن خدمات من بروید خدمات زیادی مانند Gmail ، twitter ، push notification برای اندروید و غیره وجود دارد …

Gmail را انتخاب کنید (همانطور که باید عکس را به عنوان پیوست ارسال کنیم) و پیکربندی نام gmail مناسب و شناسه gmail کاربری را که باید هشدار به او ارسال شود ، وارد کنید.

به سناریوهای من بروید و سناریوی جدیدی ایجاد کنید. نام سناریو (به عنوان مثال: ALERT) سرویس قبلی ایجاد شده را اضافه کنید.

موضوع و بدنه نامه مناسب را بنویسید و آدرس url را وارد کنید تا از صفحه وب برای پیوست کردن عکس بگیرید. ایجاد سناریوهای مختلف برای هشدارهای مختلف. api برای اجرای سناریوی جعبه فشار:

مرحله 7: ایجاد مهارت الکسا با استفاده از Backendless

ایجاد مهارت الکسا با استفاده از Backendless
ایجاد مهارت الکسا با استفاده از Backendless
ایجاد مهارت الکسا با استفاده از Backendless
ایجاد مهارت الکسا با استفاده از Backendless
ایجاد مهارت الکسا با استفاده از Backendless
ایجاد مهارت الکسا با استفاده از Backendless

backendless برای ایجاد مهارت alexa استفاده می شود. این یک برنامه نویسی ساده کشیدن و رها کردن است که برای ایجاد مهارت الکسا (یا هر برنامه ای) استفاده می شود که با API بدون پشتیبان قابل دسترسی است.

ایجاد حساب کاربری بدون پشتیبان:

  • در حساب بدون پشتوانه وارد حساب خود شوید. روی ایجاد برنامه کلیک کنید و نامی را برای برنامه خود انتخاب کنید
  • روی نماد منطق کسب و کار واقع در نوار نماد در سمت چپ کلیک کنید. صفحه API SERVICES را مشاهده خواهید کرد.
  • برای ایجاد سرویس جدید روی نماد "+" کلیک کنید. مطمئن شوید که در پنجره باز شده "سرویس جدید" CODELESS را انتخاب کنید. برای نام سرویس "AlexaService" را وارد کنید. روی دکمه SAVE کلیک کنید:
  • Backendless سرویس API را ایجاد می کند و از شما می خواهد که یک روش برای سرویس ایجاد کنید. این روشی است که درخواست های الکسا را پردازش می کند. برای نام روش "handleRequest" را وارد کنید. مطمئن شوید که POST را برای عملیات REST انتخاب کرده اید و یک استدلال با نام "req" اعلام کرده و مطابق شکل "Any Object" را تایپ کنید:
  • Backendless یک منطقی برای منطق بدون کد روش ایجاد می کند. برای شروع تغییر به طراح منطق بدون کد ، روی دکمه ویرایش کلیک کنید. در بلوک متغیر تابع ایجاد شده ، روی ناحیه ای که می گوید "doSomething" کلیک کنید و آن را به "sendAlexaResponse" تغییر دهید. از این تابع برای الکسا استفاده می شود تا چیزی را که می تواند به عنوان آرگومان منتقل شود ، بیان کند. روی دکمه SAVE کلیک کنید تا عملکرد ذخیره شود.
  • روی نماد چرخ دنده واقع در بلوک بنفش درست در کنار کلمه "Function" کلیک کنید. با کشیدن بلوک های ورودی همانطور که در تصویر زیر نشان داده شده است ، دو آرگومان اضافه کنید. نام آرگومان ها را "whatToSay" و "waitForResponse" اختصاص دهید. توجه داشته باشید که هنگام اضافه کردن آرگومان ها ، منطقه Context Blocks به طور خودکار با بلوک هایی که مقادیر آرگومان را نشان می دهند ، پر می شود.
  • منطق تابع را طوری تغییر دهید که در تصویر به نظر برسد. برای بلوک های "ایجاد اشیاء" ، از نماد چرخ دنده برای تغییر نام ویژگی های شی استفاده کنید. فراموش نکنید که با کلیک روی دکمه ذخیره ، کار خود را ذخیره کنید.
  • اکنون که تابع سفارشی ساخته شده است ، به روش handleRequest سرویس AlexaService بازگردید. روی دسته توابع سفارشی در نوار ابزار در سمت چپ کلیک کرده و بلوک sendAlexaResponse را بکشید تا با اتصال دهنده متد سرویس خود متصل شوید.
  • مراحل فوق را می توانید در وب سایت آنها نیز مشاهده کنید:
  • روی گره "افزودن جدید" در زیر توابع در بخش BROWSER کلیک کنید. در بلوک متغیر تابع ایجاد شده ، روی ناحیه ای که می گوید "doSomething" کلیک کنید و آن را به "getIntentName" تغییر دهید و بلوک ها را تغییر دهید تا عملکرد شبیه تصویر نشان داده شده باشد. نام هدف را بر اساس نمونه گفته ها دریافت می کند. به قسمت api services-> handle request در قسمت مرورگر بازگردید. متغیرها و منطق از بخش سیستم ایجاد می شود. متغیرهای زیر را که در تصاویر نشان داده شده است ایجاد کنید.
  • سپس نام قصد درخواست متغیر را ذخیره می کنیم. و سپس با اهداف مقایسه کنید. به عنوان مثال اگر درخواست "معرفی" باشد ، متغیر پاسخ روی "سلام! من می توانم کنترل کنم …" تنظیم شده است. و این پاسخ بالاخره توسط alexa با صدای بلند خوانده می شود. بلوک را مطابق شکل اصلاح کنید.
  • اگر درخواست LightsOn قصد داشته باشد ، ما با استفاده از درخواست http get ، کانال thingspeak را به '0' به روز می کنیم و در همان زمان وضعیت دستگاه را (1/0 بسته به روشن/خاموش) به روز می کنیم. همین امر برای LightsOff ، FanOn و FanOff تکرار می شود.
  • برای وضعیت آب و هوا از کانال دما و رطوبت می خوانیم و نتیجه را در متغیر پاسخ ذخیره می کنیم. از آنجا که کانال فقط مقادیر می دهد ، متن ها را اضافه می کنیم تا پاسخ معنی دار شود
  • برای عکس فوری از اتاق نشیمن ما سناریوی pushingbox را اجرا می کنیم
  • برای وضعیت دستگاه ما اطلاعات را از کانال وضعیت چیزهایی که می خوانیم می خوانیم:
  • برای اطلاع رسانی و هشدارهایی که از کانال های هشدار (آتش ، مزاحم و مهمان) می خوانیم:
  • بر اساس مقادیری که از قسمت اعلان دریافت می کنیم پیام های هشدار مربوطه در متغیر respond0 ذخیره می شوند. اگر هیچ اعلانی وجود نداشته باشد ، هیچ پیام اعلانی ذخیره نمی شود.
  • هنگامی که اعلان خوانده می شود ، "0" در کانال های اعلان به روز می شود تا الکسا دوباره همان اعلان را نخواند. سپس در نهایت بر اساس درخواست ، متغیر respond0/respond با صدای بلند خوانده می شود.

مرحله 8: پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون:

پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون
پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون
پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون
پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون
پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون
پیکربندی مهارت Alexa در کنسول توسعه دهنده آمازون

به کنسول توسعه دهنده amazon بروید و با استفاده از حساب amazon وارد شوید.

به توسعه دهنده بروید و روی برگه ALEXA کلیک کنید. برای شروع روی کیت مهارت های alexa کلیک کنید.

ایجاد نوع مهارت سفارشی ، نام و نام فراخوانی به مهارت. اهداف مربوطه و نمونه اظهارات در کد ذکر شده است.

در برگه پیکربندی ، HTTPS را به عنوان نوع نقطه پایانی سرویس انتخاب کنید. URL پیش فرض را با URL API از بدون پشتیبان پر کنید. گزینه دوم را در Certificate برای نقطه پایانی پیش فرض در گواهی SSL انتخاب کنید. همچنین می توانید با استفاده از شبیه ساز تست ، مهارت را آزمایش کنید.

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

مرحله 9: راه اندازی نهایی و پایان

راه اندازی نهایی و پایان!
راه اندازی نهایی و پایان!
راه اندازی نهایی و پایان!
راه اندازی نهایی و پایان!

اتصال مدار را مطابق شکل انجام دهید.

گاهی اوقات ESP8266 به دلیل جریان ناکافی خراب می شود. بنابراین ، اگرچه در مدار ذکر شده است ، توصیه می شود ESP8266 را از منبع جداگانه 3.3v تغذیه کنید. اگر از پاوربانک استفاده می کنید مطمئن شوید که ولتاژ را از 5 ولت به 3.3 ولت با استفاده از تنظیم کننده ولتاژ 3.3 ولت کاهش می دهید. برنامه را به ESP8266 و arduino بارگذاری کنید. من اتصال به لامپ را نشان دادم ، همین مورد را می توان به فن یا هر دستگاه دیگری گسترش داد. در نهایت برای آزمایش مهارت خود از amazon echo یا echosim.io استفاده کنید.

شما باید مهارت را با استفاده از نام فراخوانی (مانند مورد من - "myhome") فعال کنید. گاهی اوقات اگر از نام فراخوانی استفاده شود کار نمی کند ، همانطور که من چندین بار در ویدیوی خود نشان داده ام

امیدوارم از آموزش لذت برده باشید!

متشکرم!

توصیه شده: