Thợ điện vô duyên học điện: Tự học vi điều khiển Bài 17

Vô Duyên - Hỏi Đáp Về Smart Home: Bài 17 module Bluetooth HC-05 và lập trình Arduino điều khiển qua điện thoại, ứng dụng giải pháp smart home.

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!

Nếu cần tư vấn về tư vấn thiết kế, lắp đặt thi công hay bảo trì sửa chữa các thiết bị và hệ thống smart home, cứ liên hệ tui qua số điện thoại 0902633999 (có Zalo và WhatsApp) để được giải đáp nhé!

Đă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.

[facebook]

MKRdezign

{facebook#https://facebook.com/smarthomeminhliem} {twitter#http://twitter.com} {google-plus#http://google.com} {pinterest#http://pinterest.com} {youtube#https://youtube.com/smarthomeminhliem} {instagram#http://instagram.com/smarthomeminhliem}

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget