Bluetooth-Steuerung. Arduino-Lektionen: Geräte über ein Smartphone steuern für Dummies Arduino mit einem COM-Port über Bluetooth verbinden

Um Informationen zwischen verschiedenen Geräten über kurze Distanzen drahtlos auszutauschen, können Sie die Bluetooth-Technologie nutzen. Zu diesem Zweck stellt die chinesische Industrie verschiedene Bluetooth-Module her, unter denen sich die Modelle HC-05 und HC-06 großer Beliebtheit erfreuen. Einmal habe ich bei Aliexpress einen HC-06 gekauft, mit dem ich weitere Experimente durchführen und ihn an mein chinesisches Analogon von Arduino anschließen werde.

Direkt das Bluetooth-Modul selbst. In dieser Form kann es in verschiedenen Geräten eingesetzt werden, wo es direkt in die Platine eingelötet wird. Das Modul verfügt über 34 Pins, darunter: Pins zum Anschluss an einen Computer über UART, Audioübertragung im PCM-Verfahren (Pulse Code Modulation), analoger Ein- und Ausgang, Pins zum Anschluss an einen USB-Anschluss, SPI-Schnittstelle sowie allgemein- Zweckanschlüsse. Tatsächlich stehen nicht alle dieser Pins zur Verfügung; der Zugriff auf die Audioübertragungspins (5-8), den analogen Eingang und Ausgang (9, 10) sowie auf die Kontaktgruppe für den Anschluss an USB (15, 20) ist gesperrt.

HC-06 basiert auf einem BC417-Chip (BlueCore4-Externes Gerät), Bluetooth V2.0-Spezifikation. Außerdem sind 26-MHz-Quarz und 8 MB Flash-Speicher an Bord. Die Stromversorgung erfolgt über 3,3 V.

Für Ihre Designs ist es am bequemsten, ein Modul mit Steckbrett zu verwenden, auf dem die notwendigen Kontakte für Anschlüsse angezeigt werden, außerdem gibt es einen Spannungsstabilisator, der eine Stromversorgung ab 5 Volt ermöglicht.
Beim Kauf solcher Module kann es zu unterschiedlichen Kennzeichnungen kommen. Im Wesentlichen handelt es sich hierbei um dasselbe Gerät, das sich jedoch in der Firmware unterscheidet, die den Modulmodus (Master/Slave) bestimmt.

Der Unterschied zwischen dem HC-05 und dem HC-06 besteht darin, dass der HC-05 als Master oder Slave verwendet werden kann. Diese Modi werden mit AT-Befehlen eingestellt. Eine Taste auf der Modulplatine schaltet es in den AT-Befehlseingabemodus. Der Master-Modus ermöglicht es dem Modul, ein solches Gerät selbst zu erkennen und die Kommunikation mit ihm zu organisieren. Das HC-06-Modul kann nur in einem festen Slave-Modus betrieben werden.

Es gibt auch die Modelle HC-03 und HC-04, die jedoch für industrielle Zwecke hergestellt werden.

Bezeichnung der Kontakte auf der HC-06-Platine.

ZUSTAND- Überprüfen des Status des Moduls. Dieser Pin dupliziert das Signal, das von der in der Platine eingebauten LED angezeigt wird. Wenn es sehr schnell blinkt, befindet sich das Modul in einem aktiven Zustand. Im Kommunikationsmodus beträgt der Strom 30-40 mA. Wenn das Modul die Kommunikation mit einem anderen Gerät aufbaut, leuchtet die LED einfach auf. Im Datenübertragungsmodus beträgt der Strom 8 mA.
RX- Daten empfangen.
TX- Datentransfer.
GND- verbindet sich mit Masse.
+5V- Stromversorgung +5 Volt
DE- Schalten Sie das Modul ein/aus. Wenn Sie an diesen Kontakt eine logische 1 (5 Volt) anlegen, schaltet sich das Modul aus. Wenn Sie an diesen Kontakt eine logische 0 anlegen oder keine Verbindung herstellen, funktioniert das Modul.

Standardmäßig verfügt der HC-06 über einen Namen zur Erkennung durch andere Geräte. HC-06", mit PIN-Code " 1234 ».

Um diese Daten zu ändern, müssen Sie das Modul an Ihren Computer anschließen und über ein Terminalprogramm AT-Befehle eingeben. Dies kann über einen USB-zu-COM-Adapter mit TTL-Pegeln erfolgen. Für diese Zwecke ist ein Adapter für PL2303HX, CH340G oder ein ähnlicher Adapter geeignet. Zu diesem Zeitpunkt sollte der Treiber für den USB-Adapter bereits auf dem Computer installiert sein.

Wir verbinden die Kontakte wie folgt:

HC-06 USB-zu-COM-Adapter
+5V +5V
GND GND
RX TX
TX RX

Wenn Sie diese Baugruppe an Ihren Computer anschließen, beginnt die rote LED auf der Bluetooth-Modulplatine schnell zu blinken. Zur Eingabe von AT-Befehlen können Sie jedes Terminalprogramm verwenden; ich verwende hierfür die Arduino IDE.

Wählen Sie in den Einstellungen die Nummer des virtuellen COM-Ports aus, an dem der USB-Adapter angeschlossen ist, in meinem Fall ist es COM44. Lass uns das Fenster öffnen“ Monitor der seriellen Schnittstelle».

Geben Sie den Befehl in Großbuchstaben ein „ BEI„Wenn das Gerät erfolgreich verbunden wurde, sollte die Antwort zurückkommen“ OK" Die Standard-Datenaustauschrate beträgt 9600 Baud.

Um die Firmware-Version zu überprüfen, geben Sie den Befehl „ AT+VERSION", in meinem Fall kam die Antwort zurück" OKlinvorV1.8».

Team " AT+NAMEyyy", Wo Wow- ein beliebiger Satz lateinischer Zeichen. Wir können den Namen ändern, unter dem unser Bluetooth-Gerätemodul gefunden wird (standardmäßig HC-06). In meinem Beispiel habe ich eingegeben „ AT+NAMEfox", die Antwort wird zurückgegeben OKsetname.

Team " AT+PINxxxx", Wo xxxx– ein zufälliger Satz von Zahlen, Sie können den PIN-Code ändern (Standard 1234). Die Antwort kommt zurück“ OKsetPIN».

Team " AT+BAUDx", Wo X– Wert von 1 bis 9, Sie können die Baudrate ändern (Standard 9600).

1 - 1200
2 - 2400
3 - 4800
4 - 9600
5 - 19200
6 - 38400
7 - 57600
8 - 115200
9 - 230400

Wenn wir zum Beispiel den Befehl „ AT+BAUD8", wobei 8 die Geschwindigkeit von 115200 Baud ist, wird die Antwort zurückgegeben " OK115200».

HC-06 mit Arduino verbinden.

Beispiel 1. Laden wir eine Skizze auf Arduino hoch, mit der wir über das Bluetooth-Modul die an Pin 13 des Arduino angelötete LED ein- und ausschalten.

int-Daten;
int LED = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED, AUSGANG);
digitalWrite(LED, HIGH);
}
Leere Schleife()
{
if (Serial.available())
{
data = Serial.read();
if (Daten == "1")
{
digitalWrite(LED, HIGH);
}
if (Daten == „0“)
{
digitalWrite(LED, LOW);
}
}
}

Wenn Sie diese LED nicht auf der Platine haben, schließen Sie sie gemäß dem Diagramm an Pin 13 an; Widerstandswerte können von 220 Ohm bis 1 kOhm übernommen werden.

Schalten Sie den Arduino aus und schließen Sie den HC-06 an. Kontakt TX Verbinden Sie das Modul mit dem Kontakt RX Arduino (Pin 0 auf der UNO-Platine) und der Pin RX, in Verbindung zu treten TX(Pin 1). Kontakte +5V Und GND, mit den entsprechenden Arduino-Pins verbinden.

Zusammengebaute Struktur. Sobald der Arduino mit Strom versorgt wird, sollte die LED am HC-06 schnell blinken.

Arduino über HC-06 mit einem Computer steuern.

Ich werde ein Beispiel unter Windows XP zeigen. Jeder USB-Bluetooth-Adapter muss mit dem Computer verbunden und darauf installierte Treiber sein.

In meinem Fall habe ich diesen Adapter verwendet.

Wenn es an einen PC angeschlossen ist, erscheint ein entsprechendes Symbol in der Taskleiste (neben der Uhr).

Klicken Sie mit der rechten Maustaste auf dieses Symbol und wählen Sie „ Bluetooth-Gerät hinzufügen».

Stellen Sie den Schalter ein „ Das Gerät ist installiert und kann entdeckt werden" und klicken Sie auf " Weiter».

Unser Bluetooth-Modul erscheint in der Liste der erkannten Geräte mit dem neuen Namen, den ich zuvor geändert habe. Wählen Sie es aus und klicken Sie auf „ Weiter».

Geben Sie im nächsten Fenster den PIN-Code ein, um eine Verbindung zum Modul herzustellen, indem Sie „ Verwenden Sie den Zugriffsschlüssel aus der Dokumentation:». Der Standardwert ist „1234“ aber ich habe es in „9999“ geändert. Klicken " Weiter».

Das Bluetooth-Modul hat erfolgreich mit dem Computer kommuniziert, was im entsprechenden Fenster ersichtlich ist. Bitte beachten Sie, dass beim Aufbau einer Verbindung zwischen zwei Bluetooth-Geräten zwei neue virtuelle COM-Ports auf dem Computer erstellt werden (wird im Gerätemanager angezeigt), einer für ausgehende Daten, der andere für eingehende Daten. Wir benötigen einen Port für ausgehende Daten, in meinem Fall COM45.

Öffnen wir noch einmal ein Terminalprogramm, ich verwende die Arduino IDE. Wählen Sie in den Einstellungen den ausgehenden Port aus (ich habe COM45), öffnen Sie „ Serieller Port-Monitor", geben Sie die Befehle ein " 1 " Und " 0 " Bei Befehl „1“ leuchtet die LED, bei „0“ erlischt sie.

Steuern Sie Arduino über HC-06 mit einem Smartphone.

Wahrscheinlich verfügen alle modernen Smartphones bereits über integriertes Bluetooth. Es bleibt nur noch die Installation des Terminalprogramms. In meinem Fall wurde es verwendet Lumia 640DS, mit installiert Windows Mobile 10. Als Terminalprogramm verwende ich „“. Auf Android-Smartphones ist alles ähnlich; Bluetooth-Terminal».

Für Besitzer von Apple-Smartphones ist die Arbeit mit den Bluetooth-Modulen HC-05 und HC-06 (Bluetooth V2.0) nicht möglich; für sie müssen Adapter mit BLE-Technologie (Bluetooth Low Energy) und Bluetooth 4.0-Spezifikation verwendet werden . Ein prominenter Vertreter ist das HM-10-Modul.

Wir koppeln den HC-06 mit dem Bluetooth des Smartphones.

1 in " Parameter» Smartphone wählen Sie den Artikel aus « Geräte».
2. Weiter " Bluetooth und andere Geräte».
3. Schalten Sie den Bluetooth-Schieberegler des Smartphones ein und klicken Sie auf „ plus im Quadrat» um ein neues Bluetooth-Gerät zu suchen und hinzuzufügen, in unserem Fall HC-06.

4. Im Abschnitt „ Gerät hinzufügen"wählen "".
5. Das Smartphone sucht in der Umgebung nach Bluetooth-Geräten und zeigt deren Namen an. In meinem Beispiel wurde das HC-06-Modul gefunden, das ich in „ Fuchs».

6. Geben Sie den PIN-Code des Geräts ein, mit dem wir eine Verbindung herstellen, und drücken Sie die Taste „ Verbinden».

Installieren und starten Sie das Terminalprogramm „“. Das mit dem Smartphone verbundene HC-06-Modul wird in der Liste angezeigt, wählen Sie es aus.

Es erscheint ein Feld zur Eingabe von Befehlen und ein Button zum Senden. Geben Sie abwechselnd ein „ 1 " Und " 0 "und beobachten Sie die LED an Pin 13, die aufleuchtet oder erlischt.

Beispiel 2. Lassen Sie uns drei LEDs an den Arduino anschließen und versuchen, sie über das Bluetooth-Modul HC-06 zu steuern.

Ich habe die LEDs an die Pins 9, 11 und 13 angeschlossen; wenn Sie andere Pins verwenden, müssen diese in der Skizze angegeben werden.

int-Daten;
int LED1 = 9;
int LED2 = 11;
int LED3 = 13;
void setup()
{
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, AUSGANG);
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
}
Leere Schleife()
{
if (Serial.available())
{
data = Serial.read();
if (Daten == "1")
{
digitalWrite(LED1, HIGH);
}
if (Daten == "2")
{
digitalWrite(LED1, LOW);
}
if (Daten == "3")
{
digitalWrite(LED2, HIGH);
}
if (Daten == "4")
{
digitalWrite(LED2, LOW);
}
if (Daten == "5")
{
digitalWrite(LED3, HIGH);
}
if (Daten == "6")
{
digitalWrite(LED3, LOW);
}
}
}

Beim Hochladen einer Skizze muss das HC-06-Modul vom Arduino getrennt werden, da sowohl der Computer als auch Bluetooth über UART funktionieren. Arduino kann nicht mit mehreren Geräten an einem UART arbeiten.

Wir starten das Terminalprogramm und probieren die Skizze in Aktion aus. Die Bedeutung der LED-Steuerung ist folgende: Es gibt drei LEDs, die jeweils ein- oder ausgeschaltet sein können. Es stellt sich heraus, dass es 6 Teams gibt. Die Teams sind Nummern von 1 bis 6 ( 1, 3, 5 - LEDs 1, 2 und 3 aufleuchten lassen. 2, 4, 6 - zurückzahlen). Zahlen können einzeln oder in Kombination eingegeben werden. Zum Beispiel: 145 - Den ersten anzünden, den zweiten auslöschen, den dritten anzünden.

Beispiel 3. Verbinden wir das Relaismodul aus dem Artikel „“ mit Arduino und versuchen wir, eine leistungsstarke Last über Bluetooth zu steuern. Im Wesentlichen werden wir eine „intelligente Steckdose“ haben. Sie können verschiedene Lasten (Glühbirnen, Pumpen, Lüfter) an Relaismodule anschließen und diese fernsteuern.

Eine Skizze zu diesem Beispiel erscheint in Kürze.

Heute lernen wir ein kostengünstiges Modul zur drahtlosen Datenübertragung über kennen Bluetooth.

Bluetooth ist eine Industriespezifikation für drahtlose persönliche Netzwerke, die die drahtlose Übertragung von Daten zwischen vielen Geräten ermöglicht.

Unser Modul heißt HC-05. Dies ist einer der Vertreter der Reihe ähnlicher Module HC-03 - HC-09.

Mit diesen Modulen können Sie Daten drahtlos übertragen, ohne darüber nachdenken zu müssen, wie das Bluetooth-Protokoll im Allgemeinen funktioniert, über seine Bereiche und andere Feinheiten. Wenn diese Module richtig konfiguriert sind, ermöglichen sie die Datenübertragung so, dass der Programmierer, der den Code schreibt, den Algorithmus so schreibt, als würde er mit einer kabelgebundenen UART-Schnittstelle arbeiten. Dadurch wird das Schreiben von Code so bequem wie möglich und deshalb erfreut sich diese Modulreihe nicht nur bei Programmieranfängern so großer Beliebtheit.

Lassen Sie uns also nicht hinterherhinken und eine kleine Pause von den Netzwerkprotokollen einlegen und ein solches Modul studieren. Es gab auch viele persönliche Anfragen, auch in öffentlichen Chats, damit ich nicht an solchen Modulen vorbeikomme und daraus keine Lektionen schreibe.

Die Module weisen folgende Hauptmerkmale auf:

  • Bluetooth-Chip – BC417143 Produktion CSR-Unternehmen,
  • Datenübertragungsprotokoll - Bluetooth 2.0+EDR,
  • Klasse 2, was einer Datenübertragung im Umkreis von bis zu 10 m entspricht,
  • Unterstützung für serielle Portprofile ( SPP), was die Kompatibilität mit allen Geräten gewährleistet, die dieses Profil unterstützen,
  • nichtflüchtiger Flash-Speicher mit einer Kapazität von 8 MB,
  • Funkkanal mit einer Frequenz von 2,4 - 2,4835 MHz,
  • USB-Host 1.1/2.0-Schnittstelle,
  • UART-Schnittstelle mit einstellbarer Baudrate.

