Module Bluetooth HC06 giao tiếp với Arduino

0
1392

HC06 Module Bluetooth 2.0 là một trong những module giao tiếp khoảng cách ngắn và rẻ nhất. Tiêu thụ điện năng rất thấp và có công nghệ Bluetooth 2.0.

Chức năng cơ bản của module là thiết lập giao tiếp khoảng cách ngắn giữa hai bộ vi điều khiển và hệ thống. Module Bluetooth chủ yếu chỉ sử dụng với Arduino / vi điều khiển trong các dự án đang phát triển vì module này có các giao tiếp dữ liệu qua công nghệ Bluetooth hiện đại.

Module chỉ thực hiện các chức năng của slave và Module có phương thức lưu trữ dữ liệu bên trong để thiết bị slave cuối cùng kết nối mà không cần bất kỳ sự cho phép hoặc xác minh nào. Tự động kết nối và các phương pháp khác có thể thay đổi bằng cách sử dụng chế độ dòng lệnh cho HC06.

Module Bluetooth HC06 giao tiếp với Arduino

Cấu hình chân HC06

Module HC06 là thiết bị Bluetooth slave có giao thức UART. Module chỉ có chân giao tiếp và chân nguồn. Tất cả các chân của HC06 là:

Cấu hình chân HC06

VCC

Module HC06 có một chân nguồn duy nhất, kết nối + 5V để cấp nguồn cho thiết bị.

GND

Chân GND là chân nối đất chung.

TX

Giao thức giao tiếp trong thiết bị là UART và chân TX là để gửi dữ liệu.

RX

Chân nhận dữ liệu trong giao tiếp UART với các thiết bị bên ngoài như Arduino hoặc vi điều khiển.

Đặc tính module Bluetooth HC06

  • Module HC06 BT có tính năng ghi nhớ tên thiết bị giúp kết nối một cách tự động.
  • Có thể gửi dữ liệu với tốc độ lên đến 2-3MBs trong một khoảng cách ngắn.
  • Module Bluetooth HC06 là slave và có thể thay đổi bằng chế độ dòng lệnh.
  • Module có cả chế độ dòng lệnh và dữ liệu mặc định
  • Thiết bị có thể hoạt động với các thiết bị TTL / CMOS do điện áp hoạt động của nó là 5V và cấu trúc bên trong của nó.
  • Có ăng-ten tích hợp 2,4 GHz.
  • Việc truyền dữ liệu cho HC06 dựa trên công nghệ GFSK. Do đó, module mã hóa và xác thực để đảm bảo an toàn cho dữ liệu.
  • Nhiệt độ hoạt động từ -20 độ C đến +55 độ C và nó hoạt động ở dòng điện 20mA.

Lựa chọn thay thế

HC05, HM10, HC03, HC03

Cách sử dụng HC06

Module Bluetooth có thể sử dụng được với bất kỳ bộ vi điều khiển nào có giao tiếp UART. Trong mọi thiết bị đều có phần cứng giao tiếp uart và trong cả phần mềm thiết bị.

Ở đây bạn sẽ học cách sử dụng HC06 với Arduino và làm theo cách tương tự sẽ giao tiếp được với các bộ vi điều khiển khác và thậm chí cả bo mạch khác. Đầu tiên, kết nối module theo sơ đồ mạch đã cho.

Cách sử dụng HC06

Hoạt động như một thiết bị slave. HC06 có thể kết nối với các thiết bị bên ngoài bằng cách bật nguồn và điền mật khẩu.

  • Mật khẩu mặc định – 1234 hoặc 0000

Module sẽ bắt đầu chuyển dữ liệu đến các chân uart và để đọc chúng, lập trình đọc dữ liệu nối tiếp của Arduino / vi điều khiển sẽ có ích.

Giao tiếp UART Arduino

Trong Arduino, hai giao thức hữu ích để đọc và ghi dữ liệu theo thứ tự. Đầu tiên là phần cứng uart là mặc định. Để sử dụng phần cứng uart, tham khảo code sau.

void setup() {

Serial.begin(9600);}

void loop() {

if (Serial.available() > 0 )

{byte data = Serial.read();

Serial.print(data);}

  Serial.print("DATA");

Serial.write("DATA");}

Lệnh đầu tiên serial.begin là để khởi tạo tốc độ truyền dữ liệu. Tốc độ truyền mặc định của module HC06 là 9600 nhưng vẫn có thể thay đổi. Mọi thiết bị có giao tiếp UART đều có các cách thay đổi tốc độ truyền ở các mức cụ thể.

Lệnh thứ hai là serial.available để phát hiện kết nối và lệnh cuối cùng quan trọng nhất là serial.read. Serial.read dùng để đọc dữ liệu từ module bên ngoài.

Do đó, hãy luôn ghi nhớ đọc dữ liệu biến byte vì dữ liệu di chuyển giữa các module luôn tính bằng byte. Serial.write / Serial.print là để gửi dữ liệu. Mọi dữ liệu đều có thể sử dụng được bằng các dòng lệnh sau.

Chế độ dòng lệnh HC06

