ESP32 Bluetooth Plotter Voorbeeld - Tutorial voor Real-Time Data Plotten Interface

Overzicht

Het Bluetooth Plotter voorbeeld biedt real-time datavisualisatie op uw smartphone via de DIYables Bluetooth STEM app. Ontworpen voor ESP32 boards met ondersteuning voor zowel BLE (Bluetooth Low Energy) als Classic Bluetooth verbindingen. Plot tot wel 10 dataseries tegelijkertijd met configureerbare assen, automatische schaal, legendalabels en scrollende weergave — ideaal voor sensorvisualisatie, signaaldetectie en datamonitoring.

Dit voorbeeld ondersteunt twee Bluetooth-modi:

  • ESP32 BLE (Bluetooth Low Energy): Werkt op zowel Android als iOS
  • ESP32 Classic Bluetooth: Werkt alleen op Android. iOS ondersteunt geen Classic Bluetooth. Gebruik BLE indien u iOS-ondersteuning nodig heeft.
ESP32 Bluetooth Plotter Voorbeeld - Tutorial voor Real-Time Data Plotten Interface

Functies

  • Multi-Seriegrafieken: Plot tot 10 dataseries tegelijk
  • Real-Time Weergave: Continue scrollende grafiek met live updates
  • Configureerbare Assen: Stel eigen Y-as bereik, aslabels en plot titel in
  • Auto-Scale: Automatisch aanpassen van Y-as bereik aan de data
  • Aangepaste Legend: Label elke dataserie voor eenvoudige identificatie
  • Aanpasbare Samples: Stel het aantal zichtbare datapunten in
  • BLE & Classic Bluetooth: Kies de Bluetooth modus die bij uw project past
  • Cross-Platform: BLE werkt op Android en iOS; Classic Bluetooth werkt alleen op Android

Benodigde Hardware

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB-kabel Type-C
1×Breadboard (experimenteerprint)
1×Jumper wires (verbindingsdraden)
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

ESP32 Code

Snelle Stappen

Volg deze instructies stap voor stap:

  • Als dit uw eerste keer is met de ESP32, raadpleeg dan de tutorial over het instellen van de omgeving voor ESP32 in de Arduino IDE.
  • Verbind het ESP32 board met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer het juiste ESP32 board en de juiste COM-poort.
  • Ga naar het Libraries-icoon in de linker zijbalk van de Arduino IDE.
  • Zoek op "DIYables Bluetooth" en vind de DIYables Bluetooth bibliotheek van DIYables.
  • Klik op de Install-knop om de bibliotheek te installeren.
ESP32 DIYables Bluetooth bibliotheek
  • U wordt gevraagd om extra bibliotheek afhankelijkheden te installeren
  • Klik op de Install All-knop om alle afhankelijkheden te installeren.
ESP32 DIYables Bluetooth afhankelijkheden

Kies een van de twee Bluetooth-modi hieronder afhankelijk van uw behoeften:

ESP32 Classic Bluetooth Code (werkt alleen met app op Android)

Opmerking: Classic Bluetooth wordt NIET ondersteund op iOS. Heeft u iOS-ondersteuning nodig, gebruik dan de BLE-code hieronder.

  • In de Arduino IDE, ga naar File Examples DIYables Bluetooth Esp32Bluetooth_Plotter voorbeeld, of kopieer de code hierboven en plak deze in de editor van Arduino IDE
