Zegarek na motocyklu jest bardzo przydatnym urządzeniem. Korzystając z tego środka transportu nie można w prosty sposób sprawdzić czasu spoglądając na zegarek naręczny czy telefon. 8 lat temu zbudowałem do swojego motocykla zegarek, który posiadał dodatkowo pomiar napięcia akumulatora i temperatury powietrza. Tamten projekt, dopasowany wizualnie do licznika motocykla, można zobaczyć tutaj:
Od ponad roku mam nowy motocykl. Jego licznik ma co prawda wbudowany zegarek, ale korzystanie z niego jest niewygodne. Dlatego postanowiłem zbudować nowy zegarek, dopasowany do konsoli nowego pojazdu. Zegarek ten miał mieć sprawdzone już i przydatne funkcje:
- wyświetlanie bieżącego czasu,
- wyświetlanie napięcia akumulatora,
- wyświetlanie temperatury powietrza,
- alarm o niskiej temperaturze (ślisko),
- alarm o niskim napięciu (brak ładowania).
![]() |
| Plansza z alarmu o niskim napięciu |
Postanowiłem jednak znacznie poszerzyć funkcjonalność nowego urządzenia o obsługę telefonu. Dla niezorientowanych - korzystanie z telefonu na motocyklu jest wybitnie niewygodne. Problemu nie stanowi rozmowa bo do tego używa się wbudowanego w kask zestawu słuchawkowego lub interkomu. Natomiast wyzwaniem jest odebranie/odrzucenie rozmowy czy inicjowanie nowej. Niektórzy motocykliści montują telefon do uchwytu na kierownicy lub baku lecz obsługa dotykowego ekranu w rękawicach to już wyższa ekwilibrystyka. Postanowiłem podejść do tematu inaczej.
Interfejs użytkownika
W moim zegarku do prezentacji informacji zastosowałem okrągły, kolorowy wyświetlacz graficzny, stylistycznie dopasowany do okrągłego licznika głównego. Na ekranie głównym, w centralnym miejscu wyświetlany jest aktualny czas. Powyżej z lewej strony wyświetlana jest temperatura a z prawej napięcie akumulatora. Powyżej wyświetlana jest ikona prezentująca stan baterii telefonu. Na każdym innym ekranie część centralna ekranu wyświetla informacje kontekstowe ale czas pojawia się w górnej jego części. Do obsługi urządzenia służą dwa fizyczne przyciski umieszczone na kierownicy - dostępne kciukiem, dzięki czemu do obsługi nie potrzeba odrywać rąk od kierownicy. Mój smartwatch łączy się za pośrednictwem Bluetooth Low Energy ze smartfonem, dzięki czemu zapewnia dodatkowe przydatne funkcje:
- odbieranie/odrzucanie przychodzących połączeń telefonicznych,
- rozłączanie trwającej rozmowy,
- inicjowanie połączeń poprzez wybór spośród 4 ulubionych/ostatnich numerów telefonów,
- odczyt przychodzących wiadomości sms/komunikator i nagłówków e-mail.
- informuje o stanie baterii telefonu i zestawu słuchawkowego
![]() |
| Dodatkowe przyciskami (czerwony i zielony) na kierownicy |
Obsługa polega na dłuższym lub krótszym naciskaniu przycisków a ikonki na wyświetlaczu podpowiadają co i jak. W dolnej części ekranu wyświetlają się elementy symbolizujące przyciski i funkcje przez nie obsługiwane. Każdy z dwu przycisków może mieć dwie funkcje dostępne przez krótkie naciśniecie (mała ikonka) i duże naciśnięcie (duża ikonka).
- czerwony krótko - wiadomości tekstowe (liczba określa ile ich czeka na przeczytanie),
- czerwony długo - ekran nawigacji,
- zielony krótko - lista ulubionych kontaktów telefonicznych,
- zielony długo - lista ostatnich połączeń telefonicznych.
- czerwony krótko - kursor do góry,
- zielony krótko - kursor do dołu,
- czerwony długo - wyjdź do ekranu głównego,
- zielony długo - wybierz numer.
- zielony - odbierz połączenie,
- czerwony - odrzuć i powróć do ekranu głównego.
Zaimplementowałem też rozbudowane menu ustawień, które jest dostępne z ekranu głównego - wyjątkowo poprzez jednoczesne naciśnięcie obu przycisków. W menu tym można m.in.:
- ustawić czas (czas aktualizuje się też z automatycznie ze smartfona),
- ustawić progi alarmów (napięcie/temperatura),
- aktywować przypomnienie o braku połączenia z zestawem słuchawkowym.


