Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Onderdelen en Benodigdheden

Arduino Nano 33 BLE Sense × 1
Espressif ESP8266 ESP-01 × 1
Arducam Mini 2MP Plus × 1
MAX7219 Display (4-in-1, 32x8 aanbevolen) × 1
Buzzer × 1
SG90 Micro-servo Motor (MG995 of MG959) × 2
Adafruit Micro-Lipo Lader × 1
Adafruit Lithium-Ion Polymer Batterij × 1
Arduino MKR WiFi 1010 × 1
RGB Diffused Common Cathode LED × 1
Ultrasoon Sensor HC-SR04 × 1

Nodige Tools

  • 10-stuks Draadjes Set, 5 cm

Apps & Online Services

  • Arduino Web Editor
  • ThingSpeak API
  • Edge Impulse Studio
  • TensorFlow

Over dit Project

Overzicht

De pandemie introduceerde een beperking voor sociale interactie: afstand. Wereldwijd gingen winkels dicht door drastisch gedaalde bezoekersaantallen, wat leidde tot massale ontslagen van winkelpersoneel en economische problemen voor ondernemers.

Laaginkomensbanen (onder $40.000/jaar) waren zwaar getroffen: horeca, detailhandel en entertainment good voor ~4 miljoen verloren banen in de VS per juli 2020. Wereldwijd schat men 103.000+ banen verloren in deze sectoren.

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Complicatie

Er is onzekerheid over bevolkingsdichtheid in winkels. Mondkapjes en contactloos zijn verplicht, maar worden geschonden. Personeel dat niet thuis kan werken, loopt risico. Hoe garanderen we dat een winkel op elk moment veilig is om te betreden?

Een experiment toonde aan dat virussen via contact kunnen verspreiden. Daarom besloot ik de meest gebruikte apparaten in huizen en gebouwen te automatiseren voor handsvrije bediening.

De volgende oplossingen zijn ontwikkeld:

  1. Slimme Intercom met TinyML op Arduino 33 BLE Sense: Computer Vision en TinyML detecteren een persoon voor de deur en laten de bel rinkelen zonder contact.
  2. Temperatuurbewaking met IoT & Alertsysteem: Meet temperatuur bij ingang, toont trends op ThingSpeak-dashboard, alarmeert bij afwijkende temperatuur.
  3. Handsvrije Lift met Spraakherkenning (TinyML): "Omhoog" of "omlaag" commando's bedienen de liftknoppen via servo's.
  4. Mondkapje Detectie (TinyML & IoT): Detecteert of iemand een mondkapje draagt, data naar dashboard voor monitoring en restricties.
  5. Slimme Wachtrijbewaking in Supermarkt/Winkelcentrum: Laat 50 personen tegelijk toe, wacht 15 min, daarna volgende groep. Computer Vision + TinyML + IoT dashboard.
  6. Persoonsmonitoring in Gang & Zelf-sanitisering met UV: Detecteert personen in een gang; bij overschrijding drempelwaarde activeert UV-sanitisering. Data naar dashboard.

Opzet & Vereisten

Hardware

1) Arduino Nano 33 BLE Sense

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Evolutie van de klassieke Nano met nRF52840 processor (32-bit ARM Cortex-M4, 64 MHz), 1MB flash (32x Uno), 256KB RAM (128x Uno), Bluetooth via NFC, ultra-laag verbruik. Belangrijkste feature: Edge AI / TinyML met TensorFlow Lite.

2) ESP8266 ESP-01

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

WiFi-module voor microcontrollers. Self-contained SOC, tot 9 GPIO's. Kan als microcontroller functioneren of WiFi-toegang geven aan een Arduino.

3) Arducam Mini 2MP Plus

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

2MP SPI-camera met OV2640 sensor. Compact, eenvoudige interface, open-source library. Werkt op Arduino, Raspberry Pi, etc. Ondersteunt meerdere camera's op één controller.

4) Arduino MKR WiFi 1010

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Ideaal voor IoT en pico-networks. SAMD21 Cortex-M0+, u-blox NINA-W10 (WiFi/BLE 2.4GHz), Microchip ECC508 crypto-chip, batterijlader, RGB LED.

Software Tools

1) Arduino Web Editor – Online IDE, IoT Cloud, Project Hub, Device Manager.

2) Edge Impulse Studio – Data verzamelen, ML modellen trainen in de cloud, deployen naar Arduino. Ondersteunt accelerometer, microfoon, en custom sensors.

3) ThingSpeak – IoT analytics: data aggregatie, visualisatie, MATLAB-analyse. REST API / MQTT. Integraties met The Things Network, LoRaWAN, 4G/3G.

Implementaties

Project 1: Handsvrije Lift met Spraakherkenning (TinyML)

