- Thành phần bắt buộc
- Sơ đồ mạch mô-đun Bluetooth ESP8266 HC-05
- Mô-đun Bluetooth HC-05
- Sử dụng thiết bị đầu cuối Bluetooth nối tiếp (Ứng dụng Android)
- Lập trình NodeMCU ESP8266 để giao tiếp Bluetooth
Ngày nay, Bluetooth đã trở thành một phần không thể thiếu của các thiết bị kỹ thuật số và nó được tích hợp sẵn trong hầu hết các thiết bị như Điện thoại thông minh, Máy tính xách tay, PC, Máy ảnh, Đồng hồ, Dây đeo thể dục và nhiều thiết bị khác. Bluetooth luôn là giao thức thống trị trong giao tiếp không dây kể từ khi nó được phát hiện. Mặc dù về cơ bản, Công nghệ Bluetooth là một hệ thống thay thế cáp nhưng nó cũng tạo cầu nối chung cho các mạng dữ liệu hiện có và một cơ chế kết nối đặc biệt cho số lượng thiết bị ở các cấu hình khác nhau. Chúng tôi đã sử dụng mô-đun Bluetooth HC05 và HC06 với nhiều bộ vi điều khiển khác để làm cho chúng giao tiếp không dây:
- Giao tiếp Bluetooth HC-05 với STM32F103C8 Blue Pill: Đèn LED điều khiển
- Giao tiếp mô-đun Bluetooth HC-05 với Bộ vi điều khiển AVR
- Robot điều khiển Android sử dụng Vi điều khiển 8051
- Điều khiển Raspberry Pi GPIO bằng Ứng dụng Android qua Bluetooth
- Ô tô đồ chơi điều khiển bằng Bluetooth sử dụng Arduino
Hôm nay chúng ta sẽ giao diện Mô-đun Bluetooth HC-05 với mô-đun Wi-Fi phổ biến ESP8266 và điều khiển đèn LED không dây bằng cách gửi lệnh qua Bluetooth. Đèn LED này có thể được thay thế bằng Rơle và thiết bị AC để xây dựng Ứng dụng Tự động hóa Gia đình.
Thành phần bắt buộc
Phần cứng:
- NodeMCU ESP8266
- Mô-đun Bluetooth HC-05
Phần mềm:
- Arduino IDE
- Đầu cuối Bluetooth nối tiếp (Ứng dụng Android): Để giám sát dữ liệu Bluetooth trên điện thoại thông minh.
Sơ đồ mạch mô-đun Bluetooth ESP8266 HC-05
Sơ đồ mạch kết nối module Bluetooth HC-05 với NodeMCU ESP8266 rất đơn giản như hình bên dưới:
Cần có mô-đun Bluetooth bên ngoài với ESP8266 vì nó không có Bluetooth sẵn có như ESP32. ESP32 có sẵn Bluetooth năng lượng thấp (BLE) và Bluetooth cổ điển, mà trước đây chúng tôi đã đề cập đến một số hướng dẫn:
- Máy chủ BLE ESP32 - Dịch vụ GATT để chỉ báo mức pin
- Máy khách ESP32 BLE - Kết nối với Dây đeo thể dục để kích hoạt bóng đèn
- Cách sử dụng Bluetooth nối tiếp trong ESP32
Mô-đun Bluetooth HC-05
HC-05 là một mô-đun Bluetooth nối tiếp. Nó có thể được cấu hình bằng các lệnh AT. Nó có thể hoạt động trong ba cấu hình khác nhau (Master, Slave, Loop back). Trong dự án của chúng tôi, chúng tôi sẽ sử dụng nó như một nô lệ. Các tính năng của mô-đun HC-05 bao gồm,
- Độ nhạy -80dBm điển hình.
- Tốc độ truyền mặc định: 9600bps, 8 bit dữ liệu, 1 bit dừng, không có chẵn lẻ.
- Mã pin tự động ghép nối: mã pin mặc định “1234” hoặc “0000”.
- Nó có 6 chân.
- Các chân Vcc và Gnd được sử dụng để cấp nguồn cho HC-05.
- Các chân Tx và Rx được sử dụng để giao tiếp với vi điều khiển.
- Bật mã pin để kích hoạt mô-đun HC-05. khi nó ở mức thấp, mô-đun bị tắt
- Pin trạng thái hoạt động chỉ báo trạng thái. Khi nó không được ghép nối / kết nối với bất kỳ thiết bị Bluetooth nào khác, đèn LED sẽ nhấp nháy liên tục. Khi nó được kết nối / ghép nối với bất kỳ thiết bị Bluetooth nào khác, đèn LED sẽ nhấp nháy với độ trễ liên tục là 2 giây.
Để tìm hiểu thêm về mô-đun Bluetooth, hãy xem qua các dự án liên quan đến Bluetooth khác của chúng tôi.
Sử dụng thiết bị đầu cuối Bluetooth nối tiếp (Ứng dụng Android)
Sử dụng ứng dụng này rất dễ dàng và chỉ cần vài bước. Ảnh chụp màn hình được đưa ra dưới đây với các bước. Chỉ cần ghép nối HC-05 với điện thoại thông minh. Mã mặc định là '0000' hoặc '1234' nhưng Hầu hết '1234' hoạt động.
- Đầu tiên tải về và cài đặt ứng dụng Sau đó vào thiết bị để tìm Mô-đun HC-05. Chọn Mô-đun HC-05 được tìm kiếm trên ứng dụng. Nếu không tìm thấy thì hãy kiểm tra xem HC-05 có được cấp nguồn đúng cách hay không.
- Sau khi nhấp vào HC-05, nó sẽ được kết nối. Bây giờ, hãy nhập bất kỳ tin nhắn nào vào hộp tin nhắn và gửi nó. Nó sẽ được in trên Arduino Serial Monitor.
Lập trình NodeMCU ESP8266 để giao tiếp Bluetooth
Để lập trình NodeMCU ESP8266 bằng ArduinoIDE, chỉ cần cắm nó từ Máy tính xách tay hoặc PC bằng Cáp Micro USB và mở Arduino IDE. Đối với hướng dẫn này, serial phần cứng và phần mềm sẽ được sử dụng. Serial phần cứng sẽ được sử dụng để đọc và ghi dữ liệu vào Arduino Serial Monitor và Sofware Serial sẽ được sử dụng để giao tiếp với HC-05. Như mọi khi mã hoàn chỉnh và Video giới thiệu được đưa ra ở cuối hướng dẫn.
Ban đầu, hãy bao gồm thư viện Chuỗi phần mềm vì nó sẽ được sử dụng trong hướng dẫn này.
#include
Xác định chân RX và TX cho giao tiếp nối tiếp phần mềm, cũng xác định chân dẫn được kết nối với NodeMCU. Chúng tôi đang sử dụng đèn LED bên trong của NodeMCU ở Chân D4.
SoftwareSerial btSerial (D2, D3); // RX, int led = D4;
Khởi động Serial Phần mềm và Phần cứng ở tốc độ 9600 baud. Đặt Led Pin làm đầu ra. In một số thông báo chào mừng và gỡ lỗi.
Serial.begin (9600); btSerial.begin (9600); pinMode (D4, OUTPUT); Serial.println ("Đã bắt đầu…");
Đầu tiên, hãy đọc từ mô-đun Bluetooth và xác định trường hợp nếu Mô-đun Bluetooth nhận “B” từ Điện thoại thì Đèn LED bắt đầu nhấp nháy được kết nối với D4 của NodeMCU, nếu nó nhận “S” thì dừng đèn LED nhấp nháy. Chúng tôi không sử dụng delay () ở đây. Nhưng 'mili' Arduino sẽ được sử dụng để không cản trở hiệu suất của Arduino.
if (btSerial.available ()> 0) { char data = btSerial.read (); switch (dữ liệu) { case 'B': ledB = "nháy"; phá vỡ; case 'S': ledB = "dừng"; phá vỡ; default: nghỉ; } }
Mili được xác định và đặt độ trễ ở 500ms tức là đèn led sẽ nhấp nháy sau mỗi 500ms. Ngoài ra, bạn có thể cấu hình độ trễ dẫn bằng cách thay đổi giá trị của 'khoảng thời gian'. Trạng thái đã dẫn sẽ được chuyển đổi.
unsigned long currentMillis = millis ();
if (ledB == "nháy") { Serial.println ("đã bắt đầu nhấp nháy"); if (currentMillis - beforeMillis> = khoảng thời gian) { beforeMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite (led, ledState); } }
Và điều này sẽ kết thúc việc lập trình NodeMCU để nhấp nháy đèn LED không dây bằng Bluetooth. Bạn cũng có thể thay đổi chương trình để thực hiện các tác vụ khác nhau với đèn LED chẳng hạn như đèn LED có thể được thay thế bằng Thiết bị chuyển tiếp với AC để thực hiện dự án tự động hóa Bluetooth Home. Trong trường hợp có bất kỳ nghi ngờ hoặc đề xuất nào, vui lòng truy cập diễn đàn của chúng tôi hoặc bình luận bên dưới.