So sánh bluetooth 4.0 và bluetooth hc05

Module Bluetooth 4.0 Giải Mã Âm Thanh MP3 5V

Module Bluetooth 4.0 Giải Mã Âm Thanh MP3 sử dụng để giải mã âm thanh từ các thiết bị như điện thoại, laptop, máy tính báng,..Sử dụng module này kết nối với các mạch công suất của loa để chế loa bluetooth hoặc các thiết bị âm thanh khác.

So sánh bluetooth 4.0 và bluetooth hc05

Module Bluetooth 4.0 Giải MÃ Âm Thanh MP3 5V

Thông Số Kỹ thuật:

  • Điện áp hoạt động: 5VDC
  • Kết nối: bluetooth 4.0
  • Khoảng cách kết nối: 12m
  • Tần số: 2.402GHz - 2.480GHz
  • Anten được tích hợp trên mạch in
  • Kích thước của module bluetooth: 20x 30x 2mm
  • Khối lượng: 20g

So sánh bluetooth 4.0 và bluetooth hc05

Kích Thước Thực Tế Module Bluetooth 4.0 Giải MÃ Âm Thanh MP3 5V

So sánh bluetooth 4.0 và bluetooth hc05
'

Mặt Sau Module Bluetooth 4.0 Giải MÃ Âm Thanh MP3 5V

So sánh bluetooth 4.0 và bluetooth hc05

Sơ Đồ Module Bluetooth 4.0 Giải MÃ Âm Thanh MP3 5V

So sánh bluetooth 4.0 và bluetooth hc05

Sơ Đồ Kết Nối Module Bluetooth 4.0 Giải MÃ Âm Thanh MP3 5V

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.