Алиса управляет компьютером-3 (Python)
Вступление
В данной статье попробуем создать виртуальный пульт, UI для управления действиями ПК. В данном примере рассмотрим такой функционал, как запуск приложений, открытие веб-страниц в браузере, выключение ПК и использование "горячих" клавиш. К слову - это не весь функционал, который можно применить, прочитав данную статью. Для тех, кто знаком с языком программирования Python не составит труда расширить предложенный скрипт по своему вкусу. Пользователям же с начальными знаниями будет несложно использовать перечисленные функции под свои нужды с минимальными трудозатратами.
От слова к делу или устанавливаем Python
Для начала нам потребуется скачать и установить среду разработки Python, т.к. это основной инструмент, который будет управлять компьютером.
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь)
- Скачать установщик Python по ссылке
- Запустить установщик (предполагается установка Python в PATH, дабы не морочиться с запуском скрипта. Если все же вы решили отказаться от установки в PATH, то команда запуска скрипта будет такой: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py).
- Устанавливаем галочку на "Add Python <версия> to PATH".
- Нажимаем "Install Python" и продолжаем установку соглашаясь со всем, что предложит нам установщик.

По окончании установки можем проверить работоспособность установив нужные нам в будущем библиотеки. Для этого:
- Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
- Водим поочередно следующие команды:
pip install blynklib - библиотека Blynk для Python
pip install pyautogui - библиотека для работы с горячими клавишами
Регистрируемся и собираем пульт в Blynk
Не буду заострять внимание на регистрации в Blynk, т.к. данный процесс уже описан в статье, конкретно здесь. Единственное, что стоит заметить, что в данном случае вовсе неважно, какое устройство вы выберете при создании проекта, тажке как и неважно какой это будет способ подключения. Нам важен только токен и возможность работы с проектом.
После регистрации добавим в наш проект нужное количество кнопок Button. Можно оформить и подписать их по вкусу.
-
Добавляем кнопки
-
Оформляем
Настраиваем скрипт Python под себя
Загружаем скрипт
Открываем его любым текстовым редактором (мне по вкусу Sublime Text, но вы можете использовать хоть блокнот)))) и видим следующее:
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib)
import subprocess #библиотека для запуска параллельных процессов
import webbrowser #библиотека для работы с веб
import pyautogui #библиотека для эмуляции нажатий клавиш клавиатуры (перед этим в CMD сделать pip install pyautogui)
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен
blynk = blynklib.Blynk(BLYNK_AUTH)
#функция для запуска отдельным процессом приложений и команд
def startcmd(cmd):
PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, shell = True)
p.poll();
#---------------------Начало блока функций для виртуальных пинов blynk-----------------
#Пример открытия сайта в браузере
@blynk.handle_event('write V0')
def write_virtual_pin_handler(pin, value):
if str(value) == "['1']":
url = "https://dialogs.yandex.ru/store/" #ссылка на сайт
webbrowser.open(url)
print ('открываю сайт '+url)
#Пример запуска блокнота
@blynk.handle_event('write V1')
def write_virtual_pin_handler(pin, value):
if str(value) == "['1']":
app = "notepad.exe" #путь к приложению. Например "С:\Program Files\AIMP\AIMP.exe"
startcmd(app)
print ('открываю '+app)
#Пример виртуального нажатия горячих клавиш
@blynk.handle_event('write V2')
def write_virtual_pin_handler(pin, value):
if str(value) == "['1']":
pyautogui.hotkey('ctrl','v') #комбинация горячих клавиш
print ('вставляю текст из буфера')
#Пример ввода команд (например выключение ПК)
@blynk.handle_event('write V3')
def write_virtual_pin_handler(pin, value):
if str(value) == "['1']":
comd = "shutdown –s -t 60" #команда для CMD (командная строка Windows)
startcmd(comd)
print ('Выключаю ПК')
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
while True:
blynk.run()
Несмотря на страшный вид, все просто:
Тут (вместо ВАШ_ТОКЕН_Blynk) вставляем свой токен, полученный в процессе создания проекта Blynk.
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен
Чуть ниже комментариями выделен блок, где находятся функции, соответствующие каждому виртуальному пину Blynk.
Например, чтобы добавить функцию открытия командной строки по нажатию на кнопку, привязанную к пину V4, нужно добавить блок функции
@blynk.handle_event('write V4')
def write_virtual_pin_handler(pin, value):
if str(value) == "['1']":
app = "cmd" #путь к приложению
startcmd(app)
print ('открываю '+app)
перед комментарием (или между уже имеющихся блоков функций)
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
Теперь подробно:
@blynk.handle_event('write V4') - тут объявляем что функция будет выполнена только после чтения виртуального пина V4 (т.е., чтобы использовать пин V5 - меняем write V4 на write V5).
app = "cmd" - тут вписываем путь к запускаемому файлу (например "С:\Program Files\AIMP\AIMP.exe") или команду для командной строки (например "cd C:\windows\")
Сохраняем получившийся скрипт.
Теперь можем запустить его и проверить работоспособность, нажимая созданные нами кнопки в мобильном приложении Blynk. Самый простой способ запуска (в дальнейшем можно оперировать файлом, поэтому так) с помощью bat-файла. Для этого:
- Открываем блокнот (Win+R, вводим notepad, нажимаем Enter)
- В блокноте вписываем следующее: python <путь к файлу скрипта>\blynk.py
- Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "тип" выбираем "все файлы". В поле ввода имени файла пишем <имя_файла_запуска>.bat)
- Запускаем <имя_файла_запуска>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk.

И снова Алиса, и снова Кузя...
Теперь настроим управление нашими виртуальными пинами с помощью Алисы. Как это делается, я уже описывал здесь.