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

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

In diesem Arduino-Tutorial lernen wir, wie zwei HC-05-Bluetooth-Module als Master- und Slave-Geräte konfiguriert und gekoppelt werden. Sie können sich das folgende Video ansehen oder das unten stehende schriftliche Tutorial lesen.

Übersicht

In meinen beiden vorherigen Tutorials haben wir bereits gelernt, wie man das HC-05 Bluetooth-Modul mit dem Arduino verbindet und eine Kommunikation zwischen einem Android-Smartphone und dem Arduino herstellt. In diesen Tutorials haben wir das HC-05 Bluetooth-Modul mit seiner Standardkonfiguration als Slave-Gerät verwendet.

Konfigurieren des HC-05 Bluetooth-Moduls – AT-Befehle

Für dieses Tutorial müssen wir beide Module konfigurieren. Dazu müssen wir in den AT-Befehlsmodus wechseln und so werden wir das machen. Zuerst müssen wir das Bluetooth-Modul mit dem Arduino verbinden, wie die Schaltpläne in den vorherigen Tutorials erklärt haben. Was wir zusätzlich tun müssen, ist, den „EN“-Pin des Bluetooth-Moduls mit 5 Volt zu verbinden und auch die TX- und RX-Pins am Arduino-Board zu tauschen.

Der RX-Pin des Arduino muss also über den Spannungsteiler mit dem RX-Pin des Bluetooth-Moduls und der TX-Pin des Arduino mit dem TX-Pin des Bluetooth-Moduls verbunden werden. Während wir nun die kleine Taste über dem „EN“-Pin gedrückt halten, müssen wir das Modul mit Strom versorgen und so gelangen wir in den Befehlsmodus. Wenn die LED des Bluetooth-Moduls alle 2 Sekunden blinkt, bedeutet dies, dass wir erfolgreich in den AT-Befehlsmodus gewechselt sind.

Danach müssen wir eine leere Skizze auf den Arduino hochladen, aber vergessen Sie nicht, die RX- und TX-Leitungen während des Hochladens zu trennen. Dann müssen wir den Serial Monitor ausführen und dort „Both NL and CR“ sowie „38400 Baud“ auswählen, was die Standard-Baudrate des Bluetooth-Moduls ist. Jetzt können wir Befehle senden und ihr Format ist wie folgt.

Alle Befehle beginnen mit „AT“, gefolgt vom „+“-Zeichen, dann einem und enden entweder mit dem „?“ Zeichen, das den aktuellen Wert des Parameters zurückgibt, oder das Zeichen „=“, wenn wir einen neuen Wert für diesen Parameter eingeben möchten.

Slave-Konfiguration

Wenn wir also zum Beispiel nur „AT“ eingeben, was ein Testbefehl ist, sollten wir die Meldung „OK“ zurückgeben. Wenn wir dann "AT+UART?" Wir sollten die Nachricht zurückbekommen, die die Standard-Baudrate von 38400 anzeigt. Wenn wir dann „AT+ROLE?“ eingeben. Wir erhalten eine Nachricht „+ROLE=0“, was bedeutet, dass sich das Bluetooth-Gerät im Slave-Modus befindet. Wenn wir „AT+ADDR?“ eingeben Wir erhalten die Adresse des Bluetooth-Moduls zurück und sie sollte etwa so aussehen:98d3:34:905d3f.

Jetzt müssen wir diese Adresse notieren, da wir sie bei der Konfiguration des Master-Geräts benötigen. Eigentlich ist das alles, was wir bei der Konfiguration des Slave-Geräts brauchen, um seine Adresse zu erhalten, obwohl wir viele verschiedene Parameter wie Name, Baudrate, Pairing-Passwort usw. ändern können, aber das werden wir für dieses Beispiel nicht tun.

Master-Konfiguration

Ok, jetzt machen wir weiter und konfigurieren das andere Bluetooth-Modul als Master-Gerät. Zuerst überprüfen wir die Baudrate, um sicherzustellen, dass sie die gleiche 38400 wie die des Slave-Geräts ist. Durch Eingabe von „AT+ROLE=1“ legen wir das Bluetooth-Modul als Master-Gerät fest. Danach setzen wir mit „AT+CMODE=0“ den Verbindungsmodus auf „feste Adresse“ und mit dem Befehl „AT+BIND=“ stellen wir die zuvor notierte Adresse des Slave-Geräts ein.

Beachten Sie hier, dass wir beim Schreiben der Adresse Kommas anstelle von Doppelpunkten verwenden müssen. Beachten Sie auch, dass wir den vorherigen Schritt hätten überspringen können, wenn wir beim Befehl „AT+CMODE“ „1“ anstelle von „0“ eingegeben hätten, was den Master dazu bringt, sich mit jedem Gerät in seinem Übertragungsbereich zu verbinden, aber das ist eine weniger sichere Konfiguration. Hier finden Sie eine vollständige Liste der Befehle und Parameter:HC-05 AT-Befehlsliste

