Professional Documents
Culture Documents
DATN - Điều khiển thiết bị qua SMS
DATN - Điều khiển thiết bị qua SMS
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
MSSV: 20156011
Hà Nội, 2-2022
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
Hà Nội, 2-2022
ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho giảng viên hướng dẫn)
Giảng viên đánh giá: ThS. Đinh Thị Nhung
Họ và tên sinh viên: Phạm Thị Hương Ly MSSV: 20156011
Tên đồ án: “Hệ thống điều khiển thiết bị từ xa và cảnh báo nguy cơ cháy nổ qua SMS”.
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây:
Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết
1 2 3 4 5
1 (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ
1 2 3 4 5
án
1 2 3 4 4
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế)
1 2 3 4 5
1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề
1 2 3 4 5
1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được
1 2 3 4 5
Có khả năng phân tích và đánh giá kết quả (15)
Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện 1 2 3 4 5
5
dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5
Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được 1 2 3 4 5
6
phân tích và đánh giá thỏa đáng. 1 2 3 4 5
Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt
1 3 3 4 5
7 được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất
1 2 3 4 5
hướng giải quyết có thể thực hiện trong tương lai.
Kỹ năng viết quyển đồ án (10)
Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp
mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được
1 3 3 4 5
8 giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm,
1 2 3 4 5
dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu
tham khảo và có trích dẫn đúng quy định
Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận 1 3 3 4 5
9
logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC
10a khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong 5
nước) từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu
10b khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích 2
trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest.
10c Không có thành tích về nghiên cứu khoa học 0
Điểm tổng /50
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho cán bộ phản biện)
Giảng viên đánh giá: .....................................................................................................
Họ và tên sinh viên: Phạm Thị Hương Ly MSSV: 20156011
Tên đồ án: “Hệ thống điều khiển thiết bị từ xa và cảnh báo nguy cơ cháy nổ qua SMS”.
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây:
Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết
1 1 3 4 5
1 (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ
1 2 3 4 5
án
1 2 3 4 5
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế)
1 2 3 4 5
1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề
1 2 3 4 5
1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được
1 2 3 4 5
Có khả năng phân tích và đánh giá kết quả (15)
Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện 1 2 3 4 5
5
dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5
Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được 1 2 3 4 5
6
phân tích và đánh giá thỏa đáng. 1 2 3 4 5
Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt
1 2 3 4 5
7 được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất
1 2 3 4 5
hướng giải quyết có thể thực hiện trong tương lai.
Kỹ năng viết quyển đồ án (10)
Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp
mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được
1 2 3 4 5
8 giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm,
1 2 3 4 5
dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu
tham khảo và có trích dẫn đúng quy định
Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận 1 2 3 4 5
9
logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC khoa
10a học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) 5
từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu
10b khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích 2
trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest.
10c Không có thành tích về nghiên cứu khoa học 0
Điểm tổng /50
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
LỜI CẢM ƠN
Trong quá trình thực hiện đồ án tốt nghiệp, em đã nhận được sự giúp đỡ, góp ý
và chỉ dạy tận tình của thầy cô và bạn bè tại trường Đại học Bách khoa Hà Nội.
Em xin chân thành gửi lời cảm ơn đến ThS. Đinh Thị Nhung – viện Điện tử -
Viễn thông – trường Đại học Bách khoa Hà Nội đã trực tiếp hướng dẫn, chỉ bảo và
góp ý cho em tận tình trong quá trình em thực hiện đề tài “Hệ thống điều khiển thiết
bị từ xa và cảnh báo nguy cơ cháy nổ qua SMS”.
Tiếp đến, em xin cảm ơn viện Điện tử - Viễn thông, trường Đại học Bách khoa
Hà Nội đã tạo điều kiện cho em trong quá trình em thực hiện đồ án tốt nghiệp.
Cuối cùng, em xin cảm ơn anh chị, bạn bè đã giúp đỡ em nhiệt tình trong quá
trình em thực hiện đồ án.
Trân trọng cảm ơn!
LỜI CAM ĐOAN
Tôi là Phạm Thị Hương Ly, mã số sinh viên 20156011, sinh viên lớp CN-Điện
tử 01, khóa K60. Người hướng dẫn là ThS. Đinh Thị Nhung. Tôi xin cam đoan toàn
bộ nội dung được trình bày trong đồ án “Hệ thống điều khiển thiết bị từ xa và cảnh
báo nguy cơ cháy nổ qua SMS” là kết quả quá trình tìm hiểu và nghiên cứu của tôi.
Các dữ liệu được nêu trong đồ án là hoàn toàn trung thực, phản ánh đúng kết quả đo
đạc thực tế. Mọi thông tin trích dẫn đều tuân thủ các quy định về sở hữu trí tuệ; các
tài liệu tham khảo được liệt kê rõ ràng. Tôi xin chịu hoàn toàn trách nhiệm với những
nội dung được viết trong đồ án này.
i
DANH MỤC HÌNH VẼ
Hình 1.1: Sơ đồ khối tổng quát hệ thống .................................................................... 3
Hình 2.1: Arduino Nano ............................................................................................. 5
Bảng 2.1: Thông số của Arduino Nano ...................................................................... 6
Hình 2.2: Vi điều khiển ATmega328 và các GPIO trên Arduino Nano ..................... 7
Hình 2.3: Các cổng vào ra trên Arduino Nano ........................................................... 8
Hình 2.4: Module Sim 800L thực tế ........................................................................... 9
Hình 2.5: Cảm biến DHT11 ...................................................................................... 12
Hình 2.6: Sơ đồ kết nối vi điều khiển ....................................................................... 13
Hình 2.7: Sơ đồ kết nối DHT11 với Arduino Uno ................................................... 14
Hình 2.8: Sơ đồ mạch cảm biến MQ2 ...................................................................... 15
Hình 2.9: Hình dáng của loại LCD thông dụng. ....................................................... 16
Hình 2.10: Sơ đồ chân của LCD. .............................................................................. 16
Bảng 2.2: Chức năng các chân LCD ......................................................................... 16
Hình 2.11: Đèn Led .................................................................................................. 18
Hình 2.12: Còi chip ................................................................................................... 18
Hình 3.1: Sơ đồ khối phần cứng hệ thống ................................................................ 20
Hình 3.2: Sơ đồ nguyên lý hệ thống ......................................................................... 22
Hình 3.3: Phần mềm vẽ mạch in Altium .................................................................. 23
Hình 3.4: Giao diện làm việc của Altium ................................................................. 24
Hình 3.5: Mạch in 2D hệ thống ................................................................................ 25
Hình 3.6: Mạch in 3D hệ thống ................................................................................ 25
Hình 3.7: Lưu đồ thuật toán ...................................................................................... 26
Hình 3.8: Giao diện chính Arduino IDE ................................................................... 27
Hình 3.9: Menu Example .......................................................................................... 28
Hình 3.10: Menu tools .............................................................................................. 29
Hình 3.11: Menu chọn board làm việc ..................................................................... 30
Hình 3.16: Hình ảnh sản phẩm sau khi hoàn thành .................................................. 30
ii
DANH MỤC BẢNG BIỂU
Bảng 2.1: Thông số của Arduino Nano ...................................................................... 6
Bảng 2.2: Chức năng các chân LCD ......................................................................... 16
iii
TÓM TẮT NỘI DUNG ĐỒ ÁN
Khi nhận đồ án tốt nghiệp, em đã chọn đề tài “Hệ thống điều khiển thiết bị từ
xa và cảnh báo nguy cơ cháy nổ qua SMS” để nghiên cứu và ứng dụng dưới sự hướng
dẫn của ThS. Đinh Thị Nhung.
Bước đầu nghiên cứu, em có tìm hiểu sơ qua về các hệ thống báo cháy, các hệ
thống điều khiển thiết bị từ xa đã có trong thực tế kết hợp với lý thuyết đã được học
từ trước, đồng thời tìm hiểu và tìm kiếm tài liệu trên internet.
Đây là đề tài có tính thực tế rất cao nếu được nghiên cứu và đầu tư phát triển
thêm nó có thể ứng dụng trong thực tế. Đồng thời trong quá trình tìm hiểu và thực
hiện đề tài, em đã có cơ hội trau dồi được khá nhiều các kĩ năng như: Khả năng nghiên
cứu tài liệu nước ngoài, sử dụng các phần mềm như Altium, Arduino… khả năng
trình bày báo cáo, cũng như làm slide thuyết trình.
Về nội dung của đồ án thì gồm có 3 phần chính, cụ thể:
- Chương 1: Giới thiệu và xây dựng mô hình chung của hệ thống
- Chương 2: Giới thiệu các khái niệm chung, các module và linh kiện cơ bản của
hệ thống
- Chương 3: Trình bày các bước thiết kế hệ thống hoàn chỉnh và giới thiệu sản
phẩm thực tế
iv
CHƯƠNG 1: TỔNG QUAN HỆ THỐNG
2
Hình 1.1: Sơ đồ khối tổng quát hệ thống
Hệ thống bao gồm các khối cơ bản sau:
• Khối xử lý trung tâm: Làm nhiệm vụ chính điều khiển các thiết bị trong hệ
thống. Khối xử lý trung tâm giao tiếp với khối cảm biến, khối SMS, xuất dữ liệu
ra khối hiển thị và điều khiển khối thực thi cũng như khối SMS kịp thời.
• Khối SMS: Có nhiệm vụ nhận tin nhắn điều khiển từ người dùng, gửi tin nhắn
đến chủ nhân ngôi nhà khi xảy ra cháy.
• Khối thực thi: Thông báo cháy.
• Khối hiển thị: Hiển thị trạng thái các cảm biến xung quanh ngôi nhà, hiển thị
trạng thái của thiết bị theo tín hiệu điều khiển.
• Khối cảm biến: Theo dõi tình trạng cháy trong nhà.
1.6.2. Lựa chọn thiết bị chính cho hệ thống
1.6.2.1. Khối xử lý trung tâm
Với giới hạn đề tài cũng như đáp ứng đầy đủ các yêu cầu trong đề tài, em lựa
chọn Arduino Nano với những lý do sau:
a. Ưu điểm
Ø Giá thành hợp lý với sinh viên
Ø Ngôn ngữ dễ hiểu
Ø Cộng động phát triển rộng, dễ dàng tìm kiếm tài liệu
b. Nhược điểm
Ø Chỉ phù hợp với những project vừa và nhỏ
3
1.6.2.2. Module SIM
Sử dụng nhắn tin thông báo và giao tiếp dễ dàng với khối xử lý trung tâm
Arduino nano, em lựa chọn module SIM 800L:
a. Ưu điểm
Ø Giá thành rẻ
Ø Lập trình dễ dàng với arduino
Ø Gửi tin nhắn có độ trễ thấp
b. Nhược điểm
Ø Chỉ gửi được tin nhắn đến một số thuê bao cố định
1.6.2.3. Khối cảm biến
Cháy nổ thường xuất hiện làm nhiệt độ môi trường tăng cao hoặc dễ nhận biết
nhất là rò rỉ khí gas trong nhà bếp. Chính vì vậy em lựa chọn cảm biến nhiệt độ
DHT11 và cảm biến khí gas MQ2
a. Ưu điểm
• Giá thành rẻ, phù hợp với sinh viên
• Thích hợp với các hệ thống mô hình nhỏ
• Dễ tìm kiếm trên thị trường
b. Nhược điểm
• Dữ liệu đo nồng độ khí gas và chưa hoàn toàn chính xác, một phần vì chất
lượng linh kiện
• Bị nhiễu bởi môi trường ngoài
1.6.2.4. Một số linh kiện khác
Ngoài các linh kiện chính phục vụ cho hoàn thành sản phẩm demo, một số linh
kiện phụ trợ đáp ứng hoàn thành mô hình như còi chip, led, tụ điện…. với những ưu
điểm dễ sử dụng, phổ biến trong các quán linh kiện điện tử, cộng đồng hỗ trợ lớn, rất
phù hợp với các mô hình demo nhỏ.
1.7. Kết luận chương 1
Như vậy ở chương 1, chúng ta thấy hệ thống điều khiển thiết bị từ xa và cảnh
báo cháy nổ rất cần thiết với đời sống hiện nay. Ngoài ra chúng ta nêu ra giải pháp
thiết kế cho hệ thống báo cháy và nêu lý do lựa chọn các thiết bị trong hệ thống. Từ
đó đi vào chương 2 sẽ tìm hiểu chi tiết các thiết bị và sơ đồ khối cho hệ thống.
4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
5
Bảng 2.1: Thông số của Arduino Nano
SRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
a. Vi điều khiển
6
Hình 2.2: Vi điều khiển ATmega328 và các GPIO trên Arduino Nano
Arduino Nano sử dụng vi điều khiển họ 8bit AVR là ATmega328. Bộ não này
có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu
cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình
LCD. Thiết kế tiêu chuẩn của Arduino Nano sử dụng vi điều khiển ATmega328 với
giá khoảng 90.000đ.
Arduino Nano có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn
ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp
nguồn bằng pin vuông 9V là hợp lí nhất nếu không có sẵn nguồn từ cổng USB. Nếu
cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino Nano.
• GND (Ground): Cực âm của nguồn điện cấp cho Arduino Nano.
• 5V: Cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
• 3.3V: Cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
• Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino Nano
• IOREF: Điện áp hoạt động của vi điều khiển trên Arduino Nano có thể được
đo ở chân này. Điện áp luôn là 5V.
• RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
b. Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
7
32KB bộ nhớ Flash: Những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ
Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng
cho bootloader.
2KB cho SRAM (Static Random Access Memory): Giá trị các biến bạn khai
báo khi lập trình sẽ lưu ở đây. Khai báo càng nhiều biến thì càng cần nhiều bộ nhớ
RAM. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
1KB cho
EEPROM (Electrically Eraseble Programmable Read Only Memory): Đây giống
như một chiếc ổ cứng mini – nơi có thể đọc và ghi dữ liệu của mình vào đây mà không
phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
c. Các cổng ra vào
8
• Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ
phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở
chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những
chân khác.
• Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các
chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao
thức SPI với các thiết bị khác.
• LED 13: trên Arduino Nano có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút
Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13.
Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino Nano có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit
(0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board,
có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu cấp
điện áp 2.5V vào chân này thì có thể dùng các chân analog để đo điện áp trong khoảng
từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino Nano có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp
I2C/TWI với các thiết bị khác.
2.2.2. Module SIM 800L
2.2.2.1. Thông số kỹ thuật
9
• Nguồn cấp: 3,5V - 4,5V, có thể sử dụng với nguồn dòng thấp từ 500mAh trở
lên (như cổng USB, nguồn từ Board Arduino).
• Dòng khi ở chế độ chờ: 10mA.
• Dòng khi hoạt động: 100mA đến 2A.
• Kích thước: 2.5 cm x 3.1 cm.
• Nhiệt độ hoạt động: -30oC đến 80oC.
• Tốc độ GPRS: download dat: 85.6kbps; upload data: 42.8kbps.
• Hỗ trợ đồng hồ thời gian thực, lập trình bằng tập lệnh AT
Chức năng các chân của module Sim 800L:
• VCC: Nguồn vào 5V
• DTR: Chân Uart DTR
• TXD: Chân truyền Uart TX.
• RXD: Chân nhận Uart RX.
• Headphone: Chân phát âm thanh.
• Microphone: Chân nhận âm thanh (phải gắn thêm Micro từ GND vào chân này
sẽ thu được tiếng).
• Reset: Chân khởi động lại Module (thường không dùng).
• GND: Chân Mass, cấp 0V
10
2.2.2.3. Các tập lệnh AT test Module Sim 800L
Các tập lệnh AT là các hướng dẫn được sử dụng để điều khiển một
modem.AT là một cách viết gọn của chữ Attention. Mỗi dòng lệnh của nó bắt đầu
với “AT” hay “at”. Đó là lý do tại sao các lệnh modem được gọi là các lệnh AT.
Bên cạnh bộ lệnh AT thông dụng này, các modem GSM/GPRS và các điện thoại
di động còn được hỗ trợ bởi một bộ lệnh AT đặc biệt đối với công nghệ GSM. Nó
bao gồm các lệnh liên quan tới SMS như: AT+CMGS (gửi tin nhắn SMS),
AT+CMSS (gửi tin nhắn SMS từ một vùng lưu trữ), AT+CMGL (liệt kê các tin
nhắn SMS) và AT+CMGR (đọc tin nhắn SMS).
Tắt ứng dụng GSM của module Sim 800L: Các cách được sử dụng để tắt ứng
dụng GSM của module Sim 800L:
• Sử dụng chân PWRKEY (kéo mức thấp trong một khoảng thời gian ngắn.
Module sẽ gửi thông báo: NORMAL POWER DOWN)
• Sử dụng lệnh AT
12
Hình 2.6: Sơ đồ kết nối vi điều khiển
Bước 1: Khởi tạo
• MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng
thời gian >18ms. Trong Code mình để 25ms. Khi đó DHT11 sẽ hiểu MCU muốn
đo giá trị nhiệt độ và độ ẩm.
• MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
• Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >40us mà
chân DATA không được kéo xuống thấp nghĩa là không giao tiếp được với
DHT11.
• Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong
80us. Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được
với DHT11 không. Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quá
trình giao tiếp của MCU với DHT.
Bước 2: đọc giá trị trên DHT11
DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:
• Byte 1: giá trị phần nguyên của độ ẩm (RH%)
• Byte 2: giá trị phần thập phân của độ ẩm (RH%)
• Byte 3: giá trị phần nguyên của nhiệt độ (TC)
• Byte 4: giá trị phần thập phân của nhiệt độ (TC)
• Byte 5: kiểm tra tổng.
Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt
độ là chính xác, nếu sai thì kết quả đo không có nghĩa.
Đọc dữ liệu:
13
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về
MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm.
Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo
lên 1. Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1.
Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us. Nếu giá trị
đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là 1. Cứ
như thế ta đọc các bit tiếp theo.2.3.4.3. Sơ đồ kết nối với Arduino.
14
Hình 2.8: Sơ đồ mạch cảm biến MQ2
• Aout: điện áp ra tương tự. Nó chạy từ 0.3-4.5V, phụ thuộc vào nồng độ khí
xung quanh MQ2.
• Dout: điện áp ra số, giá trị 0,1 phụ thuộc vào điện áp tham chiếu và
nồng độ khí mà MQ2 đo được.
• Việc có chân ra số Dout rất tiện cho ta mắc các ứng dụng đơn giản,
không cần đến vi điều khiển. Khi đó ta chỉ cần chỉnh giá trị biến trở tới
giá trị nồng độ ta muốn cảnh báo. Khi nồng độ MQ2 đo được thấp hơn
mức cho phép thì Dout = 1. Đèn Led tắt. Khi nồng độ khí đo được lớn
hơn nồng khí cho phép, Dout =0, đèn led sáng.
• Việc ra chân tương tự Aout dành cho những xử lý đòi hỏi cần độ chính xác :
Đầu tiên đo trạng thái không khí sạch, giá trị thu được Vout1.Cho khí ga từ bật
lửa rò rỉ ra. Ta thấy giá trị Aout tăng lên. Khi đạt khoảng cách khí ga từ bật lửa
hợp lý rồi tương ứng với nồng độ khí bắt đầu nguy hiểm, ta ghi lại giá trị Vout2.
Ta chọn giá trị Vout2 là giá trị ngưỡng cảnh báo. Nếu giá trị đo đƣợc lớn hơn ta
sẽ cảnh báo. Chỉnh chân biến trở để điện áp đo tại chân 3 của L358 = Vout2.
2.2.5. LCD
Ký
Chân Mô tả
hiệu
Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều
1 Vss
khiển.
Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của
2 VDD
mạch điều khiển.
16
3 VEE Điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc
logic “1” (VCC) để chọn thanh ghi.
4 RS + Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ
“ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read).
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic “0” để LCD
5 R/W
hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh
chỉ được chấp nhận khi có 1 xung cho phép của chân E.
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi
6 E bên trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh
lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E
xuống mức thấp.
Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU. Có 2 chế độ sử
dụng 8 đường bus này :
DB0 -
7 - 14 + Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
DB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB
là DB7.
17
Hình 2.11: Đèn Led
18
Ngoài ra còn có còi điện, sử dụng một cuộn dây và một tiếp điểm điện động.
Khi cuộn dây được cấp điện, tiếp điểm được kéo về phía cuộn dây, nhưng nó nhanh
chóng đóng mạch và tiếp điểm trở lại vị trí ban đầu tạo ra một âm thanh lớn. (Nếu
bạn thêm một miếng sắt vào bộ này, bạn sẽ được chuông điện). Bạn có thể tạo một
bộ buzzer với rơle điện bằng cách mắc nối tiếp cuộn dây với tiếp điểm thường đóng,
mặc dù nó có thể sẽ kêu không to. Chuông điện thường được sử dụng trong hệ thống
báo động, chuông cửa, và chuông ở trường học.
Thông số kỹ thuật còi chip 5V
• Điện áp hoạt động: 3.5V – 5.5V
• Dòng hoạt động: <25mA
• Tần số âm thanh: 2500Hz
19
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG
20
3.3.1. Khối SMS
Nhiệm vụ và chức năng:
- Khối SMS có nhiệm vụ nhận lệnh từ vi xử lý, báo tin nhắn tới người sử
dụng, kịp thời xử lý khi xảy ra cháy.
- Có nhiệm vụ nhận lệnh điều khiển từ người dùng, gửi tín hiệu điều khiển đến
khối xử lý trung tâm xử lý thực hiện lệnh điều khiển bật/tắt thiết bị. Ngược
lại, sẽ nhận tín hiệu từ khối điều khiển, thông báo cho người dùng trạng thái
của thiết bị sau khi thực hiện lệnh điều khiển.
Yêu cầu:
• Hoạt động ổn định
• Truyền thông tin chính xác tới người dùng
• Truyền tin với khoảng cách rất xa
• Độ trễ truyền tin thấp
3.3.2. Khối cảm biến
Nhiệm vụ và chức năng: Khối cảm biến có nhiệm vụ đọc tín hiệu, truyền về vi
xử lý để đưa ra quyết định.
Yêu cầu:
• Hoạt động ổn định
• Đọc thông tin chính xác
• Sai số thấp
• Hoạt động tốt trong môi trường khắc nghiệt
3.3.3. Khối thông báo (chuông, đèn)
Nhiệm vụ và chức năng: Báo động khi môi trường xảy ra cháy.
Yêu cầu:
• Hoạt động ổn định
• Chuông và còi hú có âm thanh lớn, đặc biệt và dễ nhận biết
3.3.4. Khối hiển thị
Nhiệm vụ và chức năng: Hiển thị trạng thái bật/tắt thiết bị, nhiệt độ, nồng độ
khí gas khi nhiệt độ hoặc nồng độ khí gas tăng cao.
Yêu cầu:
• Hoạt động ổn định
• Hiển thị rõ ràng
22
3.4.2. Thiết kế mạch in
23
Hình 3.4: Giao diện làm việc của Altium
Việc thiết kế mạch điện tử trên phần mềm altium designer có thể được tóm tắt
gồm các bước như sau:
- Đặt ra các yêu cầu bài toán.
- Lựa chọn linh kiện.
- Thiết kế mạch nguyên lý.
- Lựa chọn các chân linh kiện để chuyển sang mạch in Update mạch nguyên lý
sang mạch in.
- Lựa chọn kích thước mạch in, sắp xếp các vị trí các loại linh kiện như điện
trở, tụ điện, IC...
- Đặt kích thước các loại dây nối.
- Đi dây trên mạch.
- Kiểm tra toàn mạch.
24
3.4.2.2. Mạch in
25
3.5.1. Lưu đồ thuật toán và giải thích lưu đồ thuật toán
26
3.5.2. Giới thiệu phần mềm Arduino IDE
3.5.2.3. Hiển thị màn hình giao tiếp với máy tính
Khi nhấp vào biểu tượng cái kính lúp thì phần giao tiếp với máy tính sẽ được
mở ra. Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên màn hình.
Muốn đưa lên màn hình phải có lệnh Serial.print() mới có thể đưa thông số cần hiển
thị lên màn hình
27
3.5.2.4. Vùng lập trình
Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình.
3.5.2.6. Sử dụng một số menu thông dụng trên phần mềm Arduino IDE
Có vài menu trong phần mềm IDE, tuy nhiên thông dụng nhất vẫn là menu File,
ngoài những tính năng như mở một file mới hay lưu một file, phần menu này có một
mục đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập
trình có thể tham khảo, giảm bớt thời gian lập trình. Hình bên dưới thể hiện việc chọn
một ví dụ cho led chớp tắt (blink) để nạp cho mạch Arduino. Ví dụ về led chớp tắt
này thường được dùng để kiểm tra bo khi mới mua về.
28
Hình 3.10: Menu tools
Bên cạnh việc chọn bo thì một phần quan trọng nữa là chọn cổng COM. Hình
bên dưới minh họa cho việc chọn cổng COM. Khi lần đầu gắn mạch Arduino vào
máy tính, người sử dụng cần nhấn chọn cổng COM bằng cách vào Tools -> Serial
Port (một số phiên bản dùng từ Port) sau đó nhấn chọn cổng COM, ví dụ như COM5.
Những lần sau khi đưa chính board Arduino đó vào máy tính thì không cần chọn cổng
COM, nếu đưa bo Arduino khác vào máy thì cần phải chọn lại cổng COM, quy trình
thực hiện cũng tương tự.
29
Hình 3.11: Menu chọn board làm việc
Sau khi thực hiện các bước trên xong, người dùng sẽ bắt tay vào việc lập trình.
Hình 3.3: Hình ảnh sản phẩm sau khi hoàn thành
30
KẾT LUẬN
Hệ thống điều khiển thiết bị từ xa và cảnh báo cháy nổ cho gia đình luôn là một
đề tài cấp thiết và cần rất nhiều sự cải tiến về độ tin cậy và hiệu quả của hệ thống. Sau
thời gian học tập tìm hiểu dưới sự hướng dẫn của ThS. Đinh Thị Nhung, đồ án của
em đã hoàn thành đúng thời gian quy định và đã giải quyết được những yêu cầu đặt
ra ban đầu. Đồ án đã kế thừa hai khía cạnh trong hệ thống vi điều khiển, đó là sử dụng
vi điều khiển Arduino trong mạch báo cháy và mạch điều khiển. Tuy chưa phát huy
được các tính năng ưu việt của Arduino nhưng cũng phần nào ứng dụng và giải quyết
công việc thực tiễn.
Với sự phát triển không ngừng của khoa học kỹ thuật nói chung và lĩnh vực điện
tử nói riêng đề tài này có thể phát triển hoàn thiện hơn để đạt được những kết quả tốt
hơn, tính năng sử dụng rộng rãi hơn. Như có thể thay đổi chương trình để ứng dụng
trong mạch tính cước phí điện thoại, v.v… Và đây cũng là hướng phát triển cho các
đề tài khóa sau.
Mặc dù có sự giúp đỡ nhiệt tình từ quý thầy cô và các bạn nhưng sự hiểu biết
và lượng kiến thức của bản thân em về lĩnh vực điện tử vẫn còn giới hạn nên đồ án
khó tránh khỏi những sai sót. Rất mong đón nhận những ý kiến đóng góp của thầy cô
cùng các bạn để phát triển đề tài ngày càng hoàn thiện hơn.
31
TÀI LIỆU THAM KHẢO
32
PHỤ LỤC
int led1 = 7;
int led2 = 8;
int led3 = 9;
int gas = A0;
String val;
int _timeout;
String _buffer;
String number = "+84852880426";
void setup() {
delay(7000); //delay for 7 seconds to make sure the modules get
the signal
Serial.begin(9600);
_buffer.reserve(50);
Serial.println("Sistem Started...");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
33
pinMode(coi, OUTPUT);
pinMode(gas, INPUT);
dht.begin();
sim.begin(9600);
delay(1000);
delay(100);
sim.println("AT");
sim.println("AT+CMGF=1");
sim.println("AT+CNMI=1,2,0,0,0");
lcd.init();
lcd.backlight();
}
void nhietgas() {
lcd.clear();
int t = dht.readTemperature();
int data = analogRead(gas);
lcd.setCursor(0, 0);
lcd.print("KHI GAS: ");
lcd.setCursor(11, 0);
int data2 = map(data, 270, 1024, 0, 100);
if (data2 < 0) {
data2 = 0;
}
lcd.print(data2);
lcd.setCursor(14, 0);
lcd.print("%");
lcd.setCursor(0, 1);
lcd.print("NHIET DO: ");
lcd.setCursor(11, 1);
lcd.print(t);
lcd.setCursor(14, 1);
lcd.print("*C");
delay(100);
if (t > 50 || data2 > 50) {
34
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("CANH BAO CHAY");
digitalWrite(coi, HIGH);
SendMessage();
delay(10000);
digitalWrite(coi, LOW);
}
}
void SendMessage()
{
//Serial.println ("Sending Message");
sim.println("AT+CMGF=1"); //Sets the GSM Module in Text Mode
delay(1000);
//Serial.println ("Set SMS Number");
sim.println("AT+CMGS=\"" + number + "\"\r"); //Mobile phone
number to send message
delay(1000);
String SMS = "canh bao chay";
sim.println(SMS);
delay(100);
sim.println((char)26);// ASCII code of CTRL+Z
delay(1000);
_buffer = _readSerial();
}
String _readSerial() {
_timeout = 0;
while (!sim.available() && _timeout < 12000 )
{
delay(13);
_timeout++;
}
if (sim.available()) {
return sim.readString();
35
}
}
void loop() {
nhietgas();
if (Serial.available()) {
sim.write(Serial.read());
}
if (sim.available() > 0) {
val = sim.readStringUntil('\n');
Serial.println(val);
if (val == "On1\r") {
digitalWrite(led1, HIGH);
phanhoi(1);
Serial.println("LED1 ON");
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("thiet bi 1 bat");
delay(3000);
lcd.clear();
}
if (val == "Off1\r") {
digitalWrite(led1, LOW);
phanhoi(0);
Serial.println("LED1 OFF");
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("thiet bi 1 tat");
delay(3000);
lcd.clear();
}
if (val == "On2\r") {
digitalWrite(led2, HIGH);
36
phanhoi(1);
Serial.println("LED2 ON");
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("thiet bi 2 bat");
delay(3000);
lcd.clear();
}
if (val == "Off2\r") {
digitalWrite(led2, LOW);
phanhoi(0);
Serial.println("LED2 OFF");
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("thiet bi 2 tat");
delay(3000);
lcd.clear();
}
if (val == "On3\r") {
digitalWrite(led3, HIGH);
phanhoi(1);
Serial.println("LED3 ON");
lcd.clear();
lcd.setCursor(0, 1);
lcd.print("thiet bi 3 bat");
delay(3000);
lcd.clear();
}
if (val == "Off3\r") {
digitalWrite(led3, LOW);
phanhoi(0);
Serial.println("LED3 OFF");
lcd.clear();
37
lcd.setCursor(0, 1);
lcd.print("thiet bi 3 tat");
delay(3000);
lcd.clear();
}
}
38