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

  1. 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

  1. 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.

  1. LCD-Anzeige: Das Display zeigt:

Aktuell gemessene Entfernung

AE-Wert lokal (Poti)

AE-Wert Web (von Supabase)

Aktueller Status der Anlage

  1. 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.