Skip to content
Projekte
Aktuelles IoT- und Edge-Projekt2026

TinyML-Vibrationsanomalie-Erkennung auf Arduino Nano 33 BLE Sense Rev2

Deployt einen leichtgewichtigen Softmax-Klassifikator auf einem Arduino Nano 33 BLE Sense Rev2, um NORMAL-, ANOMALY- und ALERT-Vibrationszustaende aus Onboard-IMU-Daten in Echtzeit zu erkennen.

TinyMLEmbeddedArduinoSignal ProcessingAIoT

Ueberblick

Dieses TinyML-Projekt zeigt die komplette Node-Device-Pipeline: synthetische IMU-Datengenerierung, Extraktion von 20 Vibrationsfeatures, Offline-Training in Python, C++-Header-Export und kontinuierliche Inferenz auf dem Arduino Nano 33 BLE Sense Rev2.

Problem

Kleine Luefter und Motoren koennen vor einem Ausfall auffaellige Vibrationen entwickeln. Ein Node-Device soll dies lokal, speicherschonend, ohne Cloud-Abhaengigkeit und mit klarer Live-Ausgabe erkennen.

Loesung

Ich habe balancierte synthetische Vibrationsfenster erzeugt, 20 statistische Features aus 2-Sekunden-IMU-Fenstern extrahiert, ein zweiklassiges Softmax-Modell trainiert, Mittelwerte, Standardabweichungen, Gewichte und Biases nach model_parameters.h exportiert und denselben Verarbeitungspfad in Arduino-C++ umgesetzt.

Architektur

Node-Device

Der Arduino Nano 33 BLE Sense Rev2 liest Beschleunigungsdaten mit 100 Hz, speichert 2-Sekunden-Rolling-Windows, extrahiert Features, fuehrt Inferenz aus, druckt Serial-Monitor-Evidenz und schaltet bei ALERT die LED.

Training-Umgebung

Python generiert den Datensatz, trainiert das Modell offline, validiert die Performance und exportiert die Modellparameter in einen kleinen C++-Header.

Ausgaben

Waehrend der Inferenz ist keine Cloud erforderlich; der Laptop dient nur zum Programmieren, Kompilieren und Anzeigen des Serial Monitors in der Demo.

Sicherheit

Das Geraet verarbeitet Bewegungsdaten lokal und uebertraegt keine Sensordaten. Das Design bleibt in der Demo eigenstaendig und vermeidet Credentials, Netzabhaengigkeit und externe Services.

Zuverlaessigkeit

Der Sketch nutzt ueberlappende Fenster, normalisierte Features, eine Anomalie-Schwelle von 0.60 und eine 3-Fenster-ALERT-Persistenz, damit ein einzelner Stoerimpuls nicht sofort einen finalen Alarm ausloest.

Wesentliche Merkmale

  • 100-Hz-IMU-Sampling mit 2-Sekunden-Fenstern und 50% Ueberlappung
  • 20 leichtgewichtige Vibrationsfeatures aus X/Y/Z-Achsen und kombinierter Magnitude
  • Zweiklassiger Softmax-Klassifikator direkt als C++ exportiert, ohne grosse Inferenz-Runtime
  • Serial-Monitor-Ausgabe fuer Zeit, Zustand, Wahrscheinlichkeiten, Persistenzzaehler und Latenz
  • Onboard-LED-Alarm nach 3 aufeinanderfolgenden Anomaliefenstern
  • Kompakter Modell-Footprint fuer Microcontroller-Deployment

Ergebnisse und Wirkung

  • 98.61% Offline-Testgenauigkeit auf dem synthetischen balancierten Datensatz erreicht
  • Etwa 1 ms Inferenzlatenz im Arduino Serial Monitor gemessen
  • Kompiliert mit 12% Flash- und 19% RAM-Nutzung auf dem Nano 33 BLE Sense Rev2
  • Live-Demo zeigte stabiles Board als NORMAL, Tippen/Schuetteln als ANOMALY, anhaltende Bewegung als ALERT und Rueckkehr zu NORMAL

Tech-Stack

Arduino Nano 33 BLE Sense Rev2C++PythonTinyMLIMUSoftmax

Artefakte

Verwandtes Projekt

Die angrenzende Fallstudie zeigt, wie dieses Projekt in die groessere Portfolio-Story passt.

EdgeGuardian: Edge-AI-Sicherheitszone fuer Maschinenueberwachung

Entwickelt einen Raspberry-Pi-5- und Hailo-8L-Edge-AI-Prototyp, der kamerabasierte Personenerkennung mit Hokuyo-LiDAR-Distanzmessung kombiniert und lokal SAFE-, WARNING- und ALERT-Zustaende entscheidet.