فهرست مطالب:
- مرحله 1: راه اندازی اولیه
- مرحله 2: Ngrok را راه اندازی کنید
- مرحله 3: Python Script for Light Switch Control
- مرحله 4: اسکریپت پایتون برای کنترل طرفداران
- مرحله 5: نصب و پیکربندی بسته LIRC
- مرحله 6: Python Script برای کنترل تلویزیون
- مرحله 7: وارد حساب AWS شوید
- مرحله 8: تنظیم مهارت Alexa TV
- مرحله 9: تنظیم مهارت Lights Alexa
- مرحله 10: تنظیم مهارت فن الکسا
- مرحله 11: Ciruit را بسازید
- مرحله 12: دستورات Alexa
تصویری: اتاق نشیمن را با الکسا و تمشک پای کنترل کنید: 12 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
تلویزیون ، چراغ ها و فن اتاق نشیمن خود را با Alexa (Amazon Echo یا Dot) و Raspberry Pi GPIO کنترل کنید.
مرحله 1: راه اندازی اولیه
من از یک Raspberry Pi 2 و یک Raspbian Jessie تصویر بارگیری شده از https://www.raspberrypi.org/downloads/raspbian/ استفاده کردم
پس از ورود به سیستم ، دستورات زیر را برای نصب بسته های مورد نیاز و کتابخانه های پایتون وارد کنید:
sudo apt-get update && sudo apt-get upgrade -ysudo apt-get python2.7-dev python-dev python-pip sudo pip install Flask flask-ask sudo apt-get install lirc
مرحله 2: Ngrok را راه اندازی کنید
از https://ngrok.com/download دیدن کنید و آخرین نسخه Linux ARM را به صورت فشرده دریافت کرده و داخل فهرست اصلی فشرده کنید:
unzip /home/pi/ngrok-stable-linux-arm.zip
یک ترمینال جدید باز کنید و دستور زیر را وارد کنید:
sudo./ngrok http 4000
یک ترمینال جدید دیگر باز کنید و دستور زیر را وارد کنید:
sudo./ngrok http 4500
سومین ترمینال جدید را باز کرده و دستور زیر را وارد کنید:
sudo./ngrok http 5000
مرحله 3: Python Script for Light Switch Control
یک جلسه ترمینال جدید باز کنید و یک فایل پایتون جدید با نام light_control.py ایجاد کنید:
nano light_control.py
کد زیر را در فایل جدید کپی/جایگذاری کنید:
from import flask Flaskfrom flask_ask import Ask، statement، convert_errors import RPi. GPIO as import GPIO logging log os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app، '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent'، mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 به استثنای e: عبارت بازگشت ("شماره پین معتبر نیست" low ']: GPIO.output (pinNum، GPIO. HIGH) عبارت بازگشت (' Turning {} the Living Room Lights'.format (status)) if _name_ == '_main_': port = 4000 app.run (host = ' 0.0.0.0 '، بندر = بندر)
ذخیره کنید و فایل را ببندید.
سرور فلاسک را با موارد زیر راه اندازی کنید:
sudo python light_control.py
هم گرمک و هم light_control.py را در حال اجرا بگذارید
مرحله 4: اسکریپت پایتون برای کنترل طرفداران
یک جلسه ترمینال جدید باز کنید و یک فایل پایتون جدید با نام fan_control.py ایجاد کنید:
nano fan_control.py
کد زیر را در فایل جدید کپی/جایگذاری کنید:
از واردات فلاسک فلاسک
از flask_ask import درخواست ، بیانیه ، convert_errors وارد کردن RPi. GPIO به عنوان وارد کردن GPIO ورود به سیستم GPIO.setmode (GPIO. BCM) برنامه = Flask (_ name_) ask = Ask (app، '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent'، mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 به استثنای e: عبارت بازگشت ('شماره پین معتبر نیست.: GPIO.output (pinNum، GPIO. HIGH) عبارت بازگشت ('روشن کردن {} چراغهای اتاق نشیمن'.format (status)) if _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 '، بندر = بندر)
ذخیره کنید و فایل را ببندید.
سرور فلاسک را با موارد زیر راه اندازی کنید:
sudo python fan_control.py
هر دو گرمک ، light_control.py و fan_control.py را در حال اجرا رها کنید
مرحله 5: نصب و پیکربندی بسته LIRC
برای کنترل تلویزیون باید یک پین روی رزبری پای پیکربندی کنید تا سیگنال های مادون قرمز (IR) برای تلویزیون خاص شما ایجاد شود. ترمینال را باز کرده و دستور زیر را برای نصب یک بسته LIRC که از سیگنال های مادون قرمز بسیاری از کنترل های از راه دور تقلید می کند ، وارد کنید.
sudo apt-get lirc را نصب کنید
در مرحله بعد ، باید ماژول هسته lirc_rpi را فعال و پیکربندی کنید. برای انجام این کار ، ماژول ها را در ویرایشگر نانو باز کنید
sudo nano /etc /modules
خطوط زیر را به فایل اضافه کنید (مطمئن شوید که پارامتر gpio_out_pin به پین کنترل کننده LED IR اشاره می کند):
lirc_devlirc_rpi gpio_out_pin = 17
در مرحله بعد ، فایل hardware.conf را در Nano با sudo باز کنید:
sudo nano /etc/lirc/hardware.conf
پیکربندی زیر را به فایل اضافه کنید:
LIRCD_ARGS = "-uinput" LOAD_MODULES = درست است
DRIVER = "پیش فرض"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
حالا ، Raspberry Pi را راه اندازی مجدد کنید:
راه اندازی مجدد sudo
مرحله 6: Python Script برای کنترل تلویزیون
یک جلسه ترمینال جدید باز کنید و یک فایل پایتون جدید با نام ir_control.py ایجاد کنید:
nano ir_control.py
به
ریموت سازگار با تلویزیون خود را پیدا کنید. در مورد من ، من یک تلویزیون Sanyo دارم که با فایل پیکربندی sanyo-tv01 کار می کند. هنگامی که فایلی را پیدا کردید که تلویزیون شما را پشتیبانی می کند ، آن را باز کرده و گزینه های فرمان را بررسی کنید.
کد زیر را در فایل جدید کپی/جایگذاری کرده و نام فایلی را که با تلویزیون شما کار می کند جایگزین sanyo-tv01 کنید. همچنین اطمینان حاصل کنید که دستورات تلویزیون توسط فایل پیکربندی تلویزیون شما پشتیبانی می شود. ممکن است مجبور شوید دستورات KEY_POWER ، KEY_VIDEO ، KEY_VOLUMEUP ، KEY_VOLUMEDOWN و KEY_MUTE را برای کارکرد صحیح با فایل پیکربندی تلویزیون تغییر دهید:
from import flask Flaskfrom flask_ask import Ask، statement، convert_errors import RPi. GPIO as import GPIO logging log os GPIO.setmode (GPIO. BCM) app = Flask (_ name_) ask = Ask (app، '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent'، mapping = {'status': 'status'}) #'pin': 'pin'})) def tv_function (status): if status in ['روشن شود]: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") بیانیه بازگشت ("روشن کردن تلویزیون") وضعیت elif در ["خاموش"]: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") بیانیه بازگشت (" خاموش کردن تلویزیون ") وضعیت elif در ['تغییر ورودی']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VIDEO ") بازگشت دستور ('تغییر ورودی در تلویزیون') وضعیت elif در ['افزایش صدا']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEUP ") بیانیه بازگشت ('افزایش صدا در تلویزیون') elif وضعیت در ['کاهش حجم']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_VOLUMED os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 KEY_VOLUMEDOWN") os.system ("irsend SEND_ONCE sanyo-tv01 kEY_VOLUMEDOWNOYEDYONYOYONDOYNOWSTOWNOY) ") دستور بازگشت (" کاهش میزان صدا در تلویزیون ") وضعیت elif در ['بی صدا']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") بیانیه بازگشت ('بی صدا کردن تلویزیون') elif وضعیت در ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") بیانیه بازگشت (' بی صدا کردن تلویزیون ') دیگر: دستور بازگشت (' عملکرد از راه دور پیدا نشد. ') اگر _name_ ==' _main_ ': port = 5000 برنامه.run (host = '0.0.0.0' ، port = port)
ذخیره کنید و فایل را ببندید.
سرور فلاسک را با موارد زیر راه اندازی کنید:
sudo python ir_control.py
هر سه پنجره ترمینال گرمk ، light_control.py ، fan_control.py و ir_control.py را در حال اجرا بگذارید
مرحله 7: وارد حساب AWS شوید
ابتدا حساب توسعه دهنده AWS خود را ایجاد یا وارد شوید و لیست مهارت های Alexa خود را باز کنید.
مرحله 8: تنظیم مهارت Alexa TV
"افزودن مهارت جدید" را انتخاب کنید.
نام مهارت را روی "Trigger TV" و نام فراخوانی را روی کلمه (های) مورد نظر برای فعال کردن مهارت تنظیم کنید.
برای ادامه بر روی بعدی کلیک کنید.
موارد زیر را در کادر "Intent Schema" کپی/جایگذاری کنید:
"slots": [{"name": "status"، "type": "TV_Function"}، {"name": "مقدار"، "type": "AMAZON. NUMBER"}]، "قصد": "GPIOControlIntent "}]}
بعد ، روی "افزودن نوع شکاف" کلیک کنید
TV_Function را در قسمت "Enter Type" وارد کنید.
مقادیر زیر را در قسمت "وارد کردن مقادیر" وارد کنید:
روشن کن
خاموش کردن تغییر ورودی افزایش حجم کاهش صدا بی صدا
بعد ، موارد زیر را در کادر "Sample Utterances" کپی/جایگذاری کنید:
GPIOControlIntent {status}
GPIOControlIntent {status} بر اساس {amount}
برای ادامه بر روی بعدی کلیک کنید.
"HTTPS" را به عنوان نوع نقطه پایانی سرویس انتخاب کرده و منطقه ای را انتخاب کنید. آدرس گرمک را از مرحله 2 وارد کرده و روی "بعدی" کلیک کنید. URL باید چیزی شبیه به این باشد:
ed6ea04d.ngrok.io
برای ادامه روی "بعدی" کلیک کنید و "ذخیره" را فشار دهید.
مرحله 9: تنظیم مهارت Lights Alexa
مهارت باز شده را ببندید و "Add a New Skill" را انتخاب کنید.
نام مهارت را روی "Lights Control" و نام فراخوانی را روی کلمه (های) مورد نظر برای فعال کردن مهارت تنظیم کنید.
برای ادامه بر روی بعدی کلیک کنید. موارد زیر را در کادر "Intent Schema" کپی/جایگذاری کنید:
{
"intents": [{"slots": [{"name": "status"، "type": "LIGHTS_CONTROL"}]، "قصد": "LightsControlIntent"}]}
بعد ، روی "افزودن نوع شکاف" کلیک کنید.
"LIGHTS_CONTROL" را در قسمت "Enter Type" وارد کنید.
مقادیر زیر را در قسمت "وارد کردن مقادیر" وارد کنید:
بر
خاموش
بعد ، موارد زیر را در کادر "Sample Utterances" کپی/جایگذاری کنید:
نوبت LightsControlIntent {status}
برای ادامه بر روی بعدی کلیک کنید. 'HTTPS' را به عنوان نوع نقطه پایانی سرویس انتخاب کرده و منطقه ای را انتخاب کنید. URL گرمک را از مرحله 2 وارد کرده و روی "بعدی" کلیک کنید. URL باید چیزی شبیه به این باشد:
ed6ea04d.ngrok.io
برای ادامه روی "بعدی" کلیک کنید و "ذخیره" را فشار دهید.
مرحله 10: تنظیم مهارت فن الکسا
مهارت باز شده را ببندید و "Add a New Skill" را انتخاب کنید.
نام مهارت را روی "Fan Control" و نام فراخوانی را روی کلمه (های) مورد نظر برای فعال کردن مهارت تنظیم کنید.
برای ادامه بر روی بعدی کلیک کنید.
موارد زیر را در کادر "Intent Schema" کپی/جایگذاری کنید:
{
"intents": [{"slots": [{"name": "status"، "type": "FAN_CONTROL"}]، "قصد": "FANControlIntent"}]}
بعد ، روی "افزودن نوع شکاف" کلیک کنید.
"FAN_CONTROL" را در قسمت "Enter Type" وارد کنید.
مقادیر زیر را در قسمت "وارد کردن مقادیر" وارد کنید:
بر
خاموش
بعد ، موارد زیر را در کادر "Sample Utterances" کپی/جایگذاری کنید:
نوبت FANControlIntent {status}
برای ادامه بر روی بعدی کلیک کنید. 'HTTPS' را به عنوان نوع نقطه پایانی سرویس انتخاب کرده و منطقه ای را انتخاب کنید. URL گرمک را از مرحله 2 وارد کرده و روی "بعدی" کلیک کنید. URL باید چیزی شبیه به این باشد:
ed6ea04d.ngrok.io
برای ادامه روی "بعدی" کلیک کنید و "ذخیره" را فشار دهید.
مرحله 11: Ciruit را بسازید
مدار را همانطور که در نمودار نشان داده شده است وصل کنید. من از یک ماژول رله JBtek 8 Channel DC 5V برای اتصال به خط و زمین خانه 120V AC استفاده کردم.
مرحله 12: دستورات Alexa
در حال حاضر دستورات زیر را می توان با Alexa برای کنترل اتاق نشیمن شما صحبت کرد.
توصیه شده:
تمشک پای را به چراغ بلوتوث تبدیل کنید: 4 مرحله
تبدیل Raspberry Pi به Bluetooth Beacon: بلوتوث یکی از فناوری های نوآورانه برای انتقال داده ها به صورت بی سیم ، ساخت سیستم های اتوماسیون خانگی ، کنترل دستگاه های دیگر و غیره است. در این دستورالعمل ها ، من سعی خواهم کرد که یک Raspberry Pi را به Bluetooth Beacon تبدیل کنم. مورد نیاز Raspberry PiBleuIO (A Bl
اتاق نشیمن برای فیلم با شلی: 4 مرحله
اتاق نشیمن برای فیلم با Shelly: خلاصه اجرایی پروژه چگونه می توان یک اتوماسیون بسیار ساده با استفاده از روال خانه Google ایجاد کرد تا اتاق نشیمن اتاق من برای تماشای فیلم راحت باشد
چشمک زدن LED با تمشک پای - نحوه استفاده از پین های GPIO در رزبری پای: 4 مرحله
چشمک زدن LED با تمشک پای | نحوه استفاده از پین های GPIO در Raspberry Pi: سلام بچه ها در این دستورالعمل نحوه استفاده از GPIO's Raspberry pi را یاد می گیریم. اگر تا به حال از آردوینو استفاده کرده اید ، احتمالاً می دانید که ما می توانیم سوئیچ LED و غیره را به پین های آن وصل کرده و آن را مانند کار کنیم. چشمک بزنید یا ورودی را از سوئیچ دریافت کنید تا
موسیقی هوشمند در اتاق خواب و حمام با تمشک پای - ادغام Multiroom ، زنگ هشدار ، کنترل دکمه و اتوماسیون خانگی: 7 مرحله
موسیقی هوشمند در اتاق خواب و حمام با Raspberry Pi - ادغام Multiroom ، Alarm ، Button Control و Automation Home: امروز ما می خواهیم دو مثال در مورد نحوه استفاده از Raspberry Pi با نرم افزار Max2Play ما برای اتوماسیون خانه به شما ارائه دهیم: در حمام و اتاق خواب به هر دو پروژه از این نظر شبیه هستند که موسیقی با وفاداری بالا از منابع مختلف می تواند از طریق
آمازون الکسا - تمشک پای (موبایل): 5 مرحله (همراه با تصاویر)
آمازون الکسا - تمشک پای (موبایل): به آموزش ساخت آمازون الکسا با استفاده از رزبری پای خوش آمدید. از آنجا که روی این آموزش کلیک کرده اید ، بدیهی است که می دانید آمازون الکسا یک قطعه زیبا از فناوری در عصر مدرن است. اگرچه خرید و ساخت آن دو مشکل است