Liftknoppen zijn besmet. Oplossing: stemcommando's "omhoog"/"omlaag" zonder IoT/WiFi. Servo duwt de fysieke knoppen in – geen aanpassing aan bestaande systemen nodig.

Ultrasonische sensoren: te gevoelig, valse triggers. Gebaar-sensoren: te korte afstand, contactrisico. Spraak: accurater, grotere afstand.

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Model Training in Edge Impulse:

  • Data: 1:30 min totaal, 2 sec per commando ("omhoog"/"omlaag")
  • Impulse: Venster 300ms, Keras Neural Network voor microfoon/accelerometer
  • DSP: Cepstrale coëfficiënten
  • Neural Network: Input → Reshape → 1D Conv Pool (30 neur, 5 kernel) → 1D Conv Pool (10 neur, 5 kernel) → Flatten
  • Resultaat: 91,2% accuracy, 0.29 loss, 100 epochs. Test accuracy 75% (24 sec data)
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Model gedeployed als Arduino Library op Nano 33 BLE Sense. Ingebouwde microfoon en LED gebruikt. Model ~24-28KB van 256KB flash.

Logica (uit main.ino):

if (found_command[0] == "omhoog") {
  last_command_time = current_time;
  digitalWrite(LEDG, LOW);  // Groen LED aan
  servo_7.write(0);         // Servo drukt knop
  delay(100);
  digitalWrite(LEDG, HIGH); // LED uit
  servo_7.write(180);       // Servo terug
}
if (found_command[0] == "omlaag") {
  last_command_time = current_time;
  digitalWrite(LEDG, LOW);
  servo_7.write(0);
  delay(100);
  digitalWrite(LEDG, HIGH);
  servo_7.write(180);
}
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Project 2: Slimme Intercom met Gezichtsherkenning (TinyML)

CDC: Corona kan tot 3 dagen op plastic/metaal, 24u op karton overleven. Intercoms vereisen knopindruk – risico op besmetting. Oplossing: contactloze intercom met persoonsdetectie op Arduino 33 BLE Sense + TinyML/TensorFlow Lite.

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Model: Pre-trained TensorFlow Person Detection (klassen: "unused", "persoon", "geen_persoon"). Arducam Mini 2MP Plus levert beelddata (96x96) aan Arduino voor inferentie. Netwerk: Depthwise Conv2D → Conv2D → Average Pool2D → Flatten.

Kernlogica (Arduino_detection_responder.cpp):

uint8_t person_score = output->data.uint8[kPersonIndex];
uint8_t no_person_score = output->data.uint8[kNotAPersonIndex];
RespondToDetection(error_reporter, person_score, no_person_score);

// In RespondToDetection:
if (person_score > no_person_score) {
  digitalWrite(LEDG, LOW);   // Buzzer aan
  digitalWrite(LEDR, HIGH);  // LED matrix toont "Persoon"
  digitalWrite(5, LOW);
  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.print("Persoon");
  delay(100);
  // Optioneel: servo activeert bestaande intercom videofunctie
  servo_8.write(0); delay(500); servo_8.write(180);
}
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Project 3: Autonome IoT Temperatuurbewaking

Handmatige temperatuurmeting: nabijheidsrisico, geen datalogging. Oplossing: Arduino MKR WiFi 1010 + Adafruit AMG8833 thermische camera + HC-SR04 ultrasoon. Persoon gedetecteerd binnen 20cm → poort open (servo) → temperatuurmeting → data naar ThingSpeak realtime. Bij >38,1°C: poort dicht, buzzer alarm.

Logica:

if (distance <= 20) {
  servo1.write(0); // poort open
  temp = amg.readThermistor();
  Send_Data_To_ThingSpeak(temp);
  if (temp > 38.1) {
    servo1.write(180); // poort dicht
    digitalWrite(6, HIGH); // buzzer alarm
  }
}
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

ThingSpeak Dashboard: Temperatuur vs Tijd grafiek, embeddable in publieke dashboard. Bezoekers kunnen veiligheid checken voordat ze komen.

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Project 4: TinyML & IoT Wachtrijbeheer

Handmatig wachtrijbeheer: arbeidsintensief, geen realtime data voor bezoekers. Oplossing: Arducam + Arduino 33 BLE Sense + persoonsdetectie op in-/uitgang. Telt personen, stuurt naar ThingSpeak via ESP8266. Bij 50 personen: poort dicht, 15 min wachttijd op LED matrix. Dashboard toont binnen/buiten telling en wachttijd.

Wachttijd algoritme:


x = personen binnen; y = personen buiten
x - y = personen in winkel
Z = max capaciteit (50)
count = Z - (x - y)
if count < 0: wachttijd = count * (-gemiddelde_tijd_per_persoon)
else: wachttijd = 0
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Project 5: Mondkapje Detectie (Toevoeging aan Persoonsdetectie)

