Zlecę napisanie Firmware (ESP32/FreeRTOS) – Przemysłowa Bramka IoT / MQTT z buforowaniem
Zlecę napisanie stabilnego oprogramowania (firmware) dla autorskiego rejestratora danych / bramki IoT, montowanej w szafach sterowniczych na szynie DIN.
Sprzęt (projekt PCB, montaż) jest w 100% po naszej stronie. Otrzymujesz od nas polutowaną, sprawdzoną płytkę ze schematem i precyzyjnym opisem wyprowadzeń. Twoim zadaniem jest napisanie wielowątkowego, bezawaryjnego kodu.
Architektura sprzętowa:
Mikrokontroler: ESP32 (z fizycznym interfejsem Ethernet LAN).
Magistrala SPI: Współdzielona przez dwa układy – pamięć FRAM (szybki podręczny bufor) oraz czytnik kart MicroSD (głębokie archiwum logów).
Magistrala I2C: Zewnętrzny sprzętowy zegar RTC (np. DS3231) do stemplowania czasu (Timestamp).
UART 1 (RS485): Ciągły odczyt danych z zewnętrznego regulatora mocy biernej (Modbus RTU).
UART 2: Zewnętrzny modem GSM (zapasowy kanał komunikacji w razie awarii LAN).
GPIO: Obsługa zewnętrznego, sprzętowego Watchdoga (generowanie pulsu "heartbeat").
Zakres obowiązków i wymagania programistyczne:
Komunikacja MQTT i Buforowanie (Kluczowy wymóg): Głównym zadaniem urządzenia jest wysyłanie odczytów na serwer przez MQTT. Wymagamy implementacji mechanizmu Store & Forward. W przypadku utraty połączenia (LAN/GSM), dane muszą być bezpiecznie buforowane (FRAM / SD) i automatycznie dosłane na serwer po przywróceniu komunikacji, z zachowaniem oryginalnych stempli czasu.
Redundancja łącza (LAN -> GSM): System musi wykrywać brak internetu na porcie Ethernet i płynnie przełączać się na wysyłkę danych przez modem GSM, a po powrocie LAN wracać do domyślnego łącza.
Diagnostyczny Web Serwer: Urządzenie ma wystawiać bardzo prosty, lokalny interfejs WWW (HTML serwowany z SD/SPIFFS). Służy on wyłącznie do diagnostyki dla instalatora (podgląd aktualnego statusu połączeń, stanów rejestrów Modbus) oraz zmiany konfiguracji (adres IP brokera MQTT,
Czysty, dobrze udokumentowany kod: Środowisko: PlatformIO / C++ (ESP-IDF lub Arduino Core - do ustalenia). Kod musi zawierać precyzyjne komentarze opisujące logikę działania poszczególnych funkcji.