Программно аппаратный комплекс на базе ESP32

Программно аппаратный комплекс на базе ESP32

Система управления игровыми устройствами с ИК‑передачей и веб‑мониторингом

Современное решение для создания интерактивных игровых систем, образовательных проектов и прототипов IoT‑устройств. Система объединяет надёжную ИК‑связь, интеллектуальный сбор данных и удобный веб‑интерфейс для мониторинга и управления.

Ключевые преимущества

  • Гибкость настройки: поддержка до 10 устройств с индивидуальными ID.
  • Надёжность передачи: протокол NEC с проверкой CRC.
  • Реальное время: обновление статистики каждые 5 секунд.
  • Простота развёртывания: готовые прошивки и веб‑интерфейсы.
  • Открытый код: возможность адаптации под специфические задачи.

Архитектура системы

Система построена по принципу распределённой сети с централизованным сбором данных.

Компоненты системы

  1. Передающие устройства («Стрелки»)
    • Платформа: DFRobot Beetle ESP32‑C3.
    • Функция: отправка команд «выстрел» по ИК‑каналу.
    • Особенности:
      • Надёжная передача сигналов (опционально: 1 или 3 посылки).
      • Защита от дребезга кнопки (100 мс).
      • Визуальная индикация (мигающий светодиод).
  2. Принимающие устройства («Контроллеры»)
    • Платформа: ESP32 devkit v1.
    • Функции:
      • Приём и декодирование ИК‑сигналов (протокол NEC).
      • Проверка целостности данных (CRC через инверсные биты).
      • Ведение статистики попаданий (hitsReceived / hitsDelivered).
      • Веб‑сервер для удалённого управления.
      • Автоматическая отправка статистики на сервер.
  3. Серверная часть («Панель мониторинга»)
    • Домены: control.local (управление), statistics.local (статистика).
    • Возможности:
      • Визуализация данных в реальном времени.
      • Управление устройствами через браузер.
      • Сброс статистики одной кнопкой.
      • Хранение данных в формате JSON.

Принцип работы

  1. Отправка сигнала
    • Игрок нажимает кнопку на передающем устройстве.
    • Формируется 32‑битный пакет NEC (ID + инверсный ID + команда + инверсная команда).
    • Пакет отправляется 1 или 3 раза (настраивается в коде).
  2. Приём и обработка
    • Приёмник декодирует сигнал, проверяет CRC.
    • При корректном пакете:
      • Увеличивает hitsReceived для своего ID.
      • Увеличивает hitsDelivered для ID отправителя.
  3. Передача данных
    • Каждые 5 секунд приёмник отправляет JSON‑статистику на сервер.
    • Сервер сохраняет данные в stats.json и отображает их в веб‑интерфейсе.
  4. Управление через веб
    • Администратор управляет устройствами через control.local.
    • Статистика обновляется в реальном времени на statistics.local.

Технические характеристики

  • Диапазон ID устройств: 1–10.
  • IP‑адреса устройств: 192.168.2.101192.168.2.110.
  • Сервер статистики: 192.168.2.100 (порт 80).
  • Протокол связи: ИК (NEC) + HTTP (JSON).
  • Частота отправки статистики: 5 секунд.
  • Время автоотключения: 3 минуты.
  • Формат JSON‑статистики:{ "1": {"hitsReceived": 5, "hitsDelivered": 3}, "2": {"hitsReceived": 2, "hitsDelivered": 7} }

Веб‑интерфейс: удобство и функциональность

control.local (управление устройствами)

  • Панель устройств: кнопки для каждого ID с индикацией состояния.
  • Глобальное управление: включение/выключение всех устройств.
  • Таймер автоотключения: предупреждение за 10 секунд.
  • Статус‑бар: сообщения об ошибках и успехах.

statistics.local (мониторинг статистики)

  • Таблица данных: колонки для hitsReceived и hitsDelivered.
  • Автообновление: AJAX‑запросы каждые 5 секунд.
  • Экспорт данных: скачивание stats.json в формате CSV.
  • Графики: визуализация динамики попаданий (опционально).

Гибкость настройки

Система позволяет:

  • Изменять количество посылок: в коде передатчика можно задать отправку 1 или 3 пакетов на одно нажатие кнопки. Это даёт возможность:
    • снизить энергопотребление (1 посылка);
    • повысить надёжность передачи (3 посылки).
  • Настроить ID устройств: диапазон 1–10 задаётся в коде.
  • Изменить IP‑адреса: легко адаптируется под локальную сеть.
  • Расширить функционал: добавление датчиков, поддержка других ИК‑протоколов, интеграция с облачными сервисами.

Сценарии применения

  1. Образовательные проекты
    • Изучение протоколов ИК‑связи.
    • Освоение работы с Wi‑Fi и веб‑серверами на ESP32.
    • Практикум по обработке JSON и HTTP‑запросов.
  2. Игровые системы
    • Лазертаг с ИК‑передатчиками.
    • Интерактивные квесты с активацией объектов.
    • Соревновательные платформы (учёт попаданий).
  3. Прототипирование IoT
    • Тестирование распределённых сетей.
    • Разработка систем мониторинга с веб‑интерфейсом.
    • Отработка алгоритмов обработки данных в реальном времени.

Безопасность и устойчивость

  • Защита от ошибок: проверка CRC, таймауты HTTP‑запросов, переподключение Wi‑Fi.
  • Ограничения доступа: сервер принимает запросы только из локальной сети.
  • Устойчивость к сбоям: локальное хранение статистики, автоматическое восстановление, логирование ошибок.

Как начать работу

  1. Загрузите прошивки на ESP32‑устройства.
  2. Настройте IP‑адреса и ID в коде.
  3. Разместите серверные файлы на PHP‑хостинге.
  4. Откройте control.local в браузере и начните управление.

Почему стоит выбрать нашу систему?

  • Готовность к использованию: все компоненты протестированы и документированы.
  • Масштабируемость: поддержка до 10 устройств с возможностью расширения.
  • Открытость: код доступен для модификации под ваши задачи.
  • Поддержка: подробная документация и примеры использования.

Создайте свою интерактивную систему уже сегодня — с надёжной связью, удобным мониторингом и гибкими настройками!

Права и лицензионная политика системы

Представленное программное обеспечение является проприетарным продуктом компании Web-Software.ru. Ниже изложены ключевые положения лицензионного соглашения.

1. Правообладатель и статус ПО

  • Правообладатель: Web-Software.ru(© 2026).
  • Статус ПО: проприетарное, защищённое авторским правом.
  • Лицензия: неисключительная, ограниченная, отзывная.

2. Разрешённые виды использования

ПО может применяться исключительно в следующих целях:

  • личное использование в образовательных проектах и хобби;
  • внутреннее применение в рамках одной организации (не более одного устройства на контур, если не оговорено другое);
  • тестирование и отладка в изолированной среде.

3. Запрещённые действия

Без письменного согласия правообладателя запрещается:

  • распространять ПО, его части или производные работы;
  • использовать в коммерческих продуктах, сервисах или массовых решениях;
  • предоставлять доступ третьим лицам вне разрешённого контура;
  • модифицировать код с целью обхода защитных механизмов;
  • применять на устройствах, не соответствующих техническим требованиям (см. раздел 7 документации).

4. Ограничения лицензии

  • Территория: использование ограничено локальной сетью организации/проекта.
  • Срок действия: с момента первого запуска до отзыва лицензии правообладателем.
  • Количество устройств: не более 10 активных устройств в одной сети.
  • Права на изменения: любые модификации кода требуют согласования с Web-Software.ru.

5. Отказ от ответственности

Правообладатель не несёт ответственности за:

  • прямой или косвенный ущерб, включая потерю данных или сбои оборудования;
  • некорректную работу на неуказанных аппаратных платформах;
  • последствия использования при неверных настройках;
  • повреждения из‑за внешних факторов (перепады напряжения и т.п.);
  • ошибки, вызванные несовместимостью с нештатными библиотеками.

6. Обязательства пользователя

При использовании ПО пользователь подтверждает:

  • ознакомление с документацией и следование инструкциям;
  • осознание рисков, связанных с ИК‑ и Wi‑Fi‑управлением;
  • полную ответственность за безопасность и корректность эксплуатации.

7. Технические требования (обязательные для соблюдения лицензии)

  • Аппаратная платформа: DFRobot Beetle ESP32‑C3 (передатчик), ESP32 devkit v1 (приёмник).
  • Версии ПО:
    • ядро ESP32: 2.0.17;
    • библиотека IRremoteESP8266: v2.8.6;
    • Arduino IDE: v2.3.7.
  • Сеть: статические IP‑адреса в диапазоне 192.168.2.x.

8. Порядок получения лицензии

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

9. Изменения в лицензионной политике

Правообладатель вправе:

  • вносить изменения в условия соглашения;
  • отозвать лицензию при нарушении пользователем пунктов 3–6.

10. Юридические примечания

  • Настоящее соглашение регулируется законодательством РФ.
  • В случае противоречия между текстом соглашения и законом применяются нормы закона.
  • Если какое‑либо положение признаётся недействительным, это не влияет на юридическую силу остальных пунктов.

Важно!
Использование ПО означает полное согласие с изложенными условиями. Несоблюдение лицензионных требований влечёт:

  • автоматический отзыв лицензии;
  • юридическую ответственность в соответствии с законодательством об авторском праве.

