IoT

Платформа зарядних станцій для електромобілів

Шлюз, через який зарядні станції спілкуються з платформою: довгоживучі TCP-сесії за власним бінарним протоколом, команди в реальному часі, телеметрія й білінг — і все, що навколо: база, адмінка й API для мобільного застосунку.

Задача

Тримати зв'язок з кожною станцією в реальному часі

Зарядні станції підключаються до платформи постійно відкритими TCP-з'єднаннями й говорять власним бінарним протоколом, а не звичним HTTP.

Платформа має бачити стан кожної сесії зараз, надсилати станції команди віддалено, рахувати білінг і віддавати все це мобільному застосунку та адмінці.

Технології

Стек платформи

Шлюз і API

Node.jsExpressTCP-сокетиБінарний протокол

Реальний час

Redis Pub/Sub

Дані

PostgreSQL

Інтерфейси

ReactAPI для мобільного застосунку

Рішення

Що зроблено

Шлюз станцій

Шлюз на Node.js тримає довгоживучі TCP-сесії зі станціями й розбирає власний бінарний протокол.

  • Довгоживучі TCP-сесії на Node.js
  • Власний бінарний протокол

Шар реального часу

Redis Pub/Sub з'єднує сокетний шар з Express API: команди йдуть до станцій, стан сесій — назад у платформу.

  • Віддалені команди
  • Стан сесій у реальному часі
  • Телеметрія доступності

Білінг і дані

Схема PostgreSQL під сесії, станції й білінг.

  • Сесії, станції й білінг в одній схемі PostgreSQL
  • Білінг зарядних сесій

Адмінка й мобільний API

Адмінпанель на React і API для мобільного застосунку.

  • React-адмінка
  • API для мобільного застосунку

Підсумок

Що вийшло

Платформа, яка розмовляє зі станціями їхньою мовою й у реальному часі, а назовні віддає звичайне API — для адмінки та мобільного застосунку.

  • Довгоживучі сесії зі станціями за їхнім власним протоколом
  • Віддалені команди й живий стан кожної сесії
  • Телеметрія доступності й білінг в одній системі

Контакти

Розкажіть про задачу

Опишіть у двох абзацах, що не працює. Відповімо, чи беремося, і з чого пропонуємо почати. Зустріч — онлайн або особисто в Ужгороді чи Києві.

Відповідаємо протягом робочого дня.

Telegram