Hướng dẫn sử dụng module bluetooth hc05

Phần đông chúng ta hẳn sẽ không có sẵn một module USB-to-TTL trong tay, vậy thì cách đơn giản hơn là sử dụng Arduino để giao tiếp với module bluetooth thông qua cổng serial. Chúng ta hãy cùng xem cách làm!

Kết nối:

Module HC-06 có 4 chân, chúng ta sẽ kết nối với Arduino theo bảng sau:

HC-06 pin Arduino pin Vcc 5V GND GND Tx 6 Rx 7

Lưu ý quan trọng:

  • Tx và Rx của HC-06 có thể kết nối với hầu hết các digital pins của Arduino, không nhất thiết phải dùng pin 6 và pin 7 như trong bảng trên. Tuy nhiên, trong một số bài hướng dẫn, các bạn sẽ thấy Tx được nối vào pin 0 (tức Arduino Rx) và Rx được nối vào pin 1 (tức Arduino Tx). Điều này là rất không nên, bởi lẽ với một số phiên bản Arduino, Rx và Tx được nối với cổng USB hoặc một số chức năng khác, và thường sẽ khiến cho việc upload code xảy ra lỗi.
  • Trên một số module HC-06, Tx và Rx sử dụng tín hiệu 3.3V, trong khi cổng tín hiệu của Arduino thường là 5V, hãy lưu ý điều này trước khi bạn cắm nguồn. Một mạch chia điện thế đơn giản có thể giải quyết vấn đề này.

Cùng code nào:

Các bạn có thể load sketch sau vào Arduino và chạy thử, mình sẽ giải thích code dưới đây:

include <SoftwareSerial.h>

define TX_PIN 7

define RX_PIN 6

SoftwareSerial bluetooth(RX_PIN, TX_PIN); int baudRate[] = {300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200}; void setup() { Serial.begin(9600); while (!Serial) {} Serial.println("Configuring, please wait..."); for (int i = 0 ; i < 9 ; i++) {

 bluetooth.begin(baudRate[i]);
 String cmd = "AT+BAUD4";
 bluetooth.print(cmd);
 bluetooth.flush();
 delay(100);
} bluetooth.begin(9600); Serial.println("Config done"); while (!bluetooth) {} Serial.println("Enter AT commands:"); } void loop() { if (bluetooth.available()) {
Serial.write(bluetooth.read());
} if (Serial.available()) {
bluetooth.write(Serial.read());
} }

Đoạn code này nghĩa là sao vậy???

Trước hết, hãy cùng làm quen với thư viện SoftwareSerial, nó cho phép ta sử dụng bất cứ cổng digital nào của Arduino để giao tiếp theo phương thức serial. Hãy đọc để biết thêm chi tiết: https://www.arduino.cc/en/Reference/SoftwareSerial

Tiếp theo, để có thể giao tiếp, chúng ta phải đồng bộ tốc độ giao tiếp (baud rate) giữa Arduino và bluetooth module. Thường thì ta sẽ sử dụng baud rate = 9600 bps (bits per second), và cấu hình mặc định của hầu hết các module bluetooth cũng vậy. Tuy nhiên, hãy hình dung nếu bạn nhận được một con HC-06 từ ai đó, và họ đã thiết lập lại tốc độ truyền tín hiệu mà bạn không biết, làm sao bạn có thể giao tiếp với nó được đây? Mình có một trick nho nhỏ cho vấn đề này, đó chính là vòng lặp for ở đầu chương trình, chúng ta sẽ quét qua mọi tốc độ có thể, và gửi một lệnh AT+BAUD4 tương ứng với việc thiết lập lại tốc độ ở 9600bps (lưu ý rằng câu lệnh có thể khác nhau tùy theo module). Nhờ thế, sau khi kết thúc vòng lặp, module sẽ được thiết lập lại về tốc độ ban đầu.

Cuối cùng, làm sao để gửi câu lệnh? Rất đơn giản, ở đoạn code trên, mình đã sử dụng cách nhập câu lệnh bằng tay thông qua Serial Monitor của Arduino IDE (đó đó cái hình kính lúp bên góc trên bên phải đó). Bất cứ câu lệnh nào bạn gõ vào sẽ được chuyển qua USB đến Arduino và được copy từ Arduino tới HC-06, sau đó HC-06 sẽ trả lời lại và cũng được Arduino copy tới cổng USB tới chúng ta. Đây cũng là một lý do nữa để không cắm trực tiếp TxRx của bluetooth module vào TxRx của Arduino, bạn đoán ra chưa? Chúng ta cần TxRx của Arduino để có thể nhập câu lệnh bằng tay. Tất nhiên bạn có thể nhập lệnh thẳng trực tiếp qua sketch Arduino, ví dụ: bluetooth.print("AT+BAUD4"), nhưng cá nhân mình thấy để thiết lập ban đầu thì nhập lệnh bằng tay sẽ hiệu quả hơn nhiều.

Nếu câu lệnh của các bạn được nhập đúng, HC-06 sẽ trả lời và thông tin sẽ được hiện trực tiếp trên của sổ Serial Monitor. Tiếp sau đây, mình sẽ giới thiệu một số câu lệnh AT thông dụng.

XIN CHÀO CÁC BẠN! Trong bài viết này, mình sẽ giới thiệu với các bạn Module Bluetooth HC05 và config bluetooth HC05

I.MODULE BLUETOOTH HC05.

S

ơ đồ chân:

Hướng dẫn sử dụng module bluetooth hc05

Hướng dẫn sử dụng module bluetooth hc05

-Điện áp hoạt động: 3.6-6V. -Module có 2 chế độ làm việc (có thể lựa chọn chế độ làm việc bằng cách thay đổi trạng thái chân 34 KEY): ØTự động kết nối. ØĐáp ứng theo lệnh: khi làm việc ở chế độ này, các bạn có thể gửi các lệnh AT để giao tiếp với module. -Module HC05 có thể nhận 1 trong 3 chức năng: Master, Slave, Loopback (có thể lựa chọn các chức năng bằng lệnh AT). -Giao tiếp với module bằng giao tiếp nối tiếp không đồng bộ qua 2 đường RX và TX, vì vậy các bạn có thể sử dụng PC với chuẩn RS232 hoặc các dòng vi điều khiển để giao tiếp.Bằng cách thay đổi trạng thái chân 34 (KEY), bạn có thể cấu hình chế độ hoạt động cho module: -Để module làm việc ở chế độ kết nối tựđộng: KEY phải ở trạng thái Floating (trạng thái không kết nối). -Để module làm việc ở chế độ đáp ứng theo lệnh: KEY = ‘0’ (kết nối xuống đất)àCấp nguồn cho module àchuyển KEY = ‘1’ (kết nối lên VCC) à lúc này có thể sử dụng các lệnh AT để giao tiếp.

- Hiện nay trên các modul Bluetooth đều đã có nút chuyển chế độ ngay trên modul, các bạn chỉ cần cấp nguồn rồi nhấn 1 lần vào nút và nhả ra là bạn đã có thể sử dụng lệnh AT để giao tiếp rồi.