Spectrino: TinyML & IoT berührungslose Lösungen mit Arduino Nano 33 BLE Sense & ESP8266
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino Nano 33 BLE Sense | 1 |
| ESP8266 ESP-01 | 1 |
| Arducam Mini 2MP Plus | 1 |
| MAX7219 Display (4-in-1, 32×8) | 1 |
| Summer | 1 |
| SG90 Micro-Servo (oder MG995/MG959) | 2 |
| Adafruit Micro-Lipo Lader | 1 |
| Adafruit LiPo-Akku | 1 |
| Arduino MKR WiFi 1010 | 1 |
| RGB-LED (gemeinsame Kathode) | 1 |
| Ultraschallsensor HC-SR04 | 1 |
Benötigte Werkzeuge
- 10-teiliges Jumper-Wire-Kit (5 cm)
Apps & Online-Dienste
- Arduino Web Editor
- ThingSpeak API
- Edge Impulse Studio
- TensorFlow
Projektübersicht
Hintergrund
Die Pandemie erzwang Distanzierung. Viele Geschäfte schlossen, Millionen Jobs gingen verloren (insb. Gastronomie, Einzelhandel, Unterhaltung). Offene Läden kämpfen mit Unsicherheit über Personen-Dichte, Maskenpflicht und Berührungsrisiken. Wie kann man sicherstellen, dass ein Geschäft zu jedem Zeitpunkt sicher betretbar ist?

Lösungsansatz
Automatisierung häufig berührter Geräte für berührungslose Interaktion. Sechs Teilprojekte:
- Smart Intercom (TinyML, Arduino 33 BLE Sense): Personenerkennung per Computer Vision → Klingel & LED-Matrix „Person“ ohne Tastendruck.
- Temperatur-Monitoring (IoT, ThingSpeak): Ultraschall erkennt Person → AMG8833 misst Temperatur → Dashboard & Alarm bei Fieber (>38,1 °C).
- Berührungsloser Aufzug (Spracherkennung, TinyML): „up“/„down“ → Servo drückt Taster.
- Maskenerkennung (TinyML + IoT): Erkennung Maske/keine Maske → Dashboard für Trends & Restriktionen.
- Warteschlangen-Management (TinyML + IoT): Personenzählung am Eingang → max. 50 Personen, dann 15 Min Wartezeit → LED-Matrix & Dashboard.
- Personenüberwachung & Selbstdesinfektion (UV-Licht): Zählung pro Gang → Schwellenwerte (25/50/100/150) → LED-Ampel (grün/blau/rot) & UV-Desinfektion ab 150 Personen.
Hardware-Details
Arduino Nano 33 BLE Sense
Leistungsstarker nRF52840 (64 MHz, 1 MB Flash, 256 KB RAM), Bluetooth, NFC, ultra-low-power. Ideal für TinyML (TensorFlow Lite).

ESP8266 ESP-01
Wi-Fi-Modul für Microcontroller, selbstständiger SoC, bis 9 GPIOs.

Arducam Mini 2MP Plus
2 MP SPI-Kamera (OV2640), kleine Bauform, einfache Anbindung per SPI/I2C.

Arduino MKR WiFi 1010
SAMD21 Cortex-M0, u-blox NINA-W10 (WiFi/BLE), ECC508 Crypto-Chip, LiPo-Lader, RGB-LED.

Software-Tools
- Arduino Web Editor: Online-IDE, IoT Cloud, Device Manager, Project Hub.
- Edge Impulse Studio: Datenerfassung, Training, Deployment von ML-Modellen auf Mikrocontroller (TinyML).
- ThingSpeak: IoT-Analytics (Live-Daten, Visualisierung, MATLAB-Integration, MQTT/REST).
Implementierungen im Detail
1. Berührungsloser Aufzug (Spracherkennung)
Sprachbefehle „up“/„down“ steuern Servo, der existierende Taster betätigt. Vorteile gegenüber Ultraschall/Geste: größere Distanz, weniger Fehlauslösungen.
Training in Edge Impulse: 1:30 min Daten (je 2 s pro Befehl), Fenster 300 ms, Keras NN. Accuracy 91,2 % (Training), 75 % (Test). Deployment als Arduino Library.

Code-Snippet (Servo-Steuerung):
if (found_command[0] == "up") {
last_command_time = current_time;
digitalWrite(LEDG, LOW); // LED an
servo_7.write(0); // Taster drücken
delay(100);
digitalWrite(LEDG, HIGH); // LED aus
servo_7.write(180); // zurück
}
if (found_command[0] == "down") {
last_command_time = current_time;
digitalWrite(LEDG, LOW);
servo_7.write(0);
delay(100);
digitalWrite(LEDG, HIGH);
servo_7.write(180);
}

