Съдържание:
- Стъпка 1: Първоначална настройка
- Стъпка 2: Настройка на Ngrok
- Стъпка 3: Python скрипт за управление на превключвателя на светлината
- Стъпка 4: Python скрипт за контрол на вентилатора
- Стъпка 5: Инсталиране и конфигуриране на LIRC пакета
- Стъпка 6: Python Script за управление на телевизора
- Стъпка 7: Влезте в акаунта на AWS
- Стъпка 8: Настройка на уменията на TV Alexa
- Стъпка 9: Осветява настройката на Alexa Alexa
- Стъпка 10: Настройка на уменията на Fan Alexa
- Стъпка 11: Изградете Ciruit
- Стъпка 12: Alexa Commands
Видео: Контролирайте хола с Alexa и Raspberry Pi: 12 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:49
Управлявайте телевизора, осветлението и вентилатора в хола си с Alexa (Amazon Echo или Dot) и Raspberry Pi GPIO.
Стъпка 1: Първоначална настройка
Използвах 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 flask-ask sudo apt-get install lirc
Стъпка 2: Настройка на 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 скрипт за управление на превключвателя на светлината
Отворете нова терминална сесия и създайте нов python файл с име light_control.py:
nano light_control.py
Копирайте/поставете следния код в новия файл:
от колба за импортиране Flaskот flask_ask импортиране Питане, изявление, convert_errors импортиране на RPi. GPIO като GPIO импортиране на регистриране импортиране 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: return statement („Pin номер не е валиден.“) GPIO.setup (pinNum, GPIO. OUT), ако състоянието е в [„on“, „high“]: GPIO.output (pinNum, GPIO. LOW), ако състоянието е в „„ 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 скрипт за контрол на вентилатора
Отворете нова терминална сесия и създайте нов python файл с име fan_control.py:
nano fan_control.py
Копирайте/поставете следния код в новия файл:
от колба внос колба
от flask_ask импортиране Питане, изявление, convert_errors импортиране на RPi. GPIO като GPIO импортиране на регистриране импортиране os GPIO.setmode (GPIO. BCM) app = 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 с изключение на Exception as e: return statement ('Pin number не е валиден. ') GPIO.setup (pinNum, GPIO. OUT) if status in [' on ',' high ']: GPIO.output (pinNum, GPIO. LOW) if status in [' 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 install 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 = "по подразбиране"
DEVICE = "/dev/lirc0"
MODULES = "lirc_rpi"
LIRCD_CONF = ""
LIRCMD_CONF = ""
Сега рестартирайте Raspberry Pi:
sudo рестартиране
Стъпка 6: Python Script за управление на телевизора
Отворете нова терминална сесия и създайте нов python файл с име ir_control.py:
nano ir_control.py
Отидете на
Намерете дистанционно, което е съвместимо с вашия телевизор. В моя случай имам телевизор Sanyo, който работи с конфигурационния файл sanyo-tv01. След като намерите файл, който поддържа вашия телевизор, отворете го и разгледайте опциите за команди.
Копирайте/поставете следния код в новия файл и заменете sanyo-tv01 с името на файла, който работи с вашия телевизор. Уверете се също, че телевизионните команди се поддържат от конфигурационния файл на телевизорите ви; Може да се наложи да промените командите KEY_POWER, KEY_VIDEO, KEY_VOLUMEUP, KEY_VOLUMEDOWN и KEY_MUTE, за да работят правилно с конфигурационния файл на вашия телевизор:
от колба за импортиране Flaskот flask_ask импортиране Питане, изявление, convert_errors импортиране на RPi. GPIO като GPIO импортиране на регистриране импортиране 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 KEYNOL) 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_OUM") ") return statement (" Намаляване на силата на звука на телевизора ") elif status in ['mute']: os.system (" irsend SEND_ONCE sanyo-tv01 KEY_MUTE ") return statement ('Muting the TV') elif status in ['unmute ']: os.system ("irsend SEND_ONCE sanyo-tv01 KEY_MUTE") декларация за връщане ("Деактивиране на телевизора") else: return statement (' Отдалечена функция не е намерена. ') if _name_ ==' _main_ ': port = 5000 app.run (хост = '0.0.0.0', порт = порт)
Запишете и затворете файла.
Стартирайте сървъра за колба с:
sudo python ir_control.py
Оставете и трите терминални прозореца ngrok, light_control.py, fan_control.py и ir_control.py да работят
Стъпка 7: Влезте в акаунта на AWS
Първо създайте или влезте във вашия акаунт за разработчици на AWS и отворете списъка си с Alexa Skills.
Стъпка 8: Настройка на уменията на TV Alexa
Изберете „Добавяне на ново умение“.
Задайте Името на умението „Задействане на телевизия“, а Името на извикването - думата (ите), които искате да използвате, за да активирате умението.
Щракнете върху „Напред“, за да продължите.
Копирайте/поставете следното в полето „Схема на намерение“:
"slots": [{"name": "status", "type": "TV_Function"}, {"name": "сума", "type": "AMAZON. NUMBER"}], "intent": "GPIOControlIntent "}]}
След това кликнете върху „Добавяне на тип слот“
Въведете TV_Function в полето „Enter Type“.
Въведете следните стойности в полето „Въведете стойности“:
включи
изключване промяна вход увеличаване на силата на звука намаляване на звука заглушаване включване
След това копирайте/поставете следното в полето „Примерни изявления“:
GPIOControlIntent {статус}
GPIOControlIntent {status} от {amount}
Щракнете върху „Напред“, за да продължите.
Изберете „HTTPS“като Тип на крайната точка на услугата и изберете регион. Въведете URL адреса ngrok от стъпка 2 и щракнете върху „Напред“. URL адресът трябва да е нещо като:
ed6ea04d.ngrok.io
Щракнете върху „Напред“, за да продължите, и натиснете „Запазване“.
Стъпка 9: Осветява настройката на Alexa Alexa
Затворете отвореното умение и изберете „Добавяне на ново умение“.
Задайте Името на умението „Контрол на светлините“, а Името на извикването - думата (ите), която искате да използвате, за да активирате умението.
Щракнете върху „Напред“, за да продължите. Копирайте/поставете следното в полето „Схема на намерение“:
{
"intents": [{"slots": [{"name": "status", "type": "LIGHTS_CONTROL"}], "intent": "LightsControlIntent"}]}
След това кликнете върху „Добавяне на тип слот“.
Въведете „LIGHTS_CONTROL“в полето „Въведете тип“.
Въведете следните стойности в полето „Въведете стойности“:
На
изключен
След това копирайте/поставете следното в полето „Примерни изявления“:
LightsControlIntent завийте {status}
Щракнете върху „Напред“, за да продължите. Изберете „HTTPS“като Тип на крайната точка на услугата и изберете регион. Въведете URL адреса ngrok от стъпка 2 и щракнете върху „Напред“. URL адресът трябва да е нещо като:
ed6ea04d.ngrok.io
Щракнете върху „Напред“, за да продължите, и натиснете „Запазване“.
Стъпка 10: Настройка на уменията на Fan Alexa
Затворете отвореното умение и изберете „Добавяне на ново умение“.
Задайте Името на умението на „Управление на вентилатора“, а Името на извикването - на думата (ите), която искате да използвате, за да активирате умението.
Щракнете върху „Напред“, за да продължите.
Копирайте/поставете следното в полето „Схема на намерение“:
{
"intents": [{"slots": [{"name": "status", "type": "FAN_CONTROL"}], "intent": "FANControlIntent"}]}
След това кликнете върху „Добавяне на тип слот“.
Въведете „FAN_CONTROL“в полето „Въведете тип“.
Въведете следните стойности в полето „Въведете стойности“:
На
изключен
След това копирайте/поставете следното в полето „Примерни изявления“:
FANControlIntent завой {status}
Щракнете върху „Напред“, за да продължите. Изберете „HTTPS“като Тип на крайната точка на услугата и изберете регион. Въведете URL адреса ngrok от стъпка 2 и щракнете върху „Напред“. URL адресът трябва да е нещо като:
ed6ea04d.ngrok.io
Щракнете върху „Напред“, за да продължите, и натиснете „Запазване“.
Стъпка 11: Изградете Ciruit
Свържете веригата, както е показано на диаграмата. Използвах 8 -канален DC 5V релеен модул JBtek за свързване към домовете AC 120v линия и земя.
Стъпка 12: Alexa Commands
Сега следните команди могат да бъдат изговорени с Alexa, за да ви контролира хола.
Препоръчано:
Прост контрол с жестове - Контролирайте вашите RC играчки с движението на ръката си: 4 стъпки (със снимки)
Прост контрол с жестове - Контролирайте вашите RC играчки с движението на ръката си: Добре дошли в моя „ible“#45. Преди малко направих напълно работеща RC версия на BB8, използвайки части от Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R … Когато видях колко е готино Force Band, направен от Sphero, си помислих: „Добре, аз
Двоен урок SONOFF: Контролирайте дистанционно електрическите си уреди с помощта на MQTT и Ubidots: 4 стъпки
Двоен урок SONOFF: Контролирайте дистанционно своите електрически уреди, използвайки MQTT и Ubidots: Това Wi-Fi реле за $ 9 може да управлява два уреда едновременно. Научете как да го свържете към Ubidots и да разгърнете пълния му потенциал! В това ръководство ще научите как да контролирате няколко 110V уреда през Wi-Fi за $ 9, като използвате SONOFF Dual на Itead
Контролирайте оформлението на своя модел влак с клавиатурата си: 12 стъпки
Контролирайте оформлението на модела си с клавиатурата !: В една от предишните ми инструкции ви показах как можете да управлявате модела на влака си с дистанционното за телевизора. Можете да проверите надстроената версия също тук. В тази инструкция ще ви покажа как да управлявате оформлението на модела на влака с клавиатура чрез
Контролирайте оформлението на своя модел влак с мобилния си телефон!: 11 стъпки (със снимки)
Контролирайте оформлението на модела на влака с мобилния си телефон !: Контролирането на оформлението на модела на влака с дротови дросели и регулатори на избирателната активност може да бъде добро начало за начинаещи, но те създават проблем с непоносимостта. Също така безжичните контролери, които се предлагат на пазара, могат или да контролират само някои локоми
Android Home (контролирайте дома си от телефона си): 4 стъпки
Android Home (контролирайте дома си от телефона си): Крайният ми план е къщата ми да е в джоба, нейните ключове, сензори и сигурност. и след това автоматично свързване Въведение: Здравейте Ich bin zakriya и този " Android home " е моят проект, този проект е първи от четири предстоящи инструкции, в