Budżet: 20000 UAH Termin: 30 dni
Dzień dobry, jeśli masz całą dokumentację z zestawem poleceń, to jestem gotowy wykonać Twoje zadanie
Breadboard
ESP32-S3-ETH
RS-485 TTL-moduły HW-519 — 4 szt.
Multipleksory: HW-178 lub CJMCU-4051
M-Bus master do konwertera TTL
Przetwornik DC-DC 24V → 5V
Zasilacz 24V 3A
Czujnik temperatury XY-MD02
2 liczniki wody z nakładkami M-Bus
Licznik ciepła Sharky 775 z modułem M-Bus
Liczniki NIK:
NIK 2100 AP6T.2200.MC.11
NIK 2307 0.5s ART T.1620.MC.22
Dokumentacja producenta dotycząca protokołu RS-485 (dotycząca pracy z licznikiem)
Kontroler: ESP32-S3-ETH
Dostępne UART: 3 sprzętowe UART
Konwertery:
5 x RS485-TTL (HW-519 lub kompatybilne)
1 x M-Bus-TTL Master
Multipleksor: HW-178 lub CJMCU-4051
Dodatkowe moduły: DC-DC, czujniki temperatury/środowiskowe
Jeden UART (UART1 lub inny dostępny) ESP32 służy do odczytu z 6 kanałów przez multipleksor.
Multipleksor przełącza dostęp do jednego z 6 konwerterów w dowolnym momencie.
Logika przełączania multipleksora realizowana jest przez 3 GPIO (S0, S1, S2).
Skanowanie urządzeń na M-Bus: wykrywanie aktywnych adresów
Pobieranie danych od każdego urządzenia M-Bus po unikalnym adresie (identyfikatorze)
Zbieranie i parsowanie wartości zużycia lub innych wskaźników
Skanowanie każdego z 5 kanałów RS-485 pod kątem obecności urządzeń (może być realizowane przez cykl zapytań znanych adresów lub protokołów NIK)
Pobieranie danych od każdego urządzenia na kanale (adres, model)
Wsparcie zapytań dla NIK 2100 i NIK 2307 (szczegóły w notatkach)
Wszystkie wyniki mają być uporządkowane w formacie JSON, na przykład :
{
"data": [
{
"device": "NIK 2100 AP6T.2200.MC.11",
"id": "1234567890",
"type": "rs485-1",
"value": "128.45",
"timestamp": "2025-05-05T12:34:56"
}
// ...inne urządzenia
]
}
Ostateczny format zostanie ustalony podczas współpracy
Plik wyjściowy w formacie .ino dla frameworka Arduino (dla PlatformIO lub Arduino IDE)
Implementacja cyklu zapytań:
Czas między cyklami — konfigurowalny (np. raz na 5 minut)
Przechowywanie wyników JSON w RAM (wyświetlanie przez Serial, UART lub Ethernet)
Znaczniki czasu — za RTC lub NTP (w razie potrzeby)
Gotowy i przetestowany plik firmware .ino, który:
odpowiada za odczyt wszystkich 6 kanałów (M-Bus i RS485-1…5)
tworzy poprawny JSON z danymi z urządzeń
wyświetla JSON przez Serial
2. Dokumentacja do firmware
Uwagi:
Dodatki dotyczące pracy z RS-485 dla liczników NIK:
Liczniki NIK 2100 AP6T.2200.MC.11 oraz NIK 2307 0.5s ART T.1620.MC.22 korzystają z protokołu opartego na standardach IEC 62056-46, -53, -61, -62, który przewiduje użycie HDLC kodowania i struktury danych COSEM/DLMS.
Komunikacja z licznikiem obejmuje etapy:
Inicjalizacja połączenia (wysłanie ramki SNRM i otrzymanie odpowiedzi UA).
Autoryzacja przez pakiet AARQ z podaniem hasła (użytkownik, operator lub administrator).
Przetwarzanie odpowiedzi AARE w celu weryfikacji autoryzacji.
Po autoryzacji — wymiana zapytań GET z użyciem kodów OBIS do odczytu wskaźników.
Zakończenie sesji pakietem DISC.
Do autoryzacji używany jest 16-bajtowy hasło przesyłany w polu AARQ. Typ dostępu (user/operator/admin) jest ustawiany w ID użytkownika.
W przypadku 5 nieudanych prób autoryzacji z tym samym ID — dostęp jest blokowany na 30 minut.
Wszystkie pakiety są opakowane w strukturę HDLC z sumami kontrolnymi (FCS), obliczanymi na podstawie 16-bitowego CRC (algorytm w dołączonej dokumentacji).
Adresowanie licznika odbywa się w formacie HDLC i opiera na numerze seryjnym (konwersja również dostępna w dokumentacji).
Należy pamiętać, że nie wszystkie liczniki mogą odpowiadać na skanowanie adresów — w takim przypadku można próbować odpytywać po znanym spisie numerów seryjnych.
Budżet: 20000 UAH Termin: 30 dni
Dzień dobry, jeśli masz całą dokumentację z zestawem poleceń, to jestem gotowy wykonać Twoje zadanie
это на ПК даже будет довольно сложно реализовать, а вы хотите на ЕСП32 что бы фрилансер сделал
нанимайте команду какуюто или фирму
Добрый день!
Для этого проекта ESP 32 будет явно слабовата для стандарта DLMS/COSEM запроса. Если взять RPI можно продолжить разговор...