Бюджет: 20000 UAH Срок: 30 дней
Добрый день, если у вас есть вся документация с набором команд, то я готов выполнить ваше задание
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 (по работе со счетчиком)
Контроллер: ESP32-S3-ETH
Доступные UART: 3 аппаратных UART
Конвертеры:
5 x RS485-TTL (HW-519 или совместимые)
1 x M-Bus-TTL мастер
Мультиплексор: HW-178 или CJMCU-4051
Дополнительные модули: DC-DC, температурные/экологические датчики
Один UART (UART1 или другой доступный) ESP32 используется для считывания с 6 каналов через мультиплексор.
Мультиплексор коммутирует доступ к одному из 6 конвертеров в любой момент времени.
Логика переключения мультиплексора реализована через 3 GPIO (S0, S1, S2).
Сканирование устройств на M-Bus: определение активных адресов
Опрос каждого M-Bus устройства по уникальному адресу (идентификатору)
Сбор и парсинг значения потребления или другого показателя
Сканирование каждого из 5 каналов RS-485 на наличие устройств (может быть реализовано через цикл опроса известных адресов или протоколов NIK)
Опрос каждого устройства на канале (адрес, модель)
Поддержка запросов для NIK 2100 и NIK 2307 (подробности в примечаниях)
Все результаты должны быть структурированы в формате JSON, например :
{
"data": [
{
"device": "NIK 2100 AP6T.2200.MC.11",
"id": "1234567890",
"type": "rs485-1",
"value": "128.45",
"timestamp": "2025-05-05T12:34:56"
}
// ...другие устройства
]
}
Окончательный формат будет определен при сотрудничестве
Выходной файл в формате .ino для Arduino framework (для PlatformIO или Arduino IDE)
Реализовать цикл опроса:
Время между циклами — настраиваемое (например, раз в 5 минут)
Хранение JSON-результатов в RAM (вывод через Serial, UART или Ethernet)
Метки времени — по RTC или NTP (по необходимости)
Готовый и протестированный файл прошивки .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 и основана на серийном номере (конвертация также предоставлена в документации).
Учитывайте, что не все счетчики могут отвечать на сканирование адресов — в таком случае возможно опрос по известному списку серийных номеров.
Бюджет: 20000 UAH Срок: 30 дней
Добрый день, если у вас есть вся документация с набором команд, то я готов выполнить ваше задание
это на ПК даже будет довольно сложно реализовать, а вы хотите на ЕСП32 что бы фрилансер сделал
нанимайте команду какуюто или фирму
Добрый день!
Для этого проекта ESP 32 будет явно слабовата для стандарта DLMS/COSEM запроса. Если взять RPI можно продолжить разговор...