Zusammenfassung - Appligamer/alarmanlage GitHub Wiki
Projektzusammenfassung: Smarte Alarmanlage mit Arduino und ESP32 Idee und Zielsetzung Ziel dieses Projekts war es, eine intelligente Alarmanlage zu entwickeln, die zuverlässig auf Annäherung reagiert, sowohl lokal über Hardware-Bedienelemente als auch online über ein Webinterface steuerbar ist und modular aufgebaut bleibt. Dabei sollte die Verbindung klassischer Mikrocontrollertechnik (Arduino) mit modernen IoT-Komponenten (ESP32) gelingen. Die Anlage sollte den Schulalltag technisch, organisatorisch und gestalterisch widerspiegeln.
Funktionale Anforderungen:
Messung der Entfernung mittels Ultraschallsensor
Vergleich der gemessenen Entfernung mit einem einstellbaren Schwellwert (AE, Alarmentfernung)
Lokale Steuerung über Poti (AE) und Knopf (Zustandswechsel)
RGB-LED zur Anzeige des aktuellen Status (aus, entschärft, scharf, Alarm)
Webmodus zur Fernsteuerung der AE-Einstellung und des Zustands
Echtzeitanzeige der aktuellen Entfernung, beider AE-Werte und des Status auf einem LCD
Datenübertragung zwischen Arduino und ESP32 über die serielle Schnittstelle
Nutzung eines Supabase-Backends für Web-Kommunikation
Technische Umsetzung Hardwarekomponenten Sensor-Einheit (Arduino Uno oder Nano):
HC-SR04 Ultraschallsensor zur Messung der Distanz
Übertragung der Messwerte per Serial.print() an das Terminal-Modul
Terminal-Einheit (ESP32):
LCD 20x4 (I²C) für Statusanzeige
Potentiometer zur lokalen AE-Einstellung
Taster zur Steuerung des Anlagenzustands (an Pin 12)
RGB-LED zur farblichen Statusanzeige
WLAN-Verbindung zur Webseite
Logik zur Unterscheidung zwischen lokalem und Webmodus anhand des Potentiometerwerts
Softwarestruktur
- Zustandsmodell (State Machine): Die Anlage kennt vier Zustände:
Aus: Alle Anzeigen und LEDs sind deaktiviert, kein Alarm aktiv
Entschärft: WLAN aktiv, keine Überwachung, RGB-LED leuchtet blau
Scharf: Anlage überwacht den Abstand, RGB-LED grün
Alarm: Auslösung bei unterschrittener AE, RGB blinkt rot, LCD blinkt „Alarm“, Webseite zeigt roten Banner
- Steuerung:
Knopf: Schaltet bei jedem Druck zum nächsten Status (Aus → Entschärft → Scharf → Aus). Ein Langdruck aktiviert die WLAN-Verbindung.
Potentiometer: Gibt im lokalen Modus den AE-Wert vor. Ab einem Wert von ≥ 500 wird der Webmodus aktiviert, lokale Steuerung deaktiviert.
- LCD-Anzeige: Das Display zeigt:
Aktuell gemessene Entfernung
AE-Wert lokal (Poti)
AE-Wert Web (von Supabase)
Aktueller Status der Anlage
- Webanbindung über ESP32:
Verbindung zur Webseite jahresarbeit-jacob.netlify.app
Anzeige des Anlagenstatus
Farbiger Alarmbanner bei aktivem Alarm
Zwei Buttons zur AE-Erhöhung/-Verringerung
Supabase als Datenbank für Zustände, AE-Wert und Alarmstatus
Datenkommunikation Zwischen Sensor und Terminal:
Übertragung der gemessenen Entfernung per serieller Schnittstelle
Zwischen ESP32 und Webinterface:
ESP32 pollt regelmäßig Supabase
Daten (Status, AE, Alarm) werden synchronisiert
Webseite aktualisiert Darstellung entsprechend
Statuswechsel auf Webseite verändert ebenfalls die Supabase-Einträge
Projektverlauf Phase 1: Herbst 2024 bis Mai 2025 – Lokale Anlage mit Arduino
Aufbau des HC-SR04-Sensors mit Arduino
Implementierung der Poti-Logik zur AE-Festlegung
Zustandsschaltung mit RGB-LED und Knopf
LCD-Ausgabe zur Visualisierung
Erste Hardwaretests und Optimierungen
Phase 2: Juni bis Juli 2025 – Erweiterung um ESP32 und Webanbindung
Serielle Verbindung zwischen Arduino (Sensor) und ESP32 (Terminal)
LCD zeigt vollständige Informationen
Knopf reagiert zuverlässig, auch mit Langdruck für WLAN
Integration von Supabase und Webinterface
Vollständige Fernsteuerung im Webmodus bei ≥ 500 Potiwert
Echtzeit-Anzeige und Fernauslösung auf der Webseite
Herausforderungen Zuverlässige Entprellung des Knopfs: Nur durch genaues Timing konnte verhindert werden, dass Statuswechsel übersprungen wurden.
Synchronisierung Web vs. Lokal: Es war entscheidend, dass bei Webmodus keine lokalen Änderungen durch Poti mehr möglich sind, um Konflikte zu vermeiden.
Serielle Kommunikation: Zwischen den Mikrocontrollern musste ein stabiles und verständliches Protokoll entwickelt werden.
Datenkonsistenz mit Supabase: Der Poll- und Push-Mechanismus musste robust umgesetzt werden, um Fehler bei der Alarmdarstellung zu vermeiden.