Inhaltsverzeichnis:
- Schritt 1: Benötigtes Material
- Schritt 2: Programmierteil
- Schritt 3: Elektronische Baugruppe
- Schritt 4: Datenerfassung
- Schritt 5: Datenbank
- Schritt 6: Demonstration
Video: Verbundenes Orientierungsarmband - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Dieses akademische Projekt, das verbundene Orientierungsarmband, wurde von vier Studenten der Ingenieurschule Polytech Paris-UPMC realisiert: Sébastien Potet, Pauline Pham, Kevin Antunes und Boris Bras.
Was ist unser Projekt?
Während eines Semesters mussten wir ein verbundenes Armband erstellen, das von einem Läufer verwendet wird. Seine Rennstrecke wird sich an mehreren Punkten orientieren, an denen er taggen wird, und dies ermöglicht es, seine Strecke aufzuzeichnen. Diese Daten werden in Echtzeit in einer Cloud gespeichert.
Dieses Produkt kann die Temperatur, die Luftfeuchtigkeit und die Ausrichtung angeben. Darüber hinaus haben wir drei Tasten, darunter eine, die eine GPS-Position sendet, falls der Läufer ein Problem hat (SOS-Taste), weshalb wir sie in Echtzeit benötigen. Die zweite ermöglicht das Markieren und die letzte das Ausschalten des Armbands, da wir ein Produkt mit geringem Stromverbrauch wünschen.
Wir hatten ein Budget von 120€. Um ein verbundenes Orientierungsarmband zu realisieren, folgen Sie unserem Tutorial!
Schritt 1: Benötigtes Material
Liste der Komponenten:
- STM32L432KC-Nucleo Ultra Low Power
- SigFox-Modul TD1208
- RFID-Leser 125 kHz
- Temperatur-/Feuchtesensor HTU21D
- Beschleunigungssensormodul 3-Achsen ADXL345
- Kompassmodul 3-Achsen HMC5883L
- Bildschirm OLED ADA938
- GPS-Modul Grove 31275
- Batterie 1,5 V LR6
- Spannungsregler Pololu 3.3V U1V11F3
- Einige Steuertasten
Schritt 2: Programmierteil
Zunächst haben wir jede Komponente mit der mbed-Entwicklerseite programmiert. Dafür haben wir einen Mikrocontroller STM32L476RG-Nucleo verwendet, der einen geringen Verbrauch hat.
Der Bildschirm, der Temperatur-/Feuchtigkeitssensor und der Kompass arbeiten in I²C-Kommunikation. Der RFID-Leser und der Beschleunigungsmesser arbeiten in serieller Kommunikation. Für jede Komponente musste eine eigene Bibliothek hinzugefügt werden.
Für den Temperatur-/Feuchtigkeitssensor, den Kompass und den Beschleunigungsmesser müssen Sie eine definierte Funktion in ihrer Bibliothek aufrufen, um die Daten abzurufen.
Der RFID-Reader arbeitet mit serieller Kommunikation, Sie müssen die Funktion "getc()" verwenden, da der Tag Daten in char zurückgibt.
Alle Codes sind als Datei verfügbar, mit Ausnahme des Codes des Bildschirms OLED.
Schritt 3: Elektronische Baugruppe
Nach der Programmierung der einzelnen Komponenten nahmen wir eine Labdec-Platte und verdrahteten sie auf dem STM32L432KC-Nucleo. Folgen Sie dem Schaltplan im Anhang, um alle Komponenten zusammenzubauen, oder jede PIN ist auf der Code-Baugruppe detailliert beschrieben.
Wir haben drei Knöpfe mit drei 10 Kilo Ohm Widerständen hinzugefügt: einer sendet die GPS-Position im Gefahrenfall, einer zum Ein- / Ausschalten und der letzte ermöglicht dem Läufer, den Punkt zu markieren. Wir haben einen Summer hinzugefügt, wenn Sie die SOS-Taste drücken.
Die Datei "braceletOrientation" im Anhang ist unser Projekt auf Fritzing. Dies ist eine zusammenfassende Datei unserer Komponenten und unserer Verdrahtung auf labdec sowie auf PCB. Außerdem haben wir den Assemblercode aller Komponenten hinzugefügt.
Schritt 4: Datenerfassung
Actoboard
Actoboard ist ein Dashboard-basiertes Tool. Es zeigt alle vom Sigfox-Modul gesendeten Daten an. Diese Daten werden dann per URL an nodered gesendet, um sie in die Datenbank einzufügen.
Senden Sie die Daten:
Um die Daten über Ihren Code zu senden, müssen Sie zunächst die PIN (Tx, Rx) des Moduls Sigfox angeben (Sie können sie in unserem Code sehen). Danach dank diesem Befehl: "sigfox.printf("AT$SF=%02X%02X%02X%02X%02X%02X \r\n", lat_deg, long_deg, lat_10s, long_10s, lat_100s, long_100s);", dieses Beispiel sendet die Daten des GPS an Actoboard.
Empfangen Sie die Daten:
Nachdem Sie Ihre Datenquellen in Bezug auf Ihr Sigfox-Modul eingerichtet haben, müssen Sie Ihr Datenformat für den Empfang der Daten aus Ihrem Code einstellen. Für das gleiche Beispiel wie zuvor (GPS) müssen Sie das Datenformat wie folgt einstellen: "lat_deg::uint:8 long_deg::uint:8 lat_10s::uint:8 long_10s::uint:8 lat_100s::uint:8 long_100s::uint:8".
Seien Sie vorsichtig mit dem Typ und der Anzahl der Bits, Sie müssen genau die gleiche Länge haben. Daher empfehle ich Ihnen, Ihre Daten wie folgt in Ihren Code zu gießen: "lat_deg = (int8_t)lat_deg;".
Achten Sie auch auf die Stellenzahl, in diesem Beispiel übertragen wir nur Daten mit max. 2 Stellen. Wenn Sie jedoch größere Daten wie "%04X" übertragen möchten, wissen Sie möglicherweise, dass Actoboard die Ziffer invertiert. Wenn Sie beispielsweise 0x3040 übertragen, versteht Actoboard 0x4030. Sie müssen also die Ziffer invertieren, bevor Sie ein Datenformat senden, das 2 Ziffern überschreitet.
Dashboard bearbeiten:
Um Ihre Daten in einem Dashboard auf Actoboard zu bearbeiten, müssen Sie nur ein Widget hinzufügen. Es gibt eine Liste von Widgets, Sie müssen dasjenige auswählen, das Ihrem System am besten entspricht. Und danach müssen Sie nur noch auswählen, welche Daten welches Widget füllen sollen.
An Knoten übertragen:
Um alle Daten, die Sie auf Actoboard erhalten, per URL an nodered zu übertragen, müssen Sie in Ihren Einstellungen lediglich das Feld "Weiterleitungs-URL" mit Ihrer nodered-Projekt-URL ausfüllen. Zum Beispiel haben wir das Feld mit "https://noderedprojet.mybluemix.net/projet" gefüllt.
Schritt 5: Datenbank
Blaumix
- Geknotet:
- Erhalten Sie das Datenformular Actoboard
Um die Daten von Actoboard zu erhalten, müssen Sie einen "websocket"-Eingang hinzufügen, die Methode per "POST" einrichten und Ihre URL angeben (Beispiel im Foto).
Daten formatieren
Sie müssen die Daten, die Sie Ihrer Datenbank (cloudant) hinzufügen möchten, extrahieren und formatieren. dafür müssen Sie einen "Funktions"-Block hinzufügen. Sehen Sie sich das Foto im Anhang an, um zu verstehen, wie das geht.
Sie können geometrische Dinge auf einer Karte hinzufügen, zum Beispiel haben wir eine Funktion, die einen Punkt mit der GPS-Koordinate auf einer Karte hinzufügt und diese verknüpft. Wir verwenden diese Funktion, um das Rennen zu erstellen und danach schalten wir die andere Funktion um, die ein Polygon um den Punkt herum erstellt, wenn Sie einen RFID-TAG überprüfen.
An Cloudant senden
Nach der Formatierung Ihrer Daten müssen Sie diese an Ihre cloudant Datenbank senden. Dazu müssen Sie einen "cloudant" Speicherblock hinzufügen und die Einstellungen wie den Namen Ihrer Datenbank angeben, die Operation "insert" siehe unser Beispiel im Anhang.
Vergessen Sie nicht, Ihren Knoten "zu implementieren", damit Ihr System funktioniert.
Bewölkung:
In Ihrer Cloudant-Datenbank sehen Sie nun alle Daten, die Sie mit dem sigfox und der Formatierung in Knotenrot gesendet haben. Sie können auswählen, welche Informationen Sie sehen möchten, wie "Datum, Gerät, TAG RFID, GPS".
Und Sie können die von Ihnen erstellten Geodaten in der Knotenfunktion im Menü "gps Geospatial Indexes" visualisieren.
Schritt 6: Demonstration
Zusammenfassend hatten wir vier Schnittstellen Mensch-Maschine, die über vier Drucktasten gesteuert wurden.
Die Basisschnittstelle zeigt die Temperatur, die Luftfeuchtigkeit, die Nummer des Tags, einen Chronometer und die magnetische Richtung an.
Auf einer der Drucktasten finden Sie einen echten Schnittstellenkompass. Auf dem Bildschirm wird ein Kreis mit gut positionierter Richtung gezeichnet.
Bei einer weiteren Tastenaktion senden Sie eine SOS-Nachricht, die Ihren Standort an die Datenbank sendet. Außerdem hören Sie eine SOS-Nachricht im Morsecode.
Außerdem wecken Sie beim letzten Tastendruck den RFID-Tag auf. Danach haben Sie fünf Sekunden Zeit, um Ihren Kreuzungspunkt zu markieren. Dann hören Sie einen Piepton. Diese Aktion erhöht einen Zähler auf dem Display und sendet den Tag mit der Uhrzeit an unsere Datenbank. Schließlich zeichnen alle Tags die Fahrt auf einer Karte.
Die Automomy unserer Uhr beträgt ca. 4h30 (ca. 660mA/h). Dies hängt von der überprüften Tag-Nummer ab.
Zum Abschluss nach dem Rennen finden Sie alle Läuferaktionen in unserer Datenbank bluemix.