Chế độ dòng lệnh là một trong những chế độ cài đặt mặc định cho module HC06 BT, nơi có thể thay đổi cài đặt gốc của nó. Để truy cập chế độ dòng lệnh, code ở trên có thể sử dụng được nhưng tốc độ truyền cần phải thay đổi.

Tốc độ truyền cho chế độ dòng lệnh là 38400. Sau khi tạo tốc độ truyền ở 38400, các lệnh sẽ hoạt động ở màn hình serial của Arduino IDE. Các lệnh chung sau đây giúp thay đổi cài đặt thiết bị.

Lệnh Chức năng
AT Để vào chế độ dòng lệnh hoặc để xác minh thông tin liên lạc.
AT+VERSION Công ty thiết bị có thể xem được thông qua lệnh này.
AT+NAME Thay thế “name” để đặt tên mới của thiết bị.
AT+PIN1234 Đặt mã PIN của module thành 1234
AT+BAUDX Thay X bằng một số tương ứng tốc độ truyền.

1.       1200

2.       2400

3.       4800

4.       9600

5.       19200

6.       38400

7.       57600

8.       115200

9.       230400

10.   460800

11.   921600

12.   1382400

Có hai phương pháp để gửi lệnh. Đầu tiên là viết trực tiếp và thứ hai là bằng lệnh Serial.print trong cổng COM của Arduino. chỉ cần nhập lệnh như ví dụ sau:

Serial.print (“AT”);

Trong một số thiết bị, một giao thức hoạt động phụ thuộc vào các phiên bản phần mềm và module.

Phần mềm uart Arduino cho HC06

Phần mềm lập trình nối tiếp sử dụng các chân digital để tạo dữ liệu theo byte và truyền và nhận chúng chính xác qua giao thức UART. Đoạn code sau sẽ giúp giao tiếp dữ liệu nối tiếp và tránh giao tiếp nhầm với phần cứng cho các thiết bị khác:

#include <SoftwareSerial.h> 

SoftwareSerial mySerial (10, 11); // RX, TX 

void setup () { 

mySerial.begin (38400); } 

void loop () { 

if (mySerial.available ()) 

Serial.print (mySerial.read ()); } 

mySerial.print (Serial.read ()); 

mySerial.write (Serial.read ()); }

Trong đoạn code trên, chân 10 sẽ hoạt động như chân RX và 11 như TX. Cả hai chân đều có thể thay đổi được.

Phần mềm uart Arduino cho HC06

Mục đích cơ bản của giao thức nối tiếp qua phần mềm là để giành phần cứng cho các thiết bị khác. Vì vậy, chúng có thể hoạt động mà không bị gián đoạn Arduino.

Phần mềm serial tương thích với Bluetooth HC06 cho mọi loại dữ liệu vì dữ liệu của nó truyền theo byte. Nếu không, các phần mềm khó thực hiện được vì chỉ có thể gửi dữ liệu từ 0-255 ở dạng số nguyên.

Ví dụ IOT HC06 Với Arduino, DHT11

Ở đây chúng ta sẽ tích hợp Bluetooth cho một ứng dụng IoT.  Sử dụng DHT11 để cảm biến nhiệt độ và HC06 Bluetooth để truyền dữ liệu. Arduino sẽ thực hiện các hoạt động cơ bản của cả hai thiết bị. Đây là mạch sau.
Ví dụ IOT HC06 Với Arduino, DHT11

Để hoạt động, dưới đây là code tham khảo cho sơ đồ trên.

#include "DHT.h"

DHT dht(2, DHT11);

void setup() {

  Serial.begin(9600);

  dht.begin();

  pinMode(3, OUTPUT);}

void loop() {

  float temp = dht.readTemperature();

  float hum = dht.readHumidity();

  Serial.print(temp);

  delay(100);

  Serial.print(hum);

  delay(1000);

  if (temp == 25)

    digitalWrite(3, HIGH);

  else

    digitalWrite(3, HIGH); }

 

Code sẽ lấy dữ liệu từ các chân đầu vào analog và sau đó nó sẽ truyền tới Bluetooth hc06. Bluetooth sẽ truyền dữ liệu đến thiết bị nhận Bluetooth.

Thiết bị nhận có thể là bất kỳ thứ gì như màn hình, máy tính hoặc điện thoại thông minh. Sau đó, tín hiệu phát sóng có thể xem được sau mỗi giây. code có giới hạn tăng nhiệt độ. Trong trường hợp nhiệt độ tăng từ trên 50 độ C, còi sẽ kích hoạt để báo động cho người sử dụng.

Các ứng dụng

  • Trong hầu hết các bộ điều khiển từ xa, module này rất phổ biến với giá thành rẻ.
  • Đối với robot và ô tô, thiết bị này rất phù hợp để giao tiếp và tránh kết nối phức tạp.
  • Trong các dự án kỹ thuật có nhiều thiết bị Bluetooth
  • Trong các phụ kiện điện thoại di động.

Sơ đồ 2D HC06

Sơ đồ 2D HC06

>>> Mời anh em xem thêm:

Tôi là một người làm việc trong lĩnh vực cơ khí, thiết bị công nghiệp....Blog là nơi tôi chia sẻ thông tin hữu ích đến các bạn đọc.
Subscribe
Notify of
0 Bình luận
Inline Feedbacks
View all comments