Bluetooth 4.0 HM-10 Master Slave Module
Contents
Introduction
Bluetooth 4.0 HM-10 Master Slave Module use TI CC2541, Master and slave
roles in one, transmission version and remote control version and PIO state acquisition functions in one, Support the AT command modify module parameters, Convenient and flexible.
Transmission version can be used to transmit data between two Bluetooth devices.
Remote Control version can be used to Control PIO ports output high or low level without any other MCU.
PIO state acquisition version can be used to acquisition PIO ports state without any other MUC. (Only support Bluetooth V2.1)
Parameter
Bluetooth Protocol: Bluetooth Specification V4.0 BLE
USB Protocol: USB V2.0
Operating Frequency: 2.4GHz ISM band
Modulation Mode: GFSK (Gaussian Frequency Shift Keying)
Transmitting Power: ≤4dBm
Sensitivity: ≤-84dBm at 0.1% BER
Transmission Rate: Asynchronous: 6 kbps
Synchronous: 6 kbps
Security Feature: Authentication and encryption
Support Service: Central & Peripheral UUID FFE0, FFE1
Power Supply: +5VDC 50mA
Operating Temperature: -5 ~ +65 Centigrade
Physical Dimension: 27mm x 13mm x 2.2 mm.
Pin Description:
STATE: state test pins, connected to internal LED, generally keep it unconnected.
BRK: break connect, it means breaking Bluetooth connection, generally keep it unconnected.
VCC: positive pole of the power source.
GND: Ground.
TXD: serial interface, transmitting terminal.
RXD: serial interface, receiving terminal.
Test method
Using Uno/Mega2560
Step 1: You should compile and upload the code before building the circuit
/****************************************/ #define ledPin 13 // //pin 13 built-in LED light int val; void setup() { Serial.begin(9600); pinMode(ledPin, OUTPUT); } void loop() { if(Serial.available()) // { val = Serial.read(); if(val =='A') //if comes a 'A',LED on control board will blink { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); delay(500); Serial.println("Rebecca"); //print on Serial debugging assistant on computer } } } /****************************************/
Step2: Connecting circuit
Bluetooth 4.0 | SunFounder Uno Board |
---|---|
VCC | 5V |
GND | GND |
TXD | RX0(pin0) |
RXD | TX0(pin1) |
Step 3: You need to download a Bluetooth 4.0 debugging assistant for mobile phone to connect your phone with the Bluetooth4.0 module. We've provided the tool in Android. Just download BleSerialPort.zip on your smart phone and decompress. Then you can see a file BleSerialPort. Enable Bluetooth on your phone and install the BleSerialPort.
Open the installed app, as shown in Fig 1. Click icon at the top right corner. Then click the connect (Fig 2). Find HMSoft and click.
After connecting mobile phone or other Bluetooth device and Bluetooth-4.0 module successfully (Fig 4), the LED indicator on the Bluetooth module will be steady on (stop blinking). Otherwise, the LED indicator will keep blinking.
Now you can send commands. Send a character A to the Bluetooth-4.0 module. If the communication works normally, on the surface you can see A sent out and Rebecca returned. Then the LED on the SunFounder UNO board will blink once.
Communication
If you want to receive date sent from the arduino to your phone, and also receive data from your phone to your arduino. you should upload the follow code first,then open the IDE serial monitor and Android app BleSerialPort,now you can send the data to each other.
For Uno
#include <SoftwareSerial.h> SoftwareSerial mySerial(7, 8); // RX, TX // Connect HM10 Arduino Uno // Pin 1/TXD Pin 7 // Pin 2/RXD Pin 8 void setup() { Serial.begin(9600); // If the baudrate of the HM-10 module has been updated, // you may need to change 9600 by another value // Once you have found the correct baudrate, // you can update it using AT+BAUDx command // e.g. AT+BAUD0 for 9600 bauds mySerial.begin(9600); } void loop() { char c; if (Serial.available()) { c = Serial.read(); mySerial.print(c); } if (mySerial.available()) { c = mySerial.read(); Serial.print(c); } }
For Mega2560
//Bluetooth Module MEGA2560 RXD TXD1(pin18) TXD RXD1(pin19) VCC 5V GND GND void setup() { //define 2 serial port Serial.begin(9600); Serial1.begin(9600); } void loop() { char c; //the IDE send,phone receive if (Serial.available()) { c = Serial.read(); Serial1.print(c); } //the phone send ,IDE receive if (Serial1.available()) { c = Serial1.read(); Serial.print(c); } }
Using AT Commands
Step 1: wire.
Connect TXD of Bluetooth 4.0 Module to RXD of PL2303, RXD to TXD, GND to GND, and VCC to VCC. PL2303 is a USB to Serial Bridge Controller. You can also use other components, such as FTDI.
Bluetooth 4.0 | PL2303 |
VCC | VCC |
GND | GND |
TXD | RX0(pin0) |
RXD | TX0(pin1) |
Step 2:set parameters
After wiring, open the serial port debug tool sscom32. Set parameters at first.
1) Open the serial port, click Open Com. Select the correct port, as shown below.
2) Select the correct baud rate. Here select 9600 bps.Default: 9600, as shown below.
Step3: Now, you can start to send instructions. Enter”AT” in the text box. If Bluetooth 4.0 Module goes well, OK will be sent, as shown below:
Also you can send AT+NAME?. OK+NAME:HMSoft will be returned .
Send AT+BAUD?, OK+Get:0 will be returned. Default: 0(9600)
For more information about Bluetooth 4.0 AT Instructions. please refer to Bluetooth 4.0 BLE module datasheet.pdf