Алиса управляет компьютером-3 (Python): различия между версиями
Содержание
- 1 Вступление
- 2 Установка и настройка Python
- 3 Регистрируемся и собираем пульт в Blynk (больше недоступен - Есть альтернатива)
- 4 Регистрируемся и собираем пульт в Blynk альтернативная версия)
- 5 Настраиваем скрипт (вариант для ленивых)
- 6 Настраиваем скрипт (вариант для дотошных)
- 7 Проверяем работу скрипта и кнопок
- 8 И снова Алиса, и снова Кузя
- 9 Для перфекционистов
- 10 Послесловие
Alex cmx (обсуждение | вклад) Нет описания правки |
|||
| (не показано 29 промежуточных версий 5 участников) | |||
| Строка 1: | Строка 1: | ||
{{metadesc|{{PAGENAME}} | 3: Продвинутое управление при помощи Python}} | |||
__NOEDITSECTION__ | |||
__TOC__ | |||
{{Плашка | text = Корневая страница раздела: [[Алиса управляет компьютером]]}} | |||
== Вступление == | == Вступление == | ||
В данной статье | |||
== | Данная инструкция больше не рабочая, т.к. Blynk не работает. "работает на альтернативном сервере читаем пункт: Регистрируемся и собираем пульт в Blynk альтернативная версия" | ||
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь) | |||
В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны: | |||
* запуск приложений, | |||
* открытие веб-страниц в браузере, | |||
* выключение ПК, | |||
* использование "горячих" клавиш. | |||
Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко используют под свои нужды функции из примера. | |||
Мы используем в примере такие инструменты: | |||
* Python (устанавливается на компьютер, непосредственно способ управления ПК) | |||
* NirCmd (устанавливается на компьютер, расширяет возможности управления ПК) | |||
* Blynk (необходим для создания виртуального пульта в смартфоне) | |||
* Навык "Домовёнок Кузя" (для связи Blynk с Алисой) | |||
== Установка и настройка Python == | |||
Нам потребуется скачать и установить среду разработки Python. | |||
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь )) | |||
Итак: | |||
* Скачиваем Python [https://www.python.org/downloads/ по ссылке]. | |||
* Запускаем установщик. | |||
* Устанавливаем галочку на "Add Python <версия> to PATH". | |||
Лучше сделать папку Python доступной для переменной %PATH%. | |||
Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими: | |||
<Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py | |||
* Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым. | |||
[[Файл:1py.png|мини|Устанавливаем Python в PATH]] | [[Файл:1py.png|мини|Устанавливаем Python в PATH]] | ||
По окончании установки | |||
По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки: | |||
'''''pip install blynklib''' | * Открываем командную строку (Нажимаем '''Win+R''', вводим в строку '''cmd''', нажимаем '''Enter''') | ||
* Вводим поочередно команды | |||
== Регистрируемся и собираем пульт в Blynk == | ** <span class="tocopy">'''python -m pip install --upgrade pip'''</span> - пакетный менеджер для Python. | ||
** <span class="tocopy">'''pip install blynklib'''</span> - библиотека Blynk для Python. | |||
** <span class="tocopy">'''pip install pyautogui'''</span> - библиотека для работы с горячими клавишами. | |||
Вместо ручного ввода команд можно [https://yadi.sk/d/Tko9ICyWsExqeg скачать и запустить файл файл-сценарий установки библиотек], где эти команды уже указаны в нужном порядке (смотрите главу "Для ленивых"). | |||
<br style="clear:both"> | |||
== Регистрируемся и собираем пульт в Blynk (больше недоступен - Есть альтернатива) == | |||
Регистрация в Blynk подробно описана [https://clck.ru/LsQCe здесь]. | |||
Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта. | |||
Нам нужен только токен и любой добавленный проект.<br> | |||
Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу: | |||
<gallery> | <gallery> | ||
2py.png|Добавляем кнопки | 2py.png|Добавляем кнопки | ||
3py.png|Оформляем | 3py.png|Оформляем | ||
</gallery> | </gallery> | ||
== Настраиваем скрипт | |||
Загружаем [https://yadi.sk/d/ | |||
Готово! | |||
== Регистрируемся и собираем пульт в Blynk альтернативная версия) == | |||
1.Последняя версия приложения Blynk, в котором работает регистрация это Blynk v2.27.30 | |||
Скачиваем её, и устанавливаем. | |||
Если приложение не устанавливается, сначала пробуем дать разрешение на установку из неизвестных источников. | |||
2. Начнем с того, что сервер может быть оригинальный (сервер компании Blynk, с 01.01.23 не работает), так и кастомный, например, наш. | |||
Он расположен по адресу blynk.tk с портом 8080 для обычного соединения или 9443 для защищенного. | |||
Чтобы зарегистрироваться на нашем сервере, необходимо: | |||
1. Открыть приложение | |||
2. Нажать кнопку "Create new account" | |||
3. Ввести адрес своей почты и придумать пароль | |||
4. Нажать кнопку ниже, и ввести адрес нашего сервера - blynk.tk c портом 9443 или 8080 | |||
После этого вы можете входить в приложение при помощи почты и пароля. Токены для новых устройств будут высылаться вам на почту, также вы сможете их увидеть и в самом приложении. | |||
<gallery> | |||
New1.jpg|пункт 1 | |||
New2.jpg|Пункт 2 | |||
New3.jpg|Пункт 3 | |||
</gallery> | |||
3.Данный шаг необязателен, но при необходимости вы можете обновить приложение до любой другой версии, в новых версиях отсутствует возможность регистрации, именно для этого мы устанавливали старую версию. | |||
Есть вопросы можете направить их на почту vdzhola@gmail.com или в ТГ https://t.me/Holatvoff | |||
== Настраиваем скрипт (вариант для ленивых) == | |||
Загружаем [https://yadi.sk/d/PVxFUNz1boEPOw архив с файлами] и распаковываем его в папку ''C:\blynk_2_0''*. Если всё верно, в папке окажутся 7 файлов: | |||
* '''blynk.py''' - основное тело скрипта. | |||
* '''config.py''' - файл с конфигурацией. | |||
* '''install_libs.bat''' - сценарий для установки библиотек python из главы "Устанавливаем Python". | |||
* '''nircmd.exe''' - утилита расширения возможность командной строки. Подробнее по командам [https://www.nirsoft.net/utils/nircmd.html смотрите здесь]. | |||
* '''strt.bat''' - пакетный файл запуска скрипта в обычном режиме. | |||
* '''strt_hide.bat''' - пакетный файл запуска скрипта в скрытом режиме. | |||
* '''close_script.bat''' - пакетный файл для закрытия скрипта, который работает в скрытом режиме. | |||
В текущей версии: | |||
* Настроено 50 виртуальных пинов для работы в трех режимах: | |||
** 0 - Путь к приложению/Команда для командной строки CMD; | |||
** 1 - web-ссылка для открытия файлов; | |||
** 2 - сочетание клавиш. | |||
* Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0, а пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости). | |||
* Настройка вынесена в отдельный файл config.py для более быстрого понимания. | |||
'''ВНИМАНИЕ!''' Для работы необходимо в файле blynk.py исправить строку blynk=... на | |||
blynk = blynklib.Blynk(BLYNK_AUTH, server='blynk.tk', port=8080, ssl_cert=None, heartbeat=10, rcv_buffer=1024, log=print) | |||
=== Настраиваем виртуальные пины === | |||
# '''Открываем config.py''' с помощью любого текстового редактора. | |||
# Для параметра '''blynk_token="токен_от_проекта_blynk"''' задаем свой токен от проекта blynk. | |||
# Для параметра '''curpath = "С:\\blynk_2_0"''' задаем путь к папке со скриптом (если ставили в C:\blynk_2_0, то менять ничего не нужно). Важно: в путях вместо привычного одного слэша \ ставим двойной \\. | |||
# Для виртуальных пинов (которые будем использовать) указываем требуемые параметры (пример): | |||
* V5=[0,"notepad.exe"] где V5 - имя виртуального пина; параметр 0 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет выполняться команда CMD/запуск программы, в данном случае запустится "Блокнот". | |||
* V1=[1,"https://yandex.ru"] где V1 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт yandex.ru в стандартном браузере. | |||
* V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш "Win + R". | |||
<pre class="green"> | |||
Список клавиатурных обозначений: | |||
'\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`','a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~','accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace','browserback', 'browserfavorites', 'browserforward', 'browserhome','browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear','convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete','divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10','f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20','f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9','final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja','kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail','launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack','nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6','num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn','pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn','prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator','shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab','up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen','command', 'option', 'optionleft', 'optionright' | |||
</pre> | |||
Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов. | |||
Помните, что заработают они, когда вы зададите соответствующие имена виртуальных пинов виджетам в приложении Blynk! | |||
После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска. | |||
== Настраиваем скрипт (вариант для дотошных)== | |||
Загружаем [//yadi.sk/d/FYb9n_gp8V8IMA скрипт blynk.py], открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим: | |||
{{#spoiler:show=Показать скрипт | hide=Спрятать скрипт | | |||
<pre> | <pre> | ||
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib) | import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib) | ||
| Строка 79: | Строка 210: | ||
blynk.run() | blynk.run() | ||
</pre> | </pre> | ||
}} | |||
Несмотря на страшный вид, все просто. Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта: | |||
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен | |||
Например, чтобы добавить функцию открытия командной строки по нажатию на | Теперь настроим пины. | ||
=== Настраиваем виртуальные пины === | |||
Чуть ниже комментариями выделен блок с функциями виртуальных пинов Blynk. Например, чтобы добавить функцию открытия командной строки по нажатию на привязанную к пину V4 кнопку, добавим блок: | |||
{{#spoiler:show=Показать блок | hide=Спрятать блок | | |||
<pre> | <pre> | ||
@blynk.handle_event('write V4') | @blynk.handle_event( 'write V4' ) | ||
def write_virtual_pin_handler(pin, value): | def write_virtual_pin_handler( pin, value ): | ||
if str(value) == "['1']": | if str(value) == "['1']": | ||
app = "cmd" #путь к приложению | app = "cmd" #путь к приложению | ||
startcmd(app) | startcmd( app ) | ||
print ('открываю '+app)</pre> | print( 'открываю ' + app ) | ||
</pre> | |||
}} | |||
в любое место '''выше этого комментария''': | |||
#---------------------Конец блока функций для виртуальных пинов blynk----------------- | |||
Разберём работу блока: | |||
* '''@blynk.handle_event('write V4')''' - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5'). | |||
* '''app = "cmd"''' - вместо cmd вписываем | |||
** реальный путь к программе, например: <span class="tocopy">app = "С:\Program Files\AIMP\AIMP.exe"</span> | |||
** или консольную команду, например: <span class="tocopy">app = "cd C:\windows\"</span> | |||
Сохраняем скрипт. | |||
В скрипте используется библиотека PyAutoGui, которая умеет не только обрабатывать виртуальное нажатие клавиш, но и: | |||
* делать скриншоты, | |||
* управлять мышью, | |||
* выводить диалоговые окна на экран | |||
* контролировать размещение окон (свернуть, развернуть, переместить), и так далее. | |||
Подробнее можно узнать в [https://pyautogui.readthedocs.io/en/latest/index.html документации] к библиотеке. | |||
== Проверяем работу скрипта и кнопок == | |||
Рекомендуемый способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat/cmd-файла: | |||
* Открываем блокнот ('''Win+R''', вводим '''notepad''', нажимаем '''Enter''') | |||
* В блокноте пишем: '''python <путь к файлу скрипта>\blynk.py''' | |||
* Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "Тип" выбираем "Все файлы". Пишем имя файла <удобное_имя>.bat) | |||
* Запускаем <удобное_имя>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk: | |||
[[Файл:4py.png | 600px]] | |||
== И снова Алиса, и снова Кузя == | |||
Итак, у нас уже работает удалённое управление, осталось познакомить виртуальные пины Blynk с Алисой. Как это сделать, [https://clck.ru/LsXvV рассказано здесь]. | |||
== Для перфекционистов == | |||
И всех тех, кому мешает окно командной строки ;) | |||
Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Но далеко не всем нужно (и понравится) иметь лишнее консольное окно, болтающееся среди остальных программ. | |||
Есть несколько способов его скрытия, предлагаем вариант с использованием приложения NirCmd (тем более, что объем у нее неимоверно маленький, а функционал большой). | |||
Для этого: | |||
* Загружаем NirCmd [https://www.nirsoft.net/utils/nircmd.html на официальном сайте] (внизу страницы). | |||
* Распаковываем nircmd.exe из архива в любое удобное место. | |||
* Меняем в нашем bat-файле строку | |||
python <путь к файлу скрипта>\blynk.py | |||
на | |||
'''<Путь к файлу>\nircmd.exe exec hide''' python <путь к файлу скрипта>\blynk.py | |||
Теперь лишнее окно скрыто, но наблюдать и завершить его работу можно будет только из "Диспетчера задач" - по имени процесса "python". | |||
NirCmd пригодится и для управления функциями ПК (если укажем нужные команды в соответствующем блоке функций для пинов). | |||
Подробнее о том, что умеет эта программулька - [https://www.nirsoft.net/utils/nircmd.html в списке на официальном сайте]. | |||
== Послесловие == | |||
Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше) | |||
В статье приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =) | |||
Удачи в экспериментах! | |||
[[Category:Умный дом]] | |||
Текущая версия от 09:58, 3 августа 2024
Вступление
Данная инструкция больше не рабочая, т.к. Blynk не работает. "работает на альтернативном сервере читаем пункт: Регистрируемся и собираем пульт в Blynk альтернативная версия"
В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны:
- запуск приложений,
- открытие веб-страниц в браузере,
- выключение ПК,
- использование "горячих" клавиш.
Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко используют под свои нужды функции из примера.
Мы используем в примере такие инструменты:
- Python (устанавливается на компьютер, непосредственно способ управления ПК)
- NirCmd (устанавливается на компьютер, расширяет возможности управления ПК)
- Blynk (необходим для создания виртуального пульта в смартфоне)
- Навык "Домовёнок Кузя" (для связи Blynk с Алисой)
Установка и настройка Python
Нам потребуется скачать и установить среду разработки Python.
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь ))
Итак:
- Скачиваем Python по ссылке.
- Запускаем установщик.
- Устанавливаем галочку на "Add Python <версия> to PATH".
Лучше сделать папку Python доступной для переменной %PATH%. Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py
- Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым.

По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки:
- Открываем командную строку (Нажимаем Win+R, вводим в строку cmd, нажимаем Enter)
- Вводим поочередно команды
- python -m pip install --upgrade pip - пакетный менеджер для Python.
- pip install blynklib - библиотека Blynk для Python.
- pip install pyautogui - библиотека для работы с горячими клавишами.
Вместо ручного ввода команд можно скачать и запустить файл файл-сценарий установки библиотек, где эти команды уже указаны в нужном порядке (смотрите главу "Для ленивых").
Регистрируемся и собираем пульт в Blynk (больше недоступен - Есть альтернатива)
Регистрация в Blynk подробно описана здесь.
Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта. Нам нужен только токен и любой добавленный проект.
Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:
-
Добавляем кнопки
-
Оформляем
Готово!
Регистрируемся и собираем пульт в Blynk альтернативная версия)
1.Последняя версия приложения Blynk, в котором работает регистрация это Blynk v2.27.30 Скачиваем её, и устанавливаем. Если приложение не устанавливается, сначала пробуем дать разрешение на установку из неизвестных источников. 2. Начнем с того, что сервер может быть оригинальный (сервер компании Blynk, с 01.01.23 не работает), так и кастомный, например, наш. Он расположен по адресу blynk.tk с портом 8080 для обычного соединения или 9443 для защищенного.
Чтобы зарегистрироваться на нашем сервере, необходимо:
1. Открыть приложение 2. Нажать кнопку "Create new account" 3. Ввести адрес своей почты и придумать пароль 4. Нажать кнопку ниже, и ввести адрес нашего сервера - blynk.tk c портом 9443 или 8080
После этого вы можете входить в приложение при помощи почты и пароля. Токены для новых устройств будут высылаться вам на почту, также вы сможете их увидеть и в самом приложении.
-
пункт 1
-
Пункт 2
-
Пункт 3
3.Данный шаг необязателен, но при необходимости вы можете обновить приложение до любой другой версии, в новых версиях отсутствует возможность регистрации, именно для этого мы устанавливали старую версию.
Есть вопросы можете направить их на почту vdzhola@gmail.com или в ТГ https://t.me/Holatvoff
Настраиваем скрипт (вариант для ленивых)
Загружаем архив с файлами и распаковываем его в папку C:\blynk_2_0*. Если всё верно, в папке окажутся 7 файлов:
- blynk.py - основное тело скрипта.
- config.py - файл с конфигурацией.
- install_libs.bat - сценарий для установки библиотек python из главы "Устанавливаем Python".
- nircmd.exe - утилита расширения возможность командной строки. Подробнее по командам смотрите здесь.
- strt.bat - пакетный файл запуска скрипта в обычном режиме.
- strt_hide.bat - пакетный файл запуска скрипта в скрытом режиме.
- close_script.bat - пакетный файл для закрытия скрипта, который работает в скрытом режиме.
В текущей версии:
- Настроено 50 виртуальных пинов для работы в трех режимах:
- 0 - Путь к приложению/Команда для командной строки CMD;
- 1 - web-ссылка для открытия файлов;
- 2 - сочетание клавиш.
- Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0, а пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости).
- Настройка вынесена в отдельный файл config.py для более быстрого понимания.
ВНИМАНИЕ! Для работы необходимо в файле blynk.py исправить строку blynk=... на
blynk = blynklib.Blynk(BLYNK_AUTH, server='blynk.tk', port=8080, ssl_cert=None, heartbeat=10, rcv_buffer=1024, log=print)
Настраиваем виртуальные пины
- Открываем config.py с помощью любого текстового редактора.
- Для параметра blynk_token="токен_от_проекта_blynk" задаем свой токен от проекта blynk.
- Для параметра curpath = "С:\\blynk_2_0" задаем путь к папке со скриптом (если ставили в C:\blynk_2_0, то менять ничего не нужно). Важно: в путях вместо привычного одного слэша \ ставим двойной \\.
- Для виртуальных пинов (которые будем использовать) указываем требуемые параметры (пример):
- V5=[0,"notepad.exe"] где V5 - имя виртуального пина; параметр 0 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет выполняться команда CMD/запуск программы, в данном случае запустится "Блокнот".
- V1=[1,"https://yandex.ru"] где V1 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт yandex.ru в стандартном браузере.
- V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш "Win + R".
Список клавиатурных обозначений:
'\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(',')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7','8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`','a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o','p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~','accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace','browserback', 'browserfavorites', 'browserforward', 'browserhome','browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear','convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete','divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10','f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20','f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9','final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja','kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail','launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack','nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6','num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn','pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn','prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator','shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab','up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen','command', 'option', 'optionleft', 'optionright'
Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов.
Помните, что заработают они, когда вы зададите соответствующие имена виртуальных пинов виджетам в приложении Blynk!
После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска.
Настраиваем скрипт (вариант для дотошных)
Загружаем скрипт blynk.py, открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:
Несмотря на страшный вид, все просто. Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта:
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен
Теперь настроим пины.
Настраиваем виртуальные пины
Чуть ниже комментариями выделен блок с функциями виртуальных пинов Blynk. Например, чтобы добавить функцию открытия командной строки по нажатию на привязанную к пину V4 кнопку, добавим блок:
в любое место выше этого комментария:
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
Разберём работу блока:
- @blynk.handle_event('write V4') - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
- app = "cmd" - вместо cmd вписываем
- реальный путь к программе, например: app = "С:\Program Files\AIMP\AIMP.exe"
- или консольную команду, например: app = "cd C:\windows\"
Сохраняем скрипт.
В скрипте используется библиотека PyAutoGui, которая умеет не только обрабатывать виртуальное нажатие клавиш, но и:
- делать скриншоты,
- управлять мышью,
- выводить диалоговые окна на экран
- контролировать размещение окон (свернуть, развернуть, переместить), и так далее.
Подробнее можно узнать в документации к библиотеке.
Проверяем работу скрипта и кнопок
Рекомендуемый способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat/cmd-файла:
- Открываем блокнот (Win+R, вводим notepad, нажимаем Enter)
- В блокноте пишем: python <путь к файлу скрипта>\blynk.py
- Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "Тип" выбираем "Все файлы". Пишем имя файла <удобное_имя>.bat)
- Запускаем <удобное_имя>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk:
И снова Алиса, и снова Кузя
Итак, у нас уже работает удалённое управление, осталось познакомить виртуальные пины Blynk с Алисой. Как это сделать, рассказано здесь.
Для перфекционистов
И всех тех, кому мешает окно командной строки ;)
Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Но далеко не всем нужно (и понравится) иметь лишнее консольное окно, болтающееся среди остальных программ. Есть несколько способов его скрытия, предлагаем вариант с использованием приложения NirCmd (тем более, что объем у нее неимоверно маленький, а функционал большой).
Для этого:
- Загружаем NirCmd на официальном сайте (внизу страницы).
- Распаковываем nircmd.exe из архива в любое удобное место.
- Меняем в нашем bat-файле строку
python <путь к файлу скрипта>\blynk.py
на
<Путь к файлу>\nircmd.exe exec hide python <путь к файлу скрипта>\blynk.py
Теперь лишнее окно скрыто, но наблюдать и завершить его работу можно будет только из "Диспетчера задач" - по имени процесса "python".
NirCmd пригодится и для управления функциями ПК (если укажем нужные команды в соответствующем блоке функций для пинов).
Подробнее о том, что умеет эта программулька - в списке на официальном сайте.
Послесловие
Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше) В статье приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =)
Удачи в экспериментах!