Nichtsdestotrotz ist das alles, was wir für eine grundlegende Konfiguration der Bluetooth-Module benötigen, um als Master- und Slave-Geräte zu arbeiten, und wenn wir sie jetzt wieder im normalen Datenmodus verbinden und die Module wieder einschalten, wird der Master in Sekundenschnelle eine Verbindung herstellen zum Sklaven. Beide Module beginnen alle 2 Sekunden zu blinken, was eine erfolgreiche Verbindung anzeigt.

Beispiel für die Kommunikation zwischen zwei HC-05-Bluetooth-Modulen

Ok, jetzt sind wir bereit, das praktische Beispiel für dieses Tutorial zu erstellen. Hier sind die Schaltpläne. Wir werden ein Potentiometer am Master verwenden, um einen Servomotor am Slave zu steuern. Und umgekehrt verwenden wir einen Taster am Slave, um eine LED am Master zu steuern.

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

  • HC-05 Bluetooth-Modul …………….
  • Arduino-Board ……………………………
  • Servomotor…………………………….….
  • Potentiometer……………..………..…….
  • 3x 220 Ohm-Widerstände …………………
  • Steckbrett und Schaltdrähte ……….

Arduino-Quellcodes

Beschreibung: Also müssen wir zuerst die Pins und einige Variablen definieren, die für das Programm benötigt werden. Im Setup-Bereich setzen wir am Master den LED-Pin als Ausgang und setzen ihn gleich auf Low, sowie starten die serielle Kommunikation mit 38400 Baudrate. Analog setzen wir beim Slave den Taster-Pin als Eingang, definieren das Servo an welchem ​​Pin angeschlossen ist und starten die serielle Kommunikation mit der gleichen Baudrate.

Im Schleifenabschnitt prüfen wir in beiden Codes mit der Funktion Serial.available(), ob verfügbare Daten in der seriellen Schnittstelle zum Lesen vorhanden sind, und mit der Funktion Serial.read() lesen und speichern wir die Daten in die Variable "Zustand". Wenn also der Master das Zeichen „1“ empfängt, das vom Slave gesendet wird, wenn der Tastenzustand hoch ist, oder die Taste gedrückt wird, leuchtet die LED. Andernfalls, wenn das Zeichen „0“ ist, ist die LED aus.

Was die Servomotorsteuerung betrifft, lesen wir zuerst am Master den Potentiometerwert und ordnen ihn einem geeigneten Bereich für den Servo von 0 bis 255 zu. Dieser Wert wird an den Slave gesendet, der ihn verwendet, um den Servomotor entsprechend zu drehen. Das ist alles, was wir brauchen, und hier ist die Demonstration des Beispiels.

Mastercode:

/* * How to configure and pair two HC-05 Bluetooth Modules * by Dejan Nedelkovski, www.HowToMechatronics.com * * == MASTER CODE == */ #define ledPin 9 int state = 0; int potValue = 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 } // Controlling the LED if (state == '1') { digitalWrite(ledPin, HIGH); // LED ON state = 0; } else if (state == '0') { digitalWrite(ledPin, LOW); // LED ON state = 0; } // Reading the potentiometer potValue = analogRead(A0); int potValueMapped = map(potValue, 0, 1023, 0, 255); Serial.write(potValueMapped); // Sends potValue to servo motor delay(10); } Codesprache:Arduino (arduino)

Slave-Code:

/*
 * How to configure and pair two HC-05 Bluetooth Modules
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 * 
 *                 == SLAVE CODE ==
 */
 
#include <Servo.h>
#define button 8

Servo myServo;
int state = 20;
int buttonState = 0;

void setup() {
  pinMode(button, INPUT);
  myServo.attach(9);
  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
 }
 // Controlling the servo motor
 myServo.write(state);
 delay(10);
 
 // Reading the button
 buttonState = digitalRead(button);
 if (buttonState == HIGH) {
   Serial.write('1'); // Sends '1' to the master to turn on LED
 }
 else {
   Serial.write('0');
 }  
} Codesprache:Arduino (arduino) 

Das ist alles, und wenn Sie irgendwelche Probleme haben, zögern Sie nicht, im Kommentarbereich unten um Hilfe zu bitten.


Herstellungsprozess

  1. Zusammenfassung:Wie Bluetooth LE und XLE die Zukunft des Asset-Trackings und -Monitorings sind
  2. Wie Bluetooth + Ultraschall =Bessere RTLS-Genauigkeit und geringere Kosten
  3. So überprüfen und kalibrieren Sie einen Feuchtigkeitssensor
  4. Wie man ein Arduino-Bluetooth-gesteuertes Auto baut
  5. Smarte Kaffeemaschine mit Arduino und Bluetooth
  6. Bluetooth-gesteuerter Pick-and-Place-Roboter
  7. So konfigurieren Sie NeoPixel mit Vixen Lights und Arduino
  8. So verfolgen Sie die Orientierung mit Arduino und dem ADXL345-Beschleunigungsmesser
  9. Werkzeugstahl verstehen und wie er hergestellt wird
  10. Wie unterscheidet man zwischen Bandsäge und Kreissäge?