Adam Gajewski 2025-07-03

Jak ożywiliśmy licznik kawy, czyli “pet project”

Jak ożywiliśmy licznik kawy, czyli “pet project”

Jak ożywiliśmy licznik kawy, czyli historia jednego “pet project”

Kawa. Nieoficjalny, ale absolutnie kluczowy filar każdej firmy technologicznej. To święty rytuał, paliwo dla kreatywności i cichy bohater tysięcy linijek kodu. W naszej firmie podchodzimy do niej z należytym szacunkiem. Dlatego postanowiliśmy potraktować nasz ekspres jak krytyczny element infrastruktury i podłączyć go do systemu monitoringu – a konkretnie, do naszej strony internetowej.

Oto techniczne, ale i nieco humorystyczne case study o tym, jak ciekawość, inżynierska pomysłowość i kilka inteligentnych narzędzi pozwoliły nam zrealizować projekt, który rozwiązuje jeden z najważniejszych problemów biznesowych: brak danych o spożyciu kawy w czasie rzeczywistym.

Problem: Niedokładne dane i statyczny wskaźnik KPI

Na naszej stronie internetowej od dawna funkcjonował widget z kluczowymi wskaźnikami: zrealizowane projekty, lata doświadczenia, wielkość zespołu. Był tam również wskaźnik “Wypite Kawy”. Niestety, cierpiał on na fundamentalną wadę – był to “twardy” wpis w HTML, aktualizowany sporadycznie i oparty na wysoce niedokładnych estymacjach. Jako firma data-driven, nie mogliśmy dłużej tolerować takiej sytuacji.

Licznik kaw prosto z naszej strony

Cel był jasny: potrzebowaliśmy zautomatyzowanego, niezawodnego źródła danych, które dostarczałoby aktualne informacje o stanie naszej najważniejszej rezerwy strategicznej.

Odkrycie: Ekspres posiada nieudokumentowane (dla nas) API

Audyt naszego głównego “assetu” kawowego przyniósł przełom. Okazało się, że ekspres jest fabrycznie przygotowany do rozszerzenia o moduł komunikacyjny na Bluetooth. Służył on do połączenia ze standardową aplikacją mobilną, która… pokazywała statystyki. BINGO!

Istnienie aplikacji oznaczało istnienie protokołu komunikacyjnego. Zamiast jednak przeprowadzać kosztowny i czasochłonny proces inżynierii wstecznej, wykorzystaliśmy potęgę globalnej współpracy. Szybki research na GitHubie ujawnił repozytorium, w którym inny pasjonat kawy i technologii już rozpracował protokół BLE (Bluetooth Low Energy) i podzielił się nim ze światem. Mieliśmy gotową dokumentację techniczną.

Moduł bluetooth który otworzył nam wrota do licznika kaw na stronie

Architektura rozwiązania: Od sprzętu po chmurę

Mając protokół, potrzebowaliśmy fizycznego mostu, który połączyłby świat ekspresu ze światem internetu. Tu właśnie do gry wkroczył nasz “agent w terenie”.

Most między światami: Mikrokontroler Espressif ESP32

Sercem operacji po stronie sprzętowej stał się Espressif ESP32 – niezwykle popularny i wszechstronny mikrokontroler w świecie IoT (Internet of Things). Był to dla nas idealny wybór z dwóch powodów:

  • Posiada wbudowany moduł Bluetooth Low Energy (BLE), niezbędny do komunikacji z ekspresem.
  • Posiada wbudowany moduł Wi-Fi, pozwalający na wysyłanie danych do dowolnego serwera w internecie.

Mikrokontroler ESP32, dzięki któremu połączyliśmy się z n8n

Na ESP32 wgraliśmy dedykowany kod, którego zadaniem było wykonywanie prostej, ale kluczowej pętli: co kilka minut łączył się z ekspresem, odpytywał go o aktualną liczbę zrobionych kaw, a następnie wysyłał tę wartość za pomocą zapytania HTTP POST prosto do chmury – a konkretnie, do platformy n8n.

Gdy nasz agent sprzętowy zaczął regularnie dostarczać dane, resztą magii zajął się n8n.

Workflow #1: Akwizycja i Archiwizacja Danych w n8n

Ten proces jest odpowiedzialny za odbieranie danych od ESP32 i budowanie naszej historycznej bazy danych.

  1. Wszystko zaczyna się w nodzie Webhook, który nasłuchuje na żądania POST wysyłane przez nasz mikrokontroler.
  2. Gdy dane (liczba kaw) dotrą, node Date & Time dodaje do nich aktualny znacznik czasu.
  3. Następnie node Set (Edit Fields) porządkuje dane – rozdziela datę i czas na osobne pola oraz formatuje wartość licznika kaw. Czyste dane to podstawa!
  4. Na końcu node Google Sheets (Append row) dopisuje przygotowany rekord jako nowy wiersz w naszym arkuszu, tworząc tym samym archiwum.

Workflow #1:
ESP32 -> Webhook -> Google Sheets

Workflow #2: Publiczne API do Wizualizacji Danych w n8n

Drugi proces to proste i wydajne API, które “serwuje” dane na naszą stronę internetową, gdy tylko ktoś ją odwiedzi.

  1. Inny Webhook działa jako publiczny endpoint, na który trafiają zapytania z naszej strony.
  2. Uruchamia on node Google Sheets (Get row(s)), który pobiera całą historię z arkusza.
  3. I tu dzieje się kluczowa rzecz: node Limit filtruje wszystkie wiersze, zostawiając tylko ostatni, najświeższy wpis.
  4. Na koniec node Respond to Webhook odsyła ten jeden, aktualny rekord z powrotem na stronę, gdzie JavaScript umieszcza go w widgecie.

Workflow #2:
Webhook -> Google Sheets -> Response

Wnioski i Kluczowe Lekcje z Projektu

Ten pozornie błahy projekt dostarczył nam kilku bardzo poważnych wniosków, które są uniwersalne dla znacznie większych i bardziej złożonych wdrożeń technologicznych.

  • Małe projekty, wielki wpływ. Inicjatywy typu “pet project” są fantastycznym poligonem doświadczalnym. Pozwalają testować nowe technologie w bezpiecznym środowisku, budują zaangażowanie w zespole i często prowadzą do nieoczekiwanych, wartościowych rozwiązań.
  • Open-source to potęga. Bez publicznie dostępnego repozytorium z rozpracowanym protokołem, ten projekt byłby znacznie trudniejszy i droższy. Korzystanie z pracy społeczności to nie droga na skróty, ale inteligentne i efektywne wykorzystanie zasobów.
  • Automatyzacja to sposób myślenia. Narzędzia takie jak n8n pozwalają błyskawicznie tworzyć prototypy i budować logikę przepływu danych. Zamiast pisać od zera całe zaplecze API, mogliśmy skupić się na unikalnych elementach projektu – komunikacji z urządzeniem i integracji.

Ten projekt, zrodzony z prostego pytania przy filiżance kawy, jest najlepszym dowodem na to, że innowacje nie zawsze muszą wiązać się z wielomilionowymi budżetami. Czasem wystarczy ciekawość, odpowiednie narzędzia i świadomość, że kawa to naprawdę bardzo, bardzo ważna rzecz.

☕ Ciekawi Cię, ile kaw napędza aktualnie nasze projekty?
Sprawdź nasz licznik w czasie rzeczywistym na stronie O nas!

Innowacje zaczynają się od rozmowy

Potrzebujesz pomocy w swojej firmie? Nie zwlekaj! Skontaktuj się już dziś!

Bezpłatna konsultacja