Trước đây, chúng tôi đã đề cập đến nhiều loại Tự động hóa gia đình sử dụng các công nghệ khác nhau như Tự động hóa gia đình dựa trên DTMF, Tự động hóa gia đình điều khiển bằng PC sử dụng Arduino, Tự động hóa gia đình điều khiển bằng Bluetooth. Trong dự án này, chúng tôi đang sử dụng giao tiếp không dây dựa trên IR để điều khiển các thiết bị gia dụng. Trong dự án này, Arduino được sử dụng để kiểm soát toàn bộ quá trình. Chúng tôi gửi một số lệnh đến hệ thống điều khiển bằng cách sử dụng điều khiển từ xa IR TV / DVD / MP3 để điều khiển các thiết bị gia dụng AC. Sau khi nhận được tín hiệu từ điều khiển từ xa IR, Arduino sẽ gửi tín hiệu liên quan đến các rơ le chịu trách nhiệm BẬT hoặc TẮT các thiết bị gia dụng thông qua trình điều khiển rơ le.
Giải thích làm việc:
Hoạt động của dự án này là dễ hiểu. Khi chúng ta nhấn bất kỳ nút nào của IR Remote thì điều khiển từ xa sẽ gửi một mã dưới dạng tập hợp các xung được mã hóa sử dụng tần số điều chế 38Khz. Các xung này được nhận bởi cảm biến TSOP1738 và được đọc bởi Arduino, sau đó Arduino giải mã dòng xung đã nhận thành giá trị hex và so sánh giá trị đã giải mã đó với giá trị hex được xác định trước của nút được nhấn. Nếu có bất kỳ khớp nào xảy ra thì Arduino thực hiện hoạt động tương đối và kết quả tương ứng cũng được hiển thị trên màn hình LCD 16x2 bằng cách sử dụng các lệnh thích hợp. Ở đây trong dự án này, chúng tôi đã sử dụng 3 bóng đèn có màu sắc khác nhau, để trình diễn cho biết Quạt, Đèn và TV.
Có nhiều loại IR Remote có sẵn cho các thiết bị khác nhau nhưng hầu hết chúng đều hoạt động trên tín hiệu Tần số khoảng 38KHz. Ở đây trong dự án này, chúng tôi điều khiển các thiết bị gia dụng bằng điều khiển từ xa IR TV. Để phát hiện tín hiệu từ xa IR, chúng tôi sử dụng Bộ thu IR TSOP1738. Cảm biến TSOP1738 này có thể cảm nhận tín hiệu Tần số 38Khz. Hoạt động của điều khiển từ xa IR và TSOP1738 có thể được đề cập chi tiết trong bài viết này: Bộ phát và bộ thu IR
Các thành phần:
- Arduino UNO
- TSOP1738
- IR TV / Điều khiển từ xa DVD
- ULN2003
- Rơ le 5 volt
- Bóng đèn có giá đỡ
- Kết nối dây
- Bảng bánh mì
- LCD 16x2
- Nguồn cấp
- PVT
- IC 7805
Ở đây trong dự án này, chúng tôi đã sử dụng nút số 7, 8 và 9 của điều khiển từ xa IR, để điều khiển Quạt, Đèn và TV tương ứng và nút BẬT / TẮT (nút Nguồn) được sử dụng để BẬT và TẮT tất cả các thiết bị đồng thời.
Ở đây chúng tôi đã sử dụng phương pháp bật tắt để BẬT và TẮT một thiết bị gia đình. Chuyển đổi phương pháp không có gì khác ngoài việc đạt được điều đó cho dù nút được nhấn thậm chí không có lần nào hoặc không có lần nào. Điều này được tìm thấy bằng cách nhận lời nhắc sau khi chia nó cho 2 (i% 2), nếu có một số lời nhắc thì thiết bị sẽ được BẬT và nếu lời nhắc là 0 thì nó sẽ bị TẮT. Giả sử Phím 7 được nhấn trên điều khiển từ xa thì điều khiển từ xa sẽ gửi tín hiệu đến Arduino thông qua Bộ thu IR TSOP. Sau đó, Arduino giải mã nó và lưu trữ giá trị đã giải mã vào biến kết quả. Bây giờ biến kết quả có giá trị hex 0x1FE00FF, sau khi khớp nó với giá trị hex được xác định trước của khóa 7 (xem hình trên), Arduino BẬT Quạt. Bây giờ khi chúng ta nhấn lại cùng một phím (phím 7) thì IR sẽ gửi cùng một mã. Arduino nhận được cùng một mã và khớp với cùng một mã như trước đây nhưng lần này Fan đã TẮT vì chuyển đổi bit (i% 2).
Giải mã tín hiệu điều khiển từ xa IR bằng Arduino:
Đây là danh sách các mã đầu ra được giải mã từ xa loại DVD NEC:
Nếu bạn không biết đầu ra được giải mã cho điều khiển từ xa IR của mình, bạn có thể dễ dàng tìm thấy nó, chỉ cần làm theo các bước sau:
- Tải xuống thư viện từ xa IR từ đây
- Giải nén nó và đặt nó vào thư mục Arduino 'Libraries' của bạn. Sau đó đổi tên thư mục đã giải nén thành IRremote.
- Chạy chương trình dưới đây từ Arduino của bạn và mở cửa sổ Serial Monitor trong Arduino IDE. Bây giờ nhấn bất kỳ nút IR Remote nào và xem đầu ra hex được giải mã tương ứng trong cửa sổ Serial Monitor.
* IRremote: IRrecvDemo - cho thấy nhận mã IR với IRrecv * Một bộ tách sóng / giải điều chế IR phải được kết nối với đầu vào RECV_PIN. * Phiên bản 0.1 tháng 7 năm 2009 * Bản quyền 2009 Ken Shirriff * http://arcfn.com * / #include
Chương trình trên được lấy từ thư mục 'example' của thư viện IRremote, bạn có thể xem thêm các ví dụ khác để tìm hiểu thêm về cách sử dụng IR remote. Vì vậy, đó là cách chúng tôi giải mã đầu ra từ xa IR.
Mô tả mạch:
Kết nối của mạch này rất đơn giản ở đây một màn hình tinh thể lỏng được sử dụng để hiển thị trạng thái của các thiết bị gia dụng được kết nối trực tiếp với arduino ở chế độ 4 bit. Các chân dữ liệu của LCD là RS, EN, D4, D5, D6, D7 được kết nối với chân số của arduino số 6, 7, 8, 9, 10, 11. Và chân đầu ra của TSOP1738 được kết nối trực tiếp tại chân số 14 (A) của Arduino. Và chân Vcc được kết nối với +5 volt và chân GND được kết nối tại đầu nối đất của mạch. Một trình điều khiển rơle cụ thể là ULN2003 cũng được sử dụng để điều khiển rơle. Rơ le 5 volt SPDT 3 được sử dụng để điều khiển LIGHT, FAN và TV. Và rơ le được kết nối với chân arduino số 3, 4 và 5 thông qua trình điều khiển rơ le ULN2003 để điều khiển LIGHT, FAN và TV tương ứng.
Mô tả mã:
Trong phần lập trình của dự án này Trước hết trong phần lập trình, chúng tôi bao gồm thư viện cho điều khiển từ xa IR dễ dàng có sẵn tại Google. Và định nghĩa pin và khai báo biến.
#include
Và sau đó bao gồm một tiêu đề cho màn hình tinh thể lỏng và sau đó chúng tôi xác định dữ liệu và chân điều khiển cho màn hình LCD và thiết bị gia dụng.
#include
Sau đó, chúng ta cần khởi tạo màn hình LCD và đưa ra hướng của chân cắm được sử dụng cho quạt, đèn và TV.
void setup () {Serial.begin (9600); lcd.begin (16,2); pinMode (Quạt, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Như đã giải thích, phần bên dưới của mã được sử dụng để so sánh giá trị hex nhận được với mã hex đã được xác định của nút đó. Nếu nó khớp thì một hoạt động tương đối được thực hiện bằng cách sử dụng các hàm thích hợp được cung cấp trong mã.
void loop () {if (’tcv.decode (& results)) {Serial.println (results.value, HEX); chậm trễ (100); lcd.setCursor (0,0); lcd.print ("TV Light Fan"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Quạt, x);