Smartes Check-In-System für Hackerspaces – Arduino Mega, RFID (RC522) & Node.js
Komponenten & Zubehör
| Bauteil | Menge |
|---|---|
| Arduino Mega 2560 | 1 |
| RFID-Modul RC522 (13,56 MHz, SPI) | 1 |
| LED (Grün & Rot) | je 1 |
| Taster (Check-In / Check-Out) | 2 |
| Widerstände 220 Ω (für LEDs), 10 kΩ (Pull-up Taster) | 4 |
Problembeschreibung
Im Taipei Hackerspace war nie klar, ob gerade jemand vor Ort ist (Öffnung nur bei Anwesenheit eines Keyholders). Mitglieder fragten ständig nach. Lösung: Ein elektronisches Check-In/Out-System mit RFID-Karten (EasyCard, in Taiwan allgegenwärtig), das den Status live auf der Website anzeigt.
Architektur
- Hardware: Arduino Mega + RC522 (SPI: SS=53, SCK=52, MOSI=51, MISO=50, RST=beliebig, 3,3 V). Zwei Taster (Check-In/Out) + LEDs (Grün/Rot) für Feedback.
- Firmware: Liest Karten-UID, wartet auf Tastendruck (10 s Timeout), sendet
UID,INoderUID,OUTper Serial (9600 Baud). - Backend (Node.js):
serialportliest Events, speichert in SQLite3 (Tabellecheckins). REST-API (/api/present) + Socket.io Push-Updates für Echtzeit-Webseite. - Frontend: Einbettbares Widget zeigt „Aktuell anwesend: Alice, Bob und 2 weitere“. Integration in SpaceAPI (Standard für Hackerspace-Status) → nutzbar mit Apps wie „My Hackerspaces“.
Schaltplan
Software-Repository
Gesamter Code (Arduino Sketch, Node.js Server, Frontend-Snippet): GitHub – thcheckin
Node.js Server (Kernlogik)
// serialport Event-Handler
parser.on('data', line => {
const [uid, action] = line.trim().split(',');
if (action === 'IN') db.run('INSERT INTO checkins(uid, time) VALUES(?, datetime("now"))', uid);
else if (action === 'OUT') db.run('DELETE FROM checkins WHERE uid=?', uid);
io.emit('update', getPresentUsers()); // Socket.io Broadcast
});
// REST Endpoint
app.get('/api/present', (req, res) => res.json(getPresentUsers()));
SpaceAPI Integration
Der Endpunkt /spaceapi liefert JSON nach SpaceAPI-Schema (open/closed, letzter Wechsel, Personenanzahl). Damit ist der Space in Verzeichnissen und Apps sichtbar.
Live-Demo
Website: taipeihack.org/#open – zeigt aktuellen Status.
Fazit
Ein praktisches, offenes System, das ein reales Organisationsproblem löst. Die Kombination aus billiger RFID-Hardware, Node.js und SpaceAPI macht es leicht nachbaubar für andere Hackerspaces. Verbesserungspotenzial: Türöffner-Integration, Mehrfach-Standorte, Karten-Enrollment per Web-UI.
Herstellungsprozess
- Elektronische Tinte (E-Ink): Funktionsweise, Geschichte und zukünftige Anwendungen
- Sicheres RFID-Türschloss mit Arduino & RC522 (MIFARE 13,56 MHz)
- Bluetooth-gesteuerter Arduino-Spybot bauen – Überwachungsroboter mit IP-Kamera
- FlickMote: Gestensteuerung per Ultraschall & IR für Smart Home (Arduino 101)
- DIY Arduino TV-B-Gone: Universelle TV-Aus-Fernbedienung
- Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Optimierte Stromversorgungslösungen für Arduino-Projekte
- Elektronisches Chamäleon: Arduino Nano RGB LED & Farbsensor Projekt
- Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse