Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Arduino und HC-05 Bluetooth-Modul Vollständiges Tutorial

In diesem Arduino Bluetooth-Tutorial lernen wir, wie Sie das HC-05-Modul zur Steuerung von Arduino über Bluetooth-Kommunikation verwenden. Sie können sich das folgende Video ansehen oder das schriftliche Tutorial unten lesen, um weitere Einzelheiten zu erfahren.

Übersicht

Für dieses Tutorial habe ich zwei Beispiele erstellt, die Steuerung des Arduino mit einem Smartphone und die Steuerung des Arduino mit einem Laptop oder PC. Um dieses Tutorial nicht zu überladen, werden wir in meinem nächsten Tutorial lernen, wie wir das HC-05 Bluetooth-Modul konfigurieren und eine Bluetooth-Kommunikation zwischen zwei separaten Arduino-Boards als Master- und Slave-Geräten herstellen können.

Bevor wir mit dem ersten Beispiel beginnen, der Steuerung eines Arduino per Smartphone, werfen wir einen genaueren Blick auf das Bluetooth-Modul HC-05. Im Vergleich zum HC-06-Modul, das nur als Slave eingestellt werden kann, kann das HC-05 auch als Master eingestellt werden, was eine Kommunikation zwischen zwei separaten Arduino-Boards ermöglicht. Es gibt mehrere verschiedene Versionen dieses Moduls, aber ich empfehle die, die auf einem Breakout-Board geliefert wird, da es auf diese Weise viel einfacher zu verbinden ist. Das HC-05-Modul ist ein Bluetooth-SPP-Modul (Serial Port Protocol), was bedeutet, dass es über die serielle Kommunikation mit dem Arduino kommuniziert.

Die für dieses Arduino-Tutorial benötigten Komponenten erhalten Sie von einer der folgenden Websites:

  • HC-05 Bluetooth-Modul …………….
  • Arduino-Board ……………………………
  • Steckbrett und Schaltdrähte ……… 

Schaltpläne


So müssen wir das Modul mit dem Arduino Board verbinden.

Das spezielle Modul, das ich habe, kann mit 3,6 bis 6 Volt betrieben werden, da es auf einem Breakout-Board kommt, das einen Spannungsregler enthält. Der logische Spannungspegel der Datenpins beträgt jedoch 3,3 V. Daher muss die Leitung zwischen dem Arduino TX (Transmit Pin, der einen 5-V-Ausgang hat) und dem Bluetooth-Modul RX (Receive Pin, der nur 3,3 V unterstützt) über einen Spannungsteiler verbunden werden, um das Modul nicht zu verbrennen. Andererseits kann die Leitung zwischen dem TX-Pin des Bluetooth-Moduls und dem Arduino-RX-Pin direkt angeschlossen werden, da das 3,3-V-Signal des Bluetooth-Moduls ausreicht, um als hohe Logik am Arduino-Board akzeptiert zu werden.

Beispiel-Quellcode für Arduino-Bluetooth-Kommunikation

So, jetzt sind wir bereit, den Arduino-Code zu erstellen, um die Kommunikation zwischen dem Arduino-Board und dem Smartphone zu ermöglichen. Wir werden ein einfaches Beispiel machen, indem wir einfach eine LED ein- und ausschalten, aber es wird gut genug sein, um die Kommunikation zu verstehen.

#define ledPin 7 int state = 0; void setup() { pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); Serial.begin(38400); // Default communication rate of the Bluetooth module } void loop() { if(Serial.available() > 0){ // Checks whether data is comming from the serial port state = Serial.read(); // Reads the data from the serial port } if (state == '0') { digitalWrite(ledPin, LOW); // Turn LED OFF Serial.println("LED: OFF"); // Send back, to the phone, the String "LED: ON" state = 0; } else if (state == '1') { digitalWrite(ledPin, HIGH); Serial.println("LED: ON");; state = 0; } } Codesprache:Arduino (arduino)

Beschreibung: Zuerst müssen wir den Pin definieren, an den unsere LED angeschlossen wird, und eine Variable, in der wir die vom Smartphone kommenden Daten speichern. Im Setup-Bereich müssen wir den LED-Pin als Ausgang definieren und sofort auf Low setzen. Wie bereits erwähnt, werden wir die serielle Kommunikation verwenden, also müssen wir die serielle Kommunikation mit einer Baudrate von 38400 beginnen, was die Standardbaudrate des Bluetooth-Moduls ist. Im Schleifenabschnitt mit der Funktion Serial.available() prüfen wir, ob es verfügbare Daten in der seriellen Schnittstelle zum Lesen gibt. Dies bedeutet, dass diese Aussage wahr ist, wenn wir Daten an das Bluetooth-Modul senden, sodass wir diese Daten dann mit der Funktion Serial.read() lesen und in die Variable „state“ einfügen. Wenn also der Arduino das Zeichen „0“ empfängt, schaltet er die LED aus und sendet mit der Funktion Serial.println() über die serielle Schnittstelle den String „LED:OFF“ an das Smartphone zurück. Zusätzlich setzen wir die „state“-Variable auf 0 zurück, sodass die beiden obigen Zeilen nur einmal ausgeführt werden. Beachten Sie hier, dass die „Status“-Variable eine ganze Zahl ist. Wenn wir also das Zeichen „0“ empfangen, das vom Smartphone kommt, ist der tatsächliche Wert der ganzzahligen „Status“-Variable 48, was laut ASCII dem Zeichen „0“ entspricht table.. Deshalb vergleichen wir in der „if“-Anweisung die „state“-Variable mit dem Zeichen „0“. Ist das empfangene Zeichen dagegen „1“, leuchtet die LED auf und der String „LED:ON“ wird zurückgesendet.

