Bật tắt đèn bằng giọng nói với Arduino

I. Giới thiệu

Đã có nhiều bài viết về sử dụng bluetooth để bật tắt thiết bị từ xa, hay là những cách điều khiển khác bằng button nhưng liệu bạn có nghĩ bạn có thể bật tắt thiết bị (Ví dụ ở đây là một đèn LED, nếu muốn bật tắt thiết bị 220V bạn tham khảo thêm bài này) từ xa bằng giọng nói hay không? Có vẻ có gì đó không ổn đúng không nào, nhưng nó không khó và không có gì là không ổn cả. Với bài viết này tác giả muốn giúp mọi người có thể làm được điều này một cách dễ dàng và ứng dụng nó làm điều mình thích!

II. Phần cứng

III. Tiến hành kết nối các thành phần

Lần này mình không giới thiệu về cách Module nửa vì hầu hết đã đều được các bài viết khác nói rất rõ.  Bạn cần biết thì có thể tìm ở đây http://arduino.vn/reference/howto

Cách nối dây module HC-05

Lưu ý: Khi nạp chương trình vào Arduino, ta phải gỡ 2 dây gắn vào Tx và Rx trên board Arduino ra nhé. Sau khi quá trình upload hoàn thành thì bạn hẳn cắm 2 dây kia vào vị trí Rx và Tx vào lại. Đối với Arduino Mega do hỗ trợ thêm 3 cổng Serial nữa nên việc nối vào chân RX3 và TX3 không làm ảnh hưởng đến quá trình nạp chương trình, đó là lý do mình khuyên bạn nên sử dụng 2 chân này ở phía trên (có chút thoải mái khi không phải rút ra rút vô laugh)

Sau khi lắp xong module HC-05 ta tiến hành lắp thêm một đèn LED ở chân số 13 để điều khiển Nên nhớ cần phải lắp thêm điện trở tại đầu ra của chân 13 ( điện trở 220 Ohm ).

Gắn thêm đèn led để điều khiển

Nhiêu đó thôi không khó để lắp đúng không nào công việc tiếp theo là làm cho nó chạy !

IV. Lập trình và tinh chỉnh

1. Thiết lập điện thoại của bạn

Để có thể điều khiển được bằng giọng nói cụ thể ở đây là giọng nói tiếng việt thì ta cần phải cài đặt trên điện thoại của chúng ta.

Cụ thể các bạn làm theo những thao tác bên dưới để có thể làm được điều mong muốn ban đầu.

Bước 1

Bước 2

Bước 3

Bước 4

Xong công đoạn thiết lập cho cái điện thoại của bạn có thể dùng được vào việc tìm kiếm bằng giọng nói và dùng nó để điều khiển

2. Lập trình ứng dụng điều khiển

Để có thể điều khiển bằng giọng nói ta cần một ứng dụng để có thể nhận diện được giọng nói củng chúng ta.

Vậy làm sao có ứng dụng đó. Bài viết này tác giả sẽ không để link tải mà yêu cầu khi đọc bài viết này là phải thực hành để có được cái bạn muốn.

Có làm mới có ăn mà wink

Để có thể tự tạo 1 ứng dụng điều khiển tác giả đã xây dựng nó tại địa chỉ: ai2.appinventor.mit.edu heartviệc tạo ra một ứng dụng rất đơn giản chỉ bằng cách kéo và thả. Từ bài viết này bạn có thể phát triển thêm để phục vụ nhiều công việc hơn.

a. Đây dao diện cho MONITOR

b. Các đối tượng dùng để lập trình

c. Khối code cho ứng dụng

Khối code dùng để kết nối điện thoại với board thông qua HC-05

Khối code dùng để nhận diện giọng nói và gửi đến Arduino

Nếu bạn chưa biết gì về App Inventor và thấy những dòng code trên thật khó hiểu, thì hãy đọc bài này.

3. Lập trình cho Arduino

String data;
int led1 = 2; 
int led2 = 3;
void setup() {
  Serial.begin(9600);
  pinMode(led1, OUTPUT); 
  pinMode(led2, OUTPUT); 
}
void loop() {
  while (Serial.available()){  //Kiểm tra byte để đọc
  delay(30); //Delay để ổn định hơn 
  char c = Serial.read(); // tiến hành đọc
  if (c == '#') {break;} //Thoát khỏi vòng lặp khi phát hiện từ #
  data += c; // data = data + c
  } 
  if (data.length() > 0) {
    Serial.println(data);  
if(data == "bật đèn" ||data == "Bật đèn"||data == "1")
{digitalWrite(led1, HIGH);}
//////////////////////////////////////////////////////
else if(data == "tắt đèn"||data == "Tắt đèn"||data == "10") 
{digitalWrite(led1, LOW);}

data="";}} //Thiết lập lại các biến
// Có sự đóng góp và giúp đỡ của Tân_Oggy

V. Kết luận

Bấy nhiêu đó thôi từ những gì mình vừa chia sẽ chắc rằng là sẽ có nhiều ứng dụng hay với giọng nói. Hãy cùng phát triển nào và đừng quên chia sẽ dự án của mình với cộng đầu nhá ! Cảm ơn các bạn đã đọc bài viết !

Dưới đây là video demo dự án của mình và mình đã ứng dụng bài viết này vào đó ! Mong là sẽ có sản phẩm hay hơn từ các bạn

Youtube:
theo arduino.vn
Facebook Comments

Trả lời

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *