Բովանդակություն:
- Քայլ 1: Նախնական կարգավորում
- Քայլ 2: Կարգավորեք Ngrok- ը
- Քայլ 3: Python Script ՝ Light Switch Control- ի համար
- Քայլ 4: Python Script for Fan Control
- Քայլ 5. Տեղադրեք և կազմաձևեք LIRC փաթեթը
- Քայլ 6: Python Script հեռուստատեսության կառավարման համար
- Քայլ 7: Մուտք գործեք AWS հաշիվ
- Քայլ 8: TV Alexa հմտությունների կարգավորում
- Քայլ 9: Lights Alexa Skill Setup
- Քայլ 10: Fan Alexa հմտության կարգավորում
- Քայլ 11: Կառուցեք շրջագիծը
- Քայլ 12: Alexa- ի հրամաններ
Video: Կառավարեք հյուրասենյակը Alexa- ով և ազնվամորու Պիով. 12 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Կառավարեք ձեր հյուրասենյակի հեռուստացույցը, լույսերը և օդափոխիչը Alexa- ով (Amazon Echo կամ Dot) և Raspberry Pi GPIO- ով:
Քայլ 1: Նախնական կարգավորում
Ես օգտագործեցի Raspberry Pi 2 և Raspbian Jessie պատկեր ՝ ներբեռնված https://www.raspberrypi.org/downloads/raspbian/ կայքից
Մուտք գործելուց հետո մուտքագրեք հետևյալ հրամանները `անհրաժեշտ փաթեթները և python գրադարանները տեղադրելու համար.
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- ի վերջին թողարկումը որպես zip և բացեք տնային գրացուցակում:
unzip /home/pi/ngrok-stable-linux-arm.zip
Բացեք նոր տերմինալ և մուտքագրեք հետևյալ հրամանը.
sudo./ngrok http 4000
Բացեք ևս մեկ նոր տերմինալ և մուտքագրեք հետևյալ հրամանը.
sudo./ngrok http 4500
Բացեք երրորդ նոր տերմինալը և մուտքագրեք հետևյալ հրամանը.
sudo./ngrok http 5000
Քայլ 3: Python Script ՝ Light Switch Control- ի համար
Բացեք տերմինալի նոր նստաշրջան և ստեղծեք python նոր ֆայլ light_control.py անունով.
nano light_control.py
Պատճենեք/տեղադրեք հետևյալ ծածկագիրը նոր ֆայլում.
flask import- ից flask_ask ներմուծում Հարց, հայտարարություն, convert_errors ներմուծում RPi. GPIO որպես GPIO ներմուծում անտառահատումներ ներմուծում os GPIO.setmode (GPIO. BCM) ծրագիր = Ֆլասկ (_ name_) ask = Հարց (ծրագիր, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 բացառությամբ որպես e: return հայտարարություն (բացառությամբ) 'Pin- ի համարը վավեր չէ:') GPIO.setup (pinNum, GPIO. OUT), եթե կարգավիճակը գտնվում է ['on', 'high']: GPIO.output (pinNum, GPIO. LOW) եթե status '[' off ',' ցածր ']: GPIO.output (pinNum, GPIO. HIGH) վերադարձման հայտարարություն («Շրջել {} հյուրասենյակի լույսերը». ձևաչափ (կարգավիճակ)), եթե _name_ ==' _main_ ': port = 4000 app.run (host =' 0.0.0.0 ', նավահանգիստ = նավահանգիստ)
Պահեք և փակեք ֆայլը:
Գործարկեք կոլբայի սերվերը հետևյալով.
sudo python light_control.py
Թողեք և՛ ngrok, և՛ light_control.py գործարկված
Քայլ 4: Python Script for Fan Control
Բացեք նոր տերմինալային նիստ և ստեղծեք fan_control.py անունով նոր պիթոնի ֆայլ:
nano fan_control.py
Պատճենեք/տեղադրեք հետևյալ ծածկագիրը նոր ֆայլում.
կոլբայի ներմուծումից Ֆլասկ
flask_ask import- ից Հարցրեք, հայտարարություն, convert_errors ներմուծեք RPi. GPIO որպես GPIO ներմուծում անտառահատումների ներմուծում os GPIO.setmode (GPIO. BCM) ծրագիր = Ֆլասկ (_ name_) ask = Հարցրեք (ծրագիր, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 բացառությամբ որպես e: return հայտարարության բացառություն ('Pin number վավեր չէ: ') GPIO.setup (pinNum, GPIO. OUT) եթե կարգավիճակը [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW), եթե կարգավիճակը [' off ',' low '] ՝ GPIO.output (pinNum, GPIO. HIGH) վերադարձի հայտարարություն («Շրջել {} հյուրասենյակի լույսերը». Ձևաչափ (կարգավիճակ)), եթե _name_ == '_main_': port = 4500 app.run (host = '0.0.0.0 ', նավահանգիստ = նավահանգիստ)
Պահեք և փակեք ֆայլը:
Գործարկեք կոլբայի սերվերը հետևյալով.
sudo python fan_control.py
Թողեք և՛ ngrok, light_control.py, և՛ fan_control.py գործարկված
Քայլ 5. Տեղադրեք և կազմաձևեք LIRC փաթեթը
Հեռուստատեսությունը վերահսկելու համար դուք պետք է կազմաձևեք Raspberry Pi- ի քորոցը ՝ ձեր հատուկ հեռուստատեսության համար ինֆրակարմիր (IR) ազդանշաններ ստեղծելու համար: Բացեք տերմինալը և մուտքագրեք հետևյալ հրամանը ՝ LIRC փաթեթ տեղադրելու համար, որը նմանակում է բազմաթիվ հեռակառավարման վահանի ինֆրակարմիր ազդանշաններին:
sudo apt-get տեղադրել lirc
Հաջորդը, դուք պետք է միացնեք և կազմաձևեք lirc_rpi միջուկի մոդուլը: Դա անելու համար բացեք մոդուլներ Nano խմբագրիչում
sudo nano /etc /մոդուլներ
Ստորև բերված տողերը ավելացրեք ֆայլին (Համոզվեք, որ gpio_out_pin պարամետրը մատնանշում է IR LED- ը վերահսկող քորոցը).
lirc_devlirc_rpi gpio_out_pin = 17
Հաջորդը, բացեք hardware.conf ֆայլը Nano- ում, ինչպես նախկինում, sudo- ով:
sudo nano /etc/lirc/hardware.conf
Ֆայլին ավելացրեք հետևյալ կազմաձևը.
LIRCD_ARGS = "-uinput" LOAD_MODULES = ճշմարիտ
DRIVER = "կանխադրված"
ՍԱՐՔ = "/dev/lirc0"
ՄՈԴՈLESԼՍ = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Այժմ, վերագործարկեք Raspberry Pi- ն.
sudo վերագործարկում
Քայլ 6: Python Script հեռուստատեսության կառավարման համար
Բացեք տերմինալի նոր նստաշրջան և ստեղծեք նոր պիթոնի ֆայլ ir_control.py անունով.
nano ir_control.py
Գնացեք
Գտեք ձեր հեռուստացույցի հետ համատեղելի հեռակառավարիչ: Իմ դեպքում ես ունեմ Sanyo TV, որն աշխատում է sanyo-tv01 կազմաձևման ֆայլով: Երբ գտնեք ձեր հեռուստացույցին աջակցող ֆայլ, բացեք այն և դիտեք հրամանի ընտրանքները:
Պատճենեք/տեղադրեք հետևյալ ծածկագիրը նոր ֆայլի մեջ և փոխարինեք sanyo-tv01 ֆայլի անունով, որն աշխատում է ձեր հեռուստացույցի հետ: Նաև համոզվեք, որ հեռուստատեսային հրամանները ապահովված են ձեր հեռուստացույցների կազմաձևման ֆայլով. Հնարավոր է ՝ ստիպված լինեք փոփոխել KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN և KEY_MUTE հրամանները ՝ ձեր հեռուստատեսության կազմաձևման ֆայլի հետ ճիշտ աշխատելու համար.
flask import- ից flask_ask ներմուծում Հարց, հայտարարություն, convert_errors ներմուծում RPi. GPIO որպես GPIO ներմուծում անտառահատումներ ներմուծում os GPIO.setmode (GPIO. BCM) ծրագիր = Ֆլասկ (_ name_) ask = Հարց (ծրագիր, '/') logging.getLogger (" flask_ask "). setLevel (logging. DEBUG) @ask.intent ('GPIOControlIntent', mapping = {'status': 'status'}) #'pin': 'pin'})) def tv_function (status): ['միացնել']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER") վերադարձի հայտարարություն («Միացնել հեռուստացույցը») elif կարգավիճակը ['անջատել'] -ում. os.system ("irsend SEND_ONCE sanyo-tv01 KEY_POWER ") վերադարձի հայտարարությունը (« Հեռուստացույցի անջատում ») էլիֆ կարգավիճակը ['փոխել մուտքում']. հայտարարություն ('Հեռուստատեսության մուտքի փոփոխում') elif կարգավիճակ ['բարձրացնել ձայնի մեջ]. "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_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_VOLUMEDOWNOYEDYONYOYEDYONYOYEDOWNOUMEDOWNOQYONE ") վերադարձի հայտարարություն (« Հեռուստատեսության ձայնի նվազում ») elif կարգավիճակը ['անլռում]. ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") վերադարձի հայտարարություն («Հեռուստատեսության միացում») այլ. վերադարձի հայտարարություն («Հեռակա գործառույթը չի գտնվել»:), եթե _name_ ==' _main_ ': port = 5000 հավելված.run (հյուրընկալող = '0.0.0.0', նավահանգիստ = նավահանգիստ)
Պահեք և փակեք ֆայլը:
Գործարկեք կոլբայի սերվերը հետևյալով.
sudo python ir_control.py
Թողնել ջեռուցման տերմինալի բոլոր երեք պատուհանները, light_control.py, fan_control.py և ir_control.py
Քայլ 7: Մուտք գործեք AWS հաշիվ
Նախ ստեղծեք կամ մուտք գործեք ձեր AWS Developer հաշիվ և բացեք ձեր Alexa հմտությունների ցուցակը:
Քայլ 8: TV Alexa հմտությունների կարգավորում
Ընտրեք «Ավելացնել նոր հմտություն»:
Հմտության անունը սահմանեք «Գործարկեք հեռուստատեսություն», իսկ «Հրավերի անունը» ՝ այն բառ (ներ) ին, որոնք ցանկանում եք օգտագործել հմտությունը ակտիվացնելու համար:
Շարունակելու համար կտտացրեք «Հաջորդ»:
Պատճենեք/տեղադրեք հետևյալը «Մտադրության սխեմա» վանդակում.
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "գումարը", "type": "AMAZON. NUMBER"}], "մտադրությունը" `" GPIOControlIntent "}]}
Հաջորդը, կտտացրեք «Ավելացնել բնիկի տեսակը»
«Մուտքագրեք տեսակը» դաշտում մուտքագրեք TV_Function:
Մուտքագրեք հետևյալ արժեքները «Մուտքագրեք արժեքներ» դաշտում.
միացնել
անջատել փոփոխության մուտքը մեծացնել ծավալը նվազեցնել ձայնը միացնել unmute
Հաջորդը, պատճենեք/տեղադրեք հետևյալը «Sample Utterances» վանդակում.
GPIOControlIntent {կարգավիճակ}
GPIOControlIntent {կարգավիճակ} ըստ {amount}
Շարունակելու համար կտտացրեք «Հաջորդ»:
Ընտրեք «HTTPS» ՝ որպես ծառայության վերջնակետի տեսակ և ընտրեք տարածաշրջան: Մուտքագրեք ջերմային հասցեն 2 -րդ քայլից և կտտացրեք «Հաջորդ»: URL- ը պետք է լինի հետևյալը.
ed6ea04d.ngrok.io
Շարունակելու համար կտտացրեք «Հաջորդ» և սեղմեք «Պահել»:
Քայլ 9: Lights Alexa Skill Setup
Փակեք բացված հմտությունը և ընտրեք «Ավելացնել նոր հմտություն»:
Հմտության անունը սահմանեք «Lights Control», իսկ «Հրավերի անունը» ՝ այն բառերի (բառերի) վրա, որոնք ցանկանում եք օգտագործել հմտությունը ակտիվացնելու համար:
Շարունակելու համար կտտացրեք «Հաջորդ»: Պատճենեք/տեղադրեք հետևյալը «Մտադրության սխեմա» վանդակում.
{
"մտադրություններ": [{"slots": [{"name": "կարգավիճակ", "type": "LIGHTS_CONTROL"}], "մտադրություն": "LightsControlIntent"}]}
Հաջորդը, կտտացրեք «Ավելացնել բնիկի տեսակը»:
Մուտքագրեք «LIGHTS_CONTROL» «Մուտքագրեք տեսակը» դաշտում:
Մուտքագրեք հետևյալ արժեքները «Մուտքագրեք արժեքներ» դաշտում.
վրա
անջատված
Հաջորդը, պատճենեք/տեղադրեք հետևյալը «Sample Utterances» վանդակում.
LightsControlIntent շրջադարձ {կարգավիճակ}
Շարունակելու համար կտտացրեք «Հաջորդ»: Ընտրեք «HTTPS» ՝ որպես ծառայության վերջնակետի տեսակ և ընտրեք տարածաշրջան: Մուտքագրեք ջերմային հասցեն 2 -րդ քայլից և կտտացրեք «Հաջորդ»: URL- ը պետք է նման լինի.
ed6ea04d.ngrok.io
Շարունակելու համար կտտացրեք «Հաջորդ» և սեղմեք «Պահել»:
Քայլ 10: Fan Alexa հմտության կարգավորում
Փակեք բացված հմտությունը և ընտրեք «Ավելացնել նոր հմտություն»:
Հմտության անունը սահմանեք «Երկրպագուների վերահսկում», իսկ «Հրավիրման անուն» բառը `այն բառ (ներ), որոնք ցանկանում եք օգտագործել հմտությունը ակտիվացնելու համար:
Շարունակելու համար կտտացրեք «Հաջորդ»:
Պատճենեք/տեղադրեք հետևյալը «Մտադրության սխեմա» վանդակում.
{
"մտադրություններ": [{"slots": [{"name": "կարգավիճակ", "type": "FAN_CONTROL"}], "մտադրություն": "FANControlIntent"}]}
Հաջորդը, կտտացրեք «Ավելացնել բնիկի տեսակը»:
Մուտքագրեք «FAN_CONTROL» «Մուտքագրեք տեսակը» դաշտում:
Մուտքագրեք հետևյալ արժեքները «Մուտքագրեք արժեքներ» դաշտում.
վրա
անջատված
Հաջորդը, պատճենեք/տեղադրեք հետևյալը «Sample Utterances» վանդակում.
FANControlIntent շրջադարձ {կարգավիճակ}
Շարունակելու համար կտտացրեք «Հաջորդ»: Ընտրեք «HTTPS» ՝ որպես ծառայության վերջնակետի տեսակ և ընտրեք տարածաշրջան: Մուտքագրեք ջերմային հասցեն 2 -րդ քայլից և կտտացրեք «Հաջորդ»: URL- ը պետք է լինի հետևյալը.
ed6ea04d.ngrok.io
Շարունակելու համար կտտացրեք «Հաջորդ» և սեղմեք «Պահել»:
Քայլ 11: Կառուցեք շրջագիծը
Միացրեք միացումը, ինչպես ցույց է տրված դիագրամում: Ես օգտագործեցի JBtek 8 Channel DC 5V ռելեի մոդուլ `իմ տները AC 120v գծին և գետնին միացնելու համար:
Քայլ 12: Alexa- ի հրամաններ
Այժմ Alexa- ի հետ կարելի է ասել հետևյալ հրամանները ՝ ձեր հյուրասենյակը վերահսկելու համար:
Խորհուրդ ենք տալիս:
Հարրի Փոթերի IR հեռավորությունը ազնվամորու պիով. 5 քայլ
Հարրի Փոթերի IR Remote with Raspberry Pi. Այս հրահանգը նկարագրում է, թե ինչպես կարելի է պատրաստել Python- ի պարզ սցենար, որը կառավարվում է Հարի Փոթերի ունիվերսալ հեռակառավարման գավազանով `պատրաստված Noble Collection- ի կողմից: Այն պահանջում է Raspberry Pi որպես վերահսկիչ և Flirc USB IR ընդունիչ ՝ համակցված
Leրի մակարդակի մոնիտոր ազնվամորու պիով `4 քայլ
Leրի մակարդակի մոնիտոր ազնվամորու պիով. Ներածություն Բարև բոլորին, ես Շաֆինն եմ, Aiversity- ի անդամ: Ես պատրաստվում եմ կիսվել այն մասին, թե ինչպես կարելի է ջրի բաքերի համար ջրի մակարդակի տվիչ կառուցել Raspberry pi- ով: Այս նախագիծը կօգնի ձեզ մանրամասնորեն հասկանալ Raspberry pi- ի աշխատանքը
Juուկբոքս ազնվամորու պիով ՝ 3 քայլ
A Jukebox With Raspberry Pi. Այս ձեռնարկը, որը թույլ կտա ձեզ կառուցել այս Jukebox- ը (կամ ձեր սեփական մոդելը :)): Այս նախագիծը պահանջում է նվազագույն DIY վերաբերմունք, վստահություն աուդիո մալուխների և ընդհանրապես համակարգչային գիտության նկատմամբ: Նշում. այս ձեռնարկում տրամադրված է aut
Ազնվամորու պիով անշարժ նկարելը. 9 քայլ
Ազնվամորու պիով անշարժ նկարում. Ինչպես լուսանկարել ազնվամորի պիի հետ
Խելացի երաժշտություն ննջասենյակում և լոգարանում ազնվամորու պիով. Ինտեգրելով Multiroom, Alarm, Button Control և տան ավտոմատացում. 7 քայլ
Խելացի երաժշտություն ննջասենյակում և լոգարանում ազնվամորու պիով - Multiroom, Alarm, Button Control և Home Automation- ի ինտեգրում. Այսօր մենք ուզում ենք ձեզ տալ երկու օրինակ, թե ինչպես կարող եք օգտագործել Raspberry Pi- ն մեր Max2Play ծրագրով ՝ տան ավտոմատացման համար ՝ լոգարանում և ննջարանում: . Երկու նախագծերն էլ նման են նրանով, որ տարբեր աղբյուրներից բարձր հավատարմությամբ երաժշտությունը կարող է հոսել