HC Serial Bluetooth Module (HC-06) [S018]




HC Serial Bluetooth Module (HC-06) Phone to Slave [S018] 

https://www.youtube.com/watch?v=RuOHfPNCc4I


HC Serial Bluetooth Module (HC-06) Mster to Slave [S018]

https://www.youtube.com/watch?v=y8-W5BIm6xU


*GitHub : https://github.com/rdiot/rdiot-s018.git


* Specs

Serial port bluetooth, Drop-in replacement for wired serial connections, transparent usage. You can use it simply for a serial port replacement to establish connection between MCU and GPS, PC to your embedded project and etc.

And now, we provide HC-05 and HC-06. HC-05 could be setting to Master or Slave by user. HC-06 has be designed Master or Slave when the factory, user couldn't change the role.


Feature :

Bluetooth protocal:  Bluetooth Specification v2.0+EDR

Frequency:  2.4GHz ISM band

Modulation:  GFSK(Gaussian Frequency Shift Keying)

Emission power:  ≤4dBm, Class 2

Sensitivity:  ≤-84dBm at 0.1% BER

Speed: Asynchronous:  2.1Mbps(Max) / 160 kbps, Synchronous: 1Mbps/1Mbps

Security:  Authentication and encryption

Profiles:  Bluetooth serial port

Power supply: +3.3VDC 50mA

Working temperature: -20 ~ +75 Centigrade

Dimension: 26.9mm x 13mm x 2.2 mm


Default : Slave, 9600 baud rate, N, 8, 1. Pincode 1234


* Contents

- Connect

WAKEUP

VCC(3.6~6V) ----- 5V

GND ----- GND

TXD ----- RX

RXD ----- TX

STATE 


- Master Setup

AT

AT+ROLE=M

Arduino Reboot

AT+PIN1234

AT+BAUD4


- Slave Setup

AT

AT+ROLE=S

Arduino Reboot

AT+PIN1234

AT+BAUD4

AT+NAMEbtSlave


- Key Code

@Setup Master or Slave 

#include <SoftwareSerial.h>

 

SoftwareSerial BTSerial(2, 3);

 

void setup()  

{

  Serial.begin(9600);

  BTSerial.begin(9600);

}

void loop()

{

  if (BTSerial.available())

    Serial.write(BTSerial.read());

  if (Serial.available())

    BTSerial.write(Serial.read());

}  


@ Slave Test Source (Phone Master -> Slave)

#include "U8glib.h"

#include <SoftwareSerial.h>

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

SoftwareSerial BTSerial(2, 3);

 

char data=NULL;

String str="";

int ledPin = 9;

 

void setup() {

 pinMode(ledPin,OUTPUT);

  Serial.begin(9600);

  BTSerial.begin(9600);

}

 

void loop(void) {

 

  if (BTSerial.available()) 

  {

   //Serial.write(BTSerial.read()); 

    data = (char)BTSerial.read();

   

    if(data == '1') {

      digitalWrite(ledPin,HIGH);

      str = "ON";

    } else if(data == '0') {

      digitalWrite(ledPin,LOW);

      str = "OFF";

    }

   }

 

  // picture loop

  u8g.firstPage();  

  do {

    draw();

  } while( u8g.nextPage() );

  

  // rebuild the picture after some delay

  delay(100);

 

}

 

void draw(void) {

  u8g.setFont(u8g_font_9x15B);

  u8g.setPrintPos(0, 12); 

  u8g.println("HC-06");

 

  u8g.setFont(u8g_font_helvB14);

  u8g.setPrintPos(0,40);

 

  u8g.print("data="+(String)data);

 

  u8g.setFont(u8g_font_helvB14);

  u8g.setPrintPos(0,60);

 

  u8g.print("cmd="+(String)str);

}

 


@ Master HC-06 <-> Slave HC-06 Test Source

#include <SoftwareSerial.h>

SoftwareSerial BT_Serial(2,3); //RX, TX

 

void setup()

{

  Serial.begin(9600);

  BT_Serial.begin(9600); // connect bluetooth

}

 

void loop()

{

  if(BT_Serial.available())

    Serial.write(BT_Serial.read()); // bluetooth read

    

  if(Serial.available())

    BT_Serial.write(Serial.read()); // bluetooth write  

}

Posted by RD IoT RDIoT

댓글을 달아 주세요