Neben diesen Eigenschaften ist es auch erwähnenswert, dass das Modul viele Beine an Bord hat, was einen Einsatz in einem größeren Bereich ermöglicht. Schauen wir uns das Pinbelegungsdiagramm des Moduls an

Wir sehen hier die GPIO-, SPI-, USB- und PCM-Pins.

Zwar werden wir vorerst nur mit der USART-Schnittstelle arbeiten, mit deren Hilfe wir nicht nur einige nützliche Daten übertragen, sondern auch unser Modul konfigurieren.

Das machen wir zum einen, weil unsere Module vom gleichen Typ sein werden (ich habe sogar 4 davon!), bei dem das HC-05-Modul auf eine andere Platine gelötet ist, auf der nur 6 Kontakte nach außen geführt sind. So habe ich sie alle (Draufsicht und Unteransicht)

Der Zweck der Beine ist auf der Unterseite der Platine angegeben. Wir werden sie herausfinden, wenn wir das Modul anschließen.

Zweitens werden wir mit den übrigen zahlreichen Kontakten nicht zusammenarbeiten, da dies nicht in jeder Firmware möglich ist.

Im Allgemeinen fiel die Wahl auf den HC-05, auch weil dieses Modul perfekt für den Betrieb sowohl als Master- als auch als Slave-Gerät konfiguriert ist.

Das Modul ist für die weitere Arbeit mit Daten mithilfe von AT-Befehlen konfiguriert. Ich denke, wir sind alle mehr oder weniger mit diesen Befehlen vertraut; wir haben sie ein wenig kennengelernt, als wir mit dem Wi-Fi-Modul gearbeitet haben. Natürlich sind diese Befehle für alle Geräte unterschiedlich und deshalb werde ich unten auf der Seite ein Dokument mit einer vollständigen Liste der Befehle anhängen. Es ist auch leicht, im Internet Ressourcen zu finden, in denen die Beschreibung dieser Befehle ins Russische übersetzt ist und es sogar einige Beispiele für ihre Verwendung gibt. Wir werden uns hier nicht mit der vollständigen Übersetzung der Befehle befassen; wir werden uns nur mit den Befehlen befassen, die wir verwenden müssen. Ihre Liste wird vorerst nicht so umfangreich sein, aber später werden wir hoffentlich mehr als einmal auf diese Module zurückkommen und dann unseren Wissenshorizont über dieses Modul erweitern. In der Zwischenzeit werden wir nur einen kurzen Rundgang durch das Modul geben. Natürlich werden wir es bei der Arbeit ausprobieren, nicht ohne.

Verbinden wir zunächst unser Modul mit dem TTL-USB-Adapter, den wir wiederum mit dem PC verbinden.

Wir werden gemäß dem folgenden Diagramm anschließen

TTL-USB-Adaptermodul HC-05

VCC VCC

GND GND

TXD RXD

RXD TXD

In der Praxis wird es ungefähr so ​​aussehen

Lassen Sie uns den Adapter an den Computer anschließen; ich werde Ihnen nicht sagen, wie man mit Adaptern dieses Typs arbeitet, wir arbeiten bereits ständig mit ihnen. Starten wir ein Terminalprogramm, ich verwende das CoolTerm-Programm, da es flexiblere Einstellungen für die Datenübertragung über die Tastatur bietet und zur Eingabe von Befehlen jede Zeile während der Übertragung mit einem Zeilenvorschub- und Wagenrücklaufcode enden muss.

Gehen wir zu den Programmeinstellungen und konfigurieren zunächst den Port

Diese Geschwindigkeit von 38400 wurde gewählt, da das Modul beim Empfang von AT-Befehlen genau mit dieser Geschwindigkeit arbeitet.

Wählen Sie nun den Eintrag links aus Erhalten und schalten Sie dort einen Knopf um und schalten Sie den anderen ein

Die erste Schaltfläche dient dazu, übertragene Befehle mit Zeilenvorschub- und Wagenrücklaufzeichen zu beenden, und die zweite dient dazu, dass wir unsere eingegebenen Befehle auch nach der Eingabe im Fenster des empfangenden Terminals sehen können.

Speichern wir die Einstellungen und versuchen wir, eine Verbindung herzustellen. Wenn alles erfolgreich ist, trennen wir die Verbindung, da sich unser Modul jetzt im Datenübertragungsmodus befindet und wenn es noch nicht konfiguriert wurde, kennen wir höchstwahrscheinlich nicht einmal seine Adresse oder seine Einstellungen. Das Vorhandensein des Moduls in diesem Modus wird durch schnelles Blinken der blauen LED angezeigt. Daher müssen wir das Modul irgendwie in den Zustand der Übertragung von AT-Befehlen versetzen.

Dazu trennen wir nun den Adapter vom USB-Anschluss und verbinden das Kabel mit dem Bein des HC-05-Moduls SCHLÜSSEL. Für manche hat es vielleicht einen anderen Namen, aber ich glaube nicht, dass man es verwechseln kann. Verbinden wir den Draht so und so

Verbinden wir dieses Kabel mit dem Pluspol der Stromversorgung (mit dem VCC-Bein).

Und ohne den Kontakt zu lösen, schließen wir den Adapter an den USB-Anschluss des Computers an und trennen nach einer Weile (in ein oder zwei Sekunden) unseren KEY-Kontakt vom VCC-Kontakt und entfernen das Kabel. Das Modul muss in den Modus zum Empfangen von AT-Befehlen wechseln, was durch eine sehr langsame Blinkgeschwindigkeit der LED angezeigt wird.

Gehen wir zum Terminalprogramm, stellen eine Verbindung zum Port her und versuchen, einen Befehl zu senden BEI, auf die uns das Modul antworten muss "OK"

Das Modul hat geantwortet, was bedeutet, dass alles korrekt ist.

Um nicht mit den Einstellungen zu verwechseln, die einmal von jemandem vorgenommen wurden, sammeln wir alle Einstellungen, indem wir den Befehl „ AT+ORGL". Die Einstellungen müssen auf die folgenden Parameter zurückgesetzt werden:

  • Gerätetyp: 0
  • Code abfragen: 0x009e8b33
  • Modularbeitsmodus: Slave-Modus
  • Verbindungsmodus: Stellen Sie eine Verbindung zum angegebenen Bluetooth-Gerät her
  • Serieller Parameter: Baudrate: 38400 Bits/s; Stoppbit: 1 Bit; Paritätsbit: Keines.
  • Passschlüssel: „1234“
  • Gerätename: „H-C-2010-06-01“

Lediglich die Einstellungen werden nicht sofort übernommen. Sie müssen das Modul neu laden. Dies geschieht bequem durch Eingabe des Befehls „ AT+RESET“, woraufhin das Modul neu startet, in den Datenübertragungsmodus zurückkehrt und vorerst keine Befehle empfangen kann. Damit es diese akzeptiert, führen wir die gleichen Aktionen wie oben durch, damit das Modul wieder in den Modus zum Empfangen von AT-Befehlen wechselt. Es gibt einen anderen Weg, den wir aber vorerst nicht nutzen werden.

Lassen Sie uns nun einige Parameter unseres Moduls überprüfen.

Um die Firmware-Version herauszufinden, geben Sie den Befehl „ AT+VERSION?", worauf das Modul etwa so reagieren muss

Wenn die Firmware nicht niedriger als diese Version ist, können wir sicher sein, dass dieses Modul mit dieser Firmware im Master-Modus arbeiten kann.

Ermitteln Sie die Geräteadresse mit dem Befehl „ AT+ADDR?«

Wir werden diese Adresse verwenden, um unser Gerät auf dem Master-Gerät zu identifizieren. Wir werden das gewöhnlichste Smartphone als Master-Gerät nehmen, aber das kommt etwas später. Wir müssen noch gut mit den Mannschaften zusammenspielen.

Lassen Sie uns auch den Gerätenamen mit dem Befehl „ anfordern. AT+NAME?„, worauf viele Module, auch meines, nur reagieren, wenn am KEY-Bein ein hoher Pegel anliegt, also wenn das Kabel angeschlossen ist. Lass uns das tun

Versuchen wir auch, diesen Namen zu ändern, da dies nicht sehr praktisch ist. Geben Sie den Befehl „AT+NAME: Gewünschter_Name“ ein. Dieser Befehl kann ohne einen hohen Pegel am KEY-Pin eingegeben werden

Überprüfen wir, ob sich der Name geändert hat. Vergessen Sie jedoch nicht den hohen Pegel auf der KEY-Strecke

Der Name ist gut angebracht.

Überprüfen wir das Passwort mit dem Befehl „ AT+ PSWD?«

Genauso wie den Namen können Sie auch das Passwort ändern.

Jetzt ermitteln wir den Gerätetyp (Slave oder Master) mit dem Befehl „ AT+ ROLLE?«

0 bedeutet Sklave. Auch der Typ ist jederzeit änderbar. Das brauchen wir aber vorerst nicht, da wir mit dem Gerät als Slave arbeiten.

Setzen Sie die gekoppelten Geräte mit dem Befehl „ zurück AT+RMAAD«

Lassen Sie uns nun die Einstellungen der USART-Schnittstelle mit dem Befehl „ AT+ UART?«

Diese Einstellungen bedeuten: 38400 kbps, 1 Stoppbit und keine Parität.

Diese Tabelle enthält mögliche USART-Einstellungen

Ändern wir beispielsweise die Übertragungsgeschwindigkeit mit dem Befehl „ AT+UART=115200,0,0«

Nur diese Einstellungen werden nach dem Neustart des Moduls wirksam und sind nur für den Datenübertragungsmodus relevant. Für den Modus zur Übertragung von AT-Befehlen an das Modul bleiben die gleichen Einstellungen mit einer Geschwindigkeit von 38400 erhalten.

Laden wir das Modul mit dem Befehl „ neu. AT+RESET“, woraufhin das Modul in den Datenübertragungsmodus wechselt.

Konfigurieren wir den Port im Terminalprogramm mit dieser Geschwindigkeit und verbinden uns damit

Versuchen wir, einen Befehl einzugeben, auf den unser Modul nicht reagiert, da der Modus nicht derselbe ist

Aber lasst uns nicht verzweifeln. Es stellt sich heraus, dass es zum Senden von Befehlen an das Modul nicht erforderlich ist, es in diesen Modus zu versetzen. Sie können die Unterstützung für die Übertragung von AT-Befehlen im Datenmodus aktivieren. Für kurze Zeit (weniger als eine Sekunde reicht aus) berühren wir das Kabel, das mit dem KEY-Kontakt des positiven Busses des Moduls verbunden ist, und das Modul wechselt in den AT-Befehlsunterstützungsmodus. Allerdings können wir dies nicht anhand der Art des Blinkens der LED feststellen; sie wird genauso schnell blinken. Außerdem kann das Master-Gerät im We-Command-Unterstützungsmodus keine Verbindung zu uns herstellen. Dennoch müssen wir für einige Einstellungen nicht ständig das Kabel vom USB-Anschluss entfernen und den Port im Terminalprogramm neu konfigurieren. Das ist schon gut. Lassen Sie uns dies tun und sicherstellen, dass das Modul auch Befehle akzeptiert, wie im Befehlsempfangsmodus

