Samoobsługowe stacje ładowaniaa rowerów elektrycznych

Klient: TJS Power – sieć stacji ładowania e-rowerów przy lokalach na trasach Lubelszczyzny
Zakres: autorska wtyczka WordPress, integracja IoT, płatności online, panel partnera
Technologie: WordPress, PHP, MQTT, Shelly Pro 4PM, Przelewy24 / Paynow, Google Maps, Elementor

TJS Power - samoobsługowe stacje ładowania rowerów elektrycznych

Wyzwanie

Model biznesowy jest prosty do opisania i trudny do zbudowania: rowerzysta zatrzymuje się przy lokalu na trasie, skanuje kod QR, płaci BLIK-iem i ładuje rower. Gniazdko włącza się samo na opłacony czas i samo gaśnie. Bez obsługi, bez aplikacji, bez zakładania konta.

Za tą prostotą stało kilka twardych ograniczeń:

  • Sterowanie sprzętem, do którego nie ma dostępu. Gniazdka stoją w lokalach partnerów, w ich prywatnych sieciach WiFi – za routerem, bez publicznego adresu IP. Serwer w chmurze nie może się do nich „dodzwonić”.
  • Zwykły hosting. Całość miała działać na standardowym hostingu pod stronę WWW. Bez VPS-a, bez otwierania portów, bez dedykowanej infrastruktury.
  • Awaria nie może kosztować. Jeśli serwer albo łącze padnie w połowie sesji, gniazdko nie może zostać włączone w nieskończoność – to realny koszt prądu i realne ryzyko.
  • Rozliczenia z partnerami. Właściciele lokali muszą widzieć własne statystyki i swój udział w przychodzie, ale nie mogą widzieć cudzych.

Rozwiązanie

Zbudowaliśmy autorską wtyczkę WordPress, która spina w jedną całość mapę stacji, płatności, sterowanie urządzeniami, panel partnera i rozliczenia.

Przepływ od strony rowerzysty:

Skanuje naklejkę QR na stacji - telefon otwiera dedykowaną stronę punktu. Nic nie instaluje.

Wybiera pakiet (np. 8 zł za 3 godziny) i płaci BLIK-iem przez bramkę płatności.

Po zaksięgowaniu wpłaty dostaje na ekranie i mailem kod do szafki.

Otwiera szafkę, podłącza własną ładowarkę - gniazdko jest już pod napięciem.

Po upływie opłaconego czasu zasilanie wyłącza się samo.

				
					// gniazdka stoją w sieciach WiFi partnerów — bez publicznego IP.
// nie pukamy do urządzenia; to ono nasłuchuje brokera

public function zalacz($stacja, $godziny) {

    $temat = sprintf(
        '%s/command/switch:%d',
        $stacja->prefiks,
        $stacja->kanal
    );

    // czas trwania jedzie razem z komendą —
    // Shelly odlicza go u siebie i gaśnie sam,
    // nawet jeśli straci kontakt z serwerem
    $this->publikuj($temat, 'on,' . $godziny * 3600);
}

/* uwierzytelnienie brokera, kolejka ponowień, weryfikacja
   płatności i awaryjny CRON — poza kadrem */
				
			

Jak rozwiązaliśmy sterowanie sprzętem

Kluczowa decyzja architektoniczna: to urządzenie łączy się z serwerem, nie odwrotnie.

Zamiast wysyłać polecenia do gniazdek, wtyczka publikuje je na brokerze MQTT. Moduły Shelly Pro 4PM zainstalowane w stacjach same utrzymują połączenie z brokerem i nasłuchują komend. Dzięki temu:

  • nie potrzeba publicznego IP ani przekierowania portów u żadnego z partnerów,
  • partner nie musi nic konfigurować w swoim routerze – urządzenie działa po zwykłym WiFi,
  • system skaluje się na kolejne lokalizacje bez zmian w infrastrukturze.

Druga kluczowa decyzja dotyczy bezpieczeństwa: odliczanie czasu odbywa się na urządzeniu, nie na serwerze. Komenda włączenia zawiera od razu długość sesji – moduł Shelly wie, kiedy ma się wyłączyć, i zrobi to nawet po całkowitej utracie łączności z serwerem. Serwerowe zadanie CRON pełni wyłącznie rolę zapasową.

Jeden moduł obsługuje cztery niezależne kanały, więc jedna stacja może mieć kilka gniazdek rozliczanych osobno.

Efekt

Stacja działa 24/7 bez obsługi

od płatności po wyłączenie zasilania wszystko dzieje się automatycznie.

Zero kosztów infrastruktury

system stoi na tym samym hostingu co strona.

Wejście partnera bez inwestycji

wystarczy gniazdko, kawałek miejsca i naklejka z kodem QR.

Rozwój sieci bez pracy programisty

nowa stacja to nowy wpis w panelu i podłączony moduł.

Odporność na awarie

utrata łączności nie zostawia włączonego gniazdka.

Podsumowanie

Systemy samoobsługowe zwykle kojarzą się z dedykowanym oprogramowaniem i serwerownią. Pokazaliśmy, że dobrze zaprojektowana wtyczka WordPress plus właściwie dobrany sprzęt potrafią obsłużyć płatności, sterowanie urządzeniami w terenie i rozliczenia partnerskie - na zwykłym hostingu.

Masz pomysł na usługę samoobsługową i nie chcesz zaczynać od budowania własnej infrastruktury? Porozmawiajmy.