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

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

Материал из Wiki yaboard
Нет описания правки
Строка 1: Строка 1:
{{metadesc|{{PAGENAME}} | Продвинутое управление компьютером }}
__NOEDITSECTION__
__TOC__
== Вступление ==
== Вступление ==
В данной статье попробуем создать виртуальный пульт, UI для управления действиями ПК. В данном примере рассмотрим такой функционал, как запуск приложений, открытие веб-страниц в браузере, выключение ПК и использование "горячих" клавиш. К слову - это не весь функционал, который можно применить, прочитав данную статью. Для тех, кто знаком с языком программирования Python не составит труда расширить предложенный скрипт по своему вкусу. Пользователям же с начальными знаниями будет несложно использовать перечисленные функции под свои нужды с минимальными трудозатратами.
 
== От слова к делу или устанавливаем Python ==
 
Для начала нам потребуется скачать и установить среду разработки Python, т.к. это основной инструмент, который будет управлять компьютером.<br>
В данной статье мы создадим виртуальный пульт для управления действиями ПК, которому будут доступны:
Не так страшно иметь Python на своем компьютере. Страшно в 2020 его не иметь)<br>
* запуск приложений,  
# Скачать установщик Python по [https://www.python.org/downloads/ ссылке] <br>
* открытие веб-страниц в браузере,  
# Запустить установщик (предполагается установка Python в PATH, дабы не морочиться с запуском скрипта. Если все же вы решили отказаться от установки в PATH, то команда запуска скрипта будет такой: <Диск>:\<Путь_к_директории_Python>\python.exe <имя скрипта>.py).
* выключение ПК,
# Устанавливаем галочку на "Add Python <версия> to PATH".
* использование "горячих" клавиш.  
# Нажимаем "Install Python" и продолжаем установку соглашаясь со всем, что предложит нам установщик.
 
Тем, кто знаком с языком программирования Python, будет несложно расширить скрипт по своему вкусу. А пользователи с начальными знаниями легко  используют под свои нужды функции из примера.
 
 
== Начало. Устанавливаем 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]]
По окончании установки можем проверить работоспособность установив нужные нам в будущем библиотеки. Для этого:
 
# Открываем командную строку (Нажимаем Win+R, вводим cmd, нажимаем Enter)
 
# Водим поочередно следующие команды:<br>
По окончании установки проверяем работоспособность, заодно ставим нужные библиотеки:
'''''pip install blynklib''''' - библиотека Blynk для Python<br>
* Открываем командную строку (Нажимаем '''Win+R''', вводим '''cmd''', нажимаем Enter)
'''''pip install pyautogui''''' - библиотека для работы с горячими клавишами
* Вводим поочередно две команды:
 
'''pip install blynklib''' - библиотека Blynk для Python.
 
'''pip install pyautogui''' - библиотека для работы с горячими клавишами.
 
<br style="clear:both">
== Регистрируемся и собираем пульт в Blynk ==
== Регистрируемся и собираем пульт в Blynk ==
Не буду заострять внимание на регистрации в Blynk, т.к. данный процесс уже описан в статье, конкретно [https://clck.ru/LsQCe здесь]. Единственное, что стоит заметить, что в данном случае вовсе неважно, какое устройство вы выберете при создании проекта, тажке как и неважно какой это будет способ подключения. Нам важен только токен и возможность работы с проектом.<br>
 
После регистрации добавим в наш проект нужное количество кнопок Button. Можно оформить и подписать их по вкусу.
 
Регистрация в Blynk подробно описана [https://clck.ru/LsQCe здесь].  
Для нашего случая неважно, какие устройство и способ подключения вы выберете при создании проекта.  
Нам нужен только токен и любой добавленный проект.<br>
 
Добавляем в проект нужное количество кнопок (Button). Оформляем и подписываем по вкусу:
<gallery>
<gallery>
2py.png|Добавляем кнопки
2py.png|Добавляем кнопки
3py.png|Оформляем
3py.png|Оформляем
</gallery>
</gallery>
== Настраиваем скрипт Python под себя ==
 
Загружаем [https://yadi.sk/d/FYb9n_gp8V8IMA скрипт]<br>
 
Открываем его любым текстовым редактором (мне по вкусу Sublime Text, но вы можете использовать хоть блокнот)))) и видим следующее:
== Настраиваем скрипт ==
 
 
Загружаем [https://yadi.sk/d/FYb9n_gp8V8IMA скрипт по ссылке], открываем любым текстовым редактором (мне по вкусу Sublime Text, но подойдёт и встроенный Блокнот) и видим:
 
{{#spoiler:show=Показать скрипт | hide=Спрятать скрипт |
<pre>
<pre>
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib)
import blynklib #библиотека Blynk (перед этим в CMD сделать pip install blynklib)
Строка 79: Строка 118:
     blynk.run()
     blynk.run()
</pre>
</pre>
}}
Несмотря на страшный вид, все просто:
Несмотря на страшный вид, все просто:
<br>
Тут (вместо ВАШ_ТОКЕН_Blynk) вставляем свой токен, полученный в процессе создания проекта Blynk.
<pre>BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен</pre>


