Агуулгын хүснэгт:

Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах: 12 алхам
Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах: 12 алхам

Видео: Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах: 12 алхам

Видео: Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах: 12 алхам
Видео: ВСЯ НОЧЬ С ПОЛТЕРГЕЙСТОМ В ЖИЛОМ ДОМЕ, я заснял жуткую активность. 2024, Арваннэгдүгээр
Anonim
Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах
Alexa болон Raspberry Pi -ийн тусламжтайгаар зочны өрөөг удирдах

Alexa (Amazon Echo эсвэл Dot) болон Raspberry Pi GPIO ашиглан зочны өрөөнийхөө ТВ, гэрэл, сэнсийг удирдаарай.

Алхам 1: Анхны тохиргоо

Би https://www.raspberrypi.org/downloads/raspbian/ дээрээс татаж авсан Raspberry Pi 2 болон Raspbian Jessie -ийн зургийг ашигласан.

Нэвтэрсний дараа шаардлагатай багцууд болон python сангуудыг суулгахын тулд дараах тушаалуудыг оруулна уу.

sudo apt-get update && sudo apt-get upgrade -ysudo apt-get install python2.7-dev python-dev python-pip sudo pip install Flask колбо-sudo apt-get install lirc

Алхам 2: Ngrok -ийг тохируулна уу

Ngrok -ийг тохируулах
Ngrok -ийг тохируулах

Https://ngrok.com/download хаягаар зочилж, хамгийн сүүлийн үеийн Linux ARM хувилбарыг гэрийн директор дотроос зип хэлбэрээр задалж аваарай.

задлах/home/pi/ngrok-stable-linux-arm.zip

Шинэ терминал нээгээд дараах тушаалыг оруулна уу.

sudo./ngrok http 4000

Өөр шинэ терминал нээгээд дараах тушаалыг оруулна уу.

sudo./ngrok http 4500

Гурав дахь шинэ терминалыг нээгээд дараах тушаалыг оруулна уу.

sudo./ngrok http 5000

Алхам 3: Гэрлийн унтраалгыг хянах Python скрипт

Шинэ терминалын сесс нээж light_control.py нэртэй шинэ python файл үүсгэнэ үү.

нано light_control.py

Дараах кодыг шинэ файл руу хуулж/буулгана уу.

колбоны импортоос Flaskflask_ask импорт Асуулт, мэдэгдэл, convert_errors RPi. GPIO -ийг GPIO импортлох бүртгэлийг оруулах flask_ask "). setLevel (logging. DEBUG) @ask.intent ('LightControlIntent', mapping = {'status': 'status'}) def light_control (status): try: pinNum = 27 in Exception in e: return statement ('Пин дугаар буруу байна.') GPIO.setup (pinNum, GPIO. OUT) хэрэв ['on', 'high'] дэх төлөв: GPIO.output (pinNum, GPIO. LOW) бол ['off', 'төлөвт байвал бага ']: GPIO.output (pinNum, GPIO. HIGH) буцах мэдэгдэл (' Зочны өрөөний гэрлийг асаах 'форматыг (статус)) хэрэв _name_ ==' _main_ ': порт = 4000 app.run (host =' 0.0.0.0 ', порт = порт)

Файлыг хадгалаад хаах.

Колбаны серверийг дараах байдлаар эхлүүлнэ үү.

sudo python light_control.py

Ngrok болон light_control.py хоёуланг нь ажиллуулна уу

Алхам 4: Fan Control -д зориулсан Python скрипт

Шинэ терминалын сесс нээж fan_control.py нэртэй шинэ python файл үүсгэнэ үү.

нано fan_control.py

Дараах кодыг шинэ файл руу хуулж/буулгана уу.

колбоны импортоос Колбо

flask_ask импортоос Асуулт, мэдэгдэл, convert_errors RPi. GPIO -г GPIO хэлбэрээр импортлох бүртгэл импортлох GPIO.setmode (GPIO. BCM) апп = Колбо (_ name_) ask = Ask (app, '/') logging.getLogger ("flask_ask").setLevel (logging. DEBUG) @ask.intent ('FanControlIntent', mapping = {'status': 'status'}) def fan_control (status): try: pinNum = 22 in Exception in e: return statement ('Pin number) хүчин төгөлдөр биш байна. ') GPIO.setup (pinNum, GPIO. OUT) хэрэв [' on ',' high '] дэх төлөв: GPIO.output (pinNum, GPIO. LOW) бол [' off ',' low ']: GPIO.output (pinNum, GPIO. HIGH) буцах мэдэгдэл ('Зочны өрөөний гэрлийг асаах'.format (төлөв)) бол _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 нано /etc /модулиуд

Доорх мөрүүдийг файлд нэмнэ үү (gpio_out_pin параметр нь IR LED -ийг хянадаг зүү рүү чиглэсэн эсэхийг шалгаарай):

lirc_devlirc_rpi gpio_out_pin = 17

Дараа нь, Nano дахь hardware.conf файлыг урьдын адил sudo ашиглан нээнэ үү.

sudo нано /etc/lirc/hardware.conf

Дараах тохиргоог файлд нэмнэ үү.

LIRCD_ARGS = "-оролт" LOAD_MODULES = үнэн

ЖОЛООЧ = "анхдагч"

ТӨХӨӨРӨМ = "/dev/lirc0"

МОДУЛЬ = "lirc_rpi"

LIRCD_CONF = ""

LIRCMD_CONF = ""

Одоо Raspberry Pi -г дахин ачаална уу:

sudo дахин ачаална уу

Алхам 6: ТВ хянах Python скрипт

Шинэ терминалын сесс нээж, ir_control.py нэртэй шинэ python файл үүсгэнэ үү.

нано ir_control.py

Http://lirc-remotes.sourceforge.net/remotes-table руу орно уу.

ТВ -тэйгээ тохирох алсын удирдлагыг олоорой. Миний хувьд sanyo-tv01 тохиргооны файлтай ажилладаг Sanyo ТВ байна. ТВ -ээ дэмждэг файлыг олсны дараа нээгээд командын сонголтуудыг үзээрэй.

Дараах кодыг шинэ файл руу хуулж/оруулаад sanyo-tv01-ийг ТВтэйгээ ажилладаг файлын нэрээр солино уу. ТВ командыг таны ТВ -ийн тохиргооны файл дэмждэг эсэхийг шалгаарай; ТВ -ийн тохиргооны файлтай зөв ажиллахын тулд та KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN, KEY_MUTE тушаалуудыг өөрчлөх шаардлагатай болж магадгүй юм.

колбоны импортоос Flaskflask_ask импорт Асуулт, мэдэгдэл, convert_errors RPi. GPIO -ийг GPIO импортлох бүртгэлийг оруулах 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 ") буцах мэдэгдэл ('ТВ-ийн дууны хэмжээг нэмэгдүүлэх') 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_VOLUMEDOWN") os.sy_ ") буцах мэдэгдэл ('Телевизийн дууны хэмжээ буурах') elif status ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") буцах мэдэгдэл ('ТВ-ийн дууг хаах') elif төлөв ['дууг нээх. ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") буцах мэдэгдэл (' ТВ-ийн дууг нээх ') өөр: хэрэв _name_ ==' _main_ 'бол: буцах мэдэгдэл (' Алсын функц олдсонгүй. '): port = 5000 апп.run (хост = '0.0.0.0', порт = порт)

Файлыг хадгалаад хаах.

Колбаны серверийг дараах байдлаар эхлүүлнэ үү.

sudo python ir_control.py

Ngrok терминалын гурван цонх, light_control.py, fan_control.py, ir_control.py -ийг ажиллуулж орхих.

Алхам 7: AWS данс руу нэвтрэх

AWS данс руу нэвтрэх
AWS данс руу нэвтрэх

Эхлээд AWS хөгжүүлэгчийн бүртгэлээ үүсгэн нэвтрээд Alexa ур чадварын жагсаалтаа нээнэ үү.

Алхам 8: ТВ Alexa ур чадварын тохиргоо

ТВ Alexa ур чадварын тохиргоо
ТВ Alexa ур чадварын тохиргоо

"Шинэ ур чадвар нэмэх" -ийг сонгоно уу.

Ур чадварын нэрийг 'Trigger TV', дуудлагын нэрийг ур чадвараа идэвхжүүлэхийн тулд ашиглахыг хүсч буй үг (үүд) болгож тохируулаарай.

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу.

Дараахь зүйлийг "Зорилгын схем" хайрцагт хуулж/буулгана уу.

"slots": [{{"name": "status", "type": "TV_Function"}, {"name": "amount", "type": "AMAZON. NUMBER"}], "санаа": "GPIOControlIntent "}]}

Дараа нь 'Slot Type нэмэх' дээр дарна уу.

'Enter Type' талбарт TV_Function -ийг оруулна уу.

'Утга оруулах' талбарт дараах утгуудыг оруулна уу.

асаах

унтраах өөрчлөлт оролт нэмэгдүүлэх эзлэхүүн бууруулах дууны дууг хаах

Дараа нь 'Жишээ үгс' хайрцагт дараах зүйлийг хуулж/буулгана уу.

GPIOControlIntent {status}

GPIOControlIntent {status} -аар {хэмжээний}

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу.

"HTTPS" -ийг үйлчилгээний төгсгөлийн цэгийн төрлөөр сонгоод бүсийг сонгоно уу. 2 -р алхамаас ngrok URL -г оруулаад "Дараах" дээр дарна уу. URL нь иймэрхүү байх ёстой:

ed6ea04d.ngrok.io

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарж 'Хадгалах' дээр дарна уу.

Алхам 9: Alexa ур чадварын тохиргоо

Alexa ур чадварын тохиргоо
Alexa ур чадварын тохиргоо

Нээлттэй ур чадварыг хааж, "Шинэ ур чадвар нэмэх" -ийг сонгоно уу.

Ур чадварын нэрийг "Гэрлийн хяналт", дуудлагын нэрийг ур чадвараа идэвхжүүлэхийн тулд ашиглахыг хүссэн үг (үүд) болгож тохируулна уу.

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу. Дараахь зүйлийг "Зорилгын схем" хайрцагт хуулж/буулгана уу.

{

"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "санаа": "LightsControlIntent"}]}

Дараа нь 'Slot Type нэмэх' дээр дарна уу.

'Type Type' талбарт "LIGHTS_CONTROL" оруулна уу.

'Утга оруулах' талбарт дараах утгуудыг оруулна уу.

дээр

унтраасан

Дараа нь 'Жишээ үгс' хайрцагт дараах зүйлийг хуулж/буулгана уу.

LightsControlIntent {status} эргэх

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу. Үйлчилгээний төгсгөлийн цэгийн хувьд 'HTTPS' -ийг сонгоод бүс нутгийг сонгоно уу. 2 -р алхамаас ngrok URL -г оруулаад "Дараах" дээр дарна уу. URL нь иймэрхүү байх ёстой:

ed6ea04d.ngrok.io

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарж 'Хадгалах' дээр дарна уу.

Алхам 10: Фен Alexa ур чадварын тохиргоо

Фен Alexa ур чадварын тохиргоо
Фен Alexa ур чадварын тохиргоо

Нээлттэй ур чадварыг хааж, "Шинэ ур чадвар нэмэх" -ийг сонгоно уу.

Ур чадварын нэрийг 'Fan Control' болгож, уриалгын нэрийг ур чадвараа идэвхжүүлэхийн тулд ашиглахыг хүссэн үг (үүд) болгож тохируулна уу.

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу.

Дараахь зүйлийг "Зорилгын схем" хайрцагт хуулж/буулгана уу.

{

"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "санаа": "FANControlIntent"}]}

Дараа нь 'Slot Type нэмэх' дээр дарна уу.

'Type Type' талбарт "FAN_CONTROL" оруулна уу.

'Утга оруулах' талбарт дараах утгуудыг оруулна уу.

дээр

унтраасан

Дараа нь 'Жишээ үгс' хайрцагт дараах зүйлийг хуулж/буулгана уу.

FANControlIntent {status} руу эргэх

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарна уу. Үйлчилгээний төгсгөлийн цэгийн хувьд 'HTTPS' -ийг сонгоод бүс нутгийг сонгоно уу. 2 -р алхамаас ngrok URL -г оруулаад "Дараах" дээр дарна уу. URL нь иймэрхүү байх ёстой:

ed6ea04d.ngrok.io

Үргэлжлүүлэхийн тулд 'Дараах' дээр дарж 'Хадгалах' дээр дарна уу.

Алхам 11: Цирутыг бүтээх

Цирутыг бүтээх
Цирутыг бүтээх

Диаграммд үзүүлсэн шиг хэлхээг холбоно уу. Би JBtek 8 суваг DC 5V реле модулийг ашиглан гэрт AC 120v шугам, газардуулгыг холбосон.

Алхам 12: Alexa тушаалууд

Одоо Alexa -д зочны өрөөгөө удирдахын тулд дараах тушаалуудыг өгч болно.

Зөвлөмж болгож буй: