Bemerkung
Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten.
Warum beitreten?
Expertenunterstützung: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams.
Lernen & Teilen: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern.
Exklusive Vorschauen: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken.
Spezialrabatte: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte.
Festliche Aktionen und Gewinnspiele: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil.
👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [hier] und treten Sie heute bei!
Bluetooth-Klavier
Dieses Projekt nutzt eine mit dem MIT App Inventor erstellte Android-App, um eine einfache „Klavier“-Funktion mittels eines JDY-31 Bluetooth-Moduls und eines passiven Summer-Moduls zu ermöglichen. Das Bluetooth-Klavier-Projekt erlaubt den Nutzern, verschiedene Musiknoten auf einem passiven Summer-Modul mithilfe eines JDY-31 Bluetooth-Moduls zu spielen. Durch das Senden spezifischer Notenanweisungen via Bluetooth an den Arduino können Nutzer die entsprechenden Töne auf dem Summer erzeugen.
Die Android-Anwendung wird mithilfe einer kostenlosen, webbasierten Plattform namens MIT App Inventor erstellt. Das Projekt bietet eine hervorragende Möglichkeit, Erfahrung im Umgang mit der Schnittstelle zwischen einem Arduino und einem Smartphone zu sammeln.
1. Schaltung aufbauen
2. Android-App erstellen
Die Android-Anwendung wird mit einer kostenlosen Webanwendung namens MIT App Inventor entwickelt. Der MIT App Inventor dient als ausgezeichneter Einstieg in die Android-Entwicklung, dank seiner intuitiven Drag-and-Drop-Funktionen zur Erstellung einfacher Anwendungen.
Jetzt geht’s los.
Rufen Sie Get Started with MIT App Inventor auf und klicken Sie auf „Online-Tool“, um sich anzumelden. Sie benötigen ein Google-Konto, um sich beim MIT App Inventor zu registrieren.
Nach dem Login navigieren Sie zu Projects -> Import project (.aia) from my computer. Laden Sie anschließend die Datei
piano.aiahoch, die sich im Pfadultimate-sensor-kit\iot_project\bluetooth\06-Bluetooth_pianobefindet.Direkter Download hier möglich:
piano.aia
Nach dem Hochladen der
.aia-Datei erscheint die Anwendung in der Software des MIT App Inventors. Dies ist eine vorkonfigurierte Vorlage, die Sie nach dem Kennenlernen des MIT App Inventors modifizieren können.Im MIT App Inventor gibt es zwei Hauptbereiche: den Designer und die Blocks. Sie können in der oberen rechten Ecke der Seite zwischen diesen beiden Bereichen wechseln.
Der Designer ermöglicht das Hinzufügen von Buttons, Texten, Bildschirmen und die Anpassung des Gesamtdesigns Ihrer Anwendung.
Als Nächstes gibt es den Bereich Blocks. In diesem Abschnitt können Sie individuelle Funktionen für Ihre App programmieren und so jedes Element in der GUI der App nach Ihren Wünschen gestalten.
Um die Anwendung auf einem Smartphone zu installieren, navigieren Sie zum Build-Tab.
Sie können eine
.apk-Datei generieren. Nach der Auswahl dieser Option erscheint eine Seite, auf der Sie wählen können, ob Sie eine.apk-Datei herunterladen oder einen QR-Code zum Installieren scannen möchten. Folgen Sie dem Installationsleitfaden, um die Installation der Anwendung abzuschließen.Unsere vorab kompilierte APK können Sie auch hier herunterladen:
piano.apkFalls Sie diese App im Google Play Store oder einem anderen App-Marktplatz veröffentlichen möchten, können Sie eine
.aab-Datei generieren.
3. Den Code hochladen
Öffnen Sie die Datei
06-Bluetooth_piano.inounter dem Pfadultimate-sensor-kit\iot_project\bluetooth\06-Bluetooth_pianooder kopieren Sie diesen Code in die Arduino IDE.Nach der Auswahl des richtigen Boards und Ports, klicken Sie auf die Hochladen-Schaltfläche.
Öffnen Sie den seriellen Monitor (Baudrate auf 9600 einstellen), um Debug-Nachrichten anzuzeigen.
4. App und Bluetooth-Modul verbinden
Stellen Sie sicher, dass die zuvor erstellte Anwendung auf Ihrem Smartphone installiert ist.
Aktivieren Sie zunächst Bluetooth auf Ihrem Smartphone.
Navigieren Sie zu den Bluetooth-Einstellungen auf Ihrem Smartphone und suchen Sie nach Namen wie JDY-31-SPP.
Klicken Sie darauf und bestätigen Sie die Kopplungsanfrage im aufpoppenden Fenster. Falls ein Kopplungscode erforderlich ist, geben Sie „1234“ ein.
Öffnen Sie nun die neu installierte Piano-App.
In der App klicken Sie auf die Verbinden-Schaltfläche, um eine Verbindung zwischen der App und dem Bluetooth-Modul herzustellen.
Diese Seite zeigt eine Liste aller gekoppelten Bluetooth-Geräte an. Wählen Sie die Option
xx.xx.xx.xx.xx.xx JDY-31-SPPaus der Liste aus. Der Name jedes Geräts ist neben seiner MAC-Adresse aufgeführt.
Falls Sie auf der oben gezeigten Seite keine Geräte sehen, könnte dies daran liegen, dass der App die Berechtigung zur Suche nach nahegelegenen Geräten fehlt. In diesem Fall müssen Sie die Einstellungen manuell anpassen.
Um zur App-Info-Seite zu gelangen, halten Sie das App-Symbol gedrückt und wählen Sie es aus. Alternativ können Sie auch eine andere Methode verwenden, um diese Seite zu erreichen.
Navigieren Sie zur Berechtigungen-Seite.
Um der App das Scannen nach nahegelegenen Geräten zu ermöglichen, gehen Sie zu Nahegelegene Geräte und wählen Immer aus.
Starten Sie nun die App neu und wiederholen Sie die Schritte 5 und 6, um erfolgreich eine Bluetooth-Verbindung herzustellen.
Nach einer erfolgreichen Verbindung können Sie in der App auf die Tasten klicken, um verschiedene Noten zu spielen, und sogar einige einfache Lieder ausführen.
5. Code-Erklärung
Bibliotheken und Pins einrichten
#include "pitches.h" #include <SoftwareSerial.h> const int bluetoothTx = 3; const int bluetoothRx = 4; SoftwareSerial bleSerial(bluetoothTx, bluetoothRx); const int buzzerPin = 2;
pitches.h: Diese Datei enthält die Frequenzwerte für musikalische Noten.
Variablendeklaration zur Speicherung von Bluetooth-Daten
char character; String noteType;
character: Speichert einzelne Zeichen, die über Bluetooth empfangen werden.noteType: Fasst die Zeichen zusammen, um die vollständige Notenanweisung zu bilden.
Setup-Funktion - Initialisierung der seriellen Kommunikation
void setup() { Serial.begin(9600); bleSerial.begin(9600); }
Initialisiert die serielle Kommunikation mit einer Baudrate von 9600.
Die Standard-
Serialdient zur Fehlersuche, währendbleSerialspeziell für die Bluetooth-Kommunikation vorgesehen ist.
Hauptschleife - Lesen von Bluetooth-Daten und Abspielen entsprechender Noten
void loop() { while (bleSerial.available() > 0) { character = bleSerial.read(); noteType = noteType + character; if (character == '*') { noteType = noteType.substring(0, noteType.length() - 1); Serial.println(noteType); if (noteType == "NOTE_C4") { tone(buzzerPin, NOTE_C4); } // ... weitere Noten werden ähnlich überprüft ... noteType = ""; delay(200); noTone(buzzerPin); } } }
Liest Zeichen von Bluetooth und bildet den
noteType.Wenn ein Sternchen (‚*‘) erkannt wird, signalisiert dies das Ende der Notenanweisung. Die Note wird dann abgespielt, kurz verzögert und dann gestoppt.