فهرست مطالب:

LED های کنترل شده Google Home: 8 مرحله
LED های کنترل شده Google Home: 8 مرحله

تصویری: LED های کنترل شده Google Home: 8 مرحله

تصویری: LED های کنترل شده Google Home: 8 مرحله
تصویری: نه کاری که نمیدونستی گوشیت انجام میده | 9 کاربرد مخفی گوشی 2024, نوامبر
Anonim
LED های کنترل شده Google Home
LED های کنترل شده Google Home
LED های کنترل شده Google Home
LED های کنترل شده Google Home

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

این پروژه به شما امکان می دهد LED های RGB را از طریق Google Home با استفاده از Raspberry Pi کنترل کنید. اکنون 3 قسمت از پروژه وجود دارد ، راه اندازی رزبری پای ، راه اندازی Google Home با فرمان سفارشی با استفاده از IFTTT ، و سپس ایجاد مدار برای چراغ ها. من خودم این مدار را انجام دادم ، اما شرط می بندم که می توانید چیزی از Adafruit بگیرید که کارهای مورد نیاز را انجام می دهد.

مواد لازم برای قسمت تمشک پای

  • Raspberry Pi - هر کدام کار می کند ، اما من از صفر استفاده می کنم
  • دانگل بی سیم - اگر Pi در Wifi ساخته نشده است
  • Google Home - اختیاری است اگر دستیار Google را در تلفن خود دارید

مواد برای قسمت مدار- اجازه ندهید این شما را منصرف کند … این نسبتاً ساده است

  • پروتو بورد
  • سیم
  • نوار LED
  • منبع تغذیه 12 ولت - هر چیزی بالاتر از 2 آمپر باید خوب باشد
  • DC Barrel Jack - اندازه اندازه منبع تغذیه شما
  • NPN BJT ترانزیستورهای قدرت (x3) - من از TIP31C استفاده می کنم
  • سرصفحه های پین زنانه و مردانه - اختیاری ، اما بسیار توصیه می شود

مرحله 1: بارگیری Express برای Pi

بارگیری Express برای Pi
بارگیری Express برای Pi

من قصد ندارم جزئیات زیادی در مورد راه اندازی Pi بیان کنم زیرا آموزش های زیادی برای راه اندازی آنها وجود دارد.

آنچه شما باید انجام دهید که من آن را پوشش نمی دهم…

  • چشمک زدن رزبری پای با جدیدترین Raspbian
  • کارت شبکه را طوری تنظیم کنید که بتوانید از طریق Pi به اینترنت دسترسی داشته باشید
  • روی Raspberry Pi یک IP ثابت تنظیم کنید

حالا اینجاست که سرگرمی شروع می شود! ما باید nodeJS ، npm ، express و express-generator را نصب کنیم.

sudo apt-get update

sudo apt-get nodejs npm را نصب کنید

پس از نصب ، موارد زیر را اجرا کنید

npm generator express express را نصب کنید

اکسپرس به شما امکان می دهد یک وب سرور بسیار اساسی برای استفاده رزبری پای خود بسازید. Express-generator فقط فایلها را برای سرور سریع تولید می کند.

یک دایرکتوری و cd وارد کنید. من نام piWebpage خود را گذاشتم. حالا دستور زیر را اجرا کنید (در تصویر نیز دیده می شود)

mkdir piWebpage

cd piWebpage express --view = ejs webApp

با این کار پوشه ای به نام webApp با تمام فایلهای اکسپرس موجود در آن ایجاد می شود. اگر قصد دارید کارهای بیشتری با این صفحه وب بعدا انجام دهید و PUG را دوست دارید ، --view = ejs را با --view = pug جایگزین کنید. ما به صفحه وب دست نخواهیم زد ، بنابراین برای این برنامه مهم نیست که ما از چه چیزی استفاده می کنیم.

مرحله 2: تنظیم سرور Pi

وارد فهرست جدید webApp شوید.

cd webApp

npm نصب کنید

نصب npm کمی طول می کشد زیرا همه وابستگی ها را برای اکسپرس نصب می کند.

setColor.py را در پوشه webApp قرار دهید. این فایل دارای تعدادی ایستگاه از پیش تنظیم شده برای رنگ های اصلی است. با خیال راحت موارد دلخواه را اضافه کنید. محدوده 0 تا 255 است که 255 رنگ کامل است. در برخی موارد ، من احتمالاً توانایی کم کردن نورها را اضافه خواهم کرد ، اما در حال حاضر ، آنها روشنایی کامل دارند.

به مسیرها حرکت کنید

مسیرهای سی دی

حالا فایل ضمیمه را جایگزین index.js کنید. با این کار خطوطی برای دریافت فرمان POST اضافه می شود که همان چیزی است که Google Home ارسال می کند. از آن POST ، رنگ را انتخاب می کنیم و به Pi می گوییم که اسکریپت python setColor را برای تنظیم چراغ ها اجرا کند.

آخرین مورد … بازگشت به پوشه webApp.

cd ~/piWebpage/webApp

با استفاده از ویرایشگر مورد علاقه خود ، کد زیر را در webApp.js خود جایگذاری و ذخیره کنید. همه جا تا قبل از "module.exports = app؛"

// راه اندازی سخت افزار LED driverconst {exec} = require ('child_process')؛ exec ('sudo pigpiod'، (err، stdout، stderr) => {if (err) {console.log ('خطا در بارگیری درایور LED')؛ return؛} else console.log ('درایور LED با موفقیت بارگیری شد')؛ })؛

همانطور که در نظرات آمده است ، pigpiod درایور سخت افزار سیگنال های PWM است که ما برای تنظیم رنگ LED استفاده خواهیم کرد. من معتقدم که قبلاً در Raspbian نصب شده است ، اما اگر نه…

sudo apt-get pigpiod install

حالا برای آزمایش واقعی! راه اندازی سرور!

DEBUG = webapp:* شروع npm

مرحله 3: راه اندازی IFTTT (راه اندازی)

راه اندازی IFTTT (راه اندازی)
راه اندازی IFTTT (راه اندازی)
راه اندازی IFTTT (راه اندازی)
راه اندازی IFTTT (راه اندازی)

IFTTT می تواند کارهای زیادی انجام دهد ، و من به شدت توصیه می کنم برخی از برنامه های کاربردی را بررسی کنید.

ابتدا باید یک حساب کاربری ایجاد کنید. از همان حساب Google مرتبط با Google Home خود استفاده کنید ، در غیر این صورت آنها با هم همگام نمی شوند. پس از تکمیل و ورود به سیستم ، روی سمت راست بالای صفحه IFTTT کلیک کنید ، جایی که نام و نماد شما را نشان می دهد. سپس از منوی کشویی روی New Applet کلیک کنید.

اگر کنجکاو هستید ، IFTTT مخفف IF This Then That است اگر صفحه ای که ظاهر می شود متوجه نشدید. بنابراین آنچه ما می خواهیم این است که اگر Google Assistant ، سپس Webhook را به عنوان گزینه های ما انتخاب کنیم.

با کلیک بر روی این +نوار جستجو را بارگیری کنید. در جستجو ، Google Assistant را تایپ کرده و روی نماد زیر جستجو کلیک کنید.

در Choose a Trigger ، سومین گزینه را بنام Say a phrase with a textient component انتخاب کنید. اکنون این به شما امکان می دهد 3 فرمان داشته باشید که همان عمل را انجام دهند. $ را به عبارتی که در آن رنگ را ذکر می کنید اضافه می کنید. به عنوان مثال ، اگر من به طور طبیعی می گویم Hey Google، Set LEDs Blue (همانطور که طبیعی است فریاد زدن بر روی یک دستگاه) ، سپس من در قسمت Set LEDs $ تایپ می کنم. این کار را برای هر 3 فیلد با نسخه های مختلف فرمان انجام دهید.

3 موردی که استفاده کردم این بود

LED ها $

LED ها را $ تنظیم کنید

رنگ LED را $ تنظیم کنید

آخرین فیلد چیزی است که دوست دارید Google Home شما پس از گفتن فرمان شما به آن پاسخ دهد. این می تواند هر چیزی باشد که شما می خواهید ، اما من از تنظیم رنگ روی $ استفاده کردم. $ بدان معناست که او دوباره رنگ را تکرار می کند.

روی ایجاد ماشه کلیک کنید

مرحله 4: راه اندازی IFTTT (اقدام)

راه اندازی IFTTT (اقدام)
راه اندازی IFTTT (اقدام)
راه اندازی IFTTT (اقدام)
راه اندازی IFTTT (اقدام)

پس از کلیک روی ایجاد Trigger ، به نمای if if this then در آن بارگیری می کنید ، اما این نشان با Google Assistant جایگزین شده است. با کلیک روی +آن ادامه دهید

همان چیزی که قبلاً شما را به نوار جستجو می آورد. Webhooks را تایپ کرده و روی نماد webhook در زیر نوار جستجو کلیک کنید. در قسمت Select Action for Webhooks ، تنها یک گزینه وجود دارد ، بنابراین روی ایجاد درخواست وب کلیک کنید.

اینجاست که همه چیز کمی پیچیده می شود. از آنجا که Google رایانه دیگری در خانه شما نیست ، به آدرس IP خارجی خود نیاز دارید. این امر نیاز به ارسال پورت دارد ، اما بعداً به آن خواهیم پرداخت. برای دریافت آدرس IP خارجی خود ، به https://canyouseeme.org/ بروید

در قسمت نشانی وب ، https://xxx.xxx.xxx.xxx:3000/{{TextField}} (با x's آدرس IP خارجی شما) را تایپ کنید. در صورت کنجکاوی ، TextField رنگی را که هنگام ایجاد فرمان انتخاب کرده اید ، خواهد داشت. دلیل استفاده ما از 3000 این است که این پورتی است که سرور Raspberry Pi Express روی آن کار می کند. (می توانید پورت را در کد تغییر دهید ، اما ما فقط از تنظیمات پیش فرض برای Express استفاده می کنیم)

برای Method ، POST را انتخاب کنید.

برای نوع محتوا ، متن/ساده را انتخاب کنید.

برای Body ، {{TextField}} را تایپ کنید

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

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

مرحله 5: حمل و نقل بندر

پورت حمل و نقل
پورت حمل و نقل
پورت حمل و نقل
پورت حمل و نقل

اینجاست که توضیح همه چیز دشوار می شود زیرا همه روترها متفاوت هستند…

اکنون ما گوگل را با استفاده از پورت 3000 یک فرمان به خانه خود ارسال می کنیم ، اما نمی داند باید به کدام دستگاه در LAN نیاز داشته باشد. برای رفع این مشکل ، ما باید پورت 3000 را به آدرس IP محلی رزبری پای شما ارسال کنیم.

با استفاده از 10.0.0.1 یا 192.168.1.1 به روتر خود بروید (من آن را در آخرین رقم 254 نیز دیده ام) و انتقال پورت را پیدا کنید. در حمل و نقل پورت ، مشابه تصویر ، یک دستگاه جدید (IFTTT) نامگذاری کرده و پورت (3000) را به آدرس IP Pi (در مورد من 10.0.0.11) ارسال می کنید.

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

به آن وب سایت مفید https://canyouseeme.org/ بازگردید. در زیر آدرس IP شما ، یک چک کننده پورت دارد. با فرض اینکه حمل و نقل پورت شما صحیح است ، 3000 را تایپ کرده و پورت چک را فشار دهید. باید با موفقیت برگردد.

مرحله 6: بررسی کار خود تا کنون

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

اکنون … لحظه ای که منتظر آن بوده اید … به Google دستوراتی مانند LED های آبی (اگر از مثال من پیروی کرده اید) بگویید.

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

(اگر به شکل مشابه ظاهر شد به مرحله بعدی بروید)

حالا اگر کار نکرد چند نکته را باید بررسی کرد…

در تصویر خطی وجود دارد که می گوید

POST /رنگ /آبی 200 250.458 میلی ثانیه - 2

200 بخش مهمی است. اگر شما 200 را نمی بینید ، پس یک POST بد وجود داشت به این معنی که سرور شما نمی دانست با داده ها چه کار کند. به مرحله 2 بازگردید و فایل index.js خود را بررسی کنید.

همچنین در تصویر

stdout: آبی

استدرر:

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

در نهایت ، اگر هیچ چیز به طور کلی نشان داده نمی شود … ممکن است IFTTT شما به درستی تنظیم نشده باشد یا در اتصال به سرور ناموفق باشد. به صفحه IFTTT بازگردید و در نوار بالا ، روی Activity کلیک کنید. در آنجا ، می توانید هر زمان که برنامه شما اجرا شده است را مشاهده کنید ، و اگر خطایی رخ داده است ، می توانید ببینید که چه چیزی بوده است. من یک فرمان Google با سرور Pi خاموش کردم و خطای تصویر را دریافت کردم.

