Перейти к содержанию

Алиса управляет компьютером-3 (Python): различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 65: Строка 65:


== Настраиваем скрипт (вариант для ленивых) ==
== Настраиваем скрипт (вариант для ленивых) ==
Загружаем [https://yadi.sk/d/PVxFUNz1boEPOw архив] с необходимыми файлами. и распаковываем его в папку ''C:\blynk_2_0''. В итоге на диске C:\ должна лежать папка с 7 файлами:
Загружаем [https://yadi.sk/d/PVxFUNz1boEPOw архив] с необходимыми файлами. и распаковываем его в папку ''C:\blynk_2_0''*. В итоге на диске C:\ должна лежать папка с 7 файлами:
* blynk.py - основное тело скрипта.
* blynk.py - основное тело скрипта.
* config.py - файл с конфигурацией.
* config.py - файл с конфигурацией.
Строка 75: Строка 75:


В данной версии скрипта:
В данной версии скрипта:
# Настроено 50 виртуальных пинов для работы в трех режимах:  
# Настроено 50 виртуальных пинов для работы в трех режимах: 0 - Путь к приложению/Команда для командной строки CMD; 1 - web-ссылка для открытия файлов; 2 - сочетание клавиш.
* 0 - Путь к приложению/Команда для командной строки CMD
* 1 - web-ссылка для открытия файлов
* 2 - сочетание клавиш
# Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0. Пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости.)
# Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0. Пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости.)
# Настройка работы скрипта перенесена в отдельный файл config.py для более быстрого понимания.
=== Настраиваем виртуальные пины ===
# Открываем 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,"http://yandex.ru"] где V5 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт http://yandex.ru в стандартном браузере.
* V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш Win+R.
Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов (Помните, что работать они будут только, если вы зададите виджетам в приложении Blynk соответствующие имена виртуальных пинов).<br>
После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска.


== Настраиваем скрипт (вариант для дотошных)==
== Настраиваем скрипт (вариант для дотошных)==

Версия от 15:25, 20 января 2020

Вступление

В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны:

  • запуск приложений,
  • открытие веб-страниц в браузере,
  • выключение ПК,
  • использование "горячих" клавиш.

Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко используют под свои нужды функции из примера.


Мы используем в примере такие инструменты:

  • Python (устанавливается на компьютер, непосредственно способ управления ПК)
  • NirCmd (устанавливается на компьютер, расширяет возможности управления ПК)
  • Blynk (необходим для создания виртуального пульта в смартфоне)
  • Навык "Домовёнок Кузя" (для связи Blynk с Алисой)

Начало. Устанавливаем Python

Нам потребуется скачать и установить среду разработки Python (будем управлять компьютером с его помощью).

Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь ))

Итак:

  • Скачиваем Python по ссылке.
  • Запускаем установщик.
  • Устанавливаем галочку на "Add Python <версия> to PATH".
Лучше сделать папку Python доступной для переменной %PATH%.
Если поставите Python в недоступное для переменной %PATH% место, команды запуска скриптов будут такими:
<Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py
  • Нажимаем "Install Python" и продолжаем установку, соглашаясь со всем предлагаемым.
Устанавливаем Python в PATH


По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки:

  • Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
  • Вводим поочередно две команды (или загружаем файл файл-сценарий установки библиотек и просто запускаем его):

pip install blynklib - библиотека Blynk для Python.

pip install pyautogui - библиотека для работы с горячими клавишами.


Регистрируемся и собираем пульт в Blynk

Регистрация в Blynk подробно описана здесь.

Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта. 
Нам нужен только токен и любой добавленный проект.

Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:

Настраиваем скрипт (вариант для ленивых)

Загружаем архив с необходимыми файлами. и распаковываем его в папку C:\blynk_2_0*. В итоге на диске C:\ должна лежать папка с 7 файлами:

  • blynk.py - основное тело скрипта.
  • config.py - файл с конфигурацией.
  • install_libs.bat - файл-сценарий для установки библиотек python из Главы 2 данной статьи.
  • nircmd.exe - программулька, способная расширить возможность командной строки. Подробнее по командам ТУТ.
  • strt.bat - пакетный файл запуска скрипта в обычном режиме.
  • strt_hide.bat - пакетный файл запуска скрипта в скрытом режиме.
  • close_script.bat - пакетный файл для закрытия скрипта который работает в скрытом режиме.

В данной версии скрипта:

  1. Настроено 50 виртуальных пинов для работы в трех режимах: 0 - Путь к приложению/Команда для командной строки CMD; 1 - web-ссылка для открытия файлов; 2 - сочетание клавиш.
  2. Виртуальный пин V0 занят для ползунка управления общей громкостью системы (для этого в приложении Blynk нужно добавить виджет "Slider" и указать ему пин V0. Пределы значений поменять с 0-1023 на 0-100, т.е. 100% громкости.)
  3. Настройка работы скрипта перенесена в отдельный файл config.py для более быстрого понимания.

Настраиваем виртуальные пины

  1. Открываем config.py с помощью любого текстового редактора.
  2. Для параметра blynk_token="токен_от_проекта_blynk" задаем свой токен от проекта blynk.
  3. Для параметра curpath = "С:\\blynk_2_0" задаем путь к папке со скриптом, если ставили в C:\blynk_2_0, то менять ничего не нужно. Если меняем путь, то вместо привычного одного \ ставим \\ между пунктами пути.
  4. Для виртуальных пинов, которые будем использовать устанавливаем требуемые параметры:
  • V5=[0,"notepad.exe"] где V5 - имя виртуального пина; параметр 0 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет выполняться команда CMD/запуск программы, в данном случае запустится "Блокнот".
  • V1=[1,"http://yandex.ru"] где V5 - имя виртуального пина; параметр 1 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет открыт сайт http://yandex.ru в стандартном браузере.
  • V3=[2,"win","r"] где V3 - имя виртуального пина; параметр 2 указывает на то, что при значении 1 (HIGH) на виртуальном пине будет отработано сочетание клавиш Win+R.

Таким образом Вы можете заполнить данные для всех 50 виртуальных пинов (Помните, что работать они будут только, если вы зададите виджетам в приложении Blynk соответствующие имена виртуальных пинов).
После всех изменений нужно сохранить файл config.py и запустить скрипт пакетным файлом запуска.

Настраиваем скрипт (вариант для дотошных)

Загружаем скрипт по ссылке, открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:

<button type="button" class="spoilers-button" aria-expanded="false">Показать скрипт</button>


Несмотря на страшный вид, все просто:

Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта.

BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен

Чуть ниже комментариями выделен блок с функциями виртуальных пинов Blynk. Например, чтобы добавить функцию открытия командной строки по нажатию на привязанную к пину V4 кнопку, добавим блок

<button type="button" class="spoilers-button" aria-expanded="false">Показать блок</button>

в любое место выше этого комментария:

#---------------------Конец блока функций для виртуальных пинов blynk-----------------

Разберём работу блока:

  • @blynk.handle_event('write V4') - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
  • app = "cmd" - вместо cmd вписываем реальный путь к программе (например "С:\Program Files\AIMP\AIMP.exe") или консольную команду (например "cd C:\windows\").

Сохраняем скрипт.

Проверяем работу скрипта и кнопок

Самый простой способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat-файла:

  • Открываем блокнот (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 и пугать домашних, если таковой еще имеется =)


Удачи в экспериментах!