Разработка и программирование телеграм-бота «Эко-друг» | Статья в журнале «Юный ученый»

Отправьте статью сегодня! Журнал выйдет 18 мая, печатный экземпляр отправим 22 мая.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Высокая практическая значимость Высокая теоретическая значимость Актуальная тема исследования

Рубрика: Информатика

Опубликовано в Юный учёный №5 (68) май 2023 г.

Дата публикации: 20.04.2023

Статья просмотрена: 72 раза

Библиографическое описание:

Гапонюк, Д. И. Разработка и программирование телеграм-бота «Эко-друг» / Д. И. Гапонюк, А. А. Стюгин. — Текст : непосредственный // Юный ученый. — 2023. — № 5 (68). — С. 112-114. — URL: https://moluch.ru/young/archive/68/3733/ (дата обращения: 04.05.2024).



В статье рассматривается разработка телеграм-бота на языке программирования python на основе библиотеки aiogram. Проект предназначен для нахождения пользователем мест сдачи для выбранного им вторсырья. Итоговый проект способствует раздельному сбору мусора населением посредством помощи в поиске пунктов приёма мусора. В ходе работы над проектом была проанализирована работа аналогов телеграм-бота «Эко-друг», языки программирования, а также подходящие библиотеки для решения задач, поставленных перед проектом. Был написан основной программный модуль, позволяющий в дальнейшем развивать проект. Составлена первичная база данных пунктов приёма Железнодорожного и других районов города Красноярска. Для тестирования приложения были привлечены ученики МАОУ СОШ № 19.

Ключевые слова: телеграм-бот, программирование, Phyton, вторсырьё.

На данный момент мессенджеры стали привычным способом коммуникации для огромного количества человек. Люди используют мессенджеры для работы, развлечений и быстрой связи с другими людьми. Так Telegram, являющийся одним из самых популярных мессенджеров, по данным сайта Statista посещают около700 миллионов человек в месяц. По количеству аудитории Telegram входит в пятерку самых популярных мессенджеров в мире [1].

Одной из особенностей Telegram является платформа для создания ботов. Это аккаунты, которые управляются программно, а не людьми. Программа общается с пользователями в чате Telegram и может выполнять различные действия, которые мы в нее заложим. Так уже существует огромное количество телеграм-ботов, которые помогают при выборе услуг, записывают на различные услуги, подбирают фильмы, одежду, музыку и многое другое — варианты использования ботов почти ничем не ограничены. Благодаря своей функциональности боты очень удобны для выполнения совершенно различных задач, причем выполнять их они могут беспрерывно. Именно поэтому рынок телеграм-ботов сегодня очень активен. Они активно используются сейчас, а в будущем смогут применяться еще шире и чаще [2].

Исходя из этого, создание телеграм-бота является самым логичным и простым способом решения цели, поставленной мною: разработка прототипа мобильного приложения для упрощения процесса самостоятельной сортировки мусора и сдачи вторсырья населением.

Телеграм-бот будет показывать ближайшие места сдачи, а также первичную информацию о пунктах приёма. Пользователь сможет выбирать вид мусора, который хочет сдать. Рассмотрим требования к проекту:

— Удобный интерфейс для работы с ботом на всех платформах.

— Реализация предоставления информации ботом по категориям вида вторсырья.

— Предоставление наиболее важной информации о пунктах приёма, в удобном виде.

— Возможность отображения мест сдачи, в порядке близости к расположению пользователя.

Также стоит определиться со способом создания бота.

Для создания телеграм-ботов обычно используются такие библиотеки как [3]:

При использовании MTProto API (Telegram API) [4]:

— Telethon, на Python;

— Pyrogram, на Python.

При использовании Telegram Bot API [4]:

— Aiogram, на Python;

— Telegraf, на JavaScript.

У Telegram один единственный API, поэтому нет принципиальной разницы, с помощью каких инструментов с ним взаимодействовать. Но стоит понимать, что для создания данного приложения достаточно использовать сообщения Telegram для интерфейса, поэтому практичнее использовать Telegram Bot API. Я выбрал пользоваться Aiogram на Python, так как он обладает большой функциональностью, а сам Python имеет огромное количество библиотек, благодаря чему на нём проще что-либо реализовать.

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

