Home > Technologie > Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

0
Advertisement

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Ich schreibe diese instructable, weil ich hatte Alpträume bekommen diese billig, aber gut gebaut Bluetooth-Modul zu arbeiten. Es war die Herausforderung wert, mich $ 50 für einen einfachen SPP seriellen Port (RS232 Emulator) Service zu sparen! Ich werde über die do's und don'ts Ich entdeckte, während verbringen Wochen mit diesem Board, Hardware und Software.

Ich gehe davon aus, dass Sie dieses Modul an ein Arduino oder ein ähnliches MCU-Entwicklungsboard anschließen.

Weiter - Die Pins ...

Schritt 1: Die Pins

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Das Modul hat 6 Pins auf der Rückseite beschriftet, aber die meisten Module haben nur 4 von denen mit Pogo Pins besetzt. KEY & STATE scheinen nicht erforderlich zu sein, da KEY zum Blinken des Geräts verwendet wird und STATE zeigt einfach an, ob das Gerät wach ist oder nicht. Damit bleibt nur GND, VCC, TXD, RXD. Nicht dargestellt ist Pin 11, bei dem es sich um den RESET-Pin handelt, der das Modul zurückzieht, wenn es auf LOW gezogen wird.

Einige Platinen haben VCC-beschriftet für Betriebsspannungen bis zu ~ 6 Volt. Diese Baugruppen machen NICHT alles außer 3,3 Volt auf der VCC-Leitung. Auch einige Foren behaupten, dass das Gerät funktioniert mit 5 Volt TTL Ebenen. Dies ist auch nicht wahr, und Sie sollten einen Pegelwandler auf 3,3 V auf der RXD-Leitung verwenden. Ich verwendete zwei Widerstände als einen einfachen Spannungsteiler, um die TTL-Pegelumsetzung zu machen. Ein 2,2k Ohm Widerstand an Masse, verbunden mit einem 1k Ohm Widerstand, zur TXD Linie auf der MCU. Verbinden Sie den RXD-Pin zwischen den beiden Widerständen für einen Ausgang von ca. 3,4 Volt. Dies bezieht sich auf die Hardware-Seite des Moduls. Wie sich herausstellt, war die VCC-Spannung eines der letzten Dinge, die ich versuchte, vollen Erfolg mit dem Modul zu haben.

Weiter - Die Software ...

Schritt 2: Die Software

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Ich habe nur eine Bibliothek, die in Processing funktioniert, und das ist extrapixel's bluetoothDesktop-Bibliothek, die ich Link zu unten. Andere können arbeiten, aber ich hatte kein Glück mit ihnen. Die Bibliothek verfügt über eine umfangreiche Referenzseite und ist relativ einfach.

Ich empfehle, eine SoftwareSerial virtuellen Port auf Ihrem Arduino für die Kommunikation mit diesem Modul. Die direkte Verbindung zu den RX / TX-Leitungen gab mir Kopfschmerzen und verriegelte Ports! Auf der mega2560 habe ich Pin 10 & 9 für RX & TX respektvoll verwendet. Die RX-Pin variiert zwischen verschiedenen Arduino-Modellen, so überprüfen Sie die Arduino-Foren zu sehen, welche Pins Ihre Arduino Arbeit mit SoftwareSerial.

Die Standardparameter auf dem linvor-Modul sind: 9600 Baud 8 N 1 Keine. AT-Befehle können nur dann an die Platine gesendet werden, wenn das Modul nicht angeschlossen ist oder wenn die rote LED blinkt. Nur eine Handvoll Basis-AT-Befehle funktionieren, es sei denn, Sie haben eine HC-05-Firmware. Linvor Version 1.5, auch als HC-06 bekannt, ist ein Slave-Gerät. Hier sind die bekannten AT-Befehle für Version 1.5 ...

AT - Reaktion OK
AT + NAMExxxx - Dabei steht xxxx für den Namen des Moduls
AT + BAUDx - wobei x die Baudrate festlegt
(Werte & Baudraten unten)
AT + VERSION - Liefert die Firmwareversion
AT + PINxxxx - Setzt einen neuen Pairing-Code

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

In diesem Beispielcode können AT-Befehle über den seriellen Monitor gesendet werden. Die bluetoothDesktop-Bibliothek ist nicht erforderlich, um eine Verbindung mit dem BT-Modul herzustellen ...

***************** *********************************************************************************** aufrechtzuerhalten.
***************** *********************************************************************************** aufrechtzuerhalten.
Geschaffen zurück in den Nebeln der Zeit
Geändert am 25. Mai 2012
Von Tom Igoe
Basierend auf dem Beispiel von Mikal Hart.

Geändert am 10. Juli 2012
Von Peter Timinski
Basierend auf Tom Igoe's Änderungen an Mikal Harts Beispiel.

Dieser Beispielcode ist in der public domain.
Nichts ist garantiert so zu arbeiten PROCEDE bei Ihrem EIGENEN RISIKO!
Forum: http://arduino.cc/forum/index.php?topic=101452.0
***************** *********************************************************************************** aufrechtzuerhalten.
***************** *********************************************************************************** aufrechtzuerhalten.
* /

#include <SoftwareSerial.h>

SoftwareSerial MySerial (10, 9); // RX, TX
String Befehl = ""; // Speichert Antwort des Bluetooth-Geräts
// die einfach erlaubt \ n zwischen jedem
// antwort.
Void setup ()
{
// Serielle Kommunikation öffnen und warten, bis der Port geöffnet ist:
Serial.begin (9600);
Serial.println ( "Typ AT-Befehle!");
// SoftwareSerial "com Port" Datenrate. JY-MCU v1.03 ist standardmäßig auf 9600 eingestellt.
MySerial.begin (9600);
aufrechtzuerhalten.

Void Schleife ()
{
// Geräteausgang lesen, falls vorhanden.
If (mySerial.available ()) {
While (mySerial.available ()) // Während es noch mehr zu lesen gibt, lesen Sie weiter.
Befehl + = (char) mySerial.read ();
aufrechtzuerhalten.
Serial.println (Befehl);
Befehl = ""; // Keine Wiederholungen
aufrechtzuerhalten.

// Benutzereingaben lesen, falls vorhanden.
If (Serial.available ()) {
Verzögerung (10); // Die Verzögerung!
MySerial.write (Serial.read ());
aufrechtzuerhalten.
} // END-Schleife ()

Diese Bibliothek finden Sie unter http://www.extrapixel.ch/processing/bluetoothDesktop/

Schritt 3: Die richtige Bibliothek & Verbindungen:

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Um in eine serielle Kommunikation des SPP-Dienstes zu gelangen, benötigen Sie die bluetoothDesktop-Bibliothek für die Verarbeitung. Die Dateien und Referenzseiten finden Sie hier ...

http://www.extrapixel.ch/processing/bluetoothDesktop/

Verdrahten des Moduls für Software Serial:

Ja, verwenden Sie die 3,3 Volt-Ausgang für VCC. Dies ist eines der letzten Details fand ich, dass quarky mit diesem speziellen Modul, obwohl einige Boards sagen, 5V. Die grünen Linien zeigen den TTL Pegelwandler über die 2 Widerstände. Dies ergibt einen logischen Pegel von etwa 3,45 Volt.

Schritt 4: Dienstleistungen

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Für diese Anwendung möchten wir den SPP Serial Port Service verwenden. Wenn Sie eine Verbindung herstellen / mit dem Radio verbinden, sollte Ihr Computer 2 virtuelle COM-Ports machen. 1 für eingehende und die andere für ausgehenden Datenverkehr. Es ist ein Muss, dass der ausgehende Port vorhanden ist. Es sollte auch der SPP-Serial-Service aufgelistet neben ihm in Ihrem Bluetooth-Einstellungen / Ports. Mine sagt 'Dev B' und ich würde davon ausgehen, das gilt für alle diese Module. Das nächste Bit des Codes verwendet die Bibliothek und Software seriell, um tatsächlich mit dem Radio für die serielle Kommunikation zu verbinden.

Dies macht einen einfachen Client / Server mit SPP-Dienst 'Dev B' wie neben dem ausgehenden COM-Port aufgelistet. (Gefunden in den bluetooth Einstellungen / Häfen). Es sucht einfach nach dem Service und versucht, eine Verbindung zum Radio herzustellen. Nach dem Anschließen sollte die LED des Moduls aufhören zu blinken. Dann können AT-Befehle über den seriellen Arduino-Monitor eingegeben werden. Setzen Sie innerhalb des seriellen Monitors die Baudrate auf 9600 und wählen Sie aus dem Dropdown-Menü auch 'no line ending'.

Verarbeitungscode

aufrechtzuerhalten.
Demonstration eines Processing-Clients, der nach einem Dienst sucht und eine Verbindung herstellt.

Extrapixel, 2007
Http://www.extrapixel.ch/processing/bluetoothDesktop/.

* /

Import bluetoothDesktop. *;

PFont Schriftart;
Bluetooth bt;
String msg = "inaktiv";
Kundenserver;
Final String SERVICE_NAME = "Dev B";

Void setup () {
Größe (600.300);
Font = createFont ( "Kurier", 15);
TextFont (Schrift);
Versuchen {
Bt = neues Bluetooth (dieses, Bluetooth.UUID_RFCOMM); // RFCOMM

// Suchen Sie den Dienst
Bt.find ();
Msg = "Suchen ...";
aufrechtzuerhalten.
Catch (RuntimeException e) {
Msg = "Fehler ist dein Bluetooth?";
Println (e);
aufrechtzuerhalten.

aufrechtzuerhalten.

Void draw () {
Hintergrund (0);
Füllen (255);
Text (msg, 10, Höhe / 2);
aufrechtzuerhalten.

// Dies wird aufgerufen, wenn der Suchvorgang abgeschlossen ist
Void serviceDiscoveryCompleteEvent (Service [] s) {
Service [] services = (Service []) s;

Msg = "Suche abgeschlossen.";

// Jetzt nach dem gewünschten Dienst suchen
Für (int i = 0; i <services.length; i ++) {
Println (Dienste [i] .name);
If (services [i] .name.equals (SERVICE_NAME)) {
Msg = "Service" + SERVICE_NAME + "gefunden";

Versuchen {
// Wir fanden unseren Service, so versuchen Sie es zu verbinden
// Wenn wir versuchen, es mehr als einmal anzuschließen, wird dies einen Fehler auslösen.
Server = services [i] .connect ();
Msg = "Verbindung zum Dienst" + SERVICE_NAME + "auf dem Server" + server.device.name;
Rückkehr;
aufrechtzuerhalten.
Catch (Ausnahme e) {
Msg = "Found Service" + SERVICE_NAME + "auf Server" + server.device.name + ", aber Verbindung fehlgeschlagen";
Println (e);
Rückkehr;
aufrechtzuerhalten.
aufrechtzuerhalten.
aufrechtzuerhalten.

Msg = "Service" + SERVICE_NAME + "nicht gefunden".
aufrechtzuerhalten.

Schritt 5: Anwendung & Fehlerbehebung

Erfolg Mit dem JY-MCU (linvor) Bluetooth-Modul

Anwendung:

Dies sollte ausreichen, um loszulegen Daten über Bluetooth zur Verarbeitung und wieder zurück. Sobald Sie eine Verbindung haben, können Sie über die Arduino softwareSerial Ports senden / empfangen, indem Sie die Befehle in der bluetooth Bibliothek benutzen!

Wenn Sie finden und Paar mit dem linvor Modul aber nicht verbinden können ...

Mit meiner eigenen Frustration als Beispiel, ein fehlender COM-Port und / oder die Abwesenheit der SPP-Dienst ist die wahrscheinlichste Ursache für einen fehlgeschlagenen Versuch zu verbinden und zu kommunizieren. Dies ist ein bekanntes Problem mit diesem speziellen Modul. Die Heilung ist einfach, aber nahm einige Zeit, um herauszufinden.

Kein SPP serieller Port-Dienst?

Gehen Sie zu Ihrem Bluetooth-Geräte und entfernen Sie die linvor Radio-Modul
Trennen Sie die Vcc-Verbindung für 10 Sekunden vom Linienstrad
Vcc wieder an das Radio anschließen
Suchen Sie das Modul erneut auf Ihrem PC und paaren Sie es

Sie sollten jetzt den SPP-Serialservice zur Verfügung haben. Um zu überprüfen, gehen Sie zu "Bluetooth-Geräte anzeigen". Klicken Sie mit der rechten Maustaste auf linvor und klicken Sie auf Eigenschaften. Klicken Sie in den Eigenschaften auf die Registerkarte 'Dienste' und der SPP-Dienst sollte aufgelistet werden.

Hier ist ein Beispiel in einem Projekt, das ich in Processing für eine ganze Weile gearbeitet haben. Es ist eine Demo der aktuellen Revision und nutzt alle Schritte, die in diesem Tutorial gezeigt werden ...

Related Reading