Mobilna aplikacja IoT do sterowania podnośnikami mebli
Klient: Startup produkujący elektryczne podnośniki mebli oparte na niestandardowym urządzeniu. Producent zgłosił się z gotowym sprzętem i potrzebą aplikacji mobilnej, która zamieni go w kompletny produkt IoT.
Mieć działający hardware to jedno — żeby produkt IoT trafił do klientów, potrzebuje aplikacji, która jest prosta w obsłudze, niezawodna w komunikacji i działa na każdym smartfonie. LegsGO zlecił mi zaprojektowanie i zbudowanie całego ekosystemu: aplikacji mobilnej na iOS i Android, firmware dla płytki oraz automatyzacji aktualizacji OTA.
Wyzwanie biznesowe
Producent miał gotowe urządzenia, ale zero warstwy software. Bez aplikacji mobilnej sprzęt nie mógł trafić do klientów końcowych. Wyzwania techniczne były poważne: komunikacja przez WiFi (MQTT) i Bluetooth musiała działać niezawodnie i wzajemnie się uzupełniać, pierwsze parowanie urządzenia przez klienta musiało być tak proste, że nie wymagało instrukcji, a aktualizacje firmware na wdrożonych urządzeniach musiały odbywać się bez fizycznego dostępu do sprzętu.
Rozwiązanie
Zaprojektowałem i wdrożyłem cały stack: aplikację mobilną React Native na iOS i Android z dualnym transportem komend (MQTT over WebSocket + BLE z automatycznym fallbackiem), wieloetapowy wizard provisioning przez Bluetooth, system OTA do zdalnej aktualizacji firmware, a także napisałem sam firmware dla płytki. Całość spinana przez Supabase (auth, baza danych, realtime).
//Efekty biznesowe
Kompletny produkt IoT z jednego źródła
Aplikacja mobilna, firmware i backend — zaprojektowane razem jako spójny ekosystem, nie sklejone z oddzielnych części. Producent otrzymał gotowy produkt, nie zestaw komponentów do integracji.
Niezawodna komunikacja — MQTT + BLE z auto-fallbackiem
Komendy wysyłane są przez MQTT (WiFi), a gdy urządzenie jest offline — aplikacja automatycznie przełącza się na Bluetooth. Użytkownik nigdy nie widzi błędu połączenia, sterowanie działa zawsze.
Provisioning w kilka minut bez instrukcji
Wieloetapowy wizard przez BLE prowadzi użytkownika przez pierwsze parowanie: skan urządzeń, wybór sieci WiFi, wpisanie hasła i rejestracja — wszystko w jednym ekranie. Jeśli rejestracja nie powiedzie się z powodu braku internetu, config jest zapisany i retry wykonywany automatycznie po powrocie łączności.
OTA — aktualizacje firmware bez fizycznego dostępu
Przez MQTT aplikacja wysyła URL binarki i SHA256 do urządzenia — sam pobiera i wgrywa aktualizację. Wersja firmware i historia aktualizacji zarządzana centralnie w baziedanych.
Harmonogramy i automatyzacje
Użytkownicy mogą ustawić automatyczne sekwencje podnoszenia/opuszczania (np. biurko w górę o 8:00, w dół o 17:00) — automatyczne logowanie każdej komendy w bazie danych z potwierdzeniem ACK od urządzenia.
Jednorazowy wkład — dożywotni efekt na flocie urządzeń
Dzięki OTA każda poprawa firmware trafia na wszystkie wdrożone urządzenia automatycznie. Startup może rozwijać produkt po sprzedaży — bez serwisu, bez fizycznego dostępu, bez kosztów wymiany sprzętu.
Zainteresowany?
Masz gotowy hardware i potrzebujesz aplikacji mobilnej lub firmware? Porozmawiajmy — zbuduję kompletny ekosystem IoT.
Wolisz porozmawiać?
//Kluczowe funkcje
- Aplikacja iOS + Android
- Dual-transport: MQTT over WebSocket (podstawowa ścieżka) + BLE (fallback), automatyczne przełączanie.
- 3 przyciski sterowania z animacjami i haptic feedback.
- Wieloetapowy provisioning wizard przez BLE — skan, wybór WiFi, rejestracja w bazie danych
- OTA firmware update przez MQTT: URL + SHA256, płytka pobiera binkę samodzielnie.
- Harmonogramy automatyzacji — CRUD z logowaniem komend i ACK od urządzenia.
- Audit trail: każda komenda z flagą processed, timestampem i statusem.
- Custom toast stack — animowany system powiadomień ze stackowaniem.
- Tryb jasny/ciemny/systemowy, interfejs PL/EN.
- Firmware płytki — napisany przeze mnie, obsługa MQTT, BLE, WiFi provisioning, OTA.
//Przed i po
| Obszar | Przed | Po |
|---|---|---|
| Sterowanie podnośnikiem | Brak — sprzęt bez warstwy software | Aplikacja iOS + Android z 3 przyciskami i animacjami |
| Pierwsze uruchomienie | Brak możliwości konfiguracji przez klienta | Provisioning wizard przez BLE w kilka minut |
| Aktualizacje firmware | Wymagałyby fizycznego dostępu do każdego urządzenia | OTA przez MQTT — automatycznie na całą flotę |
| Niezawodność połączenia | Brak — jedno zerwane WiFi = brak sterowania | Auto-fallback na BLE gdy MQTT offline |
| Historia i monitoring | Brak — brak wglądu w użycie urządzeń | Audit trail komend, heartbeaty, logi w bazie |
LegsGO to projekt, który pokazuje, że dobry produkt IoT to nie tylko hardware. Aplikacja mobilna, firmware i infrastruktura muszą być zaprojektowane razem — żeby parowanie było proste, komunikacja niezawodna, a aktualizacje firmware trafiały na urządzenia w terenie bez żadnego wysiłku. Całość zbudowana przeze mnie od zera: kod aplikacji, kod na płytkę i pipeline OTA.
Zainteresowany?
Masz gotowy hardware i potrzebujesz aplikacji mobilnej lub firmware? Porozmawiajmy — zbuduję kompletny ekosystem IoT.
Wolisz porozmawiać?