hu:arduino:bluetooth_modul

Differences

This shows you the differences between two versions of the page.

hu:arduino:bluetooth_modul [2017/09/20 13:03]
hu:arduino:bluetooth_modul [2022/04/21 15:02] ()
 1:  1:
 +====== Bluetooth kommunikációs modulok ======
 +===== HC-05 =====
 +{{anchor:hc05}}
  
 +A [[hu:comm:bus_bluetooth#bluetooth|Bluetooth]] egy vezeték nélküli kommunikációs szabvány, rövid távolságok áthidalására. A készülékek a 2,4-2,485 GHz-es ISM sávon forgalmaznak, az átvitel maximális távolsága általában 10 méter körül alakul. A HC-05 modul a Cambridge Silicon Radio BC417 2,4 GHz-es BlueTooth Radio chipén alapul. Ez egy összetett chip, amely külső, 8 Mbit flash memóriát használ. 
 +
 +==== A HC-nn sorozat jellemzői ====
 +
 +  * Míg a HC-05 beállítható Master és Slave modulnak is, addig a HC-06 kizárólag Slave-ként alkalmazható
 +  * A HC-05-nek 6, míg a HC-06-nak 4 lába van
 +  * Ügyelni kell arra, hogy a modulok általában 3,3V tápfeszültséggel üzemelnek. Az 5V-os bemenet teljesen modulgyártó függő.
 +  * A modulok kétféle működési móddal rendelkeznek: "AT Parancs" mód / Normál mód
 +  * Sokszor magát a modult un. "breakout" lapokon forgalmazzák. Ezeken nincsenek lábak, csak forrasztási pontok.
 +  * [[hu:comm:start#baudrata|Baudráta]]: 9600 bps, Adatok: 8 bit, Stop Bitek: 1 bit, Paritás: Nincs, Kézfogás: Nincs
 +  * Jelszó: 1234
 +  * Eszköz neve: HC-05 / HC-06
 +
 +^HC-05 fent^HC-05 lent|
 +|{{:wiki:arduino:hc_05_front.png?200|HC-05 fent}}|{{:wiki:arduino:hc_05_back.png?200|HC-05 lent}}|
 +
 +==== A HC-05 lábkiosztása ====
 +^port^funkció|
 +|KEY|Ha a tápellátás bekapcsolása előtt HIGH állapotban van, bekapcsolja az "AT Parancs" módot. A LED lassan villog (2 másodpercenként).|
 +|VCC|+5 táp|
 +|GND|grund|
 +|TXD|Jelek átadása az Arduino felé. 3.3V HIGH szint!|
 +|RXD|Soros adatok fogadása az Arduino felől|
 +|STATE|Kapcsolat létrejött jelzés|
 +
 +==== "AT Parancs" mód ====
 +A Parancs mód kétféle módon aktiválható
 +  - A modul tápjának bekapcolása **után** a "KEY" portra kapcsoljon 5v-ot. Ekkor a modul az előre beállított baudráta szerinti sebességgel érhető el a parancs módban. Ez előnyös,ha az Arduino-ról szeretné küldeni a parancsokat.
 +  - A modul tápjának bekapcsolása **előtt** a "KEY" portra kapcsoljon 5v-ot. Ekkor a modul 38.400 baud-os parancsmódba kerül. A paraméterezéshez használja a lenti "**BlueToothCommandUtility**" programot.
 +
 +==== BlueToothCommandUtility ====
 +A modult előzőleg kösse össze az Arduino-val az alábbiak szerint
 +  * GND a GND-hoz
 +  * Arduino Pin 2 a HC-05 TXD-hez
 +  * Arduino Pin 3 a HC-05 RXD-hez
 +  * Arduino Pin 4 a HC-05 KEY-hez
 +  * Arduino Pin 5+6 a HC-05 VCC táphoz
 +
 +A program:
 +<code>
 +/* YourDuino.com Example: BlueTooth HC-05 Setup
 + - WHAT IT DOES: 
 +   - Sets "Key" pin on HC-05 HIGH to enable command mode
 +   - THEN applies Vcc from 2 Arduino pins to start command mode
 +   - SHOULD see the HC-05 LED Blink SLOWLY: 2 seconds ON/OFF 
 + 
 + Sends, Receives AT commands
 +   For Setup of HC-05 type BlueTooth Module
 +   NOTE: Set Serial Monitor to 'Both NL & CR' and '9600 Baud' at bottom right   
 + - SEE the comments after "//" on each line below
 + - CONNECTIONS:
 +   - GND
 +   - Pin 2 to HC-05 TXD
 +   - Pin 3 to HC-05 RXD
 +   - Pin 4 to HC-05 KEY
 +   - Pin 5+6 to HC-05 VCC for power control
 + - V1.02 05/02/2015
 +   Questions: terry@yourduino.com */
 +
 +/*-----( Import needed libraries )-----*/
 +#include <SoftwareSerial.h>  
 +/*-----( Declare Constants and Pin Numbers )-----*/
 +#define HC_05_TXD_ARDUINO_RXD 2
 +#define HC_05_RXD_ARDUINO_TXD 3
 +#define HC_05_SETUPKEY        4
 +#define HC_05_PWR1            5  // Connect in parallel to HC-05 VCC
 +#define HC_05_PWR2            6  // Connect in parallel to HC-05 VCC
 +
 +/*-----( Declare objects )-----*/
 +SoftwareSerial BTSerial(HC_05_TXD_ARDUINO_RXD, HC_05_RXD_ARDUINO_TXD); // RX | TX
 +/*-----( Declare Variables )-----*/
 +//NONE
 +
 +void setup()   /****** SETUP: RUNS ONCE ******/
 +{
 +  pinMode(HC_05_SETUPKEY, OUTPUT);  // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
 +  pinMode(HC_05_PWR1, OUTPUT);      // Connect in parallel to HC-05 VCC
 +  pinMode(HC_05_PWR2, OUTPUT);      // Connect in parallel to HC-05 VCC
 +  
 +  digitalWrite(HC_05_SETUPKEY, HIGH);  // Set command mode when powering up
 +  
 +  Serial.begin(9600);   // For the Arduino IDE Serial Monitor
 +  Serial.println("YourDuino.com HC-05 Bluetooth Module AT Command Utility V1.02");
 +  Serial.println("Set Serial Monitor to 'Both NL & CR' and '9600 Baud' at bottom right");
 +  Serial.println("Vcc Power Up DELAY");
 +  delay(2000);
 +  Serial.println("Applying VCC Power. LED should blink SLOWLY: 2 Seconds ON/OFF");
 +  digitalWrite(HC_05_PWR1, HIGH); // Power VCC
 +  digitalWrite(HC_05_PWR2, HIGH);  
 +  delay(2000);
 +  Serial.println("Enter AT commands in top window.");
 +  BTSerial.begin(38400);  // HC-05 default speed in AT command mode
 +
 +}//--(end setup )---
 +
 +
 +void loop()   /****** LOOP: RUNS CONSTANTLY ******/
 +{
 +  // READ from HC-05 and WRITE to Arduino Serial Monitor
 +  if (BTSerial.available())
 +    Serial.write(BTSerial.read());
 +
 +  // READ Arduino Serial Monitor and WRITE to HC-05
 +  if (Serial.available())
 +    BTSerial.write(Serial.read());
 +
 +}//--(end main loop )---
 +
 +/*-----( Declare User-written Functions )-----*/
 +//NONE
 +
 +//*********( THE END )***********
 +
 +</code>
 +
 +==== Bluetooth AT parancsok jegyzéke ====
 +
 +<code>
 +1 AT Test UART Connection
 +2 AT+RESET Reset Device
 +3 AT+VERSION Querry firmware version
 +4 AT+ORGL Restore settings to Factory Defaults
 +5 AT+ADDR Query Device Bluetooth Address
 +6 AT+NAME Query/Set Device Name
 +7 AT+RNAME Query Remote Bluetooth Device’s Name
 +8 AT+ROLE Query/Set Device Role
 +9 AT+CLASS Query/Set Class of Device CoD
 +10 AT+IAC Query/Set Inquire Access Code
 +11 AT+INQM Query/Set Inquire Access Mode
 +12 AT+PSWD Query/Set Pairing Passkey
 +13 AT+UART Query/Set UART parameter
 +14 AT+CMODE Query/Set Connection Mode
 +15 AT+BIND Query/Set Binding Bluetooth Address
 +16 AT+POLAR Query/Set LED Output Polarity
 +17 AT+PIO Set/Reset a User I/O pin
 +18 AT+MPIO Set/Reset multiple User I/O pin
 +19 AT+MPIO? Query User I/O pin
 +20 AT+IPSCAN Query/Set Scanning Parameters
 +21 AT+SNIFF Query/Set SNIFF Energy Savings Parameters
 +22 AT+SENM Query/Set Security & Encryption Modes
 +23 AT+RMSAD Delete Authenticated Device from List
 +24 AT+FSAD Find Device from Authenticated Device List
 +25 AT+ADCN Query Total Number of Device from Authenticated Device List
 +26 AT+MRAD Query Most Recently Used Authenticated Device
 +27 AT+STATE Query Current Status of the Device
 +28 AT+INIT Initialize SPP Profile
 +29 AT+INQ Query Nearby Discoverable Devices
 +30 AT+INQC Cancel Search for Discoverable Devices
 +31 AT+PAIR Device Pairing
 +32 AT+LINK Connect to a Remote Device
 +33 AT+DISC Disconnect from a Remote Device
 +34 AT+ENSNIFF Enter Energy Saving mode
 +35 AT+EXSNIFF Exit Energy Saving mode
 +</code>
 +
 +==== Bluetooth AT hibakódok ====
 +
 +<code>
 +0 Command Error/Invalid Command
 +1 Results in default value
 +2 PSKEY write error
 +3 Device name is too long (>32 characters)
 +4 No device name specified (0 length)
 +5 Bluetooth address NAP is too long
 +6 Bluetooth address UAP is too long
 +7 Bluetooth address LAP is too long
 +8 PIO map not specified (0 lenght)
 +9 Invalid PIO port Number entered
 +A Device Class not specified (0 lenght)
 +B Device Class too long
 +C Inquire Access Code not Specified (0 lenght)
 +D Inquire Access Code too long
 +E Invalid Iquire Access Code entered
 +F Pairing Password not specified (0 lenght)
 +10 Pairing Password too long (> 16 characters)
 +11 Invalid Role entered
 +12 Invalid Baud Rate entered
 +13 Invalid Stop Bit entered
 +14 Invalid Parity Bit entered
 +15 No device in the Pairing List
 +16 SPP not initialized
 +17 SPP already initialized
 +18 Invalid Inquiry Mode
 +19 Inquiry Timeout occured
 +1A Invalid/zero lenght address entered
 +1B Invalid Security Mode entered
 +1C Invalid Encryption Mode entered
 +</code>
 +
 +==== HC-05 példaprogram ====
 +
 +A lenti példaprogramot [[http://www.instructables.com/id/Remotely-Control-LED-using-HC-05-Bluetooth-Arduino/|innen]] másoltam. 
 +
 +Először is, össze kell kötni
 +  * A modul VCC lábát az Arduino 3.3V kimenetével (ne az 5V-tal!)
 +  * Grund a grundhoz
 +  * A modul Rx lábát az Arduino Tx lábával
 +  * A modul Tx lábát az Arduino Rx lábával
 +
 +{{:wiki:arduino:arduino_hc_05_example.jpg|HC-05 példaprogram}}
 +
 +A példaprogram:
 +
 +<code>
 +/*
 +Arduino Turn LED On/Off using Serial Commands
 +Created April 22, 2015
 +Hammad Tariq, Incubator (Pakistan)
 +
 +It's a simple sketch which waits for a character on serial
 +and in case of a desirable character, it turns an LED on/off.
 +
 +Possible string values:
 +a (to turn the LED on)
 +b (tor turn the LED off)
 +*/
 +
 +char junk;
 +String inputString="";
 +
 +void setup()                    // run once, when the sketch starts
 +{
 + Serial.begin(9600);            // set the baud rate to 9600, same should be of your Serial Monitor
 + pinMode(13, OUTPUT);
 +}
 +
 +void loop()
 +{
 +  if(Serial.available()){
 +  while(Serial.available())
 +    {
 +      char inChar = (char)Serial.read(); //read the input
 +      inputString += inChar;        //make a string of the characters coming on serial
 +    }
 +    Serial.println(inputString);
 +    while (Serial.available() > 0)  
 +    { junk = Serial.read() ; }      // clear the serial buffer
 +    if(inputString == "a"){         //in case of 'a' turn the LED on
 +      digitalWrite(13, HIGH);  
 +    }else if(inputString == "b"){   //incase of 'b' turn the LED off
 +      digitalWrite(13, LOW);
 +    }
 +    inputString = "";
 +  }
 +}
 +</code>
 +
 +==== Források ====
 +https://arduino-info.wikispaces.com/BlueTooth-HC05-HC06-Modules-How-To \\ 
 +http://www.instructables.com/id/Remotely-Control-LED-using-HC-05-Bluetooth-Arduino/
 +
 +===== HC-06 =====
 +{{anchor:arduino_hc06}}
 +
 +^HC-06 fent^HC-06 lent|
 +|{{:wiki:arduino:hc_06_front.png?200|HC-06 fent}}|{{:wiki:arduino:hc_06_back.png?200|HC-06 lent}}|
 +
 +A HC-06 modul technikailag megegyezik a fenti HC-05-tel, azzal a külömbséggel, hogy csak slave-ként alkalmazható, azaz a "STATE" és "KEY" portok nem használhatók az esetében.