THÔNG TIN ĐỀ TÀI: TÊN ĐỀ TÀI: HỆ THỐNG BÁO TRỘM BÁO CHÁY THÔNG MINH Mục đích của đề tài: cũng cố các kiến thức chuyên ngành cũng như trao dồi các kiến thức mới và các kỹ năng để chuẩn b
Trang 1ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
HỆ THỐNG BÁO TRỘM BÁO CHÁY
THÔNG MINH
GVHD: NGUYỄN THANH TÂM SVTH: TRẦN QUỐC HUY
MSSV: 12141101 SVTH: TRẦN NGỌC VINH MSSV: 12141267
Tp Hồ Chí Minh, tháng 07/2017
SKL 0 0 5 6 8 2
Trang 2BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP-Y SINH
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
HỆ THỐNG BÁO TRỘM BÁO CHÁY
THÔNG MINH
GVHD: ThS Nguyễn Thanh Tâm
MSSV: 12141101 SVTH2: Trần Ngọc Vinh MSSV: 12141267
Trang 3BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP-Y SINH
Tp Hồ Chí Minh – 7/2017
Trang 4Tp HCM, ngày 28 tháng 6 năm 2017
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên: Trần Quốc Huy MSSV: 12141101
Trần Ngọc Vinh MSSV: 12141267 Chuyên ngành: Công nghệ kỹ thuật điện tử truyền thông
Hệ đào tạo: Đại học chính quy
Khóa: 2012 Lớp: 121412C
I THÔNG TIN ĐỀ TÀI:
TÊN ĐỀ TÀI: HỆ THỐNG BÁO TRỘM BÁO CHÁY THÔNG MINH
Mục đích của đề tài: cũng cố các kiến thức chuyên ngành cũng như trao dồi các kiến thức mới và các kỹ năng để chuẩn bị cho các công việc sắp tới sau khi tốt nghiệp Thiết kế ra một sản phẩm công nghệ có tiềm năng phát triển trong tương lai tại Việt Nam trong lĩnh vực nhà thông minh
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện
- Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Thời gian thực hiện: Từ ngày 1/4/2017 đến 10/7/2017
II NHIỆM VỤ
Nghiên cứu VDK Arduino mega 2560 R3 Viết chương trình điều khiển cho VĐK này bằng phần mềm Arduino IDE, khai báo sử dụng các ngoại vi
Tìm hiểu cách sử dụng các module cảm biến, giao tiếp chúng với vi điều khiển
để thực hiện các chức năng như báo cháy, báo ga, báo trộm
Tìm hiểu và viết ứng dụng trên android để điều khiển thiết bị thông qua phần mềm này
Tìm hiểu web sever để thiết kế một trang web giám sát hệ thống
Tính toán thiết kế và thi công các mạch chức năng
Thi công mô hình hoàn chỉnh
Vận hành thử mô hình
Cân chỉnh mô hình
Viết cuốn báo cáo đề tài
Báo cáo đề tài tốt nghiệp
Trang 5Chúng tôi – Trần Quốc Huy và Trần Ngọc Vinh cam đoan ĐATN là công trình nghiên cứu của chúng tôi dưới sự hướng dẫn Thạc sỹ Nguyễn Thanh Tâm
Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công
Trang 6Tên đề tài: HỆ THỐNG BÁO TRỘM BÁO CHÁY THÔNG MINH
GVHD
Tuần 1 Tìm giáo viên hướng dẫn, trình bày và chọn đề
tài
Tuần 2 Đề cương chi tiết về các nội dung cần nghiên cứu
Tuần 3 Đề ra hướng giải quyết nhằm đáp ứng các yêu
cầu đề ra ban đầu
Mua VDK arduino mega 2560 R3 và các cảm biến, các modul cần thiết
Tuần 4+5 Nghiên cứu VĐK arduino mega 2560 R3
Tìm hiểu cách sử dụng và giao tiếp giữa vi điều khiển với các module và cảm biến có sử
Trang 7 Kiểm tra tính ổn định của sản phẩm, hoàn thiện sản phẩm
Tuần 14+15 Viết báo cáo, tạo slide báo cáo
Tuần 16 Hoàn thành đề tại, tiến hành bảo vệ đề tài
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
Trang 8Đề tài này là do chúng tôi tự thực hiện dựa vào một số tài liệu và không sao chép
từ tài liệu hay công trình đã có trước đó Nếu có bất kỳ sự gian lận nào chúng tôi xin chịu trách nhiệm về nội dung đồ án của mình
TP.HCM, ngày 28 tháng 6 năm 2017
Người thực hiện
Trần Quốc Huy Trần Ngọc Vinh
Trang 9Em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Tâm đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài
Em xin gởi lời chân thành cảm ơn các thầy cô trong Khoa Điện-Điện Tử đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài
Em cũng gửi lời đồng cảm ơn đến các bạn lớp 12141DT2C đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài
Cảm ơn đến cha mẹ,…
Xin chân thành cảm ơn!
Người thực hiện đề tài
Trang 10
Trang bìa i
Nhiệm vụ đồ án ii
Lịch trình iii
Cam đoan iv
Lời cảm ơn v
Mục lục vi
Liệt kê hình vẽ ix
Liệt kê bảng vẽ ……… xi
Tóm tắt xii
CHƯƠNG 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 2
1.3 GIỚI HẠN 3
1.4 NỘI DUNG NGHIÊN CỨU 3
1.5 BỐ CỤC 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
2.1 BOARD ĐIỀU KHIỂN ARDUINO MEGA 2560 5
2.1.1 GIỚI THIỆU ARDUINO 5
2.2 MODULE WIFI ESP8266 12
2.2.1 MODULE WIFI ESP8266 12
2.2.2 KẾT NỐI GIỮA ESP8266 VÀ ARDUINO MEGA 15
2.3 CẢM BIẾN KHÍ GA MQ2 16
2.3.1 GIỚI THIỆU 16
2.3.2 THÔNG SỐ 17
2.3.3 NGUYÊN LÝ HOẠT ĐỘNG 17
2.4 CẢM BIẾN CHUYỂN ĐỘNG PIR HC – SR501 17
2.4.1 GIỚI THIỆU 17
2.4.2 THÔNG SỐ 18
2.4.3 NGUYÊN LÝ HOẠT ĐỘNG 18
2.5 CẢM BIẾN PHÁT HIỆN LỬA 19
Trang 112.5.2 THÔNG SỐ 19
2.5.3 NGUYÊN LÝ HOẠT ĐỘNG 19
2.6 LẬP TRÌNH PHP VÀ MYSQL 20
2.6.1 GIỚI THIỆU NGÔN NGỮ PHP 20
2.6.2 CÚ PHÁP CỦA PHP 21
2.6.3 GIỚI THIỆU JSON 22
2.6.4 GIỚI THIỆU MYSQL 23
2.6.5 ƯU ĐIỂM CỦA MYSQL 23
2.6.6 GIỚI THIỆU HTTP 26
2.6.7 GIỚI THIỆU HTML 28
2.7 PHẦN MỀM ANDROID STUDIO 29
2.7.1 GIỚI THIỆU 29
2.7.2 CÁC BƯỚC ĐỂ VIẾT MỘT ỨNG DỤNG 30
CHƯƠNG 3 TÍNH TOÁN VÀ THIẾT KẾ 34
3.1 TỔNG QUAN VỀ YÊU CẦU THIẾT KẾ 34
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 34
3.2.1 THIẾT KẾ HỆ THỐNG 34
3.2.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 36
CHƯƠNG 4 THI CÔNG HỆ THỐNG 57
4.1 THI CÔNG HỆ THỐNG 57
4.1.1 BOARD ĐIỀU KHIỂN 57
4.2 LẬP TRÌNH TRÊN BOARD ĐIỀU KHIỂN 59
4.2.1 NỘI DUNG CHƯƠNG TRÌNH 59
4.2.2 LƯU ĐỒ GIẢI THUẬT 59
4.2.3 CHƯƠNG TRÌNH TRÊN BOARD ĐIỀU KHIỂN 64
4.3 LẬP TRÌNH WEDSERVER 70
4.3.1 GIỚI THIỆU PHẦN MỀM NOTEPAD++ 70
4.4 YÊU CẦU THIẾT KẾ VÀ LƯU ĐỒ GIẢI THUẬT ANDROID 78
4.4.1 YÊU CẦU THIẾT KẾ ỨNG DỤNG TRÊN ĐIỆN THOẠI ANDROID 78
4.4.2 XÂY DỰNG LƯU ĐỒ GIẢI THUẬT 78
4.4.2 GIỚI THIỆU VỀ PHẦN MỀM ANDROID 80
4.4.4 CHƯƠNG TRÌNH TRÊN ANDROID 88
Trang 124.5.1 HỆ THỐNG ĐIỀU KHIỂN 98
4.5.2 PHẦN MỀM HỆ THỐNG 98
4.6 WEDSERVER 102
CHƯƠNG 5 KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 103
5.1 SẢN PHẨM SAU KHI HOÀN THÀNH 103
5.1.1 SẢN PHẨM 103
5.1.2 ỨNG DỤNG TRÊN ĐIỆN THOẠI 105
5.1.3 WEDSERVER 108
5.2 KẾT QUẢ CHẠY HỆ THỐNG 108
5.2.1 BOARD ĐIỀU KHIỂN 108
5.3 KIẾN THỨC CÓ ĐƯỢC TRONG QUÁ TRÌNH THIẾT KẾ SẢN PHẨM 110
CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 111
6.1 Kết luận 111
6.2 Hướng phát triển 111
TÀI LIỆU THAM KHẢO PHU LỤC
Trang 13Hình 1.1 : Công nghệ Internet of Things 2
Hình 2.1 Board Arduino Mega 2560 6
Hình 2.2 Sơ đồ chân Arduino MEGA2560 6
Hình 2.3 Các linh kiên board Arduino MEGA 7
Hình 2.4 Giao diện phần mềm IDE 8
Hình 2.5 Vùng thông báo trên phần mềm IDE 9
Hình 2.6 Chọn board Arduino 10
Hình 2.7 Chọn cổng COM kết nối 11
Hình 2.8 Thông báo biên dịch thành công chương trình 11
Hình 2.9 Thông báo nạp thành công chương trình 12
Hình 2.10 Mạch thu phát wifi ESP8266 13
Hình 2.11 Sơ đồ chân của ESP8266 13
Hình 2.12 Giao tiếp giữa ESP8266 và Arduino 16
Hình 2.13 Cảm biến khí ga thực tế 16
Hình 2.14 Cảm biến chuyển động PIR HC – SR501 17
Hình 2.15 Cảm biến phát hiện lửa 19
Hình 2.16 Một đoạn code PhP 22
Hình 2.17 Nguyên lý hoạt động PHP 25
Hình 2.18 Các bước tạo ứng dụng 30
Hình 2.19 Tạo SDK cho ứng dụng 31
Hình 2.20 Quá trình hoạt động của một App Android 33
Hình 3.1 Sơ đồ khối hệ thống 35
Hình 3.2 Mô hình nhà 37
Hình 3.3 Module ESP8266 39
Hình 3.4 : Cách kết nối modul ESP8266 với arduino mega 40
Hình 3.5 Kết nối cảm biến chuyển động với arduino mega 41
Hình 3.6 Mạch nguyên lý của MQ2 42
Hình 3.7 Kết nối cảm biến khí ga MQ-2 với arduino mega 43
Hình 3.8 Kết nối cảm biến cháy với arduino mega 45
Hình 3.9 Dạng sóng điều khiển động sơ Servo SG90 46
Hình 3.10 Kết nối động cơ servo SG90 với arduino mega 47
Hình 3.11 Kết nối modul sim A6-mini với arduino mega 49
Trang 14Hình 3.13 Giao diện đăng nhập 51
Hình 3.14 Giao diện menu 52
Hình 3.15 Giao diện tình trạng hệ thống 52
Hình 3.16 Giao diện điều khiển hệ thống 53
Hình 4.1 Sơ đồ bố trí linh kiện trên board 58
Hình 4.2 Lưu đồ giải thuật chính 61
Hình 4.3 Lưu đồ giải thuật cho ESP8266 63
Hình 4.4 Cách tạo project 71
Hình 4.5 Chọn ngôn ngữ để viết code 72
Hình 4.6 Lưu lại file code 72
Hình 4.7 Lưu đồ quá trình đăng nhập hệ thống 79
Hình 4.8 Lưu đồ hiển thị tình trạng hệ thống 80
Hình 4.9 Tải java 81
Hình 4.10 Cài đặt android studio 82
Hình 4.11 Tạo project mới trong Android Studio 83
Hình 4.12 Tạo project mới trong Android Studio 84
Hình 4.13 Chọn phiên bản Android muốn lập trình 85
Hình 4.14 Chọn màn hình 86
Hình 4.15 Đặt tên cho màn hình Android 86
Hình 4.16 Chọn thiết bị đổ chương trình xuống 87
Hình 4.17 Giao diện của project Android mới 88
Hình 4.18 Biểu tượng của ứng dụng 99
Hình 4.19 Giao diện chờ đăng nhập 99
Hình 4.20 Giao diện sau khi đăng nhập 100
Hình 4.21 Giao diện trạng thái hệ thống 101
Hình 4.22 giao diện điều khiển hệ thống 101
Hình 5.1 Board mạch sau khi lắp ráp linh kiện 103
Hình 5.2 Mô hình nhà sau khi đã hoàn thành 104
Hình 5.3 Biểu tượng của ứng dụng 105
Hình 5.4 Giao diện chờ đăng nhập 105
Hình 5.5 Giao diện sau khi đăng nhập 106
Hình 5.6 Giao diện trạng thái hệ thống 106
Hình 5.7 Giao diện điều khiển hệ thống 107
Trang 15Hình 5.9 Giao diện wedserver 108
Trang 16Bảng Trang
Bảng 2.1: Chức năng các quick icon trong phần mềm IDE 9
Bảng 3.1: Cách kết nối ESP8266 với Arduino 39
Bảng 3.2 Cách kết nối cảm biến chuyển động với Arduino 41
Bảng 3.3 Cách kết nối cảm biến cảm biến khí ga MQ-2 với arduino mega 44
Bảng 3.4 Cách kết nối cảm biến lửa với arduino mega 45
Bảng 3.5 Cách kết nối động cơ servo SG90 với arduino mega 47
Bảng 3.6 Cách kết nối modul sim với arduino mega 50
Bảng 3.7 Cấu trúc dữ liệu của bảng users 54
Bảng 3.8 Cấu trức dữ liệu của bảng người dùng 55
Bảng 4.1 Liệt kê linh kiện sử dụng trên board 57
Trang 17Ngày nay trên thế giới với sự phát triển mạnh mẽ của các ngành công nghệ thông tin và điện – điện tử … đã làm cho đời sống của con người ngày càng hoàn thiện hơn
Do đó nhu cầu điều khiển và giám sát các thiết bị trong gia đình đã không còn xa lạ với con người nữa mà ngày càng thiết thực hơn Từ các phương pháp điều khiển và giám sát thô sơ thì ngày nay việc điều khiển và giám sát thiết bị bằng smartphone thông qua wifi là phương pháp điều khiển mang lại nhiều lợi ích và tiện lợi cho con người
Bên cạnh đó lĩnh vực Điện – Điện tử ngày càng đóng vai trò quan trọng trong việc phát triển kinh tế và đời sống con người Sự phát triển của nó góp phần không nhỏ tới
sự phát triển của tất cả các ngành sản xuất, giải trí, Trong những năm gần đây đặc biệt trong lĩnh vực tự động, điều khiển đã có sự phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận và chia sẻ thông tin hiện đại và toàn diện hơn
Sau 3 tháng tìm hiểu và thi công mạch, đề tài cũng hoàn thành và hoạt động ổn định tuy nhiên với sự hiểu biết còn hạn chế và thời gian thực hiện đề tài không nhiều nên đề tài không tránh khỏi những sai sót Rất cảm ơn sự hướng dẫn và góp ý của quý Thầy Cô và Bạn Bè cho đề tài được hoàn chỉnh hơn
Trang 18Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay, bên cạnh sự tiến bộ vượt bậc của kinh tế, khoa học kỹ thuật đã giúp cho đời sống con người được nâng cao Chưa bao giờ trong lịch sử chúng
ta sống trong môi trường tiện nghi như hiện nay
Trước đây, khi nói đến việc bảo vệ an ninh cũng như báo trộm báo cháy, chúng ta thường liên tưởng đến các công tác phòng cháy chữa cháy, thuê người bảo vệ hoặc nuôi chó để canh chừng,… Nhưng với sự phát triển của khoa học
kỹ thuật cũng như điện tử số, con người cho ra đời hàng loạt những thiết bị tiên tiến về chống xâm nhập trái phép, cảm ứng nhiệt, không ngừng nâng cấp, không ngừng hoàn thiện từng ngày – một lĩnh vực mà trước nay con người chưa từng nghĩ đến và hiểu biết Nhằm thay thế các công tác bảo vệ thuần túy đang
sử dụng để giúp con người tiết kiệm thời gian và độ ổn định nên chúng em lựa chọn đề tài này
Các hệ thống hiện đại này có khả năng liên kết không dây giữa các thành
phần với nhau theo một xu hướng mới là Internet of Things Internet of Things
(IoT) là một xu hướng công nghệ mới mẻ, được nghiên cứu và phát triển rầm rộ trong thời gian gần đây do sự phát triển nhanh chóng của mạng Internet cũng như công nghệ tích hợp, kết nối không dây Với sự giúp đỡ của IoT, chúng ta có thể kết nối bất cứ điều gì, truy cập từ bất cứ nơi nào và bất cứ lúc nào, có khả năng truy cập vào bất kỳ dịch vụ và thông tin về đối tượng nào Hàng loạt những triển lãm công nghệ, hội thảo khoa học được tổ chức xoay quanh vấn đề quảng bá sản phẩm công nghệ IoT, hệ sinh thái khởi nghiệp IoT… Đây hứa hẹn
sẽ là một cuộc cách mạng mới trong tương lai, đem đếm sự thay đổi mạnh mẽ trong nhiều lĩnh vực của cuộc sống
Trang 19Hình 1.1 Công nghệ Internet of Things
1.2 MỤC TIÊU
*Mục tiêu bắt buộc hoàn thành:
Có thể theo dõi hệ thống báo cháy báo trộm trong nhà ở bất cứ đâu thông qua websever và điện thoại, điều khiển bằng App Android
Chức năng hẹn giờ để tự động đóng ngắt hoạt động cảm biến trong nhà
Có thể điều khiển đóng mở cửa ra vào thông qua App Android
Có thể thông báo SMS qua sim cho điện thoại khi có sự cố
Thông báo địa chỉ có sự cố qua sim
Trang 20*Mục tiêu mở rộng nếu có thể:
Tiến hành thương mại hóa sản phẩm
Cho phép đăng ký và quản lý người dùng trên giao diện chuyên nghiệp
1.3 NỘi DUNG ĐỀ TÀI
Cụ thể, các cảm biến đặt trong nhà sẽ hoạt động liên tục và được báo cáo lên server bằng kết nối Wifi, sau đó dữ liệu thô sẽ được xử lý và thông báo tại Web server Android application do người dùng quản lý có khả năng hẹn giờ hoạt động của cảm biến chuyển động dùng để báo trộm, hiển thị thông báo khi có sự
cố Đồng thời hệ thống cũng sẽ gởi thông báo đến sim số điện thoại đăng kí trước để người dùng kịp thời xử lý các công tác phòng cháy chữa cháy hay chống trộm App Android có chức năng mở cửa ra vào
1.4 GIỚI HẠN
Phụ thuộc hoàn toàn vào độ chính xác của các cảm biến
Chỉ sự dụng được khi có kết nối mang internet
1.5 BỐ CỤC
Nội dung chính của đề tài được trình bày với năm chương như sau:
Chương 1 Giới thiệu
Trong chương này nêu ra được tình hình nghiên cứu hiện nay, lý do và mục tiêu chọn đề tài, đối tượng và phạm vi nghiên cứu của đề tài, phương pháp nghiên cứu và giới hạn của đề tài
Chương 2: Cơ sở lý thuyết
Các lý thuyết chính liên quan đến các thành phần phần cứng và phần mềm
cả hệ thống
Chương 3: Phân tích và thiết kế hệ thống
Tính toán thiết kế, đưa ra sơ đồ nguyên lí của hệ thống
Chương 4: Thi công hệ thống
Trang 21Đưa ra lưu đồ, giải thuật và chương trình và thi công hệ thống
Chương 5: Kết quả, nhận xét, đánh giá
Đưa ra kết quả đề tài, nhận xét, đánh giá
Chương 5: Kết luận và hướng phát triển
Đưa ra các kết luận về những vấn đề mà trong quá trình nghiên cứu đã đạt được và chưa đạt được Đưa ra hướng phát triển đề tài trong tương lai
Trang 22CHƯƠNG 2 : TỔNG QUAN VỀ HỆ THỐNG
CƠ SỞ DỮ LIỆU THIẾT KẾ
2.1.
BOARD ĐIỀU KHIỂN ARDUINO MEGA 2560
2.1.1
GIỚI THIỆU ARDUINO
Arduino hiện nay đã được biết đến một cách rộng rãi tại Việt Nam, và trên thế giới thì nó đã quá phổ biến! Sức mạnh của chúng ngày càng được chứng tỏ theo thời gian với vô vàn các ứng dụng mở (open source) độc đáo được chia sẻ rộng rãi Với Arduino bạn có thể ứng dụng vào những mạch đơn giản như mạch cảm biến ánh sáng bật tắt đèn, mạch điều khiển động cơ, hoặc cao hơn nữa bạn có thể làm những sản phẩm như: máy in 3D, Robot, khinh khí cầu, máy bay không người lái… Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác với nhau hoặc với môi trường được thuận lợi hơn Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit
Arduino có thể kết nối với những gì ?
Một hệ thống Arduino có thể cung cấp cho bạn rất nhiều sự tương tác với môi trường xung quanh với:
Hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, gia tốc, vận tốc, cường độ ánh sáng, màu sắc vật thể, lưu lượng nước, phát hiện chuyển động, phát hiện kim loại, khí độc,…),…
Các thiết bị hiển thị (màn hình LCD, đèn LED,…)
Các module chức năng (shield) hỗ trợ kêt nối có dây với các thiết bị khác hoặc các kết nối không dây thông dụng (3G, GPRS, Wifi, Bluetooth, 315/433Mhz, 2.4Ghz,…), …
Định vị GPS, nhắn tin SMS……
Trang 23a Arduino MEGA 2560
Hình 2.1 Board Arduino Mega 2560
Thành phần Arduino MEGA
Hình 2.2 Sơ đồ chân Arduino MEGA2560
Arduino Mega2560 là một vi điều khiển bằng cách sử dụng ATmega2560 Bao gồm:
54 chân digital (15 có thể được sử dụng như các chân PWM)
16 đầu vào analog
4 UARTs (cổng nối tiếp phần cứng),
Trang 24 Sơ đồ linh kiện của Arduino MEGA
Hình 2.3 Các linh kiện board Arduino MEGA
Trang 25b Phần mềm arduino IDE
Giao diện
Gồm 3 vùng :
Hình 2.4 Giao diện phần mềm IDE
Vùng lệnh : vùng chứa các thanh công cụ và phím kiểm tra , nạp chương trình ( lựa chọn loại board arduino , lựa chọn cổng kết nối … )
Trang 26Bảng 2.1: Chức năng các quick icon trong phần mềm IDE
Vùng viết chương trình : nơi viết chương trình chính , khai báo thư viện ,khai báo chân ( chú ý nếu tên chương trình có kí hiệu “ § “ tức là chương trình chưa được lưu
Vùng Thông báo :
Hình 2.5 Vùng thông báo trên phần mềm IDE
Thông báo khi nạp thành công chương trình, thông báo các lỗi xảy ra khi biên dịch chương trình
Hướng dẫn nạp chương trình
Lựa chọn loại Board arduino :
Trong cùng lệnh vào “ Tool” “Board” chọn board arduino bạn đang sử dụng
Trang 27
Hình 2.6 Chọn board Arduino
Lựa chọn cổng USB kết nối máy tính và board arduino :
Trong cùng lệnh vào “ Tool” “Port” chọn cổng COM kết nối máy tính
Trang 28Hình 2.7 Chọn cổng COM kết nối
Nạp chương trình cho arduino :
Chọn vào biểu tượng để biên dịch và kiểm tra lỗi chương trình
khi biên dịch thành công trên thanh thông báo sẽ báo “Done compiling”
Hình 2.8 Thông báo biên dịch thành công chương trình
Chọn vào biểu tượng để đổ chương trình báo trong Arduino khi quá trinh nạp thanh công trên vùng thông báp sẽ thông báo “Done Uploading”
Trang 29Hình 2.9 Thông báo nạp thành công chương trình 2.2
MODULE WIFI ESP8266
2.2.1
MODULE WIFI ESP8266
a Giới thiệu Module wifi ESP8266
Đây là module truyền nhận WiFi đơn giản dựa trên chip ESP8266 SoC (System
on Chip) của hãng Espresif Module ESP8266 thường được sử dụng trong các ứng dụng IOT (Internet of Thing) Module này đã được nập sẵn firmware giúp người dùng giao tiếp với WiFi rất đễ dàng qua tập lệnh AT thông qua giao tiếp UART hoặc
có thể lập trình trực tiếp bằng phần mềm IDE (baudrate mặc định 9600, một sô mạch
là 11520) quen thuộc
Trang 30Hình 2.10 Mạch thu phát wifi ESP8266
b Thông số
Model: NodeMCU Lua D1 Mini
IC chính: ESP8266 Wifi SoC phiên bản ESP12
Phiên bản firmware: Node MCU
Chip nạp và giao tiếp UART: CH340
GPIO tương thích hoàn toàn với firmware Node MCU
Cấp nguồn: 5VDC MicroUSB hoặc vào các chân 5V, 3V3
GIPO giao tiếp mức 3.3VDC
Thiết kế nhỏ gọn, có thể cắm trực tiếp vào test board
Tương thích hoàn toàn với trình biên dịch Arduino
Trang 31 VCC: 3.3 V, dòng có thể lên 330mA vì thế cần mạch nguồn riêng
GND: 0V
Tx: Chân Tx của giao thức UART, kết nối đến chân Rx của vi điều khiển
Rx: Chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển
RST: chân reset, kéo xuống mas để reset
CH_PD: chân này nếu được kéo lên mức cao module sẽ bắt đầu phát WiFi kéo xuống mức thấp module dừng phát WiFi
GPIO 0: Kéo xuống thấp cho chế độ upgrade firmware
GPIO 2: không sử dụng
Giới thiê ̣u tổng quan về Chip ESP8266
Chip ESP8266 có giá thành rẻ và được đánh giá rất cao cho các ứng dụng liên quan đến Internet và Wifi cũng như các ứng dụng truyền nhận sử dụng thay thế cho các module RF khác
ESP8266 là một chip tích hợp cao, được thiết kế cho nhu cầu của một thế giới kết nối mới, thế giới Internet of thing (IoT) Nó cung cấp một giải pháp kết nối mạng Wi-Fi đầy đủ và khép kín, cho phép nó có thể lưu trữ các ứng dụng hoặc
để giảm tải tất cả các chức năng kết nối mạng Wi-Fi từ một bộ xử lý ứng dụng
ESP8266 có tốc đô ̣ xử lý và khả năng lưu trữ mạnh mẽ cho phép nó được tích hợp với các bộ cảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua GPIOs với một chi phí tối thiểu và một PCB tối thiểu
Tính năng của Chip
Tích hợp bộ xử lý RISC 32bit, bô ̣ xử lý với tốc đô ̣ lên tới 80MHz, 64KB bô ̣ nhớ lê ̣nh RAM, 96KB bô ̣ nhớ dữ liê ̣u RAM
Hỗ trợ chuẩn 802.11 b/g/n wifi, hỗ trợ bảo mâ ̣t WEP hoă ̣c WPA/WPA2 và
ma ̣ng mở
Có bô ̣ chuyển đổi ADC 10 bit
Trang 32 16 chân GPIO với mức điê ̣n áp ra 0-3.3V
Thông số kỹ thuâ ̣t
Tương thích các chuẩn Wifi : 802.11 b/g/n
Hỗ trợ: Wi-Fi Direct (P2P), soft-AP
Tích hợp TCP/IP protocol stack
Tích hợp bô ̣ nhân tần, ổn áp, quản lý nguồn
Trong chế đô ̣ 802.11b công suất phát lên tới +25dBm
Công suất tiêu thu ̣ tra ̣ng thái nghỉ < 10µA
Thời gian đánh thức CPU < 2ms
Công suất tiêu thu ̣ ở chế đô ̣ standby < 1.0mW
2.2.2 KẾT NỐI GIỮA MODULE ESP8266 VÀ BOARD ARDUINO MEGA 2560
Kết nối giữa ESP8266 và Arduino thông qua 2 chân TX3 và RX3 của arduino theo giao thức serial (UART or USART) tích hợp trên Arduino
Thuật ngữ UART trong tiếng anh là viết tắt của cụm từ: Universal Asynchronous serial Reveiver and Transmitter, nghĩa là bộ truyền nhận nối tiếp không đồng bộ UART cần phải kết hợp với một thiết bị chuyển đổi mức điện áp để tạo ra một chuẩn giao tiếp nào đó
UART chuyển đổi giữa dữ liệu nối tiếp và song song Một chiều, UART chuyển đổi dữ liệu song song bus hệ thống ra dữ liệu nối tiếp để truyền đi Một chiều khác, UART chuyển đổi dữ liệu nhận được dạng dữ liệu nối tiếp thành dạng dữ liệu song song cho CPU có thể đọc vào bus hệ thống
Baud rate (tốc độ Baud): Bạn thấy rằng để việc truyền và nhận không đồng
bộ xảy ra thành công thì các thiết bị tham gia phải “thống nhất” nhau về khoảng thời dành cho 1 bit truyền, hay nói cách khác tốc độ truyền phải được cài đặt như nhau
Trang 33trước, tốc độ này gọi là tốc độ Baud Theo định nghĩa, tốc độ baud là số bit truyền trong 1 giây Ví dụ nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là 1/19200 ~ 52.083us
Hình 2.12 Giao tiếp giữa ESP8266 và Arduino
Trang 34Hình 2.14 Cảm biến chuyển động PIR HC – SR501
Cảm biến PIR ( Passive Infra-Red) tức là bộ cảm biến thụ động dùng nguồn kích thích là tia hồng ngoại Tia hồng ngoại (IR) chính là các tia nhiệt phát ra từ các vật thể nóng Trong các cơ thể sống, trong chúng ta luôn có thân nhiệt (thông thường là
ở 37 độ C), và từ cơ thể chúng ta sẽ luôn phát ra các tia nhiệt, hay còn gọi là các tia hồng ngoại, người ta sẽ dùng một tế bào điện để chuyển đổi tia nhiệt ra dạng tín hiệu điện và nhờ đó mà có thể làm ra cảm biến phát hiện các vật thể nóng đang chuyển
Trang 35động Cảm biến này gọi là thụ động vì nó không dùng nguồn nhiệt tự phát (làm nguồn tích cực, hay chủ động) mà chỉ phụ thuộc vào các nguồn tha nhiệt, đó là thân nhiệt của các thực thể khác, như con người con vật…
Trang 362.5
CẢM BIẾN PHÁT HIỆN LỬA
2.5.1 Giới thiệu
Hình 2.15 Cảm biến phát hiện lửa
Là loại cảm biến có thể phát hiện được lửa cháy thường được ứng dụng trong các mô hình như: xe robot chữa cháy, cảm biến lửa,… Tầm phát hiện của cảm biến trong khoảng 80cm, góc quét là 60 độ, có thể phát hiện lửa tốt nhất là loại có bước sóng từ 760nm-1100nm
là các hợp chất hữu cơ thông thường, vật liệu cháy khác nhau bước sóng sẽ khác nhau), 2 ví dụ trên có cùng dãy bước sóng Hồng ngoại gần Nên mô đun phát hiện
Trang 37lữa sẽ dùng một led thu tín hiệu hồng ngoại để bắt tín hiệu hồng ngoại mà ngọn lữa phát ra, một dấu hiệu rõ ràng của sự cháy!
2.6 LẬP TRÌNH PHP VÀ MYSQL
2.6.1 Giới thiệu ngôn ngữ Php
Hiện nay có rất nhiều ngôn ngữ lập trình web, trong đó có thể kể đến các ngôn ngữ nổi tiếng như PHP, Perl, Ruby, Python, ASP.net… Các ngôn ngữ lập trình kể trên đều có vị thế riêng trong lĩnh vực thiết kế web, nổi bật trong số đó, PHP là một ngôn ngữ lập trình mã nguồn mở, với cộng đồng hỗ trợ mạnh mẽ ở khắp mọi nơi trên thế giới Việc tìm hiểu ngôn ngữ lập trình này giúp tiết kiệm thời gian và chi phí một cách đáng kể, kèm theo đó đây là ngôn ngữ lập trình web mạnh mẽ và thông
dụng nhất hiện nay
PHP - viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình
kịch bản được chạy ở phía server nhằm sinh ra mã html trên client PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP
đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ
sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP)
Apache là một phần mềm web server có nhiệm vụ tiếp nhận request từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt
MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các webserver Thông thường các phiên bản được sử dụng nhiều nhất là RedHat Enterprise Linux,
Ubuntu
Trang 382.6.2 Cú pháp của PHP
PHP chỉ phân tích các đoạn mã nằm trong những dấu giới hạn của nó Bất cứ mã nào nằm ngoài những dấu giới hạn đều được xuất ra trực tiếp không thông qua xử lý bởi PHP Các dấu giới hạn thường dùng nhất là <?php và ?> , tương ứngvới dấu giới hạn mở và đóng
Các dấu giới hạn <script language="php"> và </script> cũng đôi khi được sử dụng Cách viết dấu giới hạn dạng thẻ ngắn cũng có thể được dùng để thông báo bắt đầu đoạn mã PHP, là <? hay <?= (dấu này được sử dụng để in ra (echo) các xâu ký tự hay biến) với thẻ thông báo kết thúc đoạn mã PHP là ?> Những thẻ này thường xuyên được sử dụng, tuy nhiên giống với những thẻ kiểu ASP ( <% hay <%= và %> ), chúng không có tính di động cao bởi có thể bị vô hiệu khi cấu hình PHP Bởi vậy, việc dùng các thẻ dạng ngăn hay các thẻ kiểu ASP không được khuyến khích Mục đích của những dấu giới hạn này là ngăn cách mã PHP với những đoạn mã thuộc ngôn ngữ khác, gồm cả HTML Mọi đoạn mã bên ngoài các dấu này đều bị hệ thống phân tích bỏ qua và được xuất ra một cách trực tiếp
Các biến được xác định bằng cách thêm vào trước một dấu đô la ($) và không
cần xác định trước kiểu dữ liệu Không giống với tên hàm và lớp, tên biến là trường hợp nhạy cảm Cả dấu ngoặc kép ( "" ) và ký hiệu đánh dấu văn bản ( <<<EOF EOF;) đều có thể dùng để truyền xâu và giá trị biến PHP coi xuống dòng như
một khoảng trắng theo kiểu như một ngôn ngữ dạng tự do (free-form language) (trừ
khi nó nằm trong trích dẫn xâu), và các phát biểu được kết thúc bởi một dấu chấm phẩy PHP có ba kiểu cú pháp chú thích: /* */ cho phép một đoạn chú thích tùy
ý, trong khi đó // và # cho phép chú thích trong phạm vi một dòng Phát
Trang 39biểu echo là một trong những lệnh của PHP cho phép xuất văn bản (vd ra một trình duyệt web)
Về cú pháp các từ khóa và ngôn ngữ, PHP tương tự hầu hết các ngôn ngữ lập
trình bậc cao có cú pháp kiểu C Các phát biểu điều kiện If , vòng lặp for và while , các hàm trả về đều tương tự cú pháp của các ngôn ngữ
như C, C++, Java và Perl
Hình 2.16 Một đoạn code Php
2.6.3 Giới thiệ JSON
Để thuận tiện cho việc truyền tải dữ liệu từ Web server xuống ứng dụng điện thoại, nhóm có sử dụng thêm một dạng dữ liệu khác là JSON Đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều
có thể đọc được, dữ liệu có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến
Cú pháp của JSON rất đơn giản là mỗi thông tin dữ liệu sẽ có 2 phần đó là key
và value, điều này tương ứng trong CSDL là tên field và giá trị của nó ở một record
nào đó Chính vì sự thuận tiện này, khi truyền tải dữ liệu từ web server xuống ứng dụng trên điện thoại, có thể dễ dàng lấy được dữ liệu và lưu trữ lại vào cơ sở dữ liệu
Trang 402.6.4 Giới thiệu MYSQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và
được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL
là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL
từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS
X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó
làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
2.6.5 Ưu điểm của MYSQL
Tốc độ: MySQL rất nhanh Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có
Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở
dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức
Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại Bạn cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft)