Inhaltsverzeichnis:
- Schritt 1: Einrichten und Kalibrieren des MPU6050
- Schritt 3: Integration der Sensoren in den Arduino
- Schritt 4: Daten in die Cloud senden
- Schritt 5: Verwenden von 2 Geräten gleichzeitig
- Schritt 6: Verbesserungen, Hinweise und zukünftige Pläne
Video: IDC2018IOT Beinlauf-Tracker - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Auf diese Idee kamen wir im Rahmen des Kurses "Internet der Dinge" bei IDC Herzliya.
Ziel des Projekts ist es, körperliche Aktivitäten wie Laufen oder Gehen mithilfe von NodeMCU, einigen Sensoren und einem Server zu verbessern. Das Ergebnis dieses Projekts ist ein sehr nützliches IOT-Gerät, das in Zukunft zu einem echten Produktionsprodukt werden kann, das überall verwendet wird! Bitte teilen Sie uns Ihre Meinung mit:)
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
* NodeMCU-Gerät.
* 1 Piezoelektrischer Sensor.
* MPU6050-Sensor.
* Eine große Matrix.
* Elastisches Seil.
* Firebase-Konto.
Optional:
* Mehrere piezoelektrische Sensoren
* Multiplexer
Schritt 1: Einrichten und Kalibrieren des MPU6050
"loading="faul"
Anweisungen:
- Verbinden Sie den Piezo mit 1M Widerstand (siehe angehängtes Bild).
- Laden Sie die angehängte Skizze hoch.
- Verbinden Sie das Gerät mit dem elastischen Seil mit einem Fuß.
- Öffnen Sie "Serieller Plotter".
- Sehen Sie sich das Video an, das diesem Schritt beigefügt ist.
Schritt 3: Integration der Sensoren in den Arduino
Wir haben gesehen, wie man die Sensoren kalibriert, jetzt werden wir beide Sensoren in die NodeMCU integrieren!
- Verbinden Sie beide Sensoren mit dem Gerät, verwenden Sie die gleichen Pins wie in den Schritten 1+2.
- Laden Sie die angehängte Skizze.
- Verbinden Sie das Gerät mit den 2 Sensoren mit einem Fuß.
- Öffnen Sie "Serieller Plotter".
- Sehen Sie sich das angehängte Video an.
Schritt 4: Daten in die Cloud senden
In diesem Schritt werden wir unser Gerät mit der Cloud verbinden und Daten senden, um einige erstaunliche Diagramme zu sehen!
Wir werden das MQTT-Protokoll verwenden und Daten an einen kostenlosen Server namens "Adafruit" senden.
HINWEIS: Adafruit unterstützt nicht das Senden von Daten einige Male pro Sekunde, es funktioniert langsamer, daher senden wir eine Durchschnittsbildung unserer Datenpunkte und nicht die Datenpunkte selbst. Wir werden die Daten von unseren 2 Sensoren mit den folgenden Transformationen in gemittelte Daten umwandeln:
* Die Schritterkennungszeit wird in Schritte pro Minute umgewandelt. Jede Schrittdauer kann durch (millis() - step_timestamp) gefunden werden, und die Mittelung kann mit einem Filter erfolgen, wie wir zuvor gesehen haben: val = val * 0.7 + new_val * 0.3.
* Die Schrittleistung wird in die durchschnittliche Schrittleistung umgewandelt. Wir verwenden für jeden Schritt die gleiche Methodik wie bei der Verwendung von "max", aber wir verwenden einen Filter, um eine Mittelwertbildung unter Verwendung des Filters Average = Average * 0.6 + new_val * 0.4 durchzuführen.
Anweisungen:
- Rufen Sie die Website von Adafruit unter der Adresse io.adafruit.com auf und stellen Sie sicher, dass Sie ein Konto haben.
- Erstellen Sie ein neues Dashboard, Sie können es "Meine Schritte-Detektor" nennen.
- Drücken Sie im Dashboard auf die Schaltfläche + und wählen Sie "Liniendiagramm" aus und erstellen Sie einen Feed mit dem Namen "steps_per_min".
- Drücken Sie im Dashboard auf die Schaltfläche + und wählen Sie "Liniendiagramm" aus und erstellen Sie einen Feed mit dem Namen "average_step_power".
- Sie sollten nun für jedes der Felder 2 leere Diagramme sehen.
- Verwenden Sie die beigefügte Skizze und stellen Sie die folgende Konfiguration ein:
BENUTZERNAME = Ihr Adafruit-Benutzername.
SCHLÜSSEL = dein Adafruit-Schlüssel
WLAN_SSID = WIFI-Name
WLAN_PASS = WIFI-Pass
mpuStepThreshold = Schwellenwert aus Schritt 2
Dann können Sie das Gerät mit einem Fuß verbinden und die Skizze sendet Schrittdaten an den Server!
Schritt 5: Verwenden von 2 Geräten gleichzeitig
In diesem Schritt simulieren wir 2 Personen, die gleichzeitig mit dem Gerät gehen!
Wir werden 2 verschiedene Geräte verwenden - mit den gleichen Datenpunkten wie in Schritt 4 erklärt.
Das ist also ganz einfach, es gibt 3 einfache Aufgaben:
1) Erstellen Sie zusätzliche Feeds für die Daten des zweiten Geräts. Wir empfehlen, einen Post-Fix von "_2" anzugeben.
2) Ändern Sie die Blöcke im Dashboard, um Daten aus beiden Feeds anzuzeigen.
3) Ändern Sie den Namen der Feeds in der Skizze des zweiten Geräts.
4) Sehen Sie sich die Ergebnisse an!
HINWEIS:
Adafruit widersteht Daten, die zu schnell kommen, es kann erforderlich sein, die Häufigkeit anzupassen, in der Daten an den Server gesendet werden. Tun Sie dies, indem Sie in der Skizze Folgendes finden:
// Senden Sie alle 5 Sekunden nicht das Limit von Adafruit für kostenlose Benutzer. // Wenn Sie Premium oder Ihren eigenen Server verwenden, können Sie dies gerne ändern. // Jedes Mal einen alternierenden Datenpunkt senden. if(millis() - lastTimeDataSent > 5000){
Schritt 6: Verbesserungen, Hinweise und zukünftige Pläne
Die größte Herausforderung:
Die größte Herausforderung im Projekt bestand darin, die NodeMCU bei einer körperlichen Aktivität zu testen. Das USB-Kabel wird oft getrennt, und wenn Sie versuchen, sich schnell zu bewegen, kann es zu Problemen beim Lösen der Stifte kommen. Oft debuggten wir einen Code, der tatsächlich funktionierte, und das Problem lag im physischen Bereich.
Wir haben diese Herausforderung gemeistert, indem wir den Laptop nah am Läufer getragen und jeden Code nacheinander geschrieben haben.
Eine weitere Herausforderung war das reibungslose Zusammenspiel der verschiedenen Komponenten:
- Der Piezo mit dem Beschleunigungsmesser: Gelöst, wie in Schritt 3 beschrieben, durch eine kreative Idee, die wir hatten.
- Die Sensoren mit dem Server: Wie in Schritt 4 beschrieben, haben wir die Werte in andere Werte umgewandelt, die langsamer an einen Server gesendet werden können.
Die Grenzen des Systems:
- Muss vor der Verwendung kalibriert werden.
- Muss in ein steiferes Produkt umgewandelt werden, das bei einer körperlichen Aktivität nicht so leicht bricht.
- Der piezoelektrische Sensor ist nicht sehr genau.
- Benötigt eine WLAN-Verbindung. (Einfach gelöst mit Handy-Hotspot)
Zukunftspläne
Da wir nun ein voll funktionsfähiges Beinüberwachungsgerät haben, können weitere Verbesserungen vorgenommen werden!
Mehrere Pizeos!
- Verbinden Sie Piezos mit verschiedenen Bereichen im Fuß.
- Verwenden Sie Multiplexer, da NodeMCU nur einen analogen Pin unterstützt.
- Kann eine Heatmap des Fußes anzeigen, um Aufprallbereiche zu beschreiben.
- Kann diese Daten verwenden, um Warnungen bei falscher Körperhaltung und Körperbalance zu erstellen.
Viele Geräte!
- Wir haben Ihnen gezeigt, wie Sie 2 Geräte gleichzeitig anschließen, aber Sie können 22 Piezos mit 22 Fußballspielern verbinden!
- Die Daten können während des Spiels offengelegt werden, um einige interessante Metriken über die Spieler zu zeigen!
Fortschrittliche Sensoren
Wir haben Piezo und Beschleunigungsmesser verwendet, aber Sie können andere Geräte hinzufügen, die die Ausgabe bereichern und mehr Daten liefern:
- Präzise Laser, um Schritte zu erkennen.
- Messen Sie den Abstand zwischen Fuß und Boden.
- Abstand zwischen verschiedenen Spielern messen (bei mehreren Geräten)