Jetzt kann der Code hochgeladen werden, aber dazu müssen wir die TX- und RX-Leitungen trennen, da der Arduino beim Hochladen die serielle Kommunikation verwendet, sodass die Pins RX (digitaler Pin 0) und TX (digitaler Pin 1) belegt sind. Wir können diesen Schritt vermeiden, wenn wir die anderen TX- und RX-Pins des Arduino-Boards verwenden, aber in diesem Fall müssen wir die SoftwareSerial.h-Bibliothek für die serielle Kommunikation verwenden.

Siehe auch:So konfigurieren und koppeln Sie zwei HC-05-Bluetooth-Module als Master und Slave | AT-Befehle

Verbinden des Smartphones mit dem HC-05 Bluetooth-Modul und dem Arduino

Jetzt können wir das Smartphone mit dem Bluetooth-Modul und dem Arduino verbinden. Hier müssen wir Bluetooth aktivieren und das Smartphone findet das HC-05 Bluetooth-Modul.

Dann müssen wir die Geräte koppeln und das Standardpasswort des HC-05-Moduls ist 1234. Nachdem wir die Geräte gekoppelt haben, benötigen wir eine Anwendung zur Steuerung des Arduino. Zu diesem Zweck gibt es im Play Store viele Anwendungen, die mit dem von uns geschriebenen Arduino-Code funktionieren. Ich habe jedoch mit der Online-Anwendung MIT App Inventor meine eigene benutzerdefinierte Anwendung für dieses Tutorial erstellt. Dies ist eine großartige und benutzerfreundliche Anwendung zum Erstellen von Android-Anwendungen. In meinem nächsten Tutorial finden Sie eine detaillierte Schritt-für-Schritt-Anleitung zum Erstellen Ihrer eigenen benutzerdefinierten Android-Anwendung für Ihr Arduino-Projekt.

Sie können die App, die ich für dieses Beispiel erstellt habe, hier herunterladen:

Arduino Bluetooth Tutorial Beispiel-Android-App

1 Datei(en) 1,38 MB Herunterladen

Mit dem Connect-Button verbinden wir das Smartphone mit dem Bluetooth-Modul und der Statustext unter dem Button sagt uns, ob wir uns erfolgreich verbunden haben. Mit den Schaltflächen „Turn ON“ und „Turn OFF“ können wir die LED ein- und ausschalten. Der Text über den Schaltflächen ist derjenige, den das Arduino an das Smartphone zurücksendet, wenn eine bestimmte Schaltfläche gedrückt wird.

Steuerung von Arduino mit einem Laptop oder PC über Bluetooth-Kommunikation

Mal sehen, wie wir den Arduino über Bluetooth mit einem Laptop oder einem PC steuern können. Also müssen wir zuerst unseren Laptop mit dem HC-05 Bluetooth-Modul koppeln, und das können wir über die Bluetooth-Einstellungen des Laptops tun. Der Laptop erkennt das HC-05-Modul und mit dem Passwort „1234“ koppeln wir die Geräte.

Sobald wir die Geräte im Laptop Device Manager gekoppelt haben, erscheinen unter Ports (COM &LPT) zwei neue Entitäten mit dem Namen „Standard Serial over Bluetooth Link“. Von hier aus können wir die COM-Port-Nummer des seriellen Ports sehen, über den die Geräte kommunizieren werden.

Wir bleiben beim gleichen Beispiel wie zuvor, schalten eine LED ein und aus und senden eine Zeichenfolge an den Laptop zurück, also verwenden wir denselben Arduino-Code wie zuvor beschrieben.

Verarbeitung des IDE-Quellcodes

Mit der Processing IDE erstellen wir nun ein Programm zur Steuerung des Arduino. Hier ist der Quellcode.

import processing.serial.*;
Serial myPort;
String ledStatus="LED: OFF";

void setup(){
  size(450, 500);
  myPort = new Serial(this, "COM5", 38400); // Starts the serial communication
  myPort.bufferUntil('\n'); // Defines up to which character the data from the serial port will be read. The character '\n' or 'New Line'
}
void serialEvent (Serial myPort){ // Checks for available data in the Serial Port
  ledStatus = myPort.readStringUntil('\n'); //Reads the data sent from the Arduino (the String "LED: OFF/ON) and it puts into the "ledStatus" variable
}

