Bluetooth Module HC-05: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(20 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 71: Zeile 72:
= Demo_SoftwareSerial.ino =
= Demo_SoftwareSerial.ino =
Dieses Demo empfängt Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
Dieses Demo empfängt Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Demo_SoftwareSerial.ino&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">#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);
}


URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/c-files/Demo_SoftwareSerial/Demo_SoftwareSerial.ino
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
  }
  }
}
</source>
|}
'''URL:''' https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/c-files/Demo_SoftwareSerial/Demo_SoftwareSerial.ino


= BluetoothIO.m =
Dieses Demo sendet Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Musterlösung&thinsp;</strong>
| <strong>BluetoothIO.m&thinsp;</strong>
|-
|-
| <source line lang="matlab" style="font-size:medium">close all; clc; % Initialisierung
| <source line lang="matlab" style="font-size:medium">if ~exist('HC05')
  HC05 = bluetooth("HC-05",1) % Verbindung aufbauen
end
disp('BT zu HC-05 wird aufgebaut...')


if ~isobject(hArduino)
 
  hArduino = arduino('COM8','Uno') % Verbindung aufbauen
%% Daten lesen
n = HC05.NumBytesAvailable;
if n>0
    Daten = read(HC05,n);
    disp(char(Daten))
end
end
tic % Timer starten
 
for i=1:100
%% Daten schreiben
     Spannung(i)= readVoltage(hArduino,'A0');
for i=1:10
     Zeit(i)   = toc;
    write(HC05,'1');
     pause(0.1) % in s
     disp('LED an')
    pause(1)
    write(HC05,'0');
     disp('LED aus')
     pause(1)
end
end


plot(Zeit,Spannung,'r.-')
clear HC05
xlabel('Zeit in s')
ylabel('Spannung in V')
</source>
</source>
|}
|}
 
'''URL:''' https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/m-files/BluetoothIO.m
= BluetoothIO.m =
Dieses Demo sendet Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.
 
URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/m-files/BluetoothIO.m


= Kommunikation via Putty =
= Kommunikation via Putty =
Zeile 111: Zeile 149:
# Im Prompt erscheint die Sendemitteilung <code>"Hallo vom Bluetooth Modul HC-05"</code>.
# Im Prompt erscheint die Sendemitteilung <code>"Hallo vom Bluetooth Modul HC-05"</code>.
# 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).
= Demo Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen =
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>DemoSendeFloatSerial.ino&thinsp;</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 = 1234.567;
  Serial.println(Datum_f32);
  delay(1000);
  Serial.println(-Datum_f32);
  delay(1000);
}
</source>
|}
URL: [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoSendeFloatSerial/DemoSendeFloatSerial.ino DemoSendeFloatSerial.ino]
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>empfangeBluetoothFloat.m&thinsp;</strong>
|-
| <source line lang="matlab" style="font-size:medium">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
</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&thinsp;</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
  }
}
</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 &thinsp;</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

Abb. 1: Bluetooth Modul HC-05

Autor: Prof. Dr.-Ing. Schneider

Einleitung

Technische Übersicht

Tabelle 1: Bluetooth Modul HC-05 GW-040
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

Abb. 2: Pin-Belegung des HC-05
Abb. 3: Anschluss des HC-05 an den Arduino
Tabelle 2: Pin-Belegung des HC-05
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

  1. Programmieren Sie den Arduino. Hierbei darf das BT Modul nicht bestromt sein. (Beispiel: Demo_SoftwareSerial.ino)
  2. Verkabeln Sie das BT Modul gemäß Abb. 3.
  3. Bei Spannungsversorgung blinkt die LED auf dem Modul.
  4. Koppeln Sie das BT Modul mit dem PC (Code: 1234).
  5. Führen Sie das MATLAB®-Skript BluetoothIO.m aus.
  6. 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.

URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/c-files/Demo_SoftwareSerial/Demo_SoftwareSerial.ino

BluetoothIO.m

Dieses Demo sendet Daten via Bluetooth und schaltet als visuelles Feedback LED D13 an und aus.

URL: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/_Semesterordner/SS2025/Sprint_2/m-files/BluetoothIO.m

Kommunikation via Putty

Abb. 4: COM-Port der BT Verbindung zum HC-05
Abb. 5: Einstellung: Serial
Abb. 6: Einstellung: Force on
Abb. 7: BT Fernsteuerung via Putty
  1. Starten Sie Putty
  2. Schauen Sie im Geräte Manager welchem COM-Port die BT-Verbindung zugeordnet wurde (hier: COM5, vgl. Abb. 4).
  3. Stellen Sie Putty ein (vgl. Abb. 5 und 6)
  4. Im Prompt erscheint die Sendemitteilung "Hallo vom Bluetooth Modul HC-05".
  5. Senden Sie '1' und '0', um die LED zu schalten (vgl. Abb. 7).

Demo Versenden (Arduino) und Empfangen (MATLAB) von Fließkommazahlen

URL: DemoSendeFloatSerial.ino

URL: empfangeBluetoothFloat.m

Demo Empfangen (Arduino) und Versenden (MATLAB) von Fließkommazahlen

URL: DemoEmpfangeFloatSerial.ino

URL: sendeBluetoothFloat.m

Nützliche Links