2. Smart Intercom (Gesichtserkennung / Personendetektion)
Vorgefertigtes TensorFlow-Modell (Klassen: unused, person, notperson). Arducam liefert 96×96 Bilder an Nano 33 BLE Sense. Bei person_score > no_person_score → Summer an, LED-Matrix zeigt „Person“. Optional: Servo betätigt bestehenden Klingeltaster für Video-Freischaltung.
Kern-Logik (detection_responder.cpp):
uint8_t person_score = output->data.uint8[kPersonIndex];
uint8_t no_person_score = output->data.uint8[kNotAPersonIndex];
if (person_score > no_person_score) {
digitalWrite(LEDG, LOW);
digitalWrite(LEDR, HIGH);
digitalWrite(5, LOW);
myDisplay.print("Person");
servo_8.write(0); delay(500); servo_8.write(180); // Video-Freischaltung
} else {
digitalWrite(LEDG, HIGH);
digitalWrite(LEDR, LOW);
}

3. Autonomes Temperatur-Screening (IoT)
HC-SR04 erkennt Person (≤20 cm) → MKR WiFi 1010 öffnet Tor (Servo), aktiviert AMG8833, sendet Temperatur an ThingSpeak. Bei >38,1 °C → Tor schließt, Summer alarmiert.
Logik:
void loop() {
ultra();
servo1.write(0); // Tor öffnen
if (distance <= 20) {
float temp = amg.readThermistor();
Send_Data(temp); // ThingSpeak
if (temp > 38.1) {
servo1.write(180); // Tor schließen
digitalWrite(6, HIGH); // Summer
}
}
}

ThingSpeak-Dashboard: Temperatur vs. Zeit, einbettbar für Besucher.
4. Warteschlangen-Management (TinyML + IoT)
Zwei Stationen (Ein-/Ausgang) mit Personendetektion (gleiches TF-Modell). Zählung pro Station → ThingSpeak (Felder Entry/Exit). Bei 50 Personen: Tor schließt, 15 Min Wartezeit auf LED-Matrix. Wartezeit-Berechnung aus Differenz Entry-Exit.
Detection Responder (Entry):
if (person_score > no_person_score) {
digitalWrite(LEDG, LOW); digitalWrite(LEDR, HIGH);
servo_8.write(0); count++;
if (count % 50 == 0) {
myDisplay.print("Waiting 15min"); delay(60000);
}
} else {
digitalWrite(LEDG, HIGH); digitalWrite(LEDR, LOW);
servo_8.write(180);
}

5. Maskenerkennung (TinyML + IoT)
Eigenes Modell (Transfer Learning, MobileNetV2 0.35, 813 Trainingsbilder). Accuracy 92,6 % (Training), 98,15 % (Test). Deployment auf Nano 33 BLE Sense. Logik: Maske erkannt → Tor öffnen, Zähler count++; keine Maske → Tor geschlossen, count2++. Beide Zähler an ThingSpeak (Mask/No-Mask Trends).

6. Personenüberwachung & Selbstdesinfektion (UV)
Pro Gang ein System. Personenzählung → Schwellenwerte pro Warengruppe (Lebensmittel niedriger, Elektronik höher). LED-Ampel: grün (sicher), blau (Achtung), rot (kontaminiert), UV-Licht bei Überschreitung (z. B. 150 Personen) → Zähler Reset.
Schwellen-Beispiel (Kleidung):
if (count 1-50) LED_GREEN;
if (count 51-75) LED_BLUE;
if (count 76-100) LED_RED;
if (count 101-110) UV_ON;
if (count > 111) count = 0;
Daten per ESP8266 an ThingSpeak (4 Felder: Food, Sports, Clothes, Electronics). Floor-Map-Visualisierung möglich.

Code-Repositories (GitHub)
- Aufzug-Automation (Sprache)
- Autonome Intercom (Personendetektion)
- Temperatur-Monitoring (IoT)
- Maskenerkennung
- Warteschlangen-System
- Selbstdesinfektion & Personendetektion
Schaltpläne





Herstellungsprozess
- Raspberry Pi 3 mit DHT11 verbinden und Daten an ThingsIo.ai Cloud hochladen
- Den richtigen Wireless Protocol für IoT Asset Tracking Solutions wählen
- Klassisches Pong-Spiel auf Arduino UNO mit OLED-Display bauen – Schritt-für-Schritt-Tutorial
- Echtzeit-IoT-Herzfrequenzmonitor mit Arduino & MAX30100
- Pixie: DIY NeoPixel-Armbanduhr mit Arduino Pro Mini – Schick & Selbstgebaut
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Pflanzengesundheit mit TinyML bewerten: Praktischer Leitfaden
- Echtzeit-Zelluläre Automaten auf Arduino mit 128x64 OLED-Display
- Azure IoT Schwimmbadsteuerung: Smarte Sensoren & Fernüberwachung
- Open-Wagon-LKW-Operationen mit IoT-Tracking-Lösungen optimieren