Мультипротокольный считыватель для ESP32-S3-ETH с поддержкой RS-485 и M-Bus
Предоставляется заказчиком:
Breadboard
ESP32-S3-ETH
RS-485 TTL-модули HW-519 — 4 шт.
Мультиплексоры: HW-178 или CJMCU-4051
M-Bus мастер к TTL-конвертеру
DC-DC преобразователь 24V → 5V
Блок питания 24V 3A
Температурный датчик XY-MD02
2 водяных счетчика с M-Bus накладками
Тепловой счетчик Sharky 775 с модулем М-Bus
Счетчики NIK:
NIK 2100 AP6T.2200.MC.11
NIK 2307 0.5s ART T.1620.MC.22
Документация производителя по протоколу RS-485 (по работе со счетчиком)
1. Аппаратная платформа:
Контроллер: ESP32-S3-ETH
Доступные UART: 3 аппаратных UART
Конвертеры:
5 x RS485-TTL (HW-519 или совместимые)
1 x M-Bus-TTL мастер
Мультиплексор: HW-178 или CJMCU-4051
Дополнительные модули: DC-DC, температурные/экологические датчики
2. Подключение:
Один UART (UART1 или другой доступный) ESP32 используется для считывания с 6 каналов через мультиплексор.
Мультиплексор коммутирует доступ к одному из 6 конвертеров в любой момент времени.
Логика переключения мультиплексора реализована через 3 GPIO (S0, S1, S2).
3. Основной функционал прошивки:
3.1. M-Bus (1 канал)
Сканирование устройств на M-Bus: определение активных адресов
Опрос каждого M-Bus устройства по уникальному адресу (идентификатору)
Сбор и парсинг значения потребления или другого показателя
3.2. RS-485 (5 каналов)
Сканирование каждого из 5 каналов RS-485 на наличие устройств (может быть реализовано через цикл опроса известных адресов или протоколов NIK)
Опрос каждого устройства на канале (адрес, модель)
Поддержка запросов для NIK 2100 и NIK 2307 (подробности в примечаниях)
3.3. Формирование выходных данных
Все результаты должны быть структурированы в формате JSON, например :
{
"data": [
{
"device": "NIK 2100 AP6T.2200.MC.11",
"id": "1234567890",
"type": "rs485-1",
"value": "128.45",
"timestamp": "2025-05-05T12:34:56"
}
// ...другие устройства
]
}
Окончательный формат будет определен при сотрудничестве
4. Требования к прошивке:
Выходной файл в формате .ino для Arduino framework (для PlatformIO или Arduino IDE)
Реализовать цикл опроса:
Время между циклами — настраиваемое (например, раз в 5 минут)
Хранение JSON-результатов в RAM (вывод через Serial, UART или Ethernet)
Метки времени — по RTC или NTP (по необходимости)
5. Результат разработки:
Готовый и протестированный файл прошивки .ino, который:
опрашивает все 6 каналов (M-Bus и RS485-1…5)
формирует валидный JSON с данными с устройств
выводит JSON через Serial
2. Документация к прошивке
Примечания:
Дополнение по работе с RS-485 для счетчиков NIK:
Счетчики NIK 2100 AP6T.2200.MC.11 и NIK 2307 0.5s ART T.1620.MC.22 используют протокол на основе стандартов IEC 62056-46, -53, -61, -62, что предусматривает использование HDLC кадрирования и структуры данных COSEM/DLMS.
Общение со счетчиком включает этапы:
Инициализация соединения (отправка SNRM фрейма и получение ответа UA).
Авторизация через AARQ пакет с указанием пароля (пользователь, оператор или администратор).
Обработка AARE-ответа для проверки авторизации.
После авторизации — обмен GET-запросами с использованием OBIS-кодов для чтения показаний.
Завершение сессии DISC-пакетом.
Для авторизации используется 16-байтовый пароль, передаваемый в поле AARQ. Тип доступа (user/operator/admin) задается в ID пользователя.
При 5 неудачных попытках авторизации с одним ID — доступ блокируется на 30 минут.
Все пакеты оборачиваются в HDLC-структуру с контрольными суммами (FCS), которые вычисляются по 16-битному CRC (алгоритм в приложенной документации).
Адресация счетчика осуществляется в формате HDLC и основана на серийном номере (конвертация также предоставлена в документации).
Учитывайте, что не все счетчики могут отвечать на сканирование адресов — в таком случае возможно опрос по известному списку серийных номеров.
-
282 1 0 Добрый день, если у вас есть вся документация с набором команд, то я готов выполнить ваше задание
-
это на ПК даже будет довольно сложно реализовать, а вы хотите на ЕСП32 что бы фрилансер сделал
нанимайте команду какуюто или фирму
-
Добрый день!
Для этого проекта ESP 32 будет явно слабовата для стандарта DLMS/COSEM запроса. Если взять RPI можно продолжить разговор...
-
Актуальные фриланс-проекты в категории C и C++
Реверс-инжиниринг консольных утилит для опроса контроллеров SSD (Flash ID)1. Цель работы Выделение программного интерфейса (API) взаимодействия с контроллерами SSD/NVMe из предоставленного набора консольных утилит (Phison, Silicon Motion, Realtek, Maxiotek, Marvell, JMicron и др.). Результатом должно стать рабочий код на языке C/C++ или точная… C и C++, Десктопные приложения ∙ 3 дня 7 часов назад ∙ 5 ставок |
Разработка карты семян Minecraft Java / просмотрщика семян для сайтаРазработка карты семян Minecraft Java / Seed Viewer для сайтаОписание проекта Необходимо разработать браузерный инструмент Minecraft Java Seed Map / Seed Viewer, который будет работать на нашем сайте и позволит пользователю ввести семя Minecraft Java Edition и просмотреть… C и C++, HTML и CSS верстка ∙ 3 дня 14 часов назад ∙ 14 ставок |
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x)
1000 UAH
Сравнительный анализ эффективности кастомного ПО (v2.2-field) и эталонного ПО (Meshtastic v2.x) на идентичной аппаратной платформе (ESP32 + SX1268, 2W) по критериям дальности, пропускной способности, стабильности линка и энергопотребления. Провести тесты с замерами с учетом… C и C++, C# ∙ 7 дней 21 час назад ∙ 2 ставки |
Консультация и аудит текущего проекта на Odoo 19 Community EditionИщем Odoo разработчика — соло-разработчика с опытом разработки на Odoo 19 Community Edition, в том числе с использованием Claude Code. Нам нужен специалист, который успешно реализовал проекты в Odoo и имеет практический опыт разработки с использованием Claude Code. Важно:… C и C++, Javascript и Typescript ∙ 10 дней 22 часа назад ∙ 8 ставок |
Разработка ПО для Arduino (RF-модули 3–7.5 ГГц, автоматическое сканирование частот)Необходимо разработать систему на Arduino для автоматического поиска активного аналогового видеосигнала и автоматической настройки передатчика на обнаруженную частоту.Планируется использование трех отдельных приемно-передающих модулей: 3000–4200 МГц; 4900–6000 МГц; 6100–7500… C и C++, Встраиваемые системы и микроконтроллеры ∙ 11 дней 23 часа назад ∙ 5 ставок |