ПРОЕКТ: ИК‑приёмник с обработкой сигналов
ВЕРСИЯ: 1.0
ДАТА: 2026


ИСПОЛЬЗУЕМЫЕ БИБЛИОТЕКИ И ЛИЦЕНЗИИ

  1. WiFi.h (встроенная в ядро ESP32)
  • Лицензия: LGPL 2.1
  • Описание: обеспечение Wi‑Fi‑подключения для приёма команд и отправки статистики.
  • Источник: https://github.com/espressif/arduino-esp32
  • Текст лицензии (сокращённо):
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
  1. WebServer.h (встроенная в ядро ESP32)
  • Лицензия: LGPL 2.1
  • Описание: обработка HTTP‑запросов (управление через веб‑интерфейс).
  • Источник: https://github.com/espressif/arduino-esp32
  • Текст лицензии: см. пункт 1 (LGPL 2.1).
  1. HTTPClient.h (встроенная в ядро ESP32)
  • Лицензия: LGPL 2.1
  • Описание: отправка HTTP POST‑запросов на сервер статистики.
  • Источник: https://github.com/espressif/arduino-esp32
  • Текст лицензии: см. пункт 1 (LGPL 2.1).
  1. IRremoteESP8266.h
  • Лицензия: MIT
  • Описание: ядро библиотеки для работы с ИК‑сигналами (поддержка протокола NEC).
  • Источник: https://github.com/crankyoldgit/IRremoteESP8266
  • Текст лицензии MIT:
    MIT License
    Copyright (c) 2018 Seeed Studio (Полный текст лицензии см. ниже.)
  1. IRrecv.h
  • Лицензия: MIT (та же, что у IRremoteESP8266.h)
  • Описание: модуль для приёма и декодирования ИК‑сигналов (NEC, проверка CRC).
  • Источник: https://github.com/crankyoldgit/IRremoteESP8266
  • Текст лицензии: см. пункт 4 (MIT).
  1. ArduinoJson.h
  • Лицензия: MIT
  • Описание: парсинг JSON‑ответов от сервера и формирование пакетов статистики.
  • Источник: https://arduinojson.fr/
  • Текст лицензии MIT:
    MIT License
    Copyright (c) 2014–2023 Benoit STANLEY (Текст идентичен лицензии в пункте 4 — см. выше.)

ТЕКСТ ЛИЦЕНЗИИ MIT (для пунктов 4, 5, 6):
MIT License
Copyright (c) 2018 Seeed Studio (IRremoteESP8266.h, IRrecv.h)
Copyright (c) 2014–2023 Benoit STANLEY (ArduinoJson.h)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the «Software»), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


ПРИМЕЧАНИЯ:

  • Библиотеки WiFi.h, WebServer.h, HTTPClient.h распространяются под LGPL 2.1. Это позволяет использовать их в коммерческих проектах при условии сохранения уведомлений об авторских правах и текста лицензии.
  • IRremoteESP8266.h, IRrecv.h и ArduinoJson.h лицензированы под MIT, что даёт свободу использования и распространения.
  • В проекте сохранены все оригинальные уведомления об авторских правах.
  • Для LGPL‑библиотек: при модификации кода требуется предоставление объектных файлов. В данном проекте модификации не вносились.

ПРОЕКТ: ИК‑передатчик команд «выстрел»
ВЕРСИЯ: 1.0
ДАТА: 2026


ИСПОЛЬЗУЕМЫЕ БИБЛИОТЕКИ И ЛИЦЕНЗИИ

  1. IRremoteESP8266.h
  • Лицензия: MIT
  • Описание: ядро библиотеки для генерации ИК‑сигналов (поддержка протокола NEC).
  • Источник: https://github.com/crankyoldgit/IRremoteESP8266
  • Текст лицензии MIT:
    MIT License
    Copyright (c) 2018 Seeed Studio Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the «Software»), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
  1. IRsend.h
  • Лицензия: MIT (та же, что у IRremoteESP8266.h)
  • Описание: модуль для отправки ИК‑сигналов (используется как основной компонент передатчика).
  • Источник: https://github.com/crankyoldgit/IRremoteESP8266
  • Текст лицензии: см. пункт 1 (MIT).

ПРИМЕЧАНИЯ:

  • Обе библиотеки (IRremoteESP8266.h и IRsend.h) входят в один репозиторий и распространяются под лицензией MIT.
  • В проекте сохранены все оригинальные уведомления об авторских правах.
  • Код библиотек не модифицировался — требования MIT выполнены путём включения текста лицензии и копирайта.
  • Для коммерческого использования: лицензия MIT позволяет свободное распространение, но требует сохранения уведомлений.

Ваш надёжный партнёр в мире профессионального ПО
Добавить комментарий