Um diese Unterstützung zu entfernen und damit das Modul eine Verbindung herstellen kann, starten Sie es einfach mit dem Befehl „ AT+RESET". Lass uns das tun

Großartig! Wir wissen schon etwas. Grundsätzlich haben wir das Modul so konfiguriert, dass es Daten im Master-Modus überträgt.

Jetzt fungiert das Smartphone, das wir heute haben, als Master-Gerät. Jeder mit einem Android-Gerät wird es tun, solange er über ein Terminalprogramm für Bluetooth verfügt. Ich habe dieses installiert. Ich fand es bequem

Erstens ist es kostenlos, erfordert keine vorherige Herstellung einer Verbindung und verfügt außerdem über mehrere Schaltflächen mit Zeichenfolgen, die wir im Voraus gespeichert haben.

Laden wir das Programm herunter, installieren es und führen es aus. Drücken Sie die SCAN-Taste und unser Modul sollte in der Liste der gefundenen Geräte erscheinen

Wählen wir dieses Gerät aus und gelangen zum Pairing-Dialog, in dem Sie ein Passwort eingeben müssen (wir haben „1234“) und zustimmen, indem Sie auf die Schaltfläche „OK“ klicken

Haben Sie schon einmal darüber nachgedacht, elektronische Geräte mit Ihrem Smartphone zu steuern? Stimmen Sie zu, es wäre sehr cool, einen Roboter oder andere Geräte von Ihrem Smartphone aus zu steuern. Wir bieten eine einfache Lektion für Anfänger und Dummies, wie man ein Smartphone mit Arduino über Bluetooth steuert. Wenn Sie nach dieser Lektion Arduino besser kennenlernen möchten, finden Sie Bücher darüber.

Schritt 1. Was wir brauchen

Geräte

Modul - Bluetooth-Modul HC 05/06
Brett - Arduino
Leuchtdiode (LED)
Widerstand – 220 Ω
Android-Gerät

Software

Arduino-IDE
Android Studio (eigentlich nicht notwendig, da Sie die Android-Anwendung unten finden)

Schritt 2. Wie es funktioniert

Normalerweise machen wir diesen Schritt am Ende, aber damit Sie verstehen, was wir erreichen müssen, schauen Sie sich das Ergebnis bei diesem Zwischenschritt an. Wir haben unten auch ein Schritt-für-Schritt-Video-Tutorial veröffentlicht.

Schritt 3. Wir beginnen mit dem Zusammenbau der Schaltung

Die Schaltung in unserem Tutorial ist so einfach und klein, dass wir nur wenige Verbindungen herstellen müssen:

Arduino-Pins___________Bluetooth-Modul-Pins
RX (Pin 0)___________________________TX
TX (Pin 1)__________________________RX
5V__________________________VCC
GND_______________________GND

Verbinden Sie den Minuspol der LED mit GND am Arduino und den Pluspol mit Pin 13 über einen Widerstand von 220 Ohm – 1 kOhm. Im Allgemeinen ist in unserer Abbildung unten alles ganz klar.

Verbinden Sie nicht die Bluetooth-Ausgänge RX mit RX und TX mit TX mit den Arduino-Ausgängen, Sie erhalten keine Daten, hier bedeutet TX Senden, RX bedeutet Empfangen.

Schritt 4: Hochladen des Programms auf Arduino

Jetzt müssen wir ein Programm schreiben und es auf unser Arduino hochladen. Wenn Sie noch nicht wissen, wie das geht, laden Sie Bücher herunter. Der folgende Code ist genau das, was wir in den Arduino laden müssen.

/* Bluetooh Basic: LED AN AUS * Coder – Mayoogh Girish * Website – http://bit.do/Avishkar * Laden Sie die App herunter: https://github.com/Mayoogh/Arduino-Bluetooth-Basic * Mit diesem Programm können Sie um eine LED an Pin 13 von Arduino mit einem Bluetooth-Modul zu steuern */ char data = 0; //Variable zum Speichern empfangener Daten void setup() ( Serial.begin(9600); //Setzt die Baudrate für die serielle Datenübertragung pinMode(13, OUTPUT); //Setzt digitalen Pin 13 als Ausgangspin ) void loop() ( if(Serial.available() > 0) // Daten nur senden, wenn Sie Daten empfangen: ( data = Serial.read(); //Lesen Sie die eingehenden Daten und speichern Sie sie in der Variablen data Serial.print(data); // Wert innerhalb der Daten im seriellen Monitor drucken Serial.print("\n"); //Neue Zeile if(data == "1") // Prüft, ob der Wert der Daten gleich 1 ist digitalWrite(13, HIGH); ist 1, dann schaltet sich die LED ein, sonst if(data == "0") // Prüft, ob der Datenwert gleich 0 ist digitalWrite(13, LOW); //Wenn der Wert 0 ist, schaltet sich die LED aus) )

Schritt 5. Wie der Prozess funktioniert

Das Modul HC 05/06 arbeitet über einen seriellen Kommunikationskanal. Die Android-App sendet nacheinander Daten an das Bluetooth-Modul, wenn Sie eine bestimmte Taste drücken. Das Bluetooth am anderen Ende empfängt die Daten und sendet sie über die TX-Verbindung des Bluetooth-Moduls (Arduino RX-Verbindung) an den Arduino.

Der in den Arduino geladene Code prüft die empfangenen Daten und vergleicht sie. Bei Empfang einer „1“ schaltet sich die LED ein und bei Empfang einer „0“ aus. Öffnen Sie den Monitor für die serielle Schnittstelle und beobachten Sie die empfangenen Daten.