void draw(){
  background(237, 240, 241);
  fill(20, 160, 133); // Green Color
  stroke(33);
  strokeWeight(1);
  rect(50, 100, 150, 50, 10);  // Turn ON Button
  rect(250, 100, 150, 50, 10); // Turn OFF Button
  fill(255);
  
  textSize(32);
  text("Turn ON",60, 135);
  text("Turn OFF", 255, 135);
  textSize(24);
  fill(33);
  text("Status:", 180, 200);
  textSize(30);
  textSize(16);
  text("Program made by Dejan Nedelkovski,\n     www.HowToMechatronics.com", 80, 320);

  text(ledStatus, 155, 240); // Prints the string comming from the Arduino
  
  // If the button "Turn ON" is pressed
  if(mousePressed && mouseX>50 && mouseX<200 && mouseY>100 && mouseY<150){
    myPort.write('1'); // Sends the character '1' and that will turn on the LED
    // Highlighs the buttons in red color when pressed
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(50, 100, 150, 50, 10);
  }
  // If the button "Turn OFF" is pressed
  if(mousePressed && mouseX>250 && mouseX<400 && mouseY>100 && mouseY<150){
    myPort.write('0'); // Sends the character '0' and that will turn on the LED
    stroke(255,0,0);
    strokeWeight(2);
    noFill();
    rect(250, 100, 150, 50, 10);
  }
} Codesprache:Arduino (arduino) 

Beschreibung:  Wir müssen die serielle Bibliothek einschließen und ein serielles Objekt erstellen, um die serielle Kommunikation zu ermöglichen, sowie eine String-Variable für den LED-Status definieren. Im Setup-Bereich müssen wir die Fenstergröße des Programms einstellen und die serielle Kommunikation starten. Was die COM-Port-Nummer betrifft, müssen wir hier eine der beiden COM-Port-Nummern ausprobieren, die wir zuvor im Geräte-Manager bemerkt haben. Die nächste Zeile definiert die Pufferung des seriellen Ports und in unserem Fall so lange, bis es eine neue Zeile gibt, und tatsächlich gibt es jedes Mal eine neue Zeile, wenn der Arduino den String „LED:OFF“ oder „LED ON“ sendet, weil println( ) Funktion. Als nächstes prüfen wir mit der Funktion serialEvent(), ob Daten in der seriellen Schnittstelle zum Lesen verfügbar sind. Wenn ja, lesen wir mit der Funktion readStringUntil() diese Daten von der seriellen Schnittstelle, die vom Arduino gesendet wurden, und in unserem Fall ist das der String „LED:OFF“ oder „LED:ON“.

In der Hauptfunktion draw(), die sich ständig wiederholt, erstellen wir alle Grafiken und Funktionen des Programms. Also müssen wir zuerst die Hintergrundfarbe, die Füllfarbe, die Strichstärke und -farbe festlegen und mit der Funktion rect() zeichnen wir die beiden Schaltflächen. Mit der Funktion text() drucken wir den gesamten Text, einschließlich des ledStatus-Strings, der vom Arduino kommt. Was jetzt noch übrig bleibt, ist, die Tasten funktionsfähig zu machen. Mit der ersten „if“-Anweisung begrenzen wir also den Bereich der „Turn ON“-Taste, so dass, wenn die Taste gedrückt wird, das Zeichen „1“ über die serielle Schnittstelle an den Arduino gesendet wird und die LED einschaltet. Die nächsten for-Zeilen werden verwendet, um die Schaltfläche hervorzuheben, wenn sie gedrückt wird. Das gleiche Verfahren gilt für die Schaltfläche „Ausschalten“.

Jetzt ist das Programm bereit. Wenn wir also auf die Schaltfläche „Ausführen“ klicken, aktiviert das Programm automatisch die Bluetooth-Kommunikation zwischen dem Laptop und dem Arduino. Das HC-05 Bluetooth-Modul beginnt alle zwei Sekunden zu blinken, was anzeigt, dass das Modul verbunden ist und wir die LED mit unserem Laptop steuern können.

Das ist alles für dieses Tutorial, aber vergessen Sie nicht, mein nächstes Tutorial zu lesen, in dem wir lernen, wie wir das HC-05-Bluetooth-Modul konfigurieren und eine Bluetooth-Kommunikation zwischen zwei separaten Arduino-Boards als Master- und Slave-Geräten herstellen können.

Sie können auch gerne Fragen in den Kommentaren unten stellen und vergessen Sie nicht, sich meine Sammlung von Arduino-Projekten anzusehen.


Herstellungsprozess

  1. Anleitung zum Arduino-RFID-Schloss
  2. JX-Wellengenerator
  3. u-blox LEA-6H 02 GPS-Modul mit Arduino und Python
  4. Ein Sturzerkennungssystem basierend auf Arduino, Windows und Azure
  5. Autosteuerung mit Arduino Uno und Bluetooth
  6. Anleitung zum Arduino-Fingerabdrucksensor
  7. ArduRadio AlarmClock
  8. Smarte Kaffeemaschine mit Arduino und Bluetooth
  9. Raspberry Pi und Arduino-Laptop
  10. rDUINOScope