Большая часть написания данного телеграм-бота не составляет особых проблем. Подробно про написание телеграм-ботов на Aiogram можно узнать на сайте aiogram.ru [5]. Но бот также должен уметь определять расстояние от пункта приёма вторсырья до пользователя, чтобы предоставлять информацию о местах сдачи вторсырья в порядке близости к пользователю. Для решения данной проблемы сделаем отдельную клавиатуру, которая будет запрашивать получение данных о местоположении пользователя (рисунок 1):

Клавиатура для получения координат пользователя

Рис. 1. Клавиатура для получения координат пользователя

После чего создаем message_handler, который будет получать координаты пользователя, и создадим переменные lat и lon, куда будут записываться широта и долгота пользователя соответственно (рисунок 2) (для поддержки многопользовательского режима использования бота, стоит записывать координаты пользователя в двумерный список, или напрямую в базу данных).

Message_handler для записи координат пользователя

Рис. 2. Message_handler для записи координат пользователя

Нахождение расстояние по координатам осуществляется по данной формуле (рисунок 3):

Нахождение расстояния по координатам

Рис. 3. Нахождение расстояния по координатам

Помимо написания кода, также нужно наличие базы данных, где будет содержаться вся информация о местах сдачи. Самую полную информацию о пунктах приёма, а также большее их количество легче всего можно найти в приложении 2гис. Также была взята часть информации с сайта vyvoz.org, однако на этом сайте было гораздо меньше пунктов приёма и информации о них. Все остальное, это в основном сайты отдельных компаний, которые занимаются не приёмом вторсырья, а его вывозом.

Для хранения всей информации, а также быстрому доступу к ней была использована программа SQLite, которая позволяет создавать в ней базы данных, и легко выводить их. Для этого я использовал библиотеку sqlite3.

Моя идея не претендует на уникальность, однако имеются весомые основания, почему мой проект может быть конкурентоспособным с аналогами данного приложения. Для сравнения возьмём приложение со схожей идеей: +1город.

Это приложение работает по огромному количеству городов на территории России. Однако пользователи пишут, что информацию во многих городах почти не обновляют, из-за чего в приложении часто указаны неверные адреса и давно закрытые компании. Мой проект на данный момент рассчитан только на Красноярск, но предоставляет возможность обратной связи для сообщения обо всех неточностях, а также о незаписанных мной пунктах приёма в телеграм-боте, что позволит оперативно улучшать бота.

Также стоит упомянуть, что телеграм-бот сможет привлечь огромную аудиторию пользователей мессенджера Telegram к сдаче вторсырья, так как мобильный помощник будет находиться прямо в их мессенджере.

Итоговый проект предназначен для помощи в поиске пунктов приёма мусора. Раздельная сдача мусора положительно повлияет на экологическое состояние города Красноярска, а также обратит внимание людей к проблемам экологии.

Первая апробация приложения планируется в моём классе: я попрошу проверить моих одноклассников работоспособность приложения, функцию предоставления информации о пунктах приёма в порядке близости к пользователю, а также попрошу сообщить о всех неисправностях и ошибках в работе телеграм-бота.

Статья подготовлена в рамках реализации проекта Телеграм-бот «Эко – друг» при финансовой поддержке Красноярского краевого фонда науки.

Литература:

  1. Отдел исследований Statista. — Текст: электронный // Statista: [сайт]. — URL: https://www.statista.com/topics/9640/telegram/#topicOverview (дата обращения: 17.04.2023).
  2. Telegram-боты — перспективное направление для повышения дохода разработчиков.. — Текст: электронный // Webformyself: [сайт]. — URL: https://webformyself.com/telegram-boty-perspektivnoe-napravlenie-dlya-povysheniya-doxoda-razrabotchikov/ (дата обращения: 17.04.2023).
  3. Всё, о чём должен знать разработчик Телеграм-ботов.. — Текст: электронный // Habr: [сайт]. — URL: https://habr.com/ru/articles/543676/#apis (дата обращения: 17.04.2023).
  4. Telegram APIs | Bot API. — Текст: электронный // telegram.org: [сайт]. — URL: https://core.telegram.org/api (дата обращения: 17.04.2023).
  5. Aiogram уроки — Текст: электронный // Aiogram: [сайт]. — URL: https://aiogram.ru (дата обращения: 17.04.2023).


Ключевые слова

программирование, вторсырье, телеграм-бот, Phyton
Задать вопрос