Làm thế nào để thiết kế tự động hóa nhà kích hoạt bằng giọng nói?
Ý tưởng về Tự động hóa gia đình đang trở nên nổi bật vì nó giúp giảm thiểu nỗ lực và sai lầm của con người và do đó mở rộng hiệu quả. Nó sử dụng sự kết hợp của thiết bị và tiến bộ lập trình cho phép kiểm soát máy móc và các thiết bị điện tử khác trong nhà. Với sự trợ giúp của Tự động hóa gia đình, chúng ta có thể điều khiển các thiết bị điện của mình từ xa và một lợi thế lớn là điện năng tiêu thụ được giảm đến mức đáng kể. Có một số loại Tự động hóa tại nhà như Điều khiển bằng Bluetooth, Điều khiển từ xa và Điều khiển Internet, v.v. và mỗi loại đều có những ưu điểm và nhược điểm riêng. Trong dự án này, chúng tôi sẽ thiết kế Tự động hóa gia đình được điều khiển bằng giọng nói trong đó các thiết bị khác nhau sẽ được điều khiển bằng cách gửi lệnh thoại. Hệ thống này rất đắt khi mua từ chợ nhưng khi chúng tôi tích hợp tất cả các thiết bị này thông qua Arduino, điều khiển tất cả các thiết bị điện trong nhà trở nên rất dễ dàng và chi phí thấp.
Làm thế nào để tự động hóa các thiết bị gia dụng bằng Arduino?
Như chúng ta đã có ý tưởng cơ bản, bây giờ chúng ta hãy chuyển sang thu thập các thành phần, lắp ráp chúng để tạo thành mạch và viết mã để tự động hóa các thiết bị gia dụng của bạn.
Bước 1: Các thành phần được sử dụng (Phần cứng)
Bước 2: Các thành phần được sử dụng (Phần mềm)
Sau khi tải xuống Proteus 8 Professional, hãy thiết kế mạch trên đó. Chúng tôi đã đưa các mô phỏng phần mềm vào đây để có thể thuận tiện cho những người mới bắt đầu thiết kế mạch và thực hiện các kết nối thích hợp trên phần cứng.
Bước 3: Nghiên cứu các thành phần
Như chúng tôi đã lập danh sách các thành phần mà chúng tôi sẽ sử dụng trong dự án của mình. Hãy để chúng tôi đi trước một bước và đi qua một nghiên cứu ngắn gọn về cách các thành phần này hoạt động.
- Arduino UNO: Arduino UNO là một bảng vi điều khiển bao gồm một vi mạch ATMega 328P và được phát triển bởi Arduino.cc. Bo mạch này có một tập hợp các chân dữ liệu kỹ thuật số và tương tự có thể được giao tiếp với các bảng hoặc mạch mở rộng khác. Bo mạch này có 14 chân Digital, 6 chân Analog và có thể lập trình với Arduino IDE (Môi trường phát triển tích hợp) thông qua cáp USB loại B. Nó yêu cầu 5V để cấp nguồn TRÊN và một Mã Cvận hành.
- Bộ thu phát nối tiếp Bluetooth không dây HC-05: Chúng tôi cần giao tiếp không dây trong dự án này, vì vậy chúng tôi sẽ sử dụng công nghệ Bluetooth và cho mô-đun đó sẽ được sử dụng là HC-05. Mô-đun này có một số tốc độ truyền có thể lập trình nhưng tốc độ truyền mặc định là 9600 bps. Nó có thể được cấu hình dưới dạng chính hoặc phụ, trong khi một mô-đun khác HC-06 chỉ có thể hoạt động ở chế độ phụ. Mô-đun này có bốn chân. Một cho VCC (5V) và ba cho GND, TX và RX. Mật khẩu mặc định của mô-đun này là 1234 hoặc là 0000. Nếu chúng tôi muốn giao tiếp giữa hai bộ vi điều khiển hoặc giao tiếp với bất kỳ thiết bị nào có chức năng Bluetooth như Điện thoại hoặc Máy tính xách tay HC-05 sẽ giúp chúng tôi thực hiện điều đó. Một số ứng dụng Android đã có sẵn giúp quá trình này dễ dàng hơn rất nhiều.
- Điều khiển bằng giọng nói Bluetooth cho Arduino: Ứng dụng này được phát triển bởi SimpleLabsIN cho các dự án Arduino dựa trên giọng nói. Ứng dụng Android này sẽ sử dụng tính năng nhận dạng giọng nói của điện thoại và sẽ chuyển đổi lệnh thoại thành văn bản và chuyển chuỗi qua Bluetooth. Ứng dụng có thể được tải xuống từ Đây
- Mô-đun chuyển tiếp 12 V: Nếu ai muốn chuyển tải điện áp cao từ vi điều khiển, bảng tiếp điện 12V này có thể làm được. Nó chứa 8 rơ le 12V được đánh giá ở 10A / 250V AC (DC 30V / 10A). Mỗi mô-đun chuyển tiếp được bật / tắt bằng một đầu vào kỹ thuật số được cách ly quang học có thể được kết nối trực tiếp với chân đầu ra của bộ vi điều khiển. Nó chỉ yêu cầu điện áp khoảng 1,0V để bật các đầu vào nhưng có thể xử lý điện áp đầu vào lên đến 12V. Điều này làm cho nó lý tưởng cho cả thiết bị 5V và 3.3V. Bạn có thể mua mô-đun rơle tùy theo số lượng thiết bị mà bạn muốn điều khiển. Ví dụ, nếu bạn muốn điều khiển 4 thiết bị, bạn nên mua 4 mô-đun Relay.
Bước 4: Tìm hiểu thiết kế mạch với sơ đồ mạch
Đầu tiên, chúng ta cần kết nối HC-05 với Arduino UNO. Vì Bluetooth sử dụng giao thức UART nên chúng ta cần sử dụng các chân RX và TX của Arduino. Chúng tôi sẽ sử dụng thư viện “SoftwareSerial” để xác định các chân RX và TX của riêng chúng tôi (Chân 2 là RX và Chân 3 là TX). Chân RX của mô-đun Bluetooth và chân TX của Arduino sẽ bị ngắt kết nối. Thứ hai, chúng tôi sẽ kết nối các rơle với Arduino. Chúng tôi đã sử dụng một bảng chuyển tiếp làm sẵn với 4 kênh, vì vậy chúng tôi cần kết nối đầu vào của các rơle riêng lẻ với Arduino. Để kết nối tải với mô-đun rơle, hãy tham khảo sơ đồ dưới đây:
Bốn tải được kết nối với mô-đun rơle để trình diễn và hãy hết sức cẩn thận khi sử dụng Nguồn AC với bảng tiếp điện. Chỉ để trình diễn, chúng tôi đã chuyển TRÊN các tải thay thế:
Bước 5: Nguyên tắc làm việc của dự án
Trong dự án này, lệnh thoại được sử dụng để điều khiển các thiết bị khác nhau. Lắp ráp phần cứng theo sơ đồ mạch đã cho ở trên. Lắp ráp tất cả các thành phần trên breadboard. Sau khi thực hiện các kết nối cần thiết, hãy bật nguồn điện cho mạch và ghép nối Bluetooth của điện thoại với mô-đun Bluetooth HC-05. Trước khi ghép nối, hãy cài đặt ứng dụng được đề cập ở trên trong điện thoại thông minh của bạn.
Bây giờ, kết nối điện thoại với mô-đun Bluetooth. Nhấp vào tùy chọn “Kết nối Robot”Và chọn thiết bị Bluetooth thích hợp. Nếu các thiết bị chưa được ghép nối trước đó, hãy ghép nối chúng ngay bây giờ bằng cách nhập mã pin 0000 hoặc là 1234.
Sau khi kết nối thành công, các thiết bị đã sẵn sàng để truyền dữ liệu. Để truyền dữ liệu, hãy nhấn vào biểu tượng micrô trên ứng dụng và bắt đầu ra lệnh bằng giọng nói. Đảm bảo rằng tính năng nhận dạng giọng nói được bật trên điện thoại thông minh của bạn (tính năng này thường được liên kết với ứng dụng Google). Ví dụ: khi chúng tôi nhấn vào biểu tượng micrô và nói "Bật đèn",ứng dụng sẽ nhận dạng lệnh và chuyển nó sang mô-đun Bluetooth.
Khi ứng dụng nhận dạng chuỗi, nó sẽ gửi chuỗi đó là “bật đèn #” và thông báo thực tế mà Mô-đun Bluetooth nhận được có loại định dạng này ("*Thông điệp#"). Lý do để đệm dấu ‘*’ và ‘#’ ở đầu và cuối chuỗi là để xác định điểm bắt đầu và kết thúc của thông báo. Thông báo đã nhận được so sánh với một số chuỗi được xác định trước và nếu thông báo khớp với chúng, hành động tương ứng như “bật” và tắt sẽ xảy ra.
Trong dự án này, chúng tôi đã sử dụng các lệnh sau: “bật AC”, “tắt AC”, “bật đèn”, “tắt đèn”, “bật TV”, “tắt TV”, “bật quạt ”,“ Bật tất cả ”và“ tắt tất cả ”.
Bước 6: Bắt đầu với Arduino
Nếu bạn chưa quen với Arduino IDE trước đây, đừng lo lắng vì dưới đây, bạn có thể thấy các bước ghi mã rõ ràng trên bảng vi điều khiển bằng Arduino IDE. Bạn có thể tải xuống phiên bản Arduino IDE mới nhất từ đây và làm theo các bước được đề cập bên dưới:
1). Khi bảng Arduino được kết nối với PC của bạn, hãy mở “Bảng điều khiển” và nhấp vào “Phần cứng và Âm thanh”. Sau đó nhấp vào “Thiết bị và Máy in”. Tìm tên của cổng mà bảng Arduino của bạn được kết nối. Trong trường hợp của tôi, nó là “COM14” nhưng nó có thể khác trên PC của bạn.
2). Bây giờ hãy mở Arduino IDE. Từ Công cụ, đặt bảng Arduino thành Arduino / Genuino UNO.
3). Từ cùng một menu Công cụ, hãy đặt số cổng mà bạn đã thấy trong bảng điều khiển.
4). Để sử dụng ứng dụng điều khiển bằng giọng nói này, chúng ta cần có một thư viện đặc biệt trong Arduino IDE. Thư viện này được đính kèm trong liên kết bên dưới, cùng với mã. Để bao gồm thư viện, hãy truy cập Phác thảo> Bao gồm Thư viện> Thêm ZIP. Thư viện.
5). Tải xuống mã được đính kèm bên dưới và sao chép nó vào IDE của bạn. Để tải mã lên, hãy nhấp vào nút tải lên.
Bạn có thể tải xuống mã bằng cách nhấp vào đây.
Bước 7: Hiểu mã
Code không quá phức tạp nhưng vẫn có một số phần của nó được mô tả ngắn gọn bên dưới.
1. Ban đầu, một thư viện được bao gồm để cho phép giao tiếp nối tiếp trên các chân kỹ thuật số khác của Arduino, sử dụng phần mềm để tái tạo chức năng. Hai Ghim được khởi tạo để sử dụng với mô-đun Bluetooth. Bốn Ghim được khởi tạo để sử dụng cho các thiết bị gia dụng được kết nối với hệ thống và một biến chuỗi được khởi tạo để lưu trữ dữ liệu đến qua Bluetooth một cách tuần tự.
#includeconst int rxPin = 2; // Khởi tạo pisns cho mô-đun bluetooth const int txPin = 3; SoftwareSerial mySerial (rxPin, txPin); int ac = 4; // Khởi tạo Ghim cho Đồ gia dụng int light = 5; int fan = 6; int tv = 7; Dữ liệu chuỗi;
2. void setup ()là một chức năng trong đó chúng ta đặt các chân đã khởi tạo để sử dụng như INPUT và OUTPUT. Tốc độ Baud cũng được khởi tạo ở đây. Tốc độ Baud là tốc độ mà bảng Arduino giao tiếp với các thành phần đi kèm. Trong chức năng của chúng tôi, chúng tôi đã đặt tất cả các chân kết nối với các thiết bị thành THẤP.
void setup () {Serial.begin (9600); mySerial.begin (9600); pinMode (ac, OUTPUT); pinMode (đèn, OUTPUT); pinMode (quạt, OUTPUT); pinMode (tv, OUTPUT); digitalWrite (ac, LOW); digitalWrite (ánh sáng, THẤP); digitalWrite (quạt, THẤP); digitalWrite (tv, LOW); }
3. void loop ()là một hàm chạy lặp đi lặp lại trong một vòng lặp. Ở đây tất cả các điều kiện được thiết lập để làm cho hệ thống hoạt động bình thường. Sau đây Trong khi() vòng lặp được sử dụng để lấy dữ liệu nối tiếp đến bộ vi điều khiển.
while (1) // Bắt đầu vào theo thứ tự {while (mySerial.available () <= 0); ch = mySerial.read (); if (ch == '#') break; dữ liệu + = ch; }
Dưới tất cả các điều kiện được thiết lập để bật tất cả các thiết bị điện đi kèm theo lệnh của người dùng. Những điều kiện này khá đơn giản và dễ hiểu.
if (data == "* bật AC") {digitalWrite (ac, HIGH); Serial.println ("ac on"); } else if (data == "* tắt AC") {digitalWrite (ac, LOW); Serial.println ("tắt ac"); } else if (data == "* bật đèn") {digitalWrite (light, HIGH); Serial.println ("bật đèn"); } else if (data == "* tắt đèn") {digitalWrite (sáng, THẤP); Serial.println ("tắt đèn"); } else if (data == "* bật quạt") {digitalWrite (quạt, CAO); Serial.println ("quạt bật"); } else if (data == "* tắt quạt") {digitalWrite (quạt, THẤP); Serial.println ("tắt quạt"); } else if (data == "* bật TV") {digitalWrite (tv, HIGH); Serial.println ("tv on"); } else if (data == "* bật TV") {digitalWrite (tv, LOW); Serial.println ("tắt tv"); } else if (data == "* bật tất cả") {digitalWrite (ac, HIGH); digitalWrite (ánh sáng, CAO); digitalWrite (quạt, CAO); digitalWrite (tv, HIGH); Serial.println ("tất cả trên"); } else if (data == "* tắt hết") {digitalWrite (ac, LOW); digitalWrite (ánh sáng, THẤP); digitalWrite (quạt, THẤP); digitalWrite (tv, LOW); Serial.println ("hết"); }}
Các ứng dụng
- Hệ thống Tự động hóa Nhà Kích hoạt Bằng giọng nói sẽ giúp chúng ta điều khiển các tải khác nhau (thiết bị điện) bằng các lệnh thoại đơn giản.
- Những người khuyết tật có thể nhận được rất nhiều lợi ích từ dự án này như nếu họ không thể đi lại, họ có thể ra lệnh bằng giọng nói và quay đầu TRÊN hoặc là TẮT thiết bị.
- Dự án này cũng có thể được mở rộng bằng cách thêm các cảm biến khác nhau (ánh sáng, khói, v.v.).