Maskers beschermen tegen druppelinfecties (griep, hoest, longontsteking). Asymptomatische dragers kunnen virus verspreiden. Model detecteert "masker" vs "geen_masker" en logt trends op ThingSpeak.

Training in Edge Impulse:

  • Dataset: 3500 afbeeldingen → gefilterd naar 813 training / 487 test
  • Input: 96x96 RGB, Transfer Learning (MobileNetV2 0.35)
  • 30 epochs, learning rate 0.0005
  • Resultaat: 92,6% accuracy, loss 0.19; test accuracy 98,15%

Logica (Arduino_detection_responder.cpp):


if (mask_score > no_mask_score) {
  digitalWrite(LEDG, LOW); digitalWrite(LEDR, HIGH);
  servo_8.write(0); // poort open
  count_mask++;
} else {
  digitalWrite(LEDG, HIGH); digitalWrite(LEDR, LOW);
  servo_8.write(180); // poort dicht
  count_no_mask++;
}
// Data naar ThingSpeak: count_mask & count_no_mask
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Project 6: Persoonsdetectie in Gang & Zelf-sanitisering met UV

Corona overlevt dagen op plastic/staal, 24u op karton. UV-C licht inactiveert virussen (15 min UVC voor SARS). Handmatige sanitising: traag, geen data. Oplossing: Autonome detectie + UV per gang/afdeling.

Drempelwaarden per afdeling:

  • Kleding: 1-25 groen (veilig), 26-50 blauw (let op), 51-75 rood (besmet), 76-90 UV sanitising, >91 reset
  • Elektronica: 1-75 groen, 76-180 blauw, 181-225 rood, 226-240 UV, >241 reset
  • Voedsel: 1-25 groen, 26-50 blauw, 51-75 rood, 76-90 UV, >91 reset

Logica (detection_responder.cpp):


if (person_score > no_person_score) { count++; }

if (constrain(count, 1, 25))   digitalWrite(LED_GREEN, LOW);
if (constrain(count, 26, 50))  digitalWrite(LED_BLUE, LOW);
if (constrain(count, 51, 75))  digitalWrite(LED_RED, LOW);
if (constrain(count, 76, 90))  digitalWrite(UV_LIGHT, LOW);
if (count > 91) count = 0; // reset na sanitising

Data naar ThingSpeak per afdeling (4 velden: voedsel, sport, kleding, electronica). Dashboard toont dichtheidstrends en sanitiseringsmomenten (plots dalen naar 0).

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Go-to-Market & Praktische Toepasbaarheid

  • Realtime bewaking bezettingsgraad & wachttijden
  • Datagedreven veiligheidsstrategieën & compliance
  • Arbeidsbesparing & automatisering
  • Publiek dashboard voor bezoekersvertrouwen → meer bezoek/omzet
  • Schaalbaar, betaalbaar vs. autonome UV-robots
  • Bestaande CCTV-beelden bruikbaar voor persoonsdetectie
  • Data beschikbaar voor overheid & consumenten

Project Video

Dank voor het bekijken van mijn project!

Code Repositories (GitHub)

  • Lift Automatisering (Spraak): GitHub
  • Gang Sanitisering + Persoonsdetectie: GitHub
  • Temperatuur Monitoring IoT: GitHub
  • Mondkapje Detectie: GitHub
  • Autonome Intercom (TinyML): GitHub
  • Wachtrij Systeem (Ingang/Uitgang): GitHub

Schema's

Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266
Spectrino: TinyML & IoT Handsvrije Oplossingen met Arduino Nano & ESP8266

Productieproces

  1. Raspberry Pi 3 verbinden met DHT11-sensor en data uploaden naar ThingsIo.ai-cloud
  2. Bouw een Klassiek Pong-spel op Arduino UNO met OLED-display – Stap-voor-stap Tutorial
  3. Real-time IoT hartslagmonitor met Arduino en MAX30100
  4. Pixie: Een Arduino-gebaseerde NeoPixel-polshorloge – Modern, DIY LED-tijdstuk
  5. Interactief Nextion HMI-weerstation met Arduino Mega en sensoren
  6. Plantengezondheid Beoordelen met TinyML: Een Praktische Gids
  7. DIY Arduino Smartwatch: Bouw Je Eigen Apple Watch-stijl Tijdwijzer
  8. Bouw Real-Time Cellulaire Automaten op Arduino met 128x64 OLED Display
  9. Azure IoT Zwembadbeheersysteem: Slimme Sensoren & Remote Monitoring
  10. De Juiste Wireless Protocol Kiezen Voor IoT Asset Tracking Oplossingen
  11. Open Wagon Truck Operaties Verbeteren met IoT Tracking Oplossingen