Nawigacja
Dodatkową extra przydatną funkcją jest nawigacja. Telefon można mieć w kieszeni a na ekranie smartwatcha będą się wyświetlać wskazówki nawigacyjne. Nawigację Google należy nastawić i uruchomić na telefonie przed jazdą. Na ekranie wyświetlane są wskazówki nawigacyjne w formie ikonki pod którą wyświetla się dystans. Obok jest wyświetlana krótka wskazówka tekstowa a pod nią informacja ile zostało czasu / dystansu do celu. Jednocześnie na słuchawkach dostajemy wskazówki głosowe nawigacji. Działanie nawigacji można też zakończyć w trakcie. Ale aby ją ustawić lub ponownie aktywować trzeba już użyć ekranu smartfona.
Konstrukcja
W konstrukcji urządzenia wykorzystałem 3 gotowe moduły:
W konstrukcji urządzenia wykorzystałem 3 gotowe moduły:
- okrągły wyświetlacz LCD TFT 240x240 sterowany poprzez interfejs SPI ze sterownikiem GC9A01,
- płytkę rozwojową ESP32-S3 SuperMini,
- moduł przetwornicy/ładowarki USB (12/24>>5V).
![]() |
| Schemat urządzenia |
Aby połączyć te moduły w zwartą całość zaprojektowałem płytkę drukowaną (a raczej 3 płytki), która została wykonana w chińskiej fabryce. Po pocięciu trzy płytki tworzą razem pudełkową konstrukcję w której na górze znajduje się wyświetlacz. Na jednej ściance znajduje się zasilacz/ładowarka a na drugiej moduł procesora ESP32. Dodatkowo na płytce procesora umieściłem też zegar czasu rzeczywistego PCF8563 wraz z bateryjką podtrzymującą oraz czujnik temperatury DS18B20. Na płytce tej znajduje się też 5-pinowe gniazdo służące do podłączenia zasilania (12V z instalacji motocykla "po stacyjce") oraz przyłącze modułu przycisków (zamontowanego dogodnie na kierownicy).
![]() |
| Płytka urządzenia (przed podziałem na 3 części) |

Urządzenie zostało zaprojektowane tak, aby pasowało do okrągłej obudowy wykonanej z czarnego plastikowego dekla od farby w sprayu. W dekielku tym wycięto okrągły otwór/okienko w który wkleiłem od środka szybkę wykonaną z pleksi. Użyłem elastycznego, czarnego kleju do naprawy GSM. Obudowa ma przykręcony metalowy wspornik który służy do przymocowania smartwatcha do licznika motocykla. W dolnym deklu przez otwory dostępne jest nie tylko gniazdo przyłączeniowe do zasilania i przycisków ale również gniazdo USB modułu zasilacza, które można wykorzystać do zasilania np. kamerki sportowej zamontowanej na kierownicy (włącza się wtedy automatycznie po przekręceniu stacyjki - jak rejestrator w aucie).




Oprogramowanie
Oprogramowanie składa się z dwóch części. Zasadniczy program na procesor ESP32-S3 został napisany w środowisku Arduino z wykorzystaniem dedykowanych bibliotek:
- "RTClib.h" - Real Time Clock PCF8563
- <OneWire.h> - One Wire Bus
- <DallasTemperature.h> - DS18B20 temperature sensor
- <BLEDevice.h> -BLE device lib
- <BLEUtils.h> - BLE utils lib
- <BLEServer.h> - BLE server lib
- "SPI.h" - SPI Bus
- "Adafruit_GFX.h" - Adafruit Display lib
- "Adafruit_GC9A01A.h" - Adafruit GC9A01A lib
Dużo czasu zajęło testowanie oprogramowania nawigacji w warunkach bojowych, urządzenie było jeszcze w fazie prototypu zbudowanego na płytce stykowej.
- wyświetlacz (interfejs ISP)
- zegar czasu rzeczywistego PCF8563 (interfejs I2C)
- czujnik temperatury DS18B20 (interfejs 1-wire)
- pomiar napięcia pokładowego 12V (ADC poprzez dzielnik napięcia)
- klawiaturę (dwa przyciski na osobnych pinach)
- komunikację Bluetooth Low Energy
Obsługa wyświetlacza jest dość prosta, chociaż zaprojektowanie przejrzystego i funkcjonalnego interfejsu użytkownika zajęło trochę czasu. Prezentowane informacje są stylistycznie i kolorystycznie dopasowane do licznika motocykla. Wspomogłem się gotowymi symbolami graficznymi oraz cyferkami, które przygotowałem w programie graficznym i wkompilowałem do kodu. Jestem zadowolony z uzyskanego efektu. Wisienką na torcie jest animacja z logo, która wyświetla się po uruchomieniu systemu :-)
Sporym wyzwaniem była komunikacja z telefonem. Do tego powstała osobna apka na smartfona, której napisanie zleciłem znajomemu programiście urządzeń mobilnych. Niestety dopracowanie szczegółów i ustabilizowanie komunikacji zajęło najwięcej czasu. Komunikacja BT-LE polega bowiem na wystawianiu ograniczonych ilościowo i czasowo porcji danych. Sporym wyzwaniem było przysyłanie ze smartfona ikonek nawigacyjnych - opracowany został specjalny autorski algorytm kompresji, który grafiki 96x96 (1152 bajtów) kompresuje kilkukrotnie.
Testy urządzenia wykazały jego ogromną użyteczność. Nie trzeba się zatrzymywać aby sprawdzić: czy sms który nadszedł jest istotny, czy odbierać przychodzące połączenie. Do tego nawigacja, która nie jest aż tak wygodna jak mapa, ale jest naprawdę użyteczna. Niestety prace nad urządzeniem trwały z dużymi przerwami ponad rok. Koszty wykonania nie były wysokie ale wymagały sporej części pracy mechanicznych. Obecnie zabrałbym się za to inaczej są już bowiem dostępne gotowe i przystępne cenowo moduły wyświetlacza z wbudowanym procesorem. Zastosowanie takiego gotowego modułu zminimalizowało by prace mechaniczne a w pracach programistycznych można się znacznie wspomóc AI - ja większość kodu pisałem samodzielnie...
















