Licznik czasu pracy z narzędziami – mierz efektywność!


🎯 Cel projektu:

Stworzysz system do pomiaru czasu działania narzędzi, np. szlifierki, lutownicy, odkurzacza czy kompresora. Będzie on:

  • mierzyć czas faktycznej pracy,
  • zliczać liczbę cykli,
  • zapisywać dane lokalnie lub w chmurze.

Dzięki temu możesz sprawdzić swoją efektywność, porównać dni pracy, a nawet zaplanować serwis sprzętu.


🧰 Poziom trudności:

🔧 Początkujący – Średni


⏱️ Czas wykonania:

1,5–2,5 godziny


🛠️ Lista komponentów:

KomponentOpisKoszt
ESP32Mikrokontroler z Wi-Fi20–30 zł
Przekaźnik lub czujnik prądu (np. ACS712)Wykrywa, czy narzędzie działa10–20 zł
Wyświetlacz OLED (I2C)Pokazuje czas pracy10–15 zł
microSD (opcjonalnie)Rejestruje dane lokalnie10 zł
Zasilacz 5V / PowerbankZasilanie ESP3210 zł

📷 Schemat połączeń:

Wariant 1: z przekaźnikiem (ON/OFF)

  • Wejście IN przekaźnika do GPIO 14
  • Wyjście przekaźnika do zasilania narzędzia
  • Zliczasz, kiedy przekaźnik jest aktywny

Wariant 2: z czujnikiem prądu ACS712

  • Czujnik mierzy natężenie w przewodzie zasilającym narzędzie
  • AOUT → GPIO 36

Wyświetlacz OLED

  • SDA → GPIO 21
  • SCL → GPIO 22
  • VCC i GND jak zwykle

⏱️ Krok 1: Mierzenie aktywności narzędzia

Wariant uproszczony – wykrywanie działania:

cppKopiujEdytujint narzedziePin = 14;
bool pracuje = false;
unsigned long start, czas;

void setup() {
  pinMode(narzedziePin, INPUT);
  Serial.begin(115200);
}

void loop() {
  if (digitalRead(narzedziePin) == HIGH && !pracuje) {
    start = millis();
    pracuje = true;
  }

  if (digitalRead(narzedziePin) == LOW && pracuje) {
    czas = millis() - start;
    Serial.print("Czas pracy: ");
    Serial.println(czas / 1000);
    pracuje = false;
  }

  delay(200);
}

🧠 Krok 2: Zliczanie sesji + AI (opcjonalnie)

Dodaj:

  • licznik cykli dziennych,
  • klasyfikację AI: „krótkie użycie”, „ciągła praca”, „nietypowe zachowanie”.

Trenuj model np. w Edge Impulse na podstawie długości sesji.


📟 Krok 3: Wyświetlanie na OLED

cppKopiujEdytujdisplay.clearDisplay();
display.setTextSize(1);
display.setCursor(0,0);
display.print("Czas pracy:");
display.setCursor(0, 20);
display.print(czas / 1000);
display.display();

💾 Krok 4: Zapisywanie na kartę SD / chmurę

Zapis lokalny:

cppKopiujEdytujFile log = SD_MMC.open("/czas_pracy.csv", FILE_APPEND);
log.println(String(millis()) + "," + String(czas / 1000));
log.close();

Wysłanie online (np. do Google Sheets przez IFTTT):

cppKopiujEdytujhttp.begin("https://maker.ifttt.com/trigger/czas_pracy/with/key/TWÓJ_KLUCZ");
http.GET();

🔄 Krok 5: Reset dzienny i statystyki

  • Raz dziennie licznik się zeruje (np. przez zegar RTC lub synchronizację NTP)
  • Możesz zbudować dashboard z wykresami

Efekt końcowy:

  • ESP32 monitoruje, ile czasu używasz narzędzi
  • Możesz śledzić efektywność dnia
  • Zobaczysz czarno na białym, kiedy naprawdę działasz
  • Można dodać AI do klasyfikacji pracy i awarii

📘 To genialny projekt dla tych, którzy chcą pracować mądrzej, nie więcej. Świetnie sprawdza się w warsztacie, drukarni, przy CNC, a nawet przy hobbystycznych projektach.

Zostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Przewijanie do góry