🔧 Cel projektu
Stwórz prosty system, który zlicza czas spędzony przy biurku i przypomina o przerwach – idealne rozwiązanie dla osób pracujących zdalnie, studentów lub graczy. Projekt wykorzystuje czujnik obecności i moduł Arduino do zliczania czasu, gdy ktoś siedzi przy stanowisku pracy. Po określonym czasie urządzenie wydaje dźwięk, przypominając o przerwie.
🛠️ Komponenty potrzebne do budowy
- 1× Arduino Uno (lub kompatybilna płytka)
- 1× Czujnik PIR HC-SR501 (wykrywa ruch)
- 1× Buzzer pasywny (do wydawania dźwięku)
- 1× Dioda LED (opcjonalnie do sygnalizacji przerwy)
- 1× Rezystor 220Ω (dla diody LED)
- Przewody połączeniowe (Dupont męsko-męskie)
- Płytka stykowa (breadboard)
- Kabel USB do programowania Arduino
🧰 Schemat połączeń
PIR HC-SR501:
- VCC → 5V (Arduino)
- GND → GND (Arduino)
- OUT → Pin 2 (Arduino)
Buzzer:
- + → Pin 8 (Arduino)
- – → GND
LED (opcjonalnie):
- Anoda (dłuższa nóżka) → Rezystor 220Ω → Pin 9 (Arduino)
- Katoda (krótsza) → GND
💻 Kod programu (Arduino)
const int pirPin = 2;
const int buzzerPin = 8;
const int ledPin = 9;
unsigned long workStartTime = 0;
unsigned long lastMotionTime = 0;
bool isWorking = false;
void setup() {
pinMode(pirPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int motion = digitalRead(pirPin);
if (motion == HIGH) {
lastMotionTime = millis();
if (!isWorking) {
workStartTime = millis();
isWorking = true;
Serial.println("🟢 Rozpoczęto pracę.");
}
}
// Sprawdź, czy brak ruchu przez 10 minut (600 000 ms)
if (isWorking && millis() - lastMotionTime > 600000) {
Serial.println("🔴 Brak aktywności. Reset czasu.");
isWorking = false;
workStartTime = 0;
}
// Przypomnienie o przerwie co 50 minut pracy (3 000 000 ms)
if (isWorking && millis() - workStartTime >= 3000000) {
digitalWrite(ledPin, HIGH);
tone(buzzerPin, 1000, 1000); // 1 kHz przez 1s
Serial.println("⏰ Czas na przerwę!");
delay(5000);
digitalWrite(ledPin, LOW);
isWorking = false;
}
delay(1000); // Odświeżanie co sekundę
}
🔍 Jak to działa?
- Czujnik PIR wykrywa ruch w obszarze biurka. Gdy wykryje obecność, zaczyna zliczać czas pracy.
- Jeśli przez 10 minut nie zostanie wykryty ruch – licznik się resetuje.
- Gdy przy biurku spędzisz 50 minut bez przerwy, system wyda dźwięk i zaświeci diodę jako przypomnienie.
🧠 Możliwe rozszerzenia z pomocą AI
- Dodanie integracji z komputerem – np. przez port USB, aby dane o czasie pracy zapisywać do Excela.
- Użycie czujnika ciśnienia na krześle zamiast PIR – większa precyzja.
- Dodanie OLED-a, który pokazuje czas pracy i pozostały czas do przerwy.
🧪 Podsumowanie
To prosty i praktyczny projekt, który pomoże Ci zadbać o zdrowe nawyki przy pracy biurowej. Nie wymaga lutowania ani zaawansowanej wiedzy – świetny na start przygodę z elektroniką i Arduino.