Schritt 6. Anwendung für Android-Geräte

In diesem Tutorial gehen wir nicht auf die Erstellung von Anwendungen für Android-Geräte ein. Sie können die Anwendung auf GitHub herunterladen.

Wie verwende ich die Anwendung?

Nachdem wir uns über Bluetooth verbunden haben, müssen wir eine Anwendung herunterladen und installieren, die mit einem Smartphone :) unsere LED aus der Ferne steuert. Sie können die Anwendung kostenlos auf Amazon.com herunterladen. Wir verbinden das Smartphone mit dem Bluetooth-Modul HC 05/06:

  1. Schalten Sie das HC 05/0-Modul ein
  2. Auf der Suche nach einem Gerät
  3. Wir verbinden uns mit HC 05/06, indem wir das Standardpasswort „1234“ oder „0000“ (vier Nullen) eingeben.

Anschließend installieren wir die Anwendung auf unserem Smartphone. Lass es uns öffnen. Wählen Sie ein Gerät aus – wählen Sie das Bluetooth-Modul aus der Liste aus (HC 05/06). Drücken Sie nach erfolgreicher Verbindung die ON-Taste, um die LED einzuschalten, und die OFF-Taste, um die LED auszuschalten. Anschließend können Sie auf die Schaltfläche „Trennen“ klicken, um die Verbindung zum Bluetooth-Modul zu trennen.

Dies war eine Anleitung für Dummies und Anfänger, wie man ein Bluetooth-Modul mit Arduino verbindet. Dieses Projekt kann verbessert und auf ein höheres Niveau gebracht werden, beispielsweise für die Heimautomation durch Smartphone-Steuerung, gesteuerte Roboter und vieles mehr.

Sehr oft ist bei Ihren Projekten eine Fernsteuerung oder Datenübertragung von Ihren Telefongeräten aus erforderlich.

Eine der beliebtesten und am weitesten verbreiteten Methoden des Datenaustauschs über Bluetooth .

Heute schauen wir uns einfache Beispiele für die Verbindung von Bluetooth an Modul an Arduino und konfigurieren Sie die Fernbedienung von Ihrem Telefon aus.

Wir brauchen:

  • Satz MALE-MAMA-Drähte
  • HC-06 Bluetooth

Verbinden Sie Bluetooth Der Anschluss des Moduls an den Arduino-Mikrocontroller erfolgt am bequemsten über die MALE-MAMALE-Verkabelung.

Arduino Bluetooth
Pin 1 (TX) RXD
Pin 0 (RX) TXD
GND GND
5V VCC

Seien Sie vorsichtig, Sie müssen eine Verbindung herstellen TX -> RXD ,RX -> TXD .

Jetzt müssen Sie den Testcode des Programms aufschreiben:

Beim Laden der Skizze ist es erforderlich, dass das Bluetooth-Modul vom Arduino-Mikrocontroller getrennt ist. Andernfalls wird die Skizze aufgrund der Verbindung mit Bluetooth nicht aufgezeichnet Das Modul kommuniziert über dieselben RX- und TX-Ports wie USB.

Int. Wert; int LED = 13; void setup() ( Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ) void loop() ( if (Serial.available()) ( val = Serial.read(); / / Wenn das Zeichen „1“ ist, schalten Sie die LED ein, wenn (val == „1“) ( digitalWrite(LED, HIGH); ) // Wenn das Zeichen „0“ ist, schalten Sie die LED aus, wenn (val == „0“) ( digitalWrite(LED, LOW ); ) ) )

Danach wird die Skizze aufgezeichnet und über Bluetooth aktiviert Das Modul ist mit dem Arduino verbunden, Sie können mit dem nächsten Schritt fortfahren.

Verbinden Sie Bluetooth mit Ihrem Telefon

Als Stromquelle für Arduino empfiehlt es sich, nicht USB, sondern ein externes 9-V-Netzteil zu verwenden.

  1. Schalten Sie Bluetooth auf Ihrem Telefon ein und suchen Sie nach neuen Geräten
  2. Wir finden in der Liste der Störungen „ HC-06" und verbinde dich damit.
  3. Das Telefon fragt nach einem PIN-Code. Sie müssen „eingeben“ 1234 " oder " 0000 "
  4. Hurra. Das Gerät ist angeschlossen.

Jetzt müssen Sie das Bluetooth-Terminal auf Ihr Telefon herunterladen. Wir werden uns das Beispiel der Android-Plattform ansehen.



Sie können verschiedene Bluetooth-Terminals installieren, diese unterscheiden sich in der Regel nur im unterschiedlichen Design, die Funktionalität ändert sich nicht. Dort finden Sie auch ein Terminal für iOS-Produkte.

Nachdem wir das Terminal installiert haben, starten wir es, wählen unser Bluetooth-Modul HC-06 aus und verbinden uns damit.

Es ist Zeit, das Projekt in Aktion zu testen. Wir schreiben die Zahl „0“ in das Terminal und senden. Die LED L, die sich auf der Arduino-Platine neben Pin 13 befindet, sollte erlöschen. Jetzt senden wir die Zahl „1“ durch das Terminal und die L-LED sollte leuchten.

Arbeitsvorführung:


Hausafgaben:

  • Ändern Sie die Skizze so, dass die LED mit dem gleichen Befehl aufleuchtet und erlischt, zum Beispiel „G“.
  • Vervollständigen Sie die Skizze und bringen Sie ihr bei, über Bluetooth eingehende Textdaten in digitale Daten umzuwandeln und einen Dimer zu implementieren, eine LED mithilfe von PWM mit einer bestimmten Helligkeit von 0 bis 254 anzuzünden, die über Bluetooth empfangen wird.

Möchten Sie Ihr Arduino-Board fernsteuern und Daten mit anderen Bluetooth-Geräten austauschen? Die Bluetooth-Module HC-05, HC06 helfen Ihnen bei der Bewältigung dieser Aufgabe.

Im ersten Teil des Artikels werden wir darüber sprechen, wie man eine drahtlose Verbindung zwischen Arduino und einem Computer herstellt, und im zweiten Teil, wie man eine Verbindung zwischen Arduino und einem Android-Telefon herstellt. .

Dieser Artikel wird ein wesentlicher Bestandteil bei der weiteren Montage eines ferngesteuerten Autos sein.

Komponenten zur Wiederholung (in China kaufen):

Bei den HC-05/06-Modulen handelt es sich um reine Bluetooth-Module mit zusätzlicher Verkabelung.

Nämlich: Sie werden auf einem Substrat installiert, auf dem sich ein Stabilisator von 5 bis 3,3 Volt, eine LED, die den Status des Moduls anzeigt (ob eine Verbindung hergestellt wurde oder nicht), und Kondensatoren an den Stromleitungen befinden. Auf der Platine ist außerdem ein Mosfet-Transistor (Q1) verbaut, der bei Bedarf den Bluetooth-Stromversorgungskreis unterbrechen und damit abschalten kann, dieser wird in unserem Test jedoch nicht zum Einsatz kommen.

Von der Vorderseite sieht das Modul so aus

Anschließen an Arduino

Bluetooth HC-05/06 Arduino
VCC +5V
GND GND
TX RX
RX TX

Wenn das Modul mit Strom versorgt wird, beginnt die eingebaute LED zu blinken.

1) Mit einem Computer (Betriebssystem WIN7)

2) Mit einem Telefon (ANDROID OS)

