Аннотация. В статье рассматривается построение модели системы автоматизированного умного освещения, которым можно управлять с помощью Тelegram-бота.
Ключевые слова: интернет вещей, умная система, автоматизация, Тelegram-бот.
Умные системы – это комплексы устройств, автоматизирующие различные процессы. Такие системы позволяют увеличить эффективность работы автоматизируемых ими сфер за счёт устранения необходимости вмешательства человека в работу системы. Оператор может следить за работой системы и вмешиваться в ее работу дистанционно при возникновении критических ситуаций [2].
Сегодня умные системы окружают нас повсеместно. Появляются умные перекрестки, которые представляют собой систему, регулирующую движение с учетом трафика как автомобилей, так и пешеходов. В домах устанавливаются умные домофоны, которые позволяют не только распознавать голоса и лица, но и дистанционно формировать персональные коды для гостей, открывать домофон гостям и вести с ними беседу.
Реализация умных систем происходит с помощью технологий интернета вещей. Интернет вещей (на английском языке Internet of Things, или сокращенно IoT) – концепция сети передачи данных между физическими и виртуальными объектами (вещами), оснащенными встроенными средствами и технологиями для взаимодействия друг с другом или с внешней средой [5], [6].
Иными словами, если под обычным Интернетом мы понимаем связанные друг с другом компьютеры, через которые могут взаимодействовать люди, то под Интернетом вещей мы понимаем связанные друг с другом устройства, взаимодействующие самостоятельно.
Как правило, именно интернет вещей используется для создания умных систем [2]. И поскольку эти технологии входят в разные сферы жизнедеятельности человека, крайне важно, чтобы школьники понимали принципы работы устройств, окружающих их, иначе они не смогут ими эффективно пользоваться [1]. Для их обучения технологиям интернета вещей можно использовать модели умных систем, создаваемые на основе образовательных наборов.
Одним из примеров умной системы, которой человек повседневно пользуется, может послужить умный дом. Система умного дома самостоятельно следит за домашней обстановкой и может подстраивать её под внешние условия, например, может включать свет, когда в доме становится темно, управлять влажностью воздуха или кипятить воду в чайнике по расписанию.
Для корректного взаимодействия отдельных элементов умного дома различные его компоненты должны обмениваться информацией. Такой обмен возможно реализовать с помощью концепции интернета вещей.
Использование интернета вещей позволяет создавать умные системы любой сложности, от управления домашним микроклиматом, до автоматизации огромных производственных предприятий.
Многие системы, автоматизирующие управление некоторым рабочим пространством, позволяют автоматизировать управление освещением. В таких случаях говорят о системе умного освещения.
В рамках обучения школьников технологиям умных систем и интернета вещей, можно создать модель умного освещения, позволяющую управлять освещением как в ручном, так и в автоматическом режимах через Тelegram-бот. За основу возьмем образовательный набор «Стартовый Йотик М1» компании «МГБот» [4].
Система может содержать четыре компонента:
- микроконтроллер Йотик32 со встроенным Wi-Fi модулем;
- плата расширения для микроконтроллера;
- датчик освещения;
- светодиодный модуль.
Плата расширения – это законченное устройство, предназначенное для выполнения определенных функций и подключаемое к основному устройству с помощью стандартных разъемов. Данное устройство увеличивает возможности по подключению основного оборудования.
Для создания умной системы необходима среда программирования микроконтроллера, в данном случае это будет среда Arduino IDE.
Компоненты подключаются друг к другу следующим образом. К микроконтроллеру подключается плата расширения, к которой, в свою очередь, подключаются датчик освещённости и светодиодный модуль. Перед началом работы над программной частью проекта, необходимо установить библиотеку для работы с микроконтроллером Йотик32 [4].
Для управления системой через Telegram, необходимо создать Тelegram-бот. Для этого необходимо воспользоваться официальным ботом Bot Father, служащим для создания и настройки других ботов. Он предоставляет возможность создать своего бота, задать его имя, описание, стартовое сообщение, которое пользователь видит до начала диалога, задать фото профиля, список команд и т.д. Список команд в диалоге с Bot Father приведён на рисунке 1.
Рис. 1. Диалог с Bot Father
Для создания нового бота следует применить команду /newbot. Результат её выполнения приведён на рисунке 2.
После введения команды Bot Father попросит задать название создаваемого бота. Это имя, которое будет отображаться в списке чатов. После введения имени бота Bot Father попросит задать имя пользователя для бота. Имя пользователя – это уникальный идентификатор, используемый при поиске пользователей в Telegram. Для ботов он всегда должен заканчиваться на bot. Имя пользователя может уже быть кем-то занято и Bot Father не даст зарегистрировать его, в таком случае, следует изменить его и попробовать снова. Когда подходящее имя будет подобрано, Bot Father вышлет сообщение о том, что бот успешно зарегистрирован и пришлёт токен для доступа к API Telegram, который понадобится в будущем для написания кода, управляющего умным освещением.
Рис. 2. Действие команды /newbot
Для взаимодействия с Тelegram-ботом необходимо написать программу и загрузить ее в микроконтроллер будущей модели системы умного освещения. Для этого воспользуемся кодом, который приведен на сайте МГБот для их образовательного набора «Стартовый Йотик М1» и адаптируем его под реализацию стоящей перед нами задачи [4].
На рисунке 3 показан фрагмент кода, в котором происходит подключение библиотек, необходимых для реализации проекта. На рисунке представлены библиотеки, необходимые для работы с датчиками, входящими в состав системы, а также, библиотеки, необходимые для настройки Wi-Fi соединения и взаимодействия с API Telegram.
Рис. 3. Подключаемые библиотеки
Далее, на рисунке 4 показан фрагмент кода, в котором, при помощи оператора макроподстановки #define в программу записываются SSID (название сети) и пароль от сети Wi-Fi, к которой должен подключиться микроконтроллер, чтобы взаимодействовать с ботом. Также, здесь указывается токен бота, полученный ранее при его регистрации. На рисунке эти параметры скрыты, так как являются конфиденциальной информацией. Например, токен бота может быть использован для перехвата управления ботом, поэтому не следует раскрывать его третьим лицам.
Рис. 4. Настройки интернет-соединения и токен бота
Рисунок 5 иллюстрирует фрагмент кода, который используется для настройки оборудования системы. Здесь, с помощью директивы #ifdef мы определяем, какие модули подключены (при необходимости, могут быть добавлены альтернативные варианты).
Также здесь инициализируется датчик освещённости, чтобы взаимодействовать с ним далее и настраиваем I2C хаб, к которому подключены датчик освещённости и светодиодный модуль.
Рис. 5. Настройка оборудования
На рисунке 6 представлен фрагмент кода, который используется для настройки telegram-бота и необходимых для его корректной работы параметров.
Рис. 6. Настройки Тelegram-бота
Далее, на рисунке 7 приведен фрагмент кода, логические переменные состояния, используемые для определения режима работы освещения (автоматический или ручной) и определения состояния светодиодов (включён/выключен).
Рис.7. Переменные состояния
Рисунок 8 иллюстрирует функцию setup(), запускающуюся при подключении платы к источнику питания. Это встроенная функция языка Arduino, выполняющая первоначальную настройку системы и запускается при включении устройства.
В данном случае функция setup() инициализирует последовательный порт, который обеспечивает возможность ввода-вывода данных в консоль. Это нужно для выведения отладочной информации о подключении к сети.
Далее идет настройка параметров светодиодного модуля, а так же запускается датчик освещенности – он начинает принимать данные об освещенности окружающего пространства. Также осуществляется подключение к сети wi-fi, параметры которой указывались в коде ранее.
Рис. 8. Функция setup()
На рисунке 9 представлена функция, считывающая показатели освещённости с датчика.
Рис. 9. Функция, считывающая освещённость
Далее, на рисунке 10 представлена функция, реализующая автоматическое управление светом в зависимости от значения переменной окружения isAuto, которая определяет, включён ли автоматический режим управления освещением. По умолчанию, автоматика отключена (значение переменной установлено как false). После проверки режима работы и получения положительного ответа функция проверяет показатель освещённости. Если освещённость больше 50 люкс, то свет выключается, и значение переменной состояния, указывающей на то, включён ли свет устанавливается как false. Иначе свет включается и значение переменной устанавливается как true.
Рис. 10. Функция управления светом
На рисунке 11 представлены функции, включающие и выключающие освещение в ручном режиме через Тelegram-бот.
Рис. 11. Функции для ручного управления освещением
Рисунок 12 иллюстрирует часть обработчика сообщений для Тelegram-бота. Все символы в приходящем из telegram-бота текста сначала приводятся к нижнему регистру, затем, путем перебора известных боту команд, находится и выполняется нужная. На рисунке продемонстрированы команды /ledon и /ledoff, для ручного управления освещением. В зависимости от режима работы включаются и выключаются светодиоды и бот присылает соответствующие сообщения. В случае, если включено автоматическое управление, бот уведомляет об этом.
Рис. 12. Начало обработчика событий
Далее представлены команды считывания показаний люксметра, переключения режимов работы и проверки состояния освещения (включено, выключено).
Рис. 13. Различные команды бота
На рисунке 14 изображены команды /start и /help, позволяющие получить информацию о доступных командах.
Рис. 14. Команды для вывода справки
Рисунок 15 иллюстрирует основной цикл работы программы микроконтроллера, который запускается после выполнения функции setup().
Она сохраняет данные с датчика освещения, управляет автоматическим освещением и обработчиком событий бота.
Рис. 15. Функция loop()
На последнем рисунке показана функция переключения каналов I2C хаба, которая нужна для переключения между используемыми устройствами.
Рис. 16. Функция переключения каналов I2C хаба
После запуска модель умного освещения будет ожидать команды от Тelegram-бота. В автоматическом режиме данная система будет включать свет при недостаточном освещении и выключать, когда освещение будет достаточным. Пользователь может дистанционно, через созданный Тelegram-бот, осуществлять управление устройством – отключить автоматический режим и перейти на дистанционное ручное управление системой. При необходимости систему можно будет снова вернуть в автоматический режим.
Список литературы:
- Абушкин Д.Б. Обучение технологиям интернета вещей на разных ступенях образования // Открытая наука 2024: Сборник статей III Всероссийской научной конференции с международным участием, Москва, 01 марта – 30 2024 года. М.: Интеллект-Центр, 2024. С. 274-277.
- Абушкин Д.Б. Умные системы и интернет вещей в образовании // Шамовские чтения: Сборник статей XVII Международной научно-практической конференции. В 2-х томах, Москва, 25 января – 03 2025 года. М.: Научная школа управления образовательными системами, 2025. С. 525-527.
- Ли П. Архитектура интернета вещей. М.: ДМК Пресс, 2020. 454 с.
- Образовательный набор «Стартовый ЙоТик М4» (Цифровая лаборатория по биологии) // MGBot: офиц. сайт. (дата обращения: 04.04.2025).
- Панкратова Л.П., Сергеев П.А., Котов М.К. Введение в «Интернет вещей»: кн. для чтения. СПб.: Медиа Группа Файн-стрит, 2022. 172 с. : ил. Прил.: с. 153–169.
- Предварительный национальный стандарт Российской Федерации ПНЕТ 518-021 (ИСО/МЭК 20924: 2018). Информационные технологии. Интернет вещей. Термины и определения // База ГОСТ, ГОСТ Р – национальные стандарты России. М.: Стандартинформ, 2021. (дата обращения: 04.04.2025).
Implementation of an Automated Lighting Control Model Using a Telegram Bot
Karpov S.A.,
bachelor of 3 course of the Moscow City University, Moscow
Coauthor:
Klyuchnikova D.A.,
bachelor of 3 course of the Moscow City University, Moscow
Research supervisor:
Abushkin Dmitry Borisovich,
Associate Professor, Department of Informatics, Management and Technology, Institute of Digital Education of the Moscow City University, Candidate of Pedagogical Sciences
Abstract. The article discusses the development of a model for an automated smart lighting system that can be controlled via a Telegram bot.
Keywords: Internet of Things, smart system, automation, Telegram bot.
References:
- Abushkin D.B. Teaching Internet of Things Technologies at Different Educational Levels // Open Science 2024: Proceedings of the III All-Russian Scientific Conference with International Participation, Moscow, March 1 – March 30, 2024. Moscow: Intellect-Center, 2024.: 274-277.
- Abushkin D.B. Smart Systems and the Internet of Things in Education // Shamov Readings: Proceedings of the XVII International Scientific and Practical Conference. In 2 volumes, Moscow, January 25 – March 3, 2025. Moscow: Scientific School of Educational Systems Management, 2025.: 525-527.
- Lee P. Internet of Things for Architects. Moscow: DMK Press, 2020. 454 p.
- Educational Kit «Starter IoTik M4» (Digital Biology Laboratory) // MGBot: official website. (date of the address: 04.04.2025).
- Pankratova L.P., Sergeev P.A., Kotov M.K. Introduction to the «Internet of Things»: A Reading Book. St. Petersburg: Media Group Fine Street, 2022. 172 p.: ill. Appendices: 153-169.
- Preliminary National Standard of the Russian Federation PNST 518-021 (ISO/IEC 20924:2018). Information Technology. Internet of Things. Terms and Definitions // GOST Database, GOST R – National Standards of Russia. Moscow: Standartinform, 2021. (date of the address: 04.04.2025).