Кремень КД Реклама
Кремень КМ Реклама

Вебка, принтер, два скрипта

imp120
Идет загрузка
Загрузка
06.09.2023
759
0
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

2

    Здравствуйте!    Захотелось мне однажды узнать, как же там поживает мой принтер, на котором запущена крайне долгая печать. Некоторое время я вынашивал идею и понял, что нужно не просто иметь возможность наблюдать за процессом, а чтобы оно еще и само меня оповещало, когда печать закончится. Все же расчетное время такое расчетное. И еще старые мысли о таймлапсе как-то неожиданно вспомнились… Несколько месяцев я ждал, пока странные мысли меня отпустят, но не тут-то было!    По итогу было решено писать скрипт. Скажу сразу – я не программист, мои знания ограничиваются школьным курсом кубейсика, поэтому я решил использовать питон вместо языка программирования. Общаться с программой я буду через телеграм, потому что там бесплатное апи с мануалом для дошкольников. А для захвата изображения был использован opencv. И вот что получилось: https://drive.google.com/file/d/11lRelAeNrGBRvh3-2W8WSTgqNJ5dxm0f/view В архиве исходник, собранный экзешник для ленивых и ини файл с настройками.    Итак, чтобы все это заработало, нужно сначала зарегистрировать телеграм бота. Идем в канал https://t.me/BotFather и следуем инструкциям. Там вам выдадут ключик, который нужно записать в ини файл. Так же в этом файле есть и другие настройки:    Path – путь к файлу скрипта. Просто копируем его из проводника и ставим соответствующий разделитель в конце. Он нужен, чтобы отправлять изображение в телегу, все остальное работает и без него.    DSHOW – загадочный параметр, который может быть 0 или 1. Моя камера запускается только при 1, на виртуальные камеры этот параметр не влиял.    Далее идут настройки фильтров.    R_width и R_height служат для уменьшения изображения, чтобы снизить количество сравниваемых пикселей. Слишком маленькие значения приведут к тому, что камера перестанет регистрировать движение. Можно сделать равным исходному изображению, но может вырасти количество шума и скрипт будет видеть движение всегда, даже если в кадре ничего не меняется.    R_filter – параметр для фильтрации шума. При очень низком параметре скрипт будет видеть движение всегда (даже если печать не происходит). При высоком значении снижается чувствительность к движению из-за чего скрипт будет завершать работу. Здесь почему-то параметр int, надо переделать наверно.    slp – пауза между кадрами в секундах. Чем больше время, тем большее расстояние пройдет каретка принтера, тем стабильнее будет регистрация движения. Рекомендую значение от 3с.    delay – количество сигналов о конце печати подряд до отправки сообщения и завершения слежения. Если все правильно настроено, в этом параметре практически нет смысла. Разве что при остановившемся принтере успеть написать sc, чтобы получить фото результата.    write_time – время в секундах между кадрами для таймлапса. Если параметр меньше slp, то будет использоваться большее значение. Итак, с настройками разобрались, а что дальше? А теперь нам нужно запустить бота щелкнув пару раз на экзешнике. Остановить его работу можно через диспетчер задач. Затем ищем в телеге своего бота по имени, которое вы ему дали при регистрации, а затем жмем кнопку старт или пишем в чат команду /start и получаем список команд:go N – запуск слежения, когда принтер уже что-то печатает, где N – номер вашей камеры начиная с 0.Остальные команды работают только когда слежение запущено.    stop – остановить слежение.    sc – сделать и отправить снимок текущего состояния печати.    tlg – начать запись таймлапса.    tls – остановить запись.

Далее нужно сказать об ограничениях:1.    Скрипт следит только за одной камерой. 2.    Камеру может использовать только одно приложение одновременно. 3.    Нет парольной защиты. Любой, кто знает имя бота, сможет получить снимки с камеры.4.    Использование скрипта с двух разных аккаунтов одновременно может привести к ошибкам в работе скрипта.

И все то же самое, но в формате видео: https://youtu.be/nHAPsfGk34E?si=z3kVvGUfzzwwyB3i

Надеюсь этот скрипт будет кому-то полезен.

Пожелания, предложения - я обдумаю.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

2
Комментарии к статье