Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Genuino 101 und Bluetooth LE lassen das Herz höher schlagen

title

Das Herzstück

Den Aufmerksamen unter uns, oder den Gutinformierten, die den aktuellen Blog von Andrew Back lesen, dürfte das kleine Bluetooth-Logo und die geätzte Leiterbahnantenne in der Ecke der neuen Genuino 101-Platine aufgefallen sein. Auch wenn das Ganze so aussieht, als wäre ein Fehler mit der Lötmaske passiert, handelt es sich vielmehr um aufregende Neuigkeiten für Arduino-Fans, die Wearables (am Körper tragbare Geräte) konzipieren oder IoT-Projekte durchführen. Jetzt können Sie mit Bluetooth Low Energy-Technologie eine drahtlose Verbindung mit Ihren neu entwickelten Systemen herstellen. Bluetooth LE wurde speziell dafür entwickelt, dass Geräte nicht nur außerordentlich energieeffizient untereinander verbunden werden können, sondern dass auch eine direkte Verbindung zwischen Geräten und Anwendungen herstellbar ist, die auf Smartphones und Tablets ausgeführt werden.

Dieser Artikel beschäftigt sich praxisbezogen mit dem von Arduino entwickelten Pulsmesser-Tutorial. Ich will zeigen, wie mühelos ich das Genuino 101 mit meinem Smartphone verbinden und Daten über eine Drahtlosverbindung freigeben kann.Arduino IDE

Als Erstes installierte ich Version 1.6.7 der Arduino IDE (Integrated Development Environment, integrierte Entwicklungsumgebung). Ich arbeite in einer Entwicklungsumgebung unter Linux (Ubuntu Wily), aber für alle, die in einer weniger glücklichen Lage sind, werden auch auf der Arduino-Website gute Anleitungen zu diesem Thema bereitgestellt. Diese Version war in den Distro-Repositorys noch nicht verfügbar, als dieser Beitrag geschrieben wurde.

Durch Dekomprimieren und Ausführen des Installationsskripts in meinem Basisverzeichnis wurde das IDE-Verzeichnis zusammen mit einem Startprogramm auf dem Desktop erstellt. Die zusätzlich erforderliche Software von Intel wird mit dem Board Manager über die IDE installiert. Sie brauchen hier ein wenig Geduld: Die Installation auf meinem Laptop hat gute 10 Minuten gedauert.

Der letzte wichtige Schritt besteht darin, das undev-Skript aus einem verborgenen Verzeichnis unter dem Basisverzeichnis des Benutzers als sudo-Befehl auszuführen. (.arduino15/packages/Intel/tools/sketchUploader/1.6.4+1.14/scripts/create_dfu_udev_rule)

Dadurch werden für die IDE die richtigen Berechtigungen zum Herstellen einer Verbindung und Hochladen neuer Sketches (Programme) verfügbar.

Wählen Sie zu Testzwecken im Menü „Tools“ (Extras) die Option „Genuino 101“ aus, und laden Sie „Blink“ hoch. Wenn alles ordnungsgemäß funktioniert, wird im unteren Fenster der IDE eine Ausgabe angezeigt und nach wenigen Sekunden sollte die kleine LED in der Nähe von Stift 13 anfangen zu blinken.

title

Ein Licht geht auf 

Spiel nicht mit meinem Herz

Jetzt kommt der interessante Teil. Falls Sie keinen Pulsmesser haben, wie er im Handel erhältlich ist, können Sie mit dem Sketch (Link zum Sketch) ein 10-kΩ-Potenziometer an einen der analogen Eingänge des Boards anschließen, um die Ausgabe des Sensors eines solchen Pulsmessers zu simulieren.

Der Analog-Digital-Wandler auf dem Board wandelt den Wert des Spannungsteilers in einen Wert um, der die Pulsfrequenz zwischen 0 und 100 Schlägen pro Minute simuliert. Die an einen der digitalen Ausgänge angeschlossene LED leuchtet, nachdem die Bluetooth-Verbindung mit dem Board erfolgreich hergestellt wurde.

title

Näher am Puls

Im ersten Teil des Sketches wird die von der IDE bereitgestellte CurieBLE.h-Bibliothek aufgenommen. Dann wird ein BLE Periferal-Objekt erstellt und als BLE Heart Rate-Dienst konfiguriert, der eine Benachrichtigung ausgibt, wenn sich die Pulsfrequenz ändert. Die BLE-Spezifikation ist erweiterbar und ermöglicht die Erstellung domänenspezifischer Anwendungsprofile. In diesem Beispiel verwenden wir ein Pulsfrequenz-Profil, sodass der Client, in meinem Fall also das Smartphone, weiß, wie die Verbindung verarbeitet werden soll. 

 

Nach der Initialisierung wird eine Codeschleife ausgeführt und abgewartet, bis ein Client eine Verbindung herstellt. Wenn dies geschieht, wird kontinuierlich die Funktion updateHeartRate() aufgerufen. Dadurch wird der Pulsfrequenzwert an den Client weitergegeben. Ich änderte diese Funktion durch die Auskommentierung der If-Anweisung, sodass der Wert jedes Mal bei der Ausführung der Schleife gesendet wird, nicht nur jedes Mal, wenn sich der Wert ändert.

[Codeausschnittvoid updateHeartRate() { /* Read the current voltage level on the A0 analog input pin. This is used here to simulate the heart rate's measurement. */ int heartRateMeasurement = analogRead(A0); int heartRate = map(heartRateMeasurement, 0, 1023, 0, 100); //if (heartRate != oldHeartRate) { // if the heart rate has changed Serial.print("Heart Rate is now: "); // print it Serial.println(heartRate); const unsigned char heartRateCharArray[2] = { 0, (char)heartRate }; heartRateChar.setValue(heartRateCharArray, 2); // and update the heart rate measurement characteristic oldHeartRate = heartRate; // save the level for next comparison //}}Ende des Codeausschnitts]

Hör auf Dein Herz

Zum Überwachen Ihres Bluetooth-Diensts benötigen Sie ein Client-Gerät, auf dem eine App ausgeführt wird, mit der eine Verbindung zu einem BLE-Pulsfrequenz-Dienst hergestellt werden kann. Glücklicherweise bietet Nordic genau so eine praktische App an, die kostenlos auf das iPhone oder ein Android-Gerät heruntergeladen werden kann. Installieren Sie diese App auf Ihrem Mobilgerät, starten Sie die App und wählen Sie das HRM-Symbol aus. Jetzt sollte angezeigt werden, dass Ihr Genuino Daten überträgt. Wenn die Verbindung ordnungsgemäß hergestellt ist, leuchtet die LED und die Kurve der simulierten Herzfrequenz wird auf dem Display angezeigt. Wenn die Verbindung nicht hergestellt wird, versuchen Sie es damit, die Masterreset-Taste am Board zu drücken.

title

Mein Herz schlägt

Von ganzem Herzen

Mit ein paar wenigen Komponenten und Codezeilen haben wir ein ziemlich beeindruckendes Pulsmessgerät hergestellt, das sich per Bluetooth drahtlos mit einer App auf einem Smartphone verbinden lässt. Dies eröffnet verschiedenste aufregende Möglichkeiten für IoT-Sensoranwendungen. Lassen Sie uns wissen, auf welche Ideen Sie kommen.

Verwandte Artikel –Markteinführung des Genuino 101!

I'm an engineer and Linux advocate with probably more SBCs than a Chandrayaan-3 moon lander