Arduino UNO R4 WiFi Bluetooth Analog Gauge Beispiel - Anzeige Display über BLE Tutorial

Überblick

Das Bluetooth Analog Gauge Beispiel bietet eine visuelle Anzeige im analogen Stil über die DIYables Bluetooth STEM App. Entwickelt für Arduino UNO R4 WiFi mit BLE (Bluetooth Low Energy) — zeigen Sie jeden analogen Wert auf einer schönen Anzeige mit konfigurierbarem Bereich und Einheit auf Ihrem Smartphone an. Perfekt für Tachometer, Druckanzeigen, Drehzahlmesser und jeden Wert, der von einer Zeiger-artigen Visualisierung profitiert.

Hinweis: Der Arduino UNO R4 WiFi unterstützt nur BLE (Bluetooth Low Energy). Er unterstützt nicht das klassische Bluetooth. Die DIYables Bluetooth App unterstützt sowohl BLE als auch klassisches Bluetooth auf Android und BLE auf iOS. Da dieses Board BLE verwendet, funktioniert die App auf sowohl Android als auch iOS.

Arduino UNO R4 WiFi Bluetooth Analog Gauge Beispiel - Anzeige Display über BLE Tutorial

Funktionen

  • Analog Gauge Display: Schöne Zeiger-artige Anzeige auf dem Smartphone
  • Konfigurierbarer Bereich: Stellen Sie Minimal- und Maximalwerte ein
  • Benutzerdefinierte Einheit: Zeigen Sie km/h, RPM, PSI oder jede benutzerdefinierte Einheit an
  • Schnelle Updates: Bis zu 5 Updates pro Sekunde (200ms Intervall)
  • On-Demand Anfrage: App kann aktuellen Wert anfordern
  • Funktioniert auf Android & iOS: BLE wird auf beiden Plattformen unterstützt
  • Keine Kopplung erforderlich: BLE verbindet sich automatisch ohne manuelle Kopplung

Benötigte Hardware

1×Arduino UNO R4 WiFi
1×Alternativ: DIYables STEM V4 IoT
1×USB Kabel Typ-C
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno R4
1×(Empfohlen) Breadboard-Shield für Arduino Uno R4
1×(Empfohlen) Gehäuse für Arduino Uno R4
1×(Empfohlen) Stromverteiler für Arduino Uno R4
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V4 IoT Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Arduino UNO R4 WiFi Code

Schnelle Schritte

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Wenn Sie zum ersten Mal den Arduino UNO R4 WiFi verwenden, lesen Sie den Arduino UNO R4 WiFi Einstiegsleitfaden.
  • Verbinden Sie das Arduino UNO R4 WiFi Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino UNO R4 WiFi Board und den entsprechenden COM-Port aus.
  • Navigieren Sie zum Libraries Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach "DIYables Bluetooth" und finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie auf den Install Button, um die Bibliothek zu installieren.
Arduino UNO R4 DIYables Bluetooth Bibliothek
  • Sie werden gefragt, ob Sie einige andere Bibliotheksabhängigkeiten installieren möchten
  • Klicken Sie auf den Install All Button, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 DIYables Bluetooth Abhängigkeit

BLE Code

  • In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth ArduinoBLE_AnalogGauge Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - Bluetooth Analog Gauge Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Analog Gauge feature: * - Display values on an analog meter/gauge * - Configurable range and unit * - Perfect for sensor monitoring (speed, pressure, voltage, etc.) * * Compatible Boards: * - Arduino UNO R4 WiFi * - Arduino Nano 33 BLE / BLE Sense * - Arduino Nano 33 IoT * - Arduino MKR WiFi 1010 * - Arduino Nano RP2040 Connect * - Any board supporting the ArduinoBLE library * * Optional: Analog sensor (potentiometer, pressure sensor, etc.) * * Setup: * 1. Upload the sketch to your Arduino * 2. Open Serial Monitor to see connection status * 3. Use DIYables Bluetooth App to connect and view the gauge * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothAnalogGauge.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Gauge"; const char* SERVICE_UUID = "19B10000-E8F2-537E-4F6C-D104768A1214"; const char* TX_UUID = "19B10001-E8F2-537E-4F6C-D104768A1214"; const char* RX_UUID = "19B10002-E8F2-537E-4F6C-D104768A1214"; // Create Bluetooth instances DIYables_ArduinoBLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Analog Gauge app instance (min=0, max=100, unit="km/h") DIYables_BluetoothAnalogGauge bluetoothGauge(0.0, 100.0, "km/h"); // Variables for gauge value float currentValue = 0.0; unsigned long lastUpdate = 0; const unsigned long UPDATE_INTERVAL = 200; // Update every 200ms // Optional: Analog input pin for sensor const int ANALOG_PIN = A0; // Function to read sensor value float readSensorValue() { // TODO: Replace with actual sensor reading // Examples: // - Pressure sensor: readPressure() // - Voltage sensor: analogRead(A0) * (5.0 / 1023.0) // - Speed sensor: calculateSpeed() // Option 1: Read from analog pin and map to gauge range // int rawValue = analogRead(ANALOG_PIN); // return map(rawValue, 0, 1023, 0, 100); // Option 2: Simulated data (sine wave) static float phase = 0; phase += 0.05; if (phase > 2 * PI) phase = 0; return 50 + 50 * sin(phase); // Oscillates between 0-100 } void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Analog Gauge Example"); // Optional: Initialize analog pin // pinMode(ANALOG_PIN, INPUT); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add gauge app to server bluetoothServer.addApp(&bluetoothGauge); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send initial value currentValue = readSensorValue(); bluetoothGauge.send(currentValue); Serial.print("Initial value sent: "); Serial.print(currentValue); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for current value bluetoothGauge.onValueRequest([]() { currentValue = readSensorValue(); bluetoothGauge.send(currentValue); Serial.print("Value requested - Sent: "); Serial.print(currentValue); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); }); // You can change gauge configuration at runtime: // bluetoothGauge.setRange(0.0, 200.0); // Change range to 0-200 // bluetoothGauge.setUnit("mph"); // Change unit to mph // bluetoothGauge.setRange(0.0, 5.0); // For voltage (0-5V) // bluetoothGauge.setUnit("V"); Serial.println("Waiting for Bluetooth connection..."); Serial.print("Gauge range: "); Serial.print(bluetoothGauge.getMin()); Serial.print(" - "); Serial.print(bluetoothGauge.getMax()); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send gauge updates periodically (only when connected) if (bluetooth.isConnected() && millis() - lastUpdate >= UPDATE_INTERVAL) { lastUpdate = millis(); // Read sensor value currentValue = readSensorValue(); // Send to Bluetooth app bluetoothGauge.send(currentValue); // Print to Serial Monitor Serial.print("Gauge: "); Serial.print(currentValue, 1); Serial.print(" "); Serial.println(bluetoothGauge.getUnit()); } delay(10); }
  • Klicken Sie auf den Upload Button in der Arduino IDE, um den Code auf den Arduino UNO R4 WiFi hochzuladen
  • Öffnen Sie den Serial Monitor
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht etwa so aus:
COM6
Send
DIYables Bluetooth - Analog Gauge Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS

Hinweis: Die DIYables Bluetooth App unterstützt sowohl BLE als auch klassisches Bluetooth auf Android und BLE auf iOS. Da der Arduino UNO R4 WiFi BLE verwendet, funktioniert die App auf sowohl Android als auch iOS. Keine manuelle Kopplung ist für BLE erforderlich — einfach scannen und verbinden.

  • Öffnen Sie die DIYables Bluetooth App
  • Beim ersten Öffnen der App wird sie nach Berechtigungen fragen. Bitte gewähren Sie folgende:
    • Nearby Devices Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
    • Location Berechtigung (nur Android 11 und darunter) - erforderlich von älteren Android-Versionen zum Scannen nach BLE-Geräten
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon eingeschaltet ist
  • Tippen Sie auf dem Startbildschirm auf den Connect Button. Die App wird nach BLE-Geräten scannen.
DIYables Bluetooth App - Startbildschirm mit Scan Button
  • Finden und tippen Sie auf "Arduino_Gauge" in den Scan-Ergebnissen, um eine Verbindung herzustellen.
  • Nach erfolgreicher Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Analog Gauge App aus dem App-Menü.
DIYables Bluetooth App - Startbildschirm mit Analog Gauge App