مرحله 7: ساختن مدار

ساختن مدار
ساختن مدار
ساختن مدار
ساختن مدار
ساختن مدار
ساختن مدار

دلیل اینکه ما باید این کار را انجام دهیم این است که رزبری پای از قدرت کافی برخوردار نیست … بنابراین راه حل این است … POWER (Tim the man tool tool Taylor in the distance). منبع تغذیه AKA دیگر (12 ولت 2 آمپر)

مواد برای بخش مدار

  • پروتو بورد
  • سیم
  • نوار LED RGB
  • منبع تغذیه 12 ولت - هر چیزی بالاتر از 2 آمپر باید خوب باشد
  • DC Barrel Jack - اندازه اندازه منبع تغذیه شما
  • NPN BJT ترانزیستورهای قدرت (x3) - من از TIP31C استفاده می کنم
  • سرصفحه های پین مرد و زن

با استفاده از تصویر مفیدی که از شبکه های داخلی با GPIO Pi Zero سرقت کرده ام ، می توانید GPIO17 ، GPIO18 و GPIO 27 را در کنار یکدیگر با GND ببینید. ما از مربع 4 پین استفاده خواهیم کرد (پین 11 ، 12 ، 13 ، 14).

در ابتدا ، توصیه می کنم سرصفحه های نر را همانطور که در تصویر دیده می شود ، روی نوار LED خود لحیم کنید (بهترین کار من نیست). این امر به شما امکان می دهد در صورت نیاز به راحتی اتصال را قطع کنید. من از سربرگ های زن برای اتصال نوار LED به صفحه اصلی و سربرگ های مردانه از صفحه اصلی به Raspberry Pi استفاده کردم. (همیشه از منبع تغذیه/منبع سیگنال از اتصالات زن استفاده کنید). نیازی نیست مانند من همه پین های Pi را در کنار یکدیگر حرکت دهید … من فقط می خواستم تمیز به نظر برسد ، اما کار زیادی بود.

توضیح مدار

برای کسانی که با ترانزیستورها آشنایی ندارید ، ترانزیستورها در اصل یک سوئیچ دیجیتال هستند. پین های GPIO از Pi باعث ایجاد سه سوئیچ (قرمز ، سبز و آبی) می شوند. با نگاه کردن به RED در نمودار ، هنگامی که GPIO_17 روشن است ، سوئیچ "بسته" می شود که RED را به GND متصل می کند و چراغ قرمز روشن می شود. وقتی GPIO_17 خاموش می شود ، سوئیچ باز است و بنابراین چراغ ها خاموش می شوند.

پایه - GPIO ها

گردآورنده - رنگها (قرمز ، سبز ، آبی)

Emitter - Ground (منبع تغذیه و Pi)

مطمئن شوید که زمین Pi را به زمین منبع تغذیه وصل کنید. چراغ ها هنوز کار می کنند ، اما تا زمانی که زمین متصل نشود بسیار کم نور به نظر می رسند.

من یک دستگاه ترانزیستور چهارم در صفحه اصلی خود دارم. این یک L7805CV است که برای تبدیل 12V به 5V استفاده می شود تا بتوانم Pi را در همان مدار تغذیه کنم. کار می کرد اما بیش از حد گرم می شد ، بنابراین اتصالات آن را حذف کردم.

مرحله 8: آزمایش کنید

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

LED ها و جهنده ها را از صفحه اصلی به Pi وصل کنید. قبل از برق رسانی ، همه اتصالات را دوبار بررسی کنید. اگر سیم را اشتباه نصب کردید ، ممکن است Pi خود را سرخ کنید (بدون فشار).

چک لیست

  • سیم ها را چک کنید
  • پاور پی
  • مدار قدرت
  • شروع سرور (DEBUG = webapp:* npm شروع در فهرست ~/piWebpage/webApp)
  • به Google بگویید پیشنهاد شما را انجام دهد!

تبریک می گوییم که شما چیزی را منفجر نکرده اید و اکنون می توانید LED های خود را از Google Home کنترل کنید.

اگر مشکلی دارید نظرات خود را بنویسید ، و من تمام تلاش خود را می کنم تا با شما تماس بگیرم!

توصیه شده: