Điện thoại di động là một phát minh mang tính cách mạng của thế kỷ. Nó chủ yếu được thiết kế để thực hiện và nhận cuộc gọi và tin nhắn văn bản, nhưng nó đã trở thành toàn thế giới sau khi Điện thoại thông minh xuất hiện. Trong dự án này, chúng tôi đang xây dựng một hệ thống tự động hóa gia đình, nơi người ta có thể điều khiển các thiết bị gia dụng, sử dụng điện thoại dựa trên GSM đơn giản, chỉ bằng cách gửi SMS qua điện thoại của mình. Trong dự án này, không cần điện thoại thông minh, chỉ cần điện thoại GSM cũ sẽ hoạt động để BẬT và TẮT bất kỳ thiết bị điện tử gia dụng nào, từ bất kỳ đâu. Bạn cũng có thể xem thêm một số dự án Tự động hóa gia đình không dây tại đây: Tự động hóa gia đình điều khiển từ xa bằng IR sử dụng Arduino, Tự động hóa gia đình điều khiển bằng Bluetooth cùng với 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.
Giải thích làm việc
Trong dự án này, Arduino được sử dụng để kiểm soát toàn bộ quá trình. Ở đây chúng tôi đã sử dụng giao tiếp không dây GSM để điều khiển các thiết bị gia dụng. Chúng tôi gửi một số lệnh như “# A.light on *”, “# A.light off *”, v.v. để điều khiển các thiết bị gia dụng AC. Sau khi nhận được các lệnh do Arduino đưa ra thông qua GSM, Arduino gửi tín hiệu đến các rơ le, để BẬT hoặc TẮT các thiết bị gia dụng bằng trình điều khiển rơ le.
Thành phần mạch:
- Arduino UNO
- Mô-đun GSM
- 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
- Điện thoại di động
Ở đây chúng tôi đã sử dụng một tiền tố trong chuỗi lệnh là “#A.”. Tiền tố này được sử dụng để xác định rằng lệnh chính đang đến bên cạnh nó và * ở cuối chuỗi cho biết thông báo đó đã được kết thúc.
Khi chúng tôi gửi SMS đến mô-đun GSM bằng Di động, thì GSM sẽ nhận SMS đó và gửi đến Arduino. Bây giờ Arduino đọc SMS này và trích xuất lệnh chính từ chuỗi nhận được và lưu trữ trong một biến. Sau đó, Arduino so sánh chuỗi này với chuỗi được xác định trước. Nếu khớp xảy ra thì Arduino sẽ gửi tín hiệu đến rơle thông qua trình điều khiển rơle để BẬT và TẮT các thiết bị gia dụng. Và kết quả tương đối cũng được in 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 bóng đèn 3 0 watt để trình diễn cho biết Quạt, Đèn và TV.
Dưới đây là danh sách các tin nhắn mà chúng tôi gửi qua SMS, để Bật và Tắt Quạt, Đèn và TV:
S.no. |
Thông điệp |
Hoạt động |
1 |
# A.fan trên * |
Quạt BẬT |
2 |
# A.fan tắt * |
Quạt TẮT |
3 |
# A. bật sáng * |
Bật đèn lên |
4 |
# A.tắt * |
Tắt đèn |
5 |
# A.tv trên * |
TV BẬT |
6 |
# A.tv tắt * |
Tắt TV |
7 |
# A.tất cả * |
Tất cả BẬT |
số 8 |
# A.tất cả * |
Tất cả đều tắt |
Mô-đun GSM:
Mô-đun GSM được sử dụng trong nhiều thiết bị truyền thông dựa trên công nghệ GSM (Hệ thống toàn cầu cho truyền thông di động). Nó được sử dụng để tương tác với mạng GSM bằng máy tính. Mô-đun GSM chỉ hiểu các lệnh AT và có thể đáp ứng tương ứng. Lệnh cơ bản nhất là “AT”, nếu GSM phản hồi OK thì nó hoạt động tốt, ngược lại nó phản hồi với “ERROR”. Có nhiều lệnh AT khác nhau như ATA để trả lời cuộc gọi, ATD để quay số cuộc gọi, AT + CMGR để đọc tin nhắn, AT + CMGS để gửi tin nhắn, v.v. Các lệnh AT phải được theo sau bởi Carriage return tức là \ r (0D trong hex), như “AT + CMGS \ r”. Chúng tôi có thể sử dụng mô-đun GSM bằng các lệnh sau:
ATE0 - Tắt tiếng vọng
AT + CNMI = 2,2,0,0,0
ATD
AT + CMGF = 1
AT + CMGS = "Số điện thoại di động"
>> Bây giờ chúng ta có thể viết tin nhắn của mình
>> Sau khi soạn tin nhắn
Ctrl + Z gửi lệnh gửi tin nhắn (26 ở dạng thập phân).
ENTER = 0x0d trong HEX
Các SIM900 là một hoàn Quad-band GSM / GPRS module mà cung cấp GSM / GPRS 850/900/1800 / 1900MHz hiệu suất cho giọng nói, tin nhắn SMS và dữ liệu với mức tiêu thụ điện năng thấp.
Mô tả mạch
Kết nối của mạch tự động hóa gia đình dựa trên GSM này khá đơ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 Rx và Tx của mô-đun GSM được kết nối trực tiếp tại Tx và Rx pin của Arduino tương ứng. Và mô-đun GSM được cấp nguồn bằng cách sử dụng bộ chuyển đổi 12 volt. 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 lập trình, chúng tôi bao gồm thư viện cho màn hình tinh thể lỏng, sau đó chúng tôi xác định dữ liệu và các chân điều khiển cho màn hình LCD và các thiết bị gia dụng.
#include
Sau khi giao tiếp nối tiếp này được khởi tạo ở 9600 bps và đưa ra hướng tới chân đã sử dụng.
void setup () {lcd.begin (16,2); Serial.begin (9600); pinMode (led, OUTPUT); pinMode (Quạt, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Để nhận dữ liệu theo thứ tự, chúng tôi đã sử dụng hai chức năng một là Serial.available kiểm tra xem có bất kỳ dữ liệu nối tiếp nào đang đến hay không và chức năng khác là Serial.read đọc dữ liệu đến theo tuần tự.
while (Serial.available ()) {char inChar = Serial.read ();
Sau khi nhận dữ liệu theo thứ tự, chúng tôi đã lưu trữ nó trong một chuỗi và sau đó chờ Enter.
void serialEvent () {while (Serial.available ()) {if (Serial.find ("# A.")) {digitalWrite (led, HIGH); chậm trễ (1000); digitalWrite (dẫn đầu, THẤP); while (Serial.available ()) {char inChar = Serial.read (); str = inChar; if (inChar == '*') {temp = 1; trở về; }
Khi Enter đến, chương trình bắt đầu so sánh chuỗi nhận được với chuỗi đã được xác định và nếu chuỗi đã khớp thì một hoạt động tương đối được thực hiện bằng cách sử dụng lệnh thích hợp được đưa ra trong mã.
void check () {if (! (strncmp (str, "tv on", 5))) {digitalWrite (TV, HIGH); lcd.setCursor (13,1); lcd.print ("BẬT"); chậm trễ (200); } else if (! (strncmp (str, "tv tắt", 6))) {digitalWrite (TV, LOW); lcd.setCursor (13,1); lcd.print ("TẮT"); chậm trễ (200); }