Hinweis: Sie können auf das Einstellungen-Symbol auf dem Startbildschirm tippen, um Apps auf dem Startbildschirm ein-/auszublenden. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.

  • Sie sehen eine analoge Anzeige, die Werte mit einer geschmeidigen Zeigerbewegung anzeigt und einen Tachometer simuliert
DIYables Bluetooth App - Analog Gauge Bildschirm

Schauen Sie nun zurück zum Serial Monitor in der Arduino IDE. Sie werden sehen:

COM6
Send
Bluetooth connected! Gauge value: 50.00 km/h Gauge value: 59.76 km/h Gauge value: 68.78 km/h
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Kreative Anpassung - Code an Ihr Projekt anpassen

Anzeigenbereich und Einheit konfigurieren

// Speedometer: 0-200 km/h DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 200.0, "km/h"); // Pressure gauge: 0-100 PSI DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "PSI"); // RPM gauge: 0-8000 RPM DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 8000.0, "RPM"); // Percentage: 0-100% DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");

Anzeigenwerte senden

// Send a value to the gauge bluetoothGauge.send(75.5); // Read from sensor and send float sensorValue = analogRead(A0) * (100.0 / 1023.0); bluetoothGauge.send(sensorValue);

Wertanfragen handhaben

bluetoothGauge.onValueRequest([]() { float value = readSensor(); bluetoothGauge.send(value); Serial.print("Requested: "); Serial.println(value); });

Programmierbeispiele

Potentiometer Anzeige

DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%"); void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 200) { lastTime = millis(); float percent = analogRead(A0) * (100.0 / 1023.0); bluetoothGauge.send(percent); } }

Batterie Level Monitor

DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%"); float readBatteryLevel() { float voltage = analogRead(A0) * (5.0 / 1023.0) * 2; // voltage divider float percent = map(voltage * 100, 300, 420, 0, 100); return constrain(percent, 0, 100); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 1000) { lastTime = millis(); bluetoothGauge.send(readBatteryLevel()); } }

Fehlerbehebung

Häufige Probleme

1. Gerät kann in der App nicht gefunden werden

  • Stellen Sie sicher, dass der Arduino UNO R4 WiFi eingeschaltet ist und der Sketch hochgeladen wurde
  • Vergewissern Sie sich, dass das Bluetooth Ihres Telefons aktiviert ist
  • Auf Android 11 und darunter aktivieren Sie auch die Standortdienste

2. Anzeige wird nicht aktualisiert

  • Überprüfen Sie, dass send() in der Schleife aufgerufen wird
  • Überprüfen Sie das Update-Intervall-Timing
  • Stellen Sie sicher, dass bluetoothServer.loop() aufgerufen wird

3. Anzeige zeigt falschen Bereich an

  • Überprüfen Sie die Min-/Max-Werte im Konstruktor
  • Stellen Sie sicher, dass die Einheiten-String korrekt ist
  • Werte außerhalb des Bereichs werden begrenzt

4. Zeiger springt unregelmäßig

  • Fügen Sie Glättung oder Mittelwertbildung zu Sensor-Ablesungen hinzu
  • Reduzieren Sie die Update-Frequenz wenn nötig
  • Überprüfen Sie auf verrauschte analoge Eingänge

5. Upload schlägt fehl oder Board wird nicht erkannt

  • Installieren Sie das neueste Arduino UNO R4 Board-Paket über den Board Manager
  • Probieren Sie ein anderes USB-Kabel oder einen anderen Port

Projektideen

  • Tachometer für RC-Auto
  • Druckanzeige für pneumatische Systeme
  • Batteriestandsanzeige
  • Drehzahlmesser für Motoren
  • Signalstärke-Messgerät

Nächste Schritte

Nach dem Beherrschen des Bluetooth Analog Gauge Beispiels versuchen Sie:

  1. Bluetooth Temperature - Für temperaturspezifische Anzeigen
  2. Bluetooth Plotter - Für Daten über die Zeit
  3. Bluetooth Slider - Zum Zurücksetzen von Werten an Arduino
  4. Multiple Bluetooth Apps - Kombination von Anzeigen mit anderen Apps

Support

Für zusätzliche Hilfe:

  • Überprüfen Sie die API-Referenz-Dokumentation
  • Besuchen Sie DIYables Tutorials
  • Arduino Community-Foren

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!