/* * DIYables Bluetooth Library - ESP32 Classic Bluetooth Plotter Example * Works with DIYables Bluetooth STEM app on Android * Note: Classic Bluetooth is NOT supported on iOS. Use BLE examples for iOS support. * * This example demonstrates the Bluetooth Plotter feature: * - Real-time data plotting via Bluetooth * - Plot multiple data series simultaneously * - Configurable plot settings * * Compatible Boards: * - ESP32 (all variants with Classic Bluetooth) * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) to see connection status * 3. Use DIYables Bluetooth App to connect and view the plot * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothPlotter.h> #include <platforms/DIYables_Esp32Bluetooth.h> // Create Bluetooth instances DIYables_Esp32Bluetooth bluetooth("ESP32_Plotter"); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Plotter app instance DIYables_BluetoothPlotter bluetoothPlotter; // Variables for generating sample data unsigned long lastPlotTime = 0; const unsigned long PLOT_INTERVAL = 100; // Plot every 100ms float phase = 0; void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 Plotter Example"); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add plotter app to server bluetoothServer.addApp(&bluetoothPlotter); // Configure plotter settings bluetoothPlotter.setPlotTitle("Sensor Data"); bluetoothPlotter.setAxisLabels("Time", "Value"); bluetoothPlotter.setYAxisRange(-15, 30); // Fixed range bluetoothPlotter.setMaxSamples(100); // Show last 100 samples bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Custom legend labels // Uncomment to enable auto-scaling instead of fixed range: // bluetoothPlotter.enableAutoScale(true); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for current plot data (when app loads) bluetoothPlotter.onDataRequest([]() { Serial.println("App requested plot data"); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send plot data at regular intervals if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); // Generate sample data (sine and cosine waves) float sine = sin(phase); float cosine = cos(phase); float tangent = tan(phase) * 0.3; // Scaled down // Send data to Bluetooth plotter (multiple series) bluetoothPlotter.send(sine, cosine, tangent); // Also print to Serial for Arduino IDE Serial Plotter comparison Serial.print(sine, 2); Serial.print(" "); Serial.print(cosine, 2); Serial.print(" "); Serial.println(tangent, 2); phase += 0.1; if (phase > 2 * PI) { phase = 0; } // TODO: Replace sample data with your actual sensor readings // Examples: // - Temperature sensor: bluetoothPlotter.send(temperature); // - Accelerometer: bluetoothPlotter.send(accelX, accelY, accelZ); // - Multiple sensors: bluetoothPlotter.send(sensor1, sensor2, sensor3); } delay(10); }
  • Klik op de Upload-knop in de Arduino IDE om de code naar de ESP32 te uploaden
  • Open de Serial Monitor
  • Kijk het resultaat in de Serial Monitor. Het ziet er als volgt uit:
COM6
Send
DIYables Bluetooth - ESP32 Plotter Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP32 BLE Code (werkt met app op zowel Android als iOS)

  • In de Arduino IDE, ga naar File Examples DIYables Bluetooth Esp32BLE_Plotter voorbeeld, of kopieer de code hierboven en plak deze in de editor van Arduino IDE
/* * DIYables Bluetooth Library - ESP32 BLE Plotter Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Plotter feature: * - Real-time data plotting via Bluetooth * - Plot multiple data series simultaneously * - Configurable plot settings * * Compatible Boards: * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * - ESP32-S3 * - ESP32-C3 * - Any ESP32 board supporting BLE * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) to see connection status * 3. Use DIYables Bluetooth App to connect and view the plot * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothPlotter.h> #include <platforms/DIYables_Esp32BLE.h> // BLE Configuration const char* DEVICE_NAME = "ESP32BLE_Plotter"; 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_Esp32BLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Plotter app instance DIYables_BluetoothPlotter bluetoothPlotter; // Variables for generating sample data unsigned long lastPlotTime = 0; const unsigned long PLOT_INTERVAL = 100; float phase = 0; void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 BLE Plotter Example"); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add plotter app to server bluetoothServer.addApp(&bluetoothPlotter); // Configure plotter settings bluetoothPlotter.setPlotTitle("Sensor Data"); bluetoothPlotter.setAxisLabels("Time", "Value"); bluetoothPlotter.setYAxisRange(-15, 30); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothPlotter.onDataRequest([]() { Serial.println("App requested plot data"); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); float sine = sin(phase); float cosine = cos(phase); float tangent = tan(phase) * 0.3; bluetoothPlotter.send(sine, cosine, tangent); Serial.print(sine, 2); Serial.print(" "); Serial.print(cosine, 2); Serial.print(" "); Serial.println(tangent, 2); phase += 0.1; if (phase > 2 * PI) { phase = 0; } } delay(10); }
  • Klik op de Upload-knop in de Arduino IDE om de code naar de ESP32 te uploaden
  • Open de Serial Monitor
  • Bekijk het resultaat in de Serial Monitor. Het ziet er als volgt uit:
COM6
Send
DIYables Bluetooth - ESP32 BLE Plotter Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobiele App

  • Installeer de DIYables Bluetooth App op uw smartphone: Android | iOS
  • Als u de ESP32 Classic Bluetooth code gebruikt, moet u de ESP32 eerst koppelen met uw Android-telefoon voordat u de app opent:
    • Ga naar de Instellingen > Bluetooth van uw telefoon
    • Zorg dat Bluetooth is ingeschakeld
    • Uw telefoon zoekt naar beschikbare apparaten
    • Zoek en tik op "ESP32_Plotter" in de lijst met apparaten
    • Bevestig het koppelingsverzoek (geen PIN vereist)
    • Wacht tot onder de apparaatnaam "Gekoppeld" verschijnt
  • Als u de ESP32 BLE code gebruikt, is koppelen niet nodig. Ga direct naar de volgende stap.
  • Open de DIYables Bluetooth App
  • Bij het eerste gebruik vraagt de app om permissies. Verleen alstublieft de volgende rechten:
    • Nabije apparaten toestemming (Android 12+) / Bluetooth toestemming (iOS) - vereist om te scannen en verbinding te maken met Bluetooth-apparaten
    • Locatie toestemming (alleen Android 11 en ouder) - vereist door oudere Androidversies om naar BLE-apparaten te zoeken
  • Zorg dat Bluetooth aanstaat op uw telefoon
  • Tik op het startscherm op de Connect-knop. De app zoekt dan naar BLE en Classic Bluetooth apparaten.
DIYables Bluetooth App - Startscherm met Scan-knop
  • Zoek en tik in de scanresultaten op uw apparaat om verbinding te maken:
    • Voor Classic Bluetooth: tik op "ESP32_Plotter"
    • Voor BLE: tik op "ESP32BLE_Plotter"
  • Zodra verbonden, keert de app automatisch terug naar het startscherm. Selecteer de Plotter app in het app-menu.
DIYables Bluetooth App - Startscherm met Plotter App

Opmerking: U kunt in het startscherm het instellingen-icoon aanklikken om apps te verbergen of tonen. Voor meer details zie de DIYables Bluetooth App Gebruikershandleiding.

  • Bekijk hoe de real-time datagraaf over het scherm scrollt
DIYables Bluetooth App - Plotter scherm

Kijk nu terug op de Serial Monitor in Arduino IDE. U ziet:

COM6
Send
Bluetooth connected! 0.00 1.00 0.00 0.10 1.00 -0.15 0.20 0.98 0.08 0.29 0.96 -0.22
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • De plotter toont in realtime sinus, cosinus en willekeurige ruisgolven

Creatieve Aanpassing - Pas de Code aan voor Uw Project

Plotinstellingen Configureren

Stel de plotweergave in voordat u verbinding maakt:

// Plot titel instellen bluetoothPlotter.setPlotTitle("Sensor Data"); // Aslabels instellen bluetoothPlotter.setAxisLabels("Time", "Value"); // Vaste y-as bereik instellen bluetoothPlotter.setYAxisRange(-15, 30); // Of automatische schaal inschakelen bluetoothPlotter.enableAutoScale(true); // Aantal zichtbare datapunten instellen bluetoothPlotter.setMaxSamples(100); // Legendalabels voor elke dataserie instellen bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Ondersteunt ook 1, 2 of 4 labels: // bluetoothPlotter.setLegendLabels("Temperature"); // bluetoothPlotter.setLegendLabels("Temp", "Humidity"); // bluetoothPlotter.setLegendLabels("Ch1", "Ch2", "Ch3", "Ch4");

Data Verzenden naar Plotter

Meerdere methoden om 1 tot 4+ dataseries te sturen:

// Enkele waarde verzenden bluetoothPlotter.send(25.3); // Twee waarden (twee series) verzenden bluetoothPlotter.send(temperature, humidity); // Drie waarden (drie series) verzenden bluetoothPlotter.send(sine, cosine, tangent); // Vier waarden (vier series) verzenden bluetoothPlotter.send(ch1, ch2, ch3, ch4); // Array met waarden verzenden (elk aantal series) float values[] = {1.0, 2.0, 3.0, 4.0, 5.0}; bluetoothPlotter.send(values, 5); // Verzenden als geformatteerde string bluetoothPlotter.send("1.23,4.56,7.89");

Data-verzoek van de App Behandelen

Wanneer de app verbinding maakt en het Plotter scherm opent, kan het data opvragen:

bluetoothPlotter.onDataRequest([]() { Serial.println("App requested plot data"); // Optioneel initiale datapunten verzenden });

Verbindingsgebeurtenissen Afhandelen

bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); });

Hoe Werkt de Plotter

App Interface Bedieningselementen

De plotter interface in de DIYables Bluetooth App bevat:

  • Real-Time Grafiek: Scrollende lijngrafiek met meerdere dataseries
  • Legenda: Kleurenlabels voor elke dataserie
  • Auto-Scroll: Blijft continu scrollen om de nieuwste data te tonen

Dataformaat

Data wordt verzonden als komma-gescheiden float-waardes:

  • Enkele serie: bluetoothPlotter.send(value)
  • Meerdere series: bluetoothPlotter.send(val1, val2, val3)
  • Datasnelheid: Aanbevolen interval 10-100 ms voor vloeiende plotting

Programmeervoorbeelden

Enkele Sensor Plot

unsigned long lastPlotTime = 0; const unsigned long PLOT_INTERVAL = 100; // 10 Hz void setup() { bluetoothPlotter.setPlotTitle("Temperature"); bluetoothPlotter.setAxisLabels("Time", "°C"); bluetoothPlotter.setYAxisRange(0, 50); bluetoothPlotter.setLegendLabels("Temperature"); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); float temperature = readTemperatureSensor(); bluetoothPlotter.send(temperature); } delay(10); }

Multi-Sensor Accelerometer Plot

#include <Wire.h> #include <MPU6050.h> MPU6050 mpu; unsigned long lastPlotTime = 0; void setup() { Wire.begin(); mpu.initialize(); bluetoothPlotter.setPlotTitle("Accelerometer"); bluetoothPlotter.setAxisLabels("Time", "g"); bluetoothPlotter.setYAxisRange(-2.0, 2.0); bluetoothPlotter.setLegendLabels("X", "Y", "Z"); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= 50) { // 20 Hz lastPlotTime = millis(); int16_t ax, ay, az; mpu.getAcceleration(&ax, &ay, &az); float gx = ax / 16384.0; float gy = ay / 16384.0; float gz = az / 16384.0; bluetoothPlotter.send(gx, gy, gz); } delay(10); }

Analoge Pin Plotter

const int ANALOG_PINS[] = {34, 35, 36, 39}; const int NUM_CHANNELS = 4; unsigned long lastPlotTime = 0; void setup() { bluetoothPlotter.setPlotTitle("Analog Inputs"); bluetoothPlotter.setAxisLabels("Time", "ADC Value"); bluetoothPlotter.setYAxisRange(0, 4095); bluetoothPlotter.setMaxSamples(200); bluetoothPlotter.setLegendLabels("A34", "A35", "A36", "A39"); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= 100) { lastPlotTime = millis(); float values[NUM_CHANNELS]; for (int i = 0; i < NUM_CHANNELS; i++) { values[i] = analogRead(ANALOG_PINS[i]); } bluetoothPlotter.send(values, NUM_CHANNELS); } delay(10); }

Signaalgenerator

float phase = 0; unsigned long lastPlotTime = 0; void setup() { bluetoothPlotter.setPlotTitle("Signal Generator"); bluetoothPlotter.setAxisLabels("Time", "Amplitude"); bluetoothPlotter.setYAxisRange(-1.5, 1.5); bluetoothPlotter.setLegendLabels("Sine", "Square", "Triangle"); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= 50) { lastPlotTime = millis(); float sine = sin(phase); float square = (sin(phase) > 0) ? 1.0 : -1.0; float triangle = 2.0 * abs(fmod(phase / PI, 2.0) - 1.0) - 1.0; bluetoothPlotter.send(sine, square, triangle); phase += 0.1; if (phase > 2 * PI) phase -= 2 * PI; } delay(10); }

Geavanceerde Programmeertechnieken

Moving Average Filter

class MovingAverage { float buffer[10]; int index = 0; int count = 0; public: float add(float value) { buffer[index] = value; index = (index + 1) % 10; if (count < 10) count++; float sum = 0; for (int i = 0; i < count; i++) sum += buffer[i]; return sum / count; } }; MovingAverage filter1, filter2; unsigned long lastPlotTime = 0; void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= 100) { lastPlotTime = millis(); float raw = analogRead(34) * 3.3 / 4095.0; float filtered = filter1.add(raw); // Plot zowel ruwe als gefilterde waarden bluetoothPlotter.send(raw, filtered); } delay(10); }

Dynamische Plotconfiguratie

// Wijzig plotinstellingen tijdens runtime void switchToTemperatureMode() { bluetoothPlotter.setPlotTitle("Temperature Monitor"); bluetoothPlotter.setAxisLabels("Time", "°C"); bluetoothPlotter.setYAxisRange(-10, 50); bluetoothPlotter.setLegendLabels("Internal", "External"); } void switchToVoltageMode() { bluetoothPlotter.setPlotTitle("Voltage Monitor"); bluetoothPlotter.setAxisLabels("Time", "°C"); bluetoothPlotter.setYAxisRange(0, 3.3); bluetoothPlotter.setLegendLabels("Ch1", "Ch2", "Ch3"); }

BLE versus Classic Bluetooth - Welke Kiest U?

FeatureBLE (Esp32BLE_Plotter)Classic Bluetooth (Esp32Bluetooth_Plotter)
iOS Ondersteuning? Ja? Nee
Android Ondersteuning? Ja? Ja
StroomverbruikLaagHoog
Bereik~30-100m~10-100m
DatasnelheidLagerHoger
Koppeling VereistNee (auto-connect)Ja (handmatig koppelen)
Geschikt VoorBattery-powered, cross-platformHoog doorvoervolume, alleen Android

Probleemoplossing

Veelvoorkomende Problemen

1. Kan het apparaat niet vinden in de app

  • Zorg dat de ESP32 aan staat en de sketch is geüpload
  • Voor BLE: Zorg dat Bluetooth en Locatie aanstaan op uw telefoon
  • Voor Classic Bluetooth: Koppel het apparaat eerst via de Bluetooth-instellingen van de telefoon
  • Controleer of het juiste partitieschema is geselecteerd (Huge APP)

2. Plot werkt niet bijwerken

  • Controleer de Bluetooth-verbinding in de app
  • Controleer of bluetoothPlotter.send() wordt aangeroepen in de loop
  • Controleer of bluetooth.isConnected() true retourneert
  • Probeer los te koppelen en opnieuw te verbinden

3. Plot data ziet er schokkerig uit

  • Verlaag het plotinterval (bijv. 50ms in plaats van 500ms)
  • Zorg voor een stabiele Bluetooth-verbinding
  • Verminder het aantal dataseries bij beperkte bandbreedte

4. Y-as bereik is niet passend bij data

  • Gebruik enableAutoScale(true) voor automatische aanpassing
  • Of stel een breed bereik in met setYAxisRange()

5. Legenda labels worden niet getoond

  • Roep setLegendLabels() aan voordat verbinding tot stand komt
  • Zorg dat het aantal labels overeenkomt met het aantal dataseries

6. Sketch is te groot / onvoldoende ruimte

  • Ga in de Arduino IDE naar Tools > Partition Scheme en selecteer "Huge APP (3MB No OTA/1MB SPIFFS)" of "No OTA (Large APP)"
  • Het standaard partitieschema biedt alleen ~1.2MB voor app-code, wat niet genoeg is voor Bluetooth bibliotheken
  • Deze instelling geeft ~3MB ten koste van OTA (over-the-air update) partitie

Debug Tips

Voeg uitgebreide debugging toe:

void debugPlotterData(float v1, float v2, float v3) { Serial.println("=== Plotter Debug ==="); Serial.println("Value 1: " + String(v1, 2)); Serial.println("Value 2: " + String(v2, 2)); Serial.println("Value 3: " + String(v3, 2)); Serial.println("Free Heap: " + String(ESP.getFreeHeap())); Serial.println("====================="); }

Projectideeën

Sensor Monitoring

  • Temperatuur- en vochtigheidsgrafieken
  • Lichtintensiteit overdag meten
  • Bewegingsregistratie met accelerometer
  • Visualisatie van druksensor-datasets

Signaal Analyse

  • Audiorefrequentie visualisatie
  • Trillingsmonitoring
  • Pols-/hartslagweergave
  • Elektromagnetisch veldsterkte meten

Onderwijs

  • Vergelijking van sinus, cosinus en tangensgolven
  • Opladen/ontladen van RC-circuits
  • Visualisatie van PID-controller gedrag
  • Gegevenslogger voor natuurkundige experimenten

Industrie

  • Trillingsmonitoring van machines
  • Procesvariabelentrends
  • Energieverbruik bewaking
  • Kwaliteitscontrolegrafieken

Integratie met Andere Bluetooth Apps

Combineren met Bluetooth Slider

Gebruik sliders om parameters van het geplote signaal te regelen:

float frequency = 1.0; float amplitude = 1.0; bluetoothSlider.onSliderValue([](int slider1, int slider2) { frequency = map(slider1, 0, 100, 1, 20) / 10.0; amplitude = slider2 / 100.0; }); // In loop: float value = amplitude * sin(phase * frequency); bluetoothPlotter.send(value);

Combineren met Bluetooth Table

Toon huidige waarden naast de plot in een tabel:

bluetoothTable.sendValueUpdate("Current", String(currentValue, 2)); bluetoothTable.sendValueUpdate("Max", String(maxValue, 2)); bluetoothTable.sendValueUpdate("Min", String(minValue, 2)); bluetoothTable.sendValueUpdate("Average", String(average, 2));

Volgende Stappen

Nadat u het Bluetooth Plotter voorbeeld beheerst, probeer dan:

  1. Bluetooth Temperature - Voor gespecialiseerde temperatuurweergave
  2. Bluetooth Analog Gauge - Voor wijzerplaat-achtige visualisatie
  3. Bluetooth Table - Voor gestructureerde numerieke data
  4. Meerdere Bluetooth Apps - Combineer plotter met andere displays

Ondersteuning

Voor extra hulp:

  • Raadpleeg de API Reference documentatie
  • Arduino community forums

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!