In beiden Fällen müssen wir eine Leistung erbringen 2 Aktionen: Modul und Gerät koppeln, Steuerung über ein Terminal.

Teil 1. Anschließen an einen Computer (WIN7)

Wenn Ihr Computer nicht über integriertes Bluetooth verfügt, können Sie es verwenden. Es wird nicht schwer sein, es in Kommunikationsgeschäften oder Radiomärkten zu finden.

Nach der Installation der Treiber für Bluetooth können Sie mit der Arbeit beginnen.

. Aktion 1

Gehen Sie zur Systemsteuerung, klicken Sie auf das Bluetooth-Symbol und wählen Sie „Bluetooth-Geräte anzeigen“.

Nach einer Weile führt der Computer eine Suche durch und Sie sehen Ihr Modul (Ihr Modul hat möglicherweise einen anderen Namen).

Wählen Sie die zweite Option – „Geben Sie den Geräte-Pairing-Code ein“

Für HC-06 lautet dieser Code 1234

Mit diesem Bild endet alles.

Und danach kommt noch einer

Die erste Einrichtungsphase ist abgeschlossen

Falls Sie vergessen haben, welchen COM-Port Sie als Bluetooth identifiziert haben, können Sie dies jederzeit herausfinden, indem Sie die folgenden Schritte ausführen:

Aktionen

P.S. Oder schauen Sie im Gerätemanager nach

. Akt 2

Zur Datenübertragung kann jedes beliebige Endgerät genutzt werden. Ich habe das einfache und kostenlose „Termite“ verwendet.

Als Beispiel ändern wir den Zustand der im Arduino-Board eingebauten LED „LED 13“. Es schaltet sich ein, wenn das „W“-Symbol empfangen wird, und schaltet sich aus, wenn „S“ empfangen wird. Die folgende Skizze muss auf das Arduino-Board hochgeladen werden. Beim Eingießen in die Platine müssen Sie die Stromversorgung vom Bluetooth-Modul trennen, nach dem Befüllen wieder anschließen.

Beispielprogrammcode:

int val; int LED = 13; Leere aufstellen () { Seriell.begin(9600); pinMode(LED, AUSGANG); ) Leere Schleife() ( Wenn ( Seriell.available()) (val= Seriell.lesen(); // Wenn das „W“-Symbol die LED einschaltet if (val == "W" ) ( digitalWrite (LED, HIGH ); ) // Wenn das „S“-Symbol die LED ausschaltet if (val == "S" ) ( digitalWrite (LED, LOW ); ) ) ) Öffnen Sie das Programm " Termite"

Wählen Sie in den Einstellungen unseren Port, Geschwindigkeit (9600).

Sie können das Modul auch ohne Arduino überprüfen, indem Sie einfach die TX- und RX-Pins kurzschließen. Termiten markieren gesendete Zeichen in Blau und empfangene Zeichen in Grün. Diese. Wenn wir mit kurzgeschlossenen Pins gesendet haben und das Gleiche erhalten haben, bedeutet das, dass das Modul ordnungsgemäß funktioniert. Dies wird auf dem Foto unten demonstriert.

Teil 2. Verbindung mit Ihrem Telefon herstellen (Android)

Das Testobjekt wird ein Samsung Galaxy Ace 2-Telefon sein, auf dem das Android-Betriebssystem läuft.

. Aktion 1

Verbindung zum Telefon herstellen

. Akt 2

Als Terminal werden wir wieder ein einfaches und kostenloses Terminal wählen, diesmal jedoch „Bluetooth Terminal“

P.S. Wenn Sie keine Verbindung herstellen können, trennen Sie die Bluetooth-Verbindung und stellen Sie die Verbindung erneut her.