Bluetooth Module HC-05: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| (9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
[[Kategorie:Arduino]] | [[Kategorie:Arduino]] | ||
[[Kategorie:Sensoren]] | |||
[[Datei:Bluetooth Modul HC-05.jpg|thumb|rigth|300px|Abb. 1: Bluetooth Modul HC-05]] | [[Datei:Bluetooth Modul HC-05.jpg|thumb|rigth|300px|Abb. 1: Bluetooth Modul HC-05]] | ||
'''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | '''Autor:''' [[Benutzer:Ulrich_Schneider| Prof. Dr.-Ing. Schneider]] | ||
| Zeile 149: | Zeile 150: | ||
# Senden Sie <code>'1'</code> und <code>'0'</code>, um die LED zu schalten (vgl. Abb. 7). | # Senden Sie <code>'1'</code> und <code>'0'</code>, um die LED zu schalten (vgl. Abb. 7). | ||
= Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen = | = Demo Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen = | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
| <strong>DemoSendeFloatSerial.ino </strong> | | <strong>DemoSendeFloatSerial.ino </strong> | ||
| Zeile 165: | Zeile 166: | ||
delay(1000); | delay(1000); | ||
} | } | ||
} | </source> | ||
|} | |||
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoSendeFloatSerial/DemoSendeFloatSerial.ino DemoSendeFloatSerial.ino] | URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoSendeFloatSerial/DemoSendeFloatSerial.ino DemoSendeFloatSerial.ino] | ||
| Zeile 195: | Zeile 197: | ||
end | end | ||
end | end | ||
</source> | |||
|} | |||
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoSendeFloatSerial/empfangeBluetoothFloat.m empfangeBluetoothFloat.m] | |||
= Demo Empfangen (Arduino) und Versenden (MATLAB) von Fließkommazahlen = | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>DemoEmpfangeFloatSerial.ino </strong> | |||
|- | |||
| <source line lang="c" style="font-size:medium">void setup() { | |||
Serial.begin(9600); | |||
Serial.println("Hallo vom Bluetooth Modul HC-05"); | |||
} | } | ||
void loop() { | |||
float Datum_f32 = 0.0; | |||
if(Serial.available()) // wenn Daten empfangen werden... | |||
{ | |||
Serial.readBytes((char*)&Datum_f32,sizeof(Datum_f32)); // Bytes auslesen | |||
Serial.print("Empfangen: "); | |||
Serial.println(Datum_f32,4); // 4 Nachkommastellen | |||
} | |||
} | } | ||
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/ | </source> | ||
|} | |||
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoEmpfangeFloatSerial/DemoEmpfangeFloatSerial.ino DemoEmpfangeFloatSerial.ino] | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>sendeBluetoothFloat.m  </strong> | |||
|- | |||
| <source line lang="matlab" style="font-size:medium">if ~exist('HC05') | |||
disp('BT zu HC-05 wird aufgebaut...') | |||
HC05 = bluetooth("HC-05",1) % Verbindung aufbauen | |||
else | |||
disp('Bestehende Verbindung zu HC-05 wird verwendet...') | |||
end | |||
i=0; | |||
while i<1000 | |||
i=i+1; | |||
fDatum = single(i+0.5678) | |||
%% Daten senden | |||
% Konvertieren der Float-Zahl in einen Byte-Array | |||
bytesToSend = typecast(fDatum, 'uint8'); | |||
% Senden der Byte-Daten | |||
write(HC05, bytesToSend, "uint8"); | |||
pause(0.1) | |||
end | |||
</source> | |||
|} | |||
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoEmpfangeFloatSerial/sendeBluetoothFloat.m sendeBluetoothFloat.m] | |||
= Nützliche Links = | = Nützliche Links = | ||
* [[Bluetooth Module HC-05 - AT-Modus]] | |||
*[http://shelvin.de/das-bluetooth-modul-hc-05-am-arduino-in-betrieb-nehmen/ das-bluetooth-modul-hc-05-am-arduino-in-betrieb-nehmen] | *[http://shelvin.de/das-bluetooth-modul-hc-05-am-arduino-in-betrieb-nehmen/ das-bluetooth-modul-hc-05-am-arduino-in-betrieb-nehmen] | ||
* [https://www.martyncurrey.com/hc-05-and-hc-06-zs-040-bluetooth-modules-first-look/HC-05 Bluetooth Modul] | * [https://www.martyncurrey.com/hc-05-and-hc-06-zs-040-bluetooth-modules-first-look/HC-05 Bluetooth Modul] | ||
* [https://www.heise.de/blog/Auf-den-Zahn-gefuehlt-3361763.html Bluetooth: Auf den blauen Zahn gefühlt] | * [https://www.heise.de/blog/Auf-den-Zahn-gefuehlt-3361763.html Bluetooth: Auf den blauen Zahn gefühlt] | ||
Aktuelle Version vom 28. Oktober 2025, 11:15 Uhr

Autor: Prof. Dr.-Ing. Schneider
Einleitung
Technische Übersicht
| Eigenschaft | Daten |
|---|---|
| Name | HC-05 |
| Versorgungsspannung | 3,6 V bis 6 V Leitungen arbeiten mit einer Spannung von 3,3 V |
| Stromaufnahme | bis zu 40 mA |
| Sendeleistung | Klasse 2 - Sendeleistung max. + 6 dBm |
| Reichweite | bis zu 10 m |
| Standard | Bluetooth 2.0 + EDR |
| Kommunikation | UART (RX, TX) |
| Standard-Pairing-Code | 1234 |
| Abmessungen | 37 x 17 mm |
| Konfiguration | SPP-Profil mit Einstellmöglichkeit über AT-Befehle |
| Datenrate | 9600 bis 38400 baud |
Anschlussplan


| Pin | Anschluss | Bemerkung | Arduino |
|---|---|---|---|
| 1 | EN/Key | Dient zum Umschalten zwischen Befehls- und Datenmodus. Ein hoher Eingang (3,3 V) versetzt das Modul in den Befehlsmodus und ermöglicht AT-Befehle, während ein niedriger Eingang es in den Datenmodus versetzt. | NC |
| 2 | VCC (3,6 V bis 6 V) | 3,6 V oder 5 V | |
| 3 | GND | GND | |
| 4 | TXD | Sendet Daten vom HC-05-Modul an ein anderes Gerät. Anschluss an den RX-Pin eines Mikrocontrollers (z. B. Arduino). | RX <- 0 |
| 5 | RXD | Empfängt Daten von einem anderen Gerät in das HC-05-Modul. Anschluss an den TX-Pin eines Mikrocontrollers. | TX <- 0 |
| 6 | STATE | Verbindung zur Status LED | NC |
Blinkstatus/STATE
- Status-LED: schnelles Blinken = verbindungsbereit
- langsames Blinken = Verbindung hergestellt
- Blinken im 2-sek-Takt = AT-Modus im AT-Modus lässt sich das Modul per Arduino IDE programmieren
Getting Started
- Programmieren Sie den Arduino. Hierbei darf das BT Modul nicht bestromt sein. (Beispiel:
Demo_SoftwareSerial.ino) - Verkabeln Sie das BT Modul gemäß Abb. 3.
- Bei Spannungsversorgung blinkt die LED auf dem Modul.
- Koppeln Sie das BT Modul mit dem PC (Code: 1234).
- Führen Sie das MATLAB®-Skript
BluetoothIO.maus. - LED 13 sollte im Sekundentakt blinken.
Demo_SoftwareSerial.ino
Dieses Demo empfängt Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
| Demo_SoftwareSerial.ino |
#include <SoftwareSerial.h>
SoftwareSerial mySerial(0, 1); // RX, TX
void setup() {
mySerial.begin(9600);
mySerial.println("Hallo vom Bluetooth Modul HC-05");
pinMode(13,OUTPUT);
}
void loop() {
char Daten;
if(mySerial.available()) //wenn Daten empfangen werden...
{
Daten=mySerial.read();//..sollen diese ausgelesen werden
if (Daten =='1') //wenn das Bluetooth Modul eine „1“ empfängt..
{
digitalWrite(13,HIGH); //...soll die LED leuchten
}
else if (Daten =='0') //wenn das Bluetooth Modul „0“ empfängt...
{
digitalWrite(13,LOW); //..soll die LED nicht leuchten
}
}
}
|
BluetoothIO.m
Dieses Demo sendet Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
| BluetoothIO.m |
if ~exist('HC05')
HC05 = bluetooth("HC-05",1) % Verbindung aufbauen
end
disp('BT zu HC-05 wird aufgebaut...')
%% Daten lesen
n = HC05.NumBytesAvailable;
if n>0
Daten = read(HC05,n);
disp(char(Daten))
end
%% Daten schreiben
for i=1:10
write(HC05,'1');
disp('LED an')
pause(1)
write(HC05,'0');
disp('LED aus')
pause(1)
end
clear HC05
|
Kommunikation via Putty




- Starten Sie Putty
- Schauen Sie im Geräte Manager welchem COM-Port die BT-Verbindung zugeordnet wurde (hier: COM5, vgl. Abb. 4).
- Stellen Sie Putty ein (vgl. Abb. 5 und 6)
- Im Prompt erscheint die Sendemitteilung
"Hallo vom Bluetooth Modul HC-05". - Senden Sie
'1'und'0', um die LED zu schalten (vgl. Abb. 7).
Demo Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen
| DemoSendeFloatSerial.ino |
void setup() {
Serial.begin(9600);
Serial.println("Hallo vom Bluetooth Modul HC-05");
}
void loop() {
float Datum_f32 = 1234.567;
Serial.println(Datum_f32);
delay(1000);
Serial.println(-Datum_f32);
delay(1000);
}
|
| empfangeBluetoothFloat.m |
if ~exist('HC05')
HC05 = bluetooth("HC-05",1) % Verbindung aufbauen
disp('BT zu HC-05 wird aufgebaut...')
else
disp('Bestehende Verbindung zu HC-05 wird verwendet...')
end
nDaten = 100; % Anzahl der Datensätze
i= 0; % Datenzähler
tic;
%% Bluetooth empfangen
while i<nDaten
%% Daten lesen
n = HC05.NumBytesAvailable;
if n>0
n
data = readline(HC05); % Zeile lesen
if ~isempty(data)
i = i+1
floatValue(i) = str2double(data);
Zeit(i) = toc;
end
end
end
|
Demo Empfangen (Arduino) und Versenden (MATLAB) von Fließkommazahlen
| DemoEmpfangeFloatSerial.ino |
void setup() {
Serial.begin(9600);
Serial.println("Hallo vom Bluetooth Modul HC-05");
}
void loop() {
float Datum_f32 = 0.0;
if(Serial.available()) // wenn Daten empfangen werden...
{
Serial.readBytes((char*)&Datum_f32,sizeof(Datum_f32)); // Bytes auslesen
Serial.print("Empfangen: ");
Serial.println(Datum_f32,4); // 4 Nachkommastellen
}
}
|
URL: DemoEmpfangeFloatSerial.ino
| sendeBluetoothFloat.m |
if ~exist('HC05')
disp('BT zu HC-05 wird aufgebaut...')
HC05 = bluetooth("HC-05",1) % Verbindung aufbauen
else
disp('Bestehende Verbindung zu HC-05 wird verwendet...')
end
i=0;
while i<1000
i=i+1;
fDatum = single(i+0.5678)
%% Daten senden
% Konvertieren der Float-Zahl in einen Byte-Array
bytesToSend = typecast(fDatum, 'uint8');
% Senden der Byte-Daten
write(HC05, bytesToSend, "uint8");
pause(0.1)
end
|