Tác giả: Thợ điện vô duyên - Phạm minh liêm
Hé lô anh em, Vô Duyên lại lên đây\!
Bữa nay anh em mình lại tỉ tê chuyện nghề ha.
Anh em muốn tui viết bài thứ mười bảy trong chuyên mục "Vô Duyên - Hỏi Đáp Về Smart Home" với chủ đề "Tự học vi điều khiển" đúng không?
Vụ này thì tui khoái nè, vì nó là cái "cần câu cơm" của tui mà.
Ở mấy bài trước, anh em mình đã biết cách điều khiển đồ điện bằng remote hồng ngoại.
Giờ mình học một cái hay ho hơn nữa, đó là cách điều khiển thiết bị qua điện thoại bằng Bluetooth.
Cái này giống như anh em mình có thể bật/tắt đèn, quạt từ xa mà không cần phải mua remote riêng, chỉ cần xài cái điện thoại quen thuộc là đủ.
Thôi, không nói nhiều nữa, anh em mình bắt đầu thôi.
Bài 17: Giao tiếp với Module Bluetooth và điều khiển thiết bị qua điện thoại
1. Module Bluetooth là gì?
Nói thẳng luôn, Module Bluetooth giống như một cái "sợi dây điện vô hình" vậy đó.
Nó giúp cho thằng Arduino* của anh em mình và cái điện thoại nói chuyện được với nhau, mà không cần phải nối dây lằng nhằng.
Loại thông dụng nhất cho anh em mình tự học là HC-05 hoặc HC-06.
Anh em cứ tưởng tượng nó là một thằng "thông dịch viên" vậy đó.
Nó sẽ nghe những gì anh em mình gõ trên điện thoại, rồi dịch lại cho thằng Arduino hiểu.
- Mặt tốt: Rẻ tiền, dễ kiếm, không cần mạng Internet.
- Mặt xấu: Khoảng cách kết nối ngắn, chỉ tầm 10-20 mét.
2. Chuẩn bị "đồ nghề"
Để làm bài này, anh em mình cần có:
- Một bo Arduino Uno.
- Một cái module Bluetooth HC-05 (hoặc HC-06).
- Một cái đèn LED và một điện trở 220 Ohm (để làm đèn báo).
- Vài sợi dây nối.
- Một cái điện thoại có Bluetooth.
3. Đấu dây (Mạch điện)
Nói thiệt, cái này quan trọng lắm, anh em làm theo cho kỹ.
Module Bluetooth thường có 4 chân: VCC, GND, RXD và TXD.
- Chân VCC:
- Nối vào chân 5V của Arduino.
- Chân GND:
- Nối vào chân GND của Arduino.
- Chân RXD (nhận):
- Nối vào chân TXD (truyền) của Arduino.
- Anh em mình chọn một chân bất kỳ, ví dụ chân số 3.
- Chân TXD (truyền):
- Nối vào chân RXD (nhận) của Arduino.
- Anh em mình chọn một chân bất kỳ, ví dụ chân số 2.
Ngoài ra, anh em mình nối thêm cái đèn LED vào chân số 13, giống như mấy bài trước, để mình thử nghiệm cho dễ.
4. Lập trình và giải thích
Để thằng Arduino nó nói chuyện được với module Bluetooth, anh em mình phải cài thêm một cái "từ điển" cho nó.
Cái này trong lập trình gọi là thư viện (library), tên là SoftwareSerial.
Thư viện này đã có sẵn trong phần mềm Arduino IDE rồi, anh em mình không cần cài thêm.
Bước 1: Viết chương trình.
- Giờ, anh em mình mở phần mềm lên, rồi copy cái đoạn code dưới đây vào:
// Khai bao thu vien SoftwareSerial
#include <SoftwareSerial.h>
// Dinh nghia chan RX va TX cho module Bluetooth
SoftwareSerial bluetooth(2, 3);
const int LED_PIN = 13; // Chan den LED
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
pinMode(LED_PIN, OUTPUT);
Serial.println("San sang ket noi Bluetooth...");
}
void loop() {
if (bluetooth.available()) {
char duLieu = bluetooth.read();
Serial.print("Da nhan du lieu: ");
Serial.println(duLieu);
if (duLieu == 'A') { // Neu nhan duoc chu "A"
digitalWrite(LED_PIN, HIGH); // Bat den
Serial.println("Bat den LED!");
} else if (duLieu == 'B') { // Neu nhan duoc chu "B"
digitalWrite(LED_PIN, LOW); // Tat den
Serial.println("Tat den LED!");
}
}
}
Giải thích:
- "SoftwareSerial bluetooth(2, 3);":
- Dòng này giống như anh em mình đặt tên cho cái "cổng giao tiếp" với Bluetooth là "bluetooth", và dặn nó là dùng chân số 2 để nhận và chân số 3 để truyền.
- "bluetooth.begin(9600);":
- Câu này để khởi động cái "cổng giao tiếp" đó, với tốc độ 9600.
- "if (bluetooth.available()) { ... }":
- Câu này để kiểm tra xem có dữ liệu nào từ điện thoại gửi đến chưa.
- "char duLieu = bluetooth.read();":
- Câu này để đọc cái chữ cái mà điện thoại vừa gửi qua.
- "if (duLieu == 'A') { ... }":
- Câu này là câu điều kiện.
- Nếu cái chữ cái đọc được là `A`, thì bật đèn.
5. Chạy thử
Sau khi nạp code xong, anh em mình làm theo mấy bước sau:
Bước 1: Kết nối Bluetooth.
- Mở Bluetooth trên điện thoại, tìm kiếm thiết bị mới, anh em sẽ thấy một thiết bị tên là HC-05 hoặc HC-06.
- Bấm vào để kết nối.
- Nếu nó hỏi mật khẩu thì anh em cứ gõ "1234" hoặc "0000" là được.
Bước 2: Tải ứng dụng.
- Anh em mình lên CH Play (Android) hoặc App Store (iOS), tìm một ứng dụng tên là "Serial Bluetooth Terminal" hoặc tương tự.
- Tải về rồi mở lên.
Bước 3: Gửi lệnh.
- Trong ứng dụng đó, anh em mình kết nối với cái module HC-05 vừa nãy.
- Sau đó, anh em gõ chữ "A" rồi bấm gửi, đèn sẽ sáng.
- Gõ chữ "B" rồi bấm gửi, đèn sẽ tắt.
Tổng kết
Tóm lại, bài này anh em mình đã biết cách sử dụng module Bluetooth để điều khiển thiết bị qua điện thoại.
Cái này là bước quan trọng để làm mấy cái ứng dụng nhà thông minh tiện lợi, không cần mua remote chuyên dụng.
Nói nhiêu đó đủ rồi.
Hẹn anh em ở bài viết tiếp theo, mình sẽ học cách xài cảm biến siêu âm để làm máy đo khoảng cách!

Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.