Professional Fingerprint Attendance System with Battery Protection
A robust, feature-complete biometric attendance system built on ESP32 with fingerprint authentication, WiFi connectivity, and intelligent power management.
- Universal Fingerprint Support: Compatible with AS608 & R307 fingerprint sensors
- Smart Battery Management: Real-time voltage monitoring with calibrated protection
- Dual Power Mode: USB-powered operation or battery-powered portable use
- Offline Capability: Queue system for network failures with automatic sync
- OLED Status Display: Real-time WiFi, battery, and queue information
- Admin Interface: Serial command system for enrollment and management
- Heartbeat Monitoring: Regular device status reporting to server
- Factory Reset Protection: Safe configuration management
A.R.I.S.E-Firmware/
├── sketch.ino # Main firmware file
├── UniversalFingerprint.h # Sensor abstraction layer
├── UniversalFingerprint.cpp # Sensor implementation
└── README.md # This documentation
- ESP32 Development Board (WiFi/Bluetooth)
- Fingerprint Sensor (AS608 or R307 recommended)
- OLED Display (SSD1306, 128x64, I2C)
- Li-Po Battery (3.7V, 1000mAh+ recommended)
- Voltage Divider Circuit (2x 10kΩ resistors)
- USB Power Supply (for USB-powered operation)
| ESP32 Pin | Component | Connection |
|---|---|---|
| GPIO 21 (SDA) | OLED Display | SDA |
| GPIO 22 (SCL) | OLED Display | SCL |
| GPIO 16 (RX2) | Fingerprint Sensor | TX |
| GPIO 17 (TX2) | Fingerprint Sensor | RX |
| GPIO 35 | Battery Monitor | Voltage Divider Output |
| 3.3V | All Components | VCC |
| GND | All Components | GND |
- Install Arduino IDE with ESP32 board support
- Install required libraries:
- Adafruit_GFX
- Adafruit_SSD1306
- Adafruit_Fingerprint
- ArduinoJson
- Preferences
- Open
sketch.inoin Arduino IDE - Select your ESP32 board
- Upload the firmware
Connect via Serial Monitor (115200 baud) and configure:
# Set WiFi credentials
wifi YourNetworkName YourPassword
# Set server address
server http://192.168.1.100:5000
# Verify settings
config- USB Detection: Automatic mode switching
- Battery Calibration: Advanced voltage curve mapping
- Critical Protection: Safe shutdown at 3.3V
- Percentage Calculation: Precise 1% increments with hysteresis
- Persistent Storage: WiFi credentials saved in NVS
- Smart Reconnection: Graceful offline operation
- Heartbeat System: Regular server communication
- Queue Management: Offline data retention with auto-sync
- Universal Driver: AS608/R307 compatibility
- Slot Management: Occupancy checking and protection
- Roll ID Mapping: 2 fingerprints per student
- Admin Tools: Enrollment, deletion, and testing
wifi SchoolWiFi MyPassword123 # Set WiFi credentials
server http://192.168.1.100:5000 # Set server address
config # Show current settings
reset-config # Factory resetenroll 10 # Enroll fingerprint in slot 10
delete 10 # Delete fingerprint from slot 10
delete-all # Delete ALL fingerprints
match # Test fingerprint matching
sensor-info # Show sensor details
test-sensor # Run diagnosticshelp # Show all commands
config # Current configuration| Voltage Range | Percentage | Status |
|---|---|---|
| 4.18V+ | 100% | Fully Charged |
| 3.70V-4.00V | 30-85% | Normal Operation |
| 3.40V-3.70V | 1-30% | Low Battery |
| 3.30V | 0% | Critical Shutdown |
Note: USB power bypasses battery protection for continuous operation.
-
Sensor Not Detected
- Check wiring (RX/TX crossover)
- Verify 57600 baud rate
- Run
test-sensorcommand
-
WiFi Connection Failed
- Verify credentials with
config - Check network availability
- Use
reset-configto clear settings
- Verify credentials with
-
Battery Percentage Inaccurate
- Run calibration:
collectCalibrationData() - Adjust
VOLTAGE_CORRECTION_OFFSET - Ensure proper voltage divider values
- Run calibration:
-
Display Issues
- Verify I2C address (0x3C)
- Check SDA/SCL connections
- Ensure proper power (3.3V)
# Enable verbose output in code:
# Uncomment Serial.print lines in:
# - readBatteryVoltage()
# - updateBatteryPercentage()- Scan Time: < 2 seconds (fingerprint to server)
- Battery Life: 24+ hours (standby with periodic scans)
- Queue Capacity: 50 offline records
- Template Storage: 162 (AS608) or 1000 (R307)
- Update Rate: Status bar updates every 2 seconds
- Slot Protection: Prevents accidental overwrites
- Factory Reset: Requires explicit confirmation
- Battery Safety: Hardware-level protection
- Network Security: Encrypted WiFi connections
- Fork the repository
- Create a feature branch
- Test thoroughly with hardware
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Adafruit Industries for fingerprint library
- ESP32 Arduino community
- Contributors to ArduinoJson and Adafruit_GFX libraries
Repository Keywords: fingerprint-attendance, esp32, biometric, iot, arduino, wifi-attendance, battery-powered, offline-sync, oled-display, smart-scanner, educational-technology, portable-biometrics
Tags: #FingerprintScanner, #ESP32, #IoT, #AttendanceSystem, #Biometric, #Arduino, #BatteryManagement, #OfflineFirst, #EducationalTech