Чуть ниже комментариями выделен блок, где находятся функции, соответствующие каждому виртуальному пину Blynk.<br>
Вместо ВАШ_ТОКЕН_Blynk вставляем токен, полученный при создании проекта.
BLYNK_AUTH = 'ВАШ_ТОКЕН_Blynk' #вставить токен


Например, чтобы добавить функцию открытия командной строки по нажатию на кнопку, привязанную к пину V4, нужно добавить блок функции
Чуть ниже комментариями выделен блок с функциями виртуальных пинов 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>
<pre>#---------------------Конец блока функций для виртуальных пинов blynk-----------------</pre>
}}
Теперь подробно:<br>
в любое место выше этого комментария:
'''@blynk.handle_event('write V4')''' - тут объявляем что функция будет выполнена только после чтения виртуального пина V4 (т.е., чтобы использовать пин V5 - меняем write V4 на write V5).<br>
#---------------------Конец блока функций для виртуальных пинов blynk-----------------
'''app = "cmd"''' - тут вписываем путь к запускаемому файлу (например "С:\Program Files\AIMP\AIMP.exe") или команду для командной строки (например "cd C:\windows\")<br>
 
Сохраняем получившийся скрипт.<br>
Разберём работу блока:
Теперь можем запустить его и проверить работоспособность, нажимая созданные нами кнопки в мобильном приложении Blynk. Самый простой способ запуска (в дальнейшем можно оперировать файлом, поэтому так) с помощью bat-файла. Для этого:
* '''@blynk.handle_event('write V4')''' - объявляем, что функция выполнится после чтения виртуального пина V4 (чтобы использовать пин V5 - меняем 'write V4' на 'write V5').
# Открываем блокнот (Win+R, вводим notepad, нажимаем Enter)
* '''app = "cmd"''' - вместо cmd вписываем реальный путь к программе (например "С:\Program Files\AIMP\AIMP.exe") или консольную команду (например "cd C:\windows\").
# В блокноте вписываем следующее: '''''python <путь к файлу скрипта>\blynk.py'''''
 
# Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "тип" выбираем "все файлы". В поле ввода имени файла пишем <имя_файла_запуска>.bat)
Сохраняем скрипт.
# Запускаем <имя_файла_запуска>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk.
 
[[Файл:4py.png|мини|Вывод лога скрипта]]
 
== И снова Алиса, и снова Кузя... ==
== Проверяем работу скрипта и кнопок ==
Теперь настроим управление нашими виртуальными пинами с помощью Алисы. Как это делается, я уже описывал [https://clck.ru/LsXvV здесь.]
 
 
Самый простой способ запуска (тк в дальнейшем можно оперировать файлом) - с помощью bat-файла:
* Открываем блокнот ('''Win+R''', вводим '''notepad''', нажимаем '''Enter''')
* В блокноте пишем: '''python <путь к файлу скрипта>\blynk.py'''
* Сохраняем файл с расширением .bat (в окне сохранения файла, в выпадающем меню "Тип" выбираем "Все файлы". Пишем имя файла <удобное_имя>.bat)
* Запускаем <удобное_имя>.bat двойным щелчком мыши и пробуем нажимать кнопки в приложении Blynk:
[[Файл:4py.png | 600px]]
 
 
== И снова Алиса, и снова Кузя ==
 
 
Как настроить управление виртуальными пинами с помощью Алисы, [https://clck.ru/LsXvV рассказано здесь].
 
 
== Для перфекционистов ==
== Для перфекционистов ==
Или для тех, кому мешает окно командной строки. Конечно для постоянного доступа к управлению стоит добавить наш файл запуска <имя_файла_запуска>.bat в автозагрузку windows. Есть несколько способов скрытия окна, но мне ближе вариант с использованием приложения NirCmd, тем более, что объем у нее неимоверно маленький, а функционал довольно большой.<br>
 
Теперь подробнее. Для того, чтобы скрыть окно командной строки, требуется:
 
# Загрузить файл приложения на [https://www.nirsoft.net/utils/nircmd.html официальном сайте] (внизу страницы).
И всех тех, кому мешает окно командной строки.  
# Файл nircmd.exe из архива распаковать в удобное для вас место.
 
# Исправить файл запуска <имя_файла_запуска>.bat заменив '''python <путь к файлу скрипта>\blynk.py''' на '''<Путь к файлу>\nircmd.exe exec hide python <путь к файлу скрипта>\blynk.py'''
Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Есть несколько способов скрытия окна, но мне ближе вариант с использованием приложения NirCmd, тем более, что объем у нее неимоверно маленький, а функционал довольно большой.
Теперь окно работы скрипта нас не потревожит, а наблюдать и завершить его работу можно будет только из "Диспетчера задач" по имени Python.
 
<pre>
Для этого потребуется:
Кроме того NirCmd можно использовать и для управления некоторыми функциями ПК прописывая команды в соответствующем блоке функций с командами. </pre>Подробнее о том, что умеет эта программулька [https://www.nirsoft.net/utils/nircmd.html в списке на официальном сайте. ]
* Загрузить 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 и напугать домашних, если таковой еще имеется=)
 
<br>
 
Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше)
Приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =)
 
 
Удачи в экспериментах!
Удачи в экспериментах!
[[Category:Умный дом]]

Версия от 10:26, 15 января 2020

Вступление

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

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

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

Начало. Устанавливаем 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). Оформляем и подписываем по вкусу:

Настраиваем скрипт

Загружаем скрипт по ссылке, открываем любым текстовым редактором (мне по вкусу 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:

И снова Алиса, и снова Кузя

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

Для перфекционистов

И всех тех, кому мешает окно командной строки.

Конечно, для постоянного доступа к управлению нужно добавить наш файл запуска в автозагрузку windows. Есть несколько способов скрытия окна, но мне ближе вариант с использованием приложения NirCmd, тем более, что объем у нее неимоверно маленький, а функционал довольно большой.

Для этого потребуется:

  • Загрузить NirCmd на официальном сайте (внизу страницы).
  • Распаковать nircmd.exe из архива в любое удобное место.
  • Поменять в нашем bat-файле строку
python <путь к файлу скрипта>\blynk.py

на

<Путь к файлу>\nircmd.exe exec hide python <путь к файлу скрипта>\blynk.py

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

NirCmd пригодится и для управления функциями ПК (если укажем нужные команды в соответствующем блоке функций для пинов).

Подробнее о том, что умеет эта программулька - в списке на официальном сайте.

Послесловие

Скрипт является простейшим примером использования Умного дома Яндекса в управлении вашим компьютером. На его основе можно и нужно экспериментировать дальше) Приведены лишь наиболее необходимые методы (например, горячие клавиши, которые можно использовать для AIMP или другого ПО, и NirCmd, которая может управлять звуком, или даже открывать cd-rom и пугать домашних, если таковой еще имеется =)


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