- Vật liệu thiết yếu
- Mô-đun Bluetooth (HC-05)
- Cổng USART STM32
- Sơ đồ mạch và kết nối
- Lập trình STM32F103C8
- Các bước để kết nối mô-đun Bluetooth với điện thoại Android
Trong thế giới ngày nay Bluetooth đã trở nên rất phổ biến và hầu hết mọi thiết bị như điện thoại di động, máy tính xách tay và hệ thống thông tin giải trí trên ô tô đều sử dụng Bluetooth để giao tiếp không dây. Bluetooth không chỉ được sử dụng để truyền dữ liệu mà còn để điều khiển không dây các thiết bị Bluetooth khác, như sử dụng tai nghe Bluetooth, bạn có thể nghe bài hát không dây từ điện thoại di động của mình hoặc có thể sử dụng hệ thống âm thanh trên ô tô để phát các bài hát từ điện thoại di động của mình.
Bluetooth là một công nghệ không dây hoạt động trên tần số 2,4GHz. Tín hiệu Bluetooth bình thường nằm trong phạm vi bán kính 10 mét. Bluetooth là công nghệ không dây được sử dụng phổ biến nhất trong các dự án nhúng với điều kiện là phạm vi giao tiếp bị hạn chế. Bluetooth có thêm ưu điểm là tiêu thụ điện năng thấp và chi phí vận hành thấp. Nó thường được sử dụng để giao tiếp vi điều khiển với Điện thoại thông minh bằng cách sử dụng các ứng dụng Bluetooth.
Chúng tôi đã thấy giao tiếp của mô-đun Bluetooth với các bộ vi điều khiển khác như Arduino, 8051, PIC, v.v. Bây giờ trong hướng dẫn này, chúng tôi sẽ giao diện mô-đun Bluetooth HC-05 với STM32F103C8 và BẬT / TẮT đèn LED bằng thiết bị di động Android.
Vật liệu thiết yếu
- STM32F103C8
- Mô-đun Bluetooth (HC-05)
- Đèn LED
- Di động Android
- Breadboard
- Kết nối dây
Phần mềm:
- Thiết bị đầu cuối Bluetooth (Ứng dụng Android)
Mô-đun Bluetooth (HC-05)
Nó chủ yếu được sử dụng mô-đun Bluetooth trong các dự án nhúng. Nó là một mô-đun Bluetooth nối tiếp sử dụng giao tiếp nối tiếp có phạm vi dưới 100m và hoạt động ở 5V (tối thiểu 3,3V). Nó có thể được sử dụng để kết nối không dây hai bộ vi điều khiển và cả với điện thoại di động và máy tính xách tay. Vì có nhiều ứng dụng android nên nó rất hữu ích để tạo các dự án điều khiển bằng Bluetooth không dây.
Nó sử dụng giao tiếp USART và có thể được giao tiếp với các bộ vi điều khiển có giao thức truyền thông USART.
Nó có một ăng-ten tích hợp. Nó có các cấu hình Master / Slave có thể được thay đổi trong chế độ lệnh AT, rất hữu ích khi chỉ một thiết bị gửi dữ liệu (master đến slave) như từ PC (MASTER) đến slave (MCU bất kỳ). Một chủ có thể kết nối với các thiết bị khác và phụ không kết nối với kết nối khác ngoài chủ.
Phương thức hoạt đông
Nó có hai chế độ AT Command Mode & Data Mode.
Khi Bluetooth được bật lên, nó sẽ chuyển sang chế độ dữ liệu mặc định. Chế độ này có thể được sử dụng để truyền dữ liệu. Để vào chế độ AT Command trong khi khởi động, chúng ta cần nhấn nút hiện diện trong mô-đun để thay đổi cài đặt mặc định của mô-đun như cấu hình chính / phụ.
Các chân của Mô-đun Bluetooth
- Chân EN (BẬT) - Chân này được sử dụng để đặt Chế độ Dữ liệu hoặc Chế độ Lệnh AT. Theo mặc định, nó ở chế độ DATA MODE. Khi nhấn nút trong khi khởi động, nó sẽ chuyển sang chế độ lệnh AT.
- + Chân 5V - Chân này được sử dụng để cấp nguồn cho mô-đun
- Chân GND - Chân này được sử dụng để nối đất cho mô-đun
- Chân TX - Chân này để kết nối với chân RX của MCU
- Chân RX - Chân này kết nối với chân TX của MCU
- STATE - Chân này cho biết trạng thái của mô-đun, xem bên dưới về các chỉ báo
Chỉ báo LED
- Nó có chỉ báo LED (ĐỎ) cung cấp trạng thái của mô-đun Bluetooth.
- Khi mô-đun Bluetooth KHÔNG ĐƯỢC KẾT NỐI với bất kỳ thiết bị nào, tín hiệu sẽ ở mức thấp và đèn LED màu đỏ nhấp nháy liên tục cho biết mô-đun KHÔNG ĐƯỢC CẶP.
- Khi mô-đun Bluetooth được KẾT NỐI với bất kỳ thiết bị nào, tín hiệu sẽ ở mức CAO và đèn LED màu đỏ nhấp nháy kèm theo một số độ trễ cho biết mô-đun đã được CẶP.
Kiểm tra các dự án khác của chúng tôi để tìm hiểu thêm về mô-đun Bluetooth HC-05 với các bộ vi điều khiển khác:
- Ô tô đồ chơi điều khiển bằng Bluetooth sử dụng Arduino
- Hệ thống tự động hóa gia đình được điều khiển bằng Bluetooth sử dụng 8051
- Đèn điều khiển bằng giọng nói sử dụng Raspberry Pi
- Đài FM được điều khiển trên điện thoại thông minh bằng Arduino và Xử lý
- Xe rô bốt điều khiển bằng điện thoại di động sử dụng G-Sensor và Arduino
- Giao tiếp Mô-đun Bluetooth HC-06 với Bộ vi điều khiển PIC
Cổng USART STM32
Các cổng giao tiếp nối tiếp USART STM32F103C8 (BLUE PILL) được hiển thị trong hình ảnh chân ra bên dưới. Đây là những màu xanh lam có (PA9-TX1, PA10- RX1, PA2-TX2, PA3- RX2, PB10-TX3, PB11- RX3). Nó có ba kênh liên lạc như vậy.
Sơ đồ mạch và kết nối
Các kết nối mạch để giao tiếp Mô-đun Bluetooth với STM32 được thực hiện như dưới đây
Kết nối giữa STM32F103C8 và mô-đun Bluetooth (HC-05)
- Chân TX (PA9) của STM32F103C8 được kết nối với chân RX của mô-đun Bluetooth.
- Chân RX (PA10) của STM32F103C8 được kết nối với chân TX của mô-đun Bluetooth.
- Chân VCC (+ 5V) của mô-đun Bluetooth được kết nối với chân 5V của STM32F103C8.
- Chân GND của mô-đun Bluetooth được kết nối với chân GND của STM32F103C8.
Các kết nối khác
- Chân (PA0) của STM32 (Blue Pill) được kết nối với chân dương của đèn LED thông qua một điện trở nối tiếp. Đèn LED được sử dụng ở đây là màu hỗn hợp.
- Chân dẫn khác được kết nối với GND của STM32.
Lập trình STM32F103C8
Giao tiếp Bluetooth với STM32 giống như arduino và lập trình trong STM32 giống với Arduino IDE. Xem hướng dẫn này để lập trình STM32 với USB bằng Arduino IDE.
Như đã nói, trong dự án này, chúng tôi sẽ giao diện mô-đun Bluetooth (HC-05) với STM32F103C8 và sử dụng Điện thoại thông minh Android có ứng dụng Android Terminal Bluetooth để BẬT và TẮT đèn LED.
Lưu ý: Phải tháo chân RX & TX trong khi tải mã lên STM32F103C8.
Mã hoàn chỉnh cho dự án này được đưa ra ở cuối hướng dẫn này với một Video trình diễn.
Mã hóa cho dự án này rất đơn giản. Có thể sử dụng các mã Arduino tương tự nhưng chỉ nên thay đổi mã pin. Vì chúng tôi có ba bộ chân USART trong STM32F103C8, vì vậy chúng tôi phải chỉ định đúng chân cắm mà chúng tôi đã sử dụng để kết nối mô-đun Bluetooth.
1. Đầu tiên chúng ta cần đặt tên cho các chân với số chân tương ứng với kiểu dữ liệu int như sau
const int pinout = PA0;
2. Tiếp theo, chúng ta cần có một biến để lưu trữ dữ liệu nối tiếp từ điện thoại di động Android. Dữ liệu có thể là một ký tự hoặc số nguyên như sau
char inputdata = 0;
3. Tiếp theo trong void setup (), chúng ta phải bắt đầu giao tiếp nối tiếp giữa STM32 Blue Pill và mô-đun Bluetooth bằng cách cho tốc độ truyền là 9600
Serial1.begin (9600);
Chúng tôi đã sử dụng Serial1 ở đây vì chúng tôi đã kết nối HC-05 với TX1 và RX1 của STM32.
Chúng ta cũng có thể sử dụng Serial2 hoặc Serial3 nhưng theo đó chân phải được kết nối.
4. Một tin nhắn giới thiệu được gửi dưới dạng dữ liệu nối tiếp tới serial1, tức là tới mô-đun Bluetooth HC05. Mô-đun này tiếp tục gửi dữ liệu đến ứng dụng Bluetooth Terminal của điện thoại di động Android. Vì vậy, chúng tôi sử dụng các câu lệnh dưới đây
Serial1.print ("MẠCH KỸ THUẬT SỐ \ n"); Serial1.print ("BLUETOOTH VỚI STM32 \ n");
5. Tiếp theo, chúng ta cần đặt pinmode (PA0) làm đầu ra, vì chúng ta đã kết nối dẫn đến chân này. Vì vậy chúng ta sử dụng
pinMode (sơ đồ chân, OUTPUT);
6. Tiếp theo trong void loop (), chúng ta chạy dữ liệu sau để đọc dữ liệu nối tiếp và bật / tắt đèn LED cho phù hợp
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED ON \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED TẮT \ n"); } } }
Ở đây chúng ta sử dụng nếu tuyên bố vì những mã chỉ thực thi khi cổng Serial1 có bất kỳ dữ liệu nhận được từ các mô-đun Bluetooth rằng tại sao tuyên bố này được sử dụng Serial1.available ()> 0 . Ngược lại, nếu nó không vào được, nó sẽ đợi cho đến khi bắt đầu giao tiếp nối tiếp. Bây giờ nó lưu trữ dữ liệu nhận được trong một inputdata biến = Serial1.read (). Sau đó, nó kiểm tra giá trị được gửi từ ứng dụng thiết bị đầu cuối Bluetooth. Vì vậy, nếu giá trị là 1, nó sẽ in LED ON và làm cho chân (PA0) trở nên CAO bằng câu lệnh DigitalWrite (sơ đồ chân, HIGH) và nếu giá trị là 0, nó sẽ in LED TẮT và làm cho chân (PA0) trở nên THẤP.
Các bước để kết nối mô-đun Bluetooth với điện thoại Android
Bước 1: - Mở Bluetooth từ di động sau khi tải mã vào STM32 từ Arduino IDE và cấp nguồn cho mạch. HÃY NHỚ xóa chân RX và TX trong khi TẢI LÊN mã
Bước 2: - Trong các thiết bị có sẵn, chọn HC-05 và nhập mật khẩu là 1234
Bước 3: - Sau khi ghép nối, mở ứng dụng Bluetooth Terminal chọn kết nối thiết bị và chọn HC-05 như hình bên dưới
Bước 4: - Sau khi kết nối với Mô-đun Bluetooth HC-05, cung cấp các giá trị trong đầu cuối 1 hoặc 0 để BẬT và TẮT đèn LED. Bạn cũng sẽ nhận được một thông báo rằng đèn LED đang Bật hoặc Tắt.