Thu thập thông số của hệ thống và điều khiển hoạt động của hệ thống qua App trên điện thoại di động sử dụng công nghệ truyền thông mạng Wifi.. Chính vì thế, nhóm lựa chọn đề tài THIẾT KẾ
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH
VƯỜN THÔNG MINH
GVHD:TRƯƠNG NGỌC HÀ SVTH: PHAN HỮU PHƯỚC MSSV: 14141508
SVTH: BÙI ĐỨC SANG MSSV: 14141514
SKL 0 0 6 5 4 5
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
-
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
Tp Hồ Chí Minh, tháng 07 năm 2018
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH
VƯỜN THÔNG MINH
SVTH : PHAN HỮU PHƯỚC
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
-
ĐỒ ÁN TỐT NGHIỆP
Đề tài:
THIẾT KẾ VÀ THI CÔNG MÔ HÌNH
VƯỜN THÔNG MINH
SVTH : PHAN HỮU PHƯỚC
Trang 4Tp Hồ Chí Minh, ngày 21 tháng 7 năm 2017
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: Phan Hữu Phước MSSV: 14141508
Họ và tên sinh viên: Bùi Đức Sang MSSV: 14141514
Ngành: Công nghệ kỹ thuật điện tử truyền thông Lớp: 14141CL-VT
Giảng viên hướng dẫn: ThS Trương Ngọc Hà ĐT: 0903698741
Ngày nhận đề tài: 22/2/2018 Ngày nộp đề tài: 19/07/2018
1 Tên đề tài: Thiết kế và thi công mô hình vườn thông minh
2 Các số liệu, tài liệu ban đầu: Đồ án môn học 2: Thiết kế và thi công hệ thống vườn rau thực tế ảo
3 Nội dung thực hiện đề tài: Thiết kế và xây dựng hệ thống vườn thông minh qua việc giám sát nhiệt độ, độ ẩm không khí, độ ẩm đất và điều khiển máy bơm để tưới nước Thu thập thông số của hệ thống và điều khiển hoạt động của hệ thống qua App trên điện thoại di động sử dụng công nghệ truyền thông mạng Wifi
4 Sản phẩm: Mô hình hệ thống vườn thông minh gồm hệ thống khung trượt điều khiển máy bơm và khối xử lý trung tâm thu thập dữ liệu và điều khiển thông qua App trên điện thoại di động chạy hệ điều hành Android thông qua hệ thống Wifi
GIẢNG VIÊN HƯỚNG DẪN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc ***
Trang 5PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên: Phan Hữu Phước MSSV: 14141508
Họ và tên sinh viên: Bùi Đức Sang MSSV: 14141514
Ngành: Công nghệ kỹ thuật điện tử truyền thông
Tên đề tài: Thiết kế và thi công mô hình vườn thông minh
Họ và tên Giáo viên hướng dẫn: ThS Trương Ngọc Hà
NHẬN XÉT
1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng 07 năm 2018 Giáo viên hướng dẫn CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
Trang 6*** PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên: Phan Hữu Phước MSSV: 14141508
Họ và tên sinh viên: Bùi Đức Sang MSSV: 14141514
Ngành: Công nghệ kỹ thuật điện tử truyền thông
Tên đề tài: Thiết kế và thi công mô hình vườn thông minh
Họ và tên Giáo viên phản biện:
NHẬN XÉT 1 Về nội dung đề tài & khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:……….(Bằng chữ: )
Tp Hồ Chí Minh, ngày tháng 07 năm 2018 Giáo viên phản biện CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
Trang 7*** LỜI CẢM ƠN
Để có thể hoàn thành đề tài này, nhóm sinh viên thực hiện xin chân thành cảm
ơn quý thầy cô Trường ĐH Sư phạm Kỹ thuật TP.Hồ Chí Minh đã hướng dẫn, truyền đạt kiến thức cho nhóm trong suốt quá trình học tập Đặc biệt, nhóm xin chân thành
cảm ơn Thầy Trương Ngọc Hà đã tận tình hướng dẫn và tạo điều kiện thuận lợi cho
nhóm trong suốt thời gian thực hiện đồ án tốt nghiệp Nhóm xin được phép gửi đến thầy lòng biết ơn, lời cảm ơn chân thành và sâu sắc nhất
Bên cạnh đó, nhóm cũng xin cảm ơn các anh, chị khóa trước cũng như các bạn sinh viên trong lớp 14141CL-VT đã nhiệt tình đóng góp ý kiến và chia sẻ kinh nghiệm , cảm ơn gia đình đã tạo điều kiện, động viên, chia sẻ và tiếp thêm động lực để giúp nhóm có thể hoàn thành đề tài này
Cuối cùng, dù đã cố gắng hoàn thành nhiệm vụ đề tài đặt ra đảm bảo thời hạn nhưng do kiến thức có hạn nên trong quá trình thực hiện đề tài không tránh khỏi những thiếu sót Nhóm rất mong nhận được ý kiến đóng góp của quý thầy cô và các bạn để đồ án được hoàn thiện hơn
Nhóm xin chân thành cảm ơn!
Phan Hữu Phước – Bùi Đức Sang
Trang 8LỜI NÓI ĐẦU
Công nghệ ngày càng phát triển đòi hỏi nhu cầu ứng dụng vào mọi lĩnh vực đặc biệt là nông nghiệp truyền thống nhằm giảm lao động, tăng năng suất cây trồng… đem lại hiệu quả cao cho nền nông nghiệp trong thời kì mới
Việc ứng dụng nông nghiệp thông minh là một trong những giải pháp cấp bách
để bảo đảm an ninh lương thực và chất lượng nông sản phục vụ toàn cầu trong bối cảnh tình trạng xung đột và bất ổn, dịch bệnh và biến đổi khí hậu đang diễn biến ngày càng phức tạp, khó lường
Chính vì thế, nhóm lựa chọn đề tài THIẾT KẾ VÀ THI CÔNG MÔ HÌNH VƯỜN THÔNG MINH nhằm tìm hiểu thêm về sự quan trọng cũng như ứng dụng của vi xử lý, Web Server và mạng Wifi trong đời sống nhằm đáp ứng nhu cầu cấp thiết của xã hội
Bên cạnh việc kiểm soát các thông số về nhiệt độ và độ ẩm môi trường là những thông số ảnh hưởng trực tiếp đến vườn rau, việc giám sát hoạt động của hệ thống là rất cần thiết để có thể nắm bắt kịp thời các thông số của hệ thống, điều khiển
hệ thống hoạt động một cách hiệu quả nhất thông qua mạng Internet
Trang 9MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii
LỜI CẢM ƠN iv
LỜI NÓI ĐẦU v
MỤC LỤC vi
DANH MỤC CÁC TỪ VIẾT TẮT ix
DANH MỤC CÁC BẢNG BIỂU x
DANH MỤC CÁC BIỂU ĐỒ VÀ HÌNH ẢNH xi
CHƯƠNG 1: TỔNG QUAN 1
1.1 GIỚI THIỆU TÌNH HÌNH NGHIÊN CỨU HIỆN NAY 1
1.1.1 Đặt vấn đề 1
1.1.2 Tính cấp thiết của đề tài 2
1.2 MỤC TIÊU NGHIÊN CỨU 3
1.3 ĐỐI TƯỢNG NGHIÊN CỨU 3
1.4 PHẠM VI NGHIÊN CỨU 3
1.5 BỐ CỤC ĐỒ ÁN 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5
2.1 GIỚI THIỆU VI ĐIỀU KHIỂN ARDUINO UNO 5
2.1.1 Sơ lược về ARDUINO UNO R3 5
2.1.2 Thông số kỹ thuật 5
2.1.3 Các chức năng cơ bản của Arduino Uno R3 6
2.2 ESP8266 VÀ MODULE NODEMCU v1.0 6
2.2.1 Giới thiệu ESP8266 6
2.2.2 Thông số kỹ thuật 7
2.2.3 Chức năng của module ESP8266 7
2.2.4 NodeMCU v1.0 8
2.3 MUDULE ĐIỀU KHIỂN ĐỘNG CƠ L298N 9
2.3.1 Giới thiệu 9
Trang 102.3.2 Thông số kỹ thuật 10
2.4 MODULE RELAY 10
2.4.1 Giới thiệu 10
2.4.2 Thông số kỹ thuật 11
2.5 ĐỘNG CƠ BƯỚC 11
2.5.1 Giới thiệu 11
2.5.2 Cách điều khiển động cơ bước 11
2.5.3 Các loại động cơ bước 12
2.6 CẢM BIẾN DHT11 13
2.6.1 Giới thiệu 13
2.6.2 Thông số kỹ thuật 13
2.7 CẢM BIẾN ĐỘ ẨM ĐẤT 13
2.7.1 Giới thiệu 13
2.7.2 Thông số kỹ thuật 14
2.8 CẢM BIẾN QUANG TRỞ 14
2.8.1 Giới thiệu 14
2.8.2 Thông số kỹ thuật 15
2.9 NGUỒN 15
2.10 CHUẨN GIAO TIẾP 1-WIRE 16
2.10.1 Giới thiệu 16
2.10.2 Nguyên lý hoạt động 16
2.11 CHUẨN GIAO TIẾP UART 18
2.11.1 Giới thiệu 18
2.11.2 Các thông số cơ bản của chuẩn truyền UART 20
2.12 GOOGLE FIREBASE 20
2.12.1 Giới thiệu 20
2.12.2 Các chức năng chính của Google Firebase 21
2.12.3 Những lợi ích từ Google Firebase 21
2.12.4 Cách tạo project trên Firebase 22
2.13 PHƯƠNG PHÁP XÂY DỰNG WEB SERVER 24
2.13.1 Phần mềm hỗ trợ lập trình Web Server 24
Trang 112.13.2 Ngôn ngữ HTML 25
2.13.3 Ngôn ngữ PHP 28
2.13.4 Giao thức HTTP 29
2.13.5 Ngôn ngữ CSS 30
2.13.6 Cơ sở dữ liệu MySQL 33
2.13.7 Phần mềm tạo biểu tượng Favicon cho trang web 34
CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 37
3.1 YÊU CẦU VÀ SƠ ĐỒ KHỐI HỆ THỐNG 37
3.1.1 Yêu cầu của hệ thống 37
3.1.2 Sơ đồ khối và chức năng mỗi khối 37
3.1.3 Hoạt động của hệ thống 38
3.2 THIẾT KẾ HỆ THỐNG PHẦN CỨNG 39
3.2.1 Khối điều khiển trung tâm chính 39
3.2.2 Khối động cơ 53
3.3 THIẾT KẾ PHẦN MỀM HỆ THỐNG 55
3.3.1 Firebase – App Android 55
3.3.2 Web 61
CHƯƠNG 4: KẾT QUẢ THỰC HIỆN 70
4.1 KẾT QUẢ PHẦN CỨNG 70
4.2 KẾT QUẢ PHẦN MỀM 72
4.2.1 Firebase – App Android 72
4.2.2 Web 79
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 82
5.1 KẾT LUẬN 82
5.2 HƯỚNG PHÁT TRIỂN 82 TÀI LIỆU THAM KHẢO Error! Bookmark not defined.
Trang 12nối tiếp CSS Cascading Style Sheets Một dạng file text với phần tên
mở rộng là css PHP Hypertext Preprocessor Ngôn ngữ lập trình kịch bản
I/O Input/Output Ngõ vào/ngõ ra
MCU Microprocessor Control Unit Khối vi điều khiển
UART Universal Asynchronous Receiver
– Transmitter
Truyền dữ liệu nối tiếp bất đồng
bộ
HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản
HTTP Hyper Text Transfer Protocol Giao thức truyền siêu văn bản ADC hay
A/D
Analog Digital Converter Chuyển đổi tín hiệu tương tự
sang tín hiệu số VietGAP Vietnamese Good Agricultural
Practices
Thực phẩm sạch của nông nghiệp Việt Nam
USB Universal Serial Bus Kết nối cổng serial trực tiếp SSL Secure Sockets Layer Chuẩn bảo mật của hệ thống
mạng DDos Distributed Denial of Service Từ chối dịch vụ phân tán
Trang 13DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1 Cách vào chế độ Boot của NodeMCU [7] 8
Bảng 2.2 Code lồng PHP vào HTML 28
Bảng 2.3 Một đoạn mã PHP 28
Bảng 2.4 Tạo mảng trên PHP 29
Bảng 2.5 Cú pháp vòng lặp while 29
Bảng 2.6 Cấu trúc cơ bản của CSS 31
Bảng 2.7 Đặt các định dạng vào trong CSS 31
Bảng 2.8 Nội dung tập tin CSS 32
Bảng 2.9 Tập tin sau khi nhúng 32
Bảng 2.10 Chèn icon vào HTML 36
Trang 14DANH MỤC CÁC BIỂU ĐỒ VÀ HÌNH ẢNH
Hình 1.1 Mô hình trồng rau truyền thống 1
Hình 2.1 Board Arduino Uno R3 [4] 5
Hình 2.2 ESP8266 [6] 7
Hình 2.3 Sơ đồ chân board NodeMCU v1.0 9
Hình 2.4 Module L298N 9
Hình 2.5 Module Relay [9] 10
Hình 2.6 Động cơ bước đơn cực [10] 12
Hình 2.7 Sơ đồ dây động cơ bước [10] 12
Hình 2.8 Cảm biến DHT11 [11] 13
Hình 2.9 Cảm biến độ ẩm đất 14
Hình 2.10 Module cảm biến quang trở 15
Hình 2.11 Nguồn DC 12V-5A 16
Hình 2.12 Gửi tín hiệu bit “1” 17
Hình 2.13 Gửi tín hiệu bit “0” 17
Hình 2.14 Đọc tín hiệu 17
Hình 2.15 Tín hiệu Reset và Presence 18
Hình 2.16 Tổng hợp dạng sóng các tiến trình hoạt động chuẩn 1-Wire 18
Hình 2.17 Truyền dữ liệu UART 19
Hình 2.18 Logo công cụ Google Firebase 20
Hình 2.19 Hệ thống CSDL Realtime của Firebase 21
Hình 2.20 Tạo Project mới trong Firebase 23
Hình 2.21 Giao diện của Project mới trên Firebase 23
Hình 2.22 Giao diện của XAMPP 24
Hình 2.23 Giao diện phần mềm soạn thảo 25
Hình 2.24 Giao diện phần mềm Perfect Icon 35
Hình 2.25 Hình ảnh sử dụng làm Favicon cho trang web 35
Hình 3.1 Sơ đồ khối của hệ thống 37
Hình 3.2 Sơ đồ kết nối hệ thống 38
Hình 3.3 Board NodeMCU v1.0 và board Arduino Uno R3 39
Hình 3.4 Sơ đồ kết nối khối trung tâm 40
Hình 3.5 Sơ đồ kết nối khối cảm biến và đèn của hệ thống với NodeMCU 40
Hình 3.6 Lưu đồ thuật toán khối điều khiển giữa khối trung tâm và CSDL 41
Trang 15Hình 3.7 Lưu đồ đọc cảm biến ánh sáng 42
Hình 3.8 Lưu đồ đọc cảm biến nhiệt độ, độ ẩm DHT11 43
Hình 3.9 Lưu đồ đẩy dữ liệu cảm biến lên Firebase 44
Hình 3.10 Lưu đồ gửi dữ liệu lên web server 45
Hình 3.11 Đọc dữ liệu cảm biến từ UART 46
Hình 3.12 Lưu đồ lấy dữ liệu từ Firebase 47
Hình 3.13 Lưu đồ điều khiển bơm bằng tay 48
Hình 3.14 Lưu đồ giải thuật điều khiển động cơ và đọc cảm biến độ ẩm đất 49
Hình 3.15 Sơ đồ kết nối điều khiển bơm 50
Hình 3.16 Lưu đồ giải thuật điều khiển động cơ bơm 51
Hình 3.17 Sơ đồ kết nối cảm biến độ ẩm đất 52
Hình 3.18 Lưu đồ giải thuật đọc cảm biến độ ẩm đất 52
Hình 3.19 Khung máy CNC mini 53
Hình 3.20 Trục motor Step trượt trên khung nhôm định hình 53
Hình 3.21 Nhôm định hình 54
Hình 3.22 Động cơ DC 12v 55
Hình 3.23 Trang chủ của ứng dụng 56
Hình 3.24 Trang thông tin cây trồng trên ứng dụng 57
Hình 3.25 Trang thông tin người dùng của ứng dụng 58
Hình 3.26 Trang điều khiển bằng tay của ứng dụng 59
Hình 3.27 Trang admin của ứng dụng 60
Hình 3.28 Các mã nguồn của trang web được lưu trữ tại 000webhost 61
Hình 3.29 Database của hệ thống lưu trữ trên 000webhost 62
Hình 3.30 Cấu trúc cơ bản của website 62
Hình 3.31 Lưu đồ thuật toán của website 63
Hình 3.32 Lưu đồ thuật toán trang đăng nhập 65
Hình 3.33 Hiển thị thông số cảm biến 6 khu vực 66
Hình 3.34 Hiển thị biểu đồ và thông số chi tiết khu vực được chọn 67
Hình 3.35 Cấu trúc CSDL 69
Hình 4.1 Khối xử lý trung tâm 70
Hình 4.2 Mô hình nhìn từ trên xuống 71
Hình 4.3 Mô hình nhìn phía trước 71
Hình 4.4 Giao diện CSDL trên Firebase 72
Hình 4.5 Trang chủ giao diện ứng dụng Android 73
Hình 4.6 Giao diện đổi tài khoản khi lần đầu đăng nhập vào ứng dụng 74
Trang 16Hình 4.7 Giao diện trang thông tin cây trồng 75
Hình 4.8 Trang đổi thông tin (trái) và điều khiển bằng tay (phải) 76
Hình 4.9 Giao diện trang chủ Web trên ứng dụng Android 76
Hình 4.10 Giao diện sau khi người dùng đăng nhập thành công 77
Hình 4.11 Biểu đồ giá trị cảm biến ở các khu vực 77
Hình 4.12 Các thông số cảm biến đã được ghi nhận tại khu vực 3 78
Hình 4.13 Trang điều khiển của Admin 79
Hình 4.14 Trang chủ của hệ thống 80
Hình 4.15 Giao diện hiển thị thông tin của tất cả các khu vực 80
Hình 4.16 Giao diện thông tin từng khu vực dạng biểu đồ 81
Hình 4.17 Giao diện thông tin từng khu vực dạng chi tiết 81
Trang 17Vì thế nhu cầu của người dân về rau sạch lại càng cao
Trong vài năm trở lại đây, truyền thông, báo đài không ngừng cập nhật những thông tin về rau bẩn, rau thiếu an toàn Những luống rau, bó rau xanh ngắt, tươi ngon mơn mởn, nhưng ít ai biết đến trong chúng tiềm ẩn dư lượng chất bảo vệ thực vật, thuốc trừ sâu Hằng ngày, có biết bao nhiêu vụ ngộ độc thực phẩm mà thủ phạm chính lại là những món ăn từ rau xanh thiếu an toàn
Hình 1.1 Mô hình trồng rau truyền thống
Trang 18Chính vì thế, nhóm thực hiện đề tài: “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH VƯỜN RAU THÔNG MINH” nhằm góp phần đưa nguồn rau sạch đến gần hơn với mọi người, áp dụng kiến thức đã học sử dụng các module cảm biến nhiệt độ, độ ẩm vào kiểm soát khu vườn, tiến tới hiện đại hóa nền nông nghiệp
1.1.2 Tính cấp thiết của đề tài
Ngày trước, người dân luôn tiện đường ghé xe vào chọn mua rau tại các sạp nhỏ, hay các người buôn rau ngồi rải rác ven đường Những bó rau ở đây luôn có vẻ ngoài bắt mắt, mà giá ở đây thường không quá đắt Nhưng ngày nay, nhận thức của nhiều người dân đã thay đổi, ý thức được tác hại của rau bẩn, rau không an toàn; biết được rau nào là rau sạch, rau nào là rau an toàn
Theo các nghiên cứu, các chuyên gia về dinh dưỡng luôn cảnh báo về những tác hại khôn lường của rau bẩn, rau thiếu an toàn Việc ăn những loại rau bẩn, rau thiếu an toàn đó làm cho chúng ta có nguy cơ cao mắc các bệnh hiểm nghèo như ung thư, ảnh hưởng đến hệ thần kinh, tim mạch…Một biểu hiện bệnh dễ thấy đó là ngộ độc thực phẩm do ăn phải rau bẩn Trước nhiều tác nhân gây bệnh khác thì con đường
ăn uống là con đường gần nhất đưa ta đến cái chết Việc bảo vệ sức khỏe của mình
và những người thân yêu bằng những sản phẩm rau sạch, thực phẩm sạch là điều thiết yếu Cho nên, nhu cầu của người dân về rau sạch để đảm bảo cho sức khỏe của mình
và gia đình là điều cần thiết
Trên cơ sở phát triển nông nghiệp ứng dụng công nghệ cao, trong những năm gần đây, các doanh nghiệp/trang trại ở Lâm Đồng đã tiếp cận ứng dụng công nghệ IoT trong sản xuất nông nghiệp tạo đột phá, chủ yếu ứng dụng ở các trang trại trồng
rau, hoa, dâu tây đã cho doanh thu từ 5 đến 8 tỷ đồng/ha/năm [1] Chủ nhiệm hợp
tác xã Anh Đào (Lâm Đồng) ông Nguyễn Công Thừa cho biết hợp tác xã đang trồng rau quả VietGAP, áp dụng công nghệ nhà kính, tự động hoá vào tưới tiêu, từ đó cung cấp cho các hệ thống siêu thị khắp cả nước và xuất khẩu, sản lượng tiêu thụ bình quân
50.000 tấn trong nước và 4.000 tấn xuất khẩu Doanh thu hơn 10 triệu USD/năm [2]
Rau sạch trồng theo tiêu chuẩn VietGAP có giá thành đắt gấp 3 thậm chí gấp 5 lần
giá rau bình thường nhưng người dân vẫn chọn mua Giá rau sạch đắt là vậy nhưng nhu cầu của người dân về rau sạch không hề giảm mà ngày càng có dấu hiệu tăng Mặc dù sản lượng cung cấp như thế song vẫn chưa đáp ứng đủ nhu cầu của xã hội
"Thời gian qua, Chính phủ đã đưa ra gói tín dụng 100.000 tỷ đồng [3] cho các doanh
nghiệp ứng dụng nông nghiệp công nghệ cao nhưng đến nay chỉ giải ngân được khá
ít Không tiếp cận được vốn, ở nhiều vùng nông thôn nhiều nông dân phải tìm tới nguồn tín dụng đen", ông Phạm S (Phó Chủ tịch UBND tỉnh Lâm Đồng) nói
Trang 19Hiện tại trên thị trường cũng đã có nhiều hệ thống tự động tưới nước dựa theo thời gian cài đặt sẵn, giúp người dân có thể tự động hóa trong vấn đề tưới nước cho cây trồng Nhưng với sự biến đổi khí hậu bất thường ngày nay, việc theo dõi nhiệt
độ, độ ẩm của vườn rau thường xuyên là điều cần thiết Vì vậy, nhóm đã thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG MÔ HÌNH VƯỜN THÔNG MINH” để theo dõi nhiệt độ, độ ẩm môi trường của khu vườn, từ các thông số thu được có thể tưới nước cho các loại rau hợp lý hơn, giúp cây phát triển tốt hơn
1.2 MỤC TIÊU NGHIÊN CỨU
Mục tiêu nghiên cứu của đề tài bao gồm các vấn đề sau:
- Xây dựng mô hình vườn rau thông minh
- Hoạt động của các vi điều khiển, cảm biến…
- Cách thức tạo ra một ứng dụng di động chạy trên nền tảng hệ điều hành Android
- Tìm hiểu về CSDL thời gian thực
- Các ngôn ngữ lập trình, thiết kế Web như HTML, PHP và CSS
- Tìm hiểu về hoạt động của động cơ cũng như các vật liệu về cơ khí chính xác
1.3 ĐỐI TƯỢNG NGHIÊN CỨU
Đối tượng nghiên cứu của đề tài bao gồm:
- Vi điều khiển ATmega328, ESP8266
- Cảm biến nhiệt độ, độ ẩm đất, độ ẩm không khí, cảm biến quang trở
- Máy bơm một chiều
- Cách thức hoạt động của công cụ thiết kế ứng dụng Mit App Inventor 2
- Thiết kế Web và các ngôn ngữ hỗ trợ
- Trao đổi dữ liệu giữa App, Web, CSDL và phần cứng của mô hình
1.4 PHẠM VI NGHIÊN CỨU
Phạm vi nghiên cứu của đề tài gồm có:
- Nghiên cứu và xây dựng vườn mô hình (6 khu đất) với các tính năng đo nhiệt
độ, độ ẩm, ánh sáng: nhiệt độ đo trong khoảng từ 20oC đến 50oC; độ ẩm đo trong khoảng từ 50% đến 100%
- Điều khiển máy bơm tưới nước khi độ ẩm đất dưới 70%
- Trao đổi dữ liệu giữa CSDL và các thiết bị phần cứng
- Xây dựng ứng dụng giám sát, điều khiển trên hệ điều hành Android
1.5 BỐ CỤC ĐỒ ÁN
Bố cục của đồ án được trình bày thành 5 phần như sau:
Trang 20Chương 1: Tổng quan: Trong chương này, nhóm thực hiện đề tài trình bày tổng
quan về tình hình nghiên cứu, về mạng Wifi Mục tiêu, đối tượng và phạm vi nghiên cứu của đề tài
Chương 2: Cơ sở lý thuyết: Giới thiệu về sơ lược về Arduino, mạng Wifi, module
NodeMCU, chuẩn giao tiếp UART, hệ quản trị CSDL, các ngôn ngữ để thiết kế website như HTML, PHP, CSS
Chương 3: Thiết kế và thi công: Trong chương này, nhóm thực hiện đề tài sẽ đưa
ra các yêu cầu khi thiết kế, các thiết kế về phần cứng và phần mềm
Chương 4: Kết quả thi công: Đưa ra kết quả mà nhóm đạt được, số liệu, hình ảnh
hệ thống sau khi thi công
Chương 5: Kết luận và hướng phát triển: Đưa ra kết luận và hướng phát triển của
đề tài
Trang 21CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VI ĐIỀU KHIỂN ARDUINO UNO
2.1.1 Sơ lược về ARDUINO UNO R3
Arduino board có rất nhiều phiên bản với hiệu năng và mục đích sử dụng khác nhau như: Arduino Mega, Arduino Uno R3, Aruino LilyPad [4] Trong số đó, Arduino Uno R3 là một trong những phiên bản được sử dụng rộng rãi nhất bởi chi phí và tính linh động của nó
Hình 2.1 Board Arduino Uno R3 [4]
Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là: ATmega8 (Board Arduino Uno r2), ATmega168, ATmega328 (Board Arduino Uno r3) [4]
2.1.2 Thông số kỹ thuật
Mạch Arduino UNO R3 với thiết kế tiêu chuẩn sử dụng vi điều khiển ATmega328 với các thông số kỹ thuật như sau [5]:
Điện áp hoạt động: 5V
Điện áp vào khuyên dùng: 7-12V
Điện áp vào giới hạn: 6-20V
Digital I/O pin: 14 (trong đó 6 pin có khả năng băm xung)
PWM Digital I/O Pins: 6
Analog Input Pins: 6
Trang 22 Cường độ dòng điện trên mỗi I/O pin: 20 mA
Cường độ dòng điện trên mỗi 3.3V pin: 50 mA
Flash Memory: 32 KB (ATmega328P)
0.5 KB được sử dụng bởi bootloader
2.1.3 Các chức năng cơ bản của Arduino Uno R3
Board Arduino Uno R3 [5] có các chức năng cơ bản sau:
Điều khiển động cơ: board Arduino Uno R3 sử dụng các chân 3, 5, 9, 10, 11 cho phép xuất xung PWM (Pulse Width Modulation) với độ phân giải 8 bit dùng để điều khiển động cơ DC
Truyền dữ liệu qua các chuẩn như UART, SPI, I2C
Giao tiếp với cảm biến thông qua các chân ADC từ A0 – A5
Bộ định thời Timer với 2 bộ 8 bit và 1 bộ 16 bit
Với những chức năng như trên thì chúng ta hoàn toàn có thể sáng tạo, ứng dụng vào nhiều lĩnh vực khác nhau từ những thiết kế đơn giản như điều khiển đèn Led nhấp nháy, điều khiển đèn tín hiệu giao thông… cho đến những ứng dụng phức tạp hơn như nhà thông minh, vườn rau, làm Robot hay máy bay không người lái…
2.2 ESP8266 VÀ MODULE NODEMCU v1.0
2.2.1 Giới thiệu ESP8266
ESP là viết tắt của electronic stability program nghĩa là hệ thống cân bằng điện
tử Module ESP8266 là một module với bộ xử lý 32 bit, dựa trên giao thức TCP/IP,
là một chip tích hợp được thiết kế dùng cho chuẩn kết nối mới Có thể lưu trữ ứng dụng hoặc xử lý các kết nối WiFi từ bộ xử lý tích hợp trên chip, có khả năng tạo kết nối giống như một máy chủ hoặc một cầu nối trung gian và có thể download dữ liệu
từ Internet
Trang 23Hình 2.2 ESP8266 [6]
Đâ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 Espressif Module ESP8266 V1 thường được sử dụng cho các ứng dụng IoT (Internet of Things) Module này đã được nạp sẵn firmware giúp người dùng giao tiếp với wifi rất dễ dàng qua tập lệnh AT thông qua giao tiếp UART (baudrate mặc định 9600) quen thuộc
2.2.2 Thông số kỹ thuật
Module ESP8266 có các thông số kỹ thuật như sau [6]:
- Hỗ trợ chuẩn Wifi 802.11 b/g/n
- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2 Wi-Fi Direct (P2P), soft-AP
- Chuẩn điện áp hoạt động: 3.3V
- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến115200 Có 3 chế độ hoạt động: Client, Access Point, Both (Client and Access Point)
- Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA WPA2_PSK Hỗ trợ cả 2 giao tiếp TCP và UDP
- Làm việc như 1 Access Point có thể kết nối với 5 Device Công suất đầu ra 19.5dBm ở chế độ 802.11b
- Tích hợp giao thức TCP / IP stack
2.2.3 Chức năng của module ESP8266
Module ESP8266 có các chức năng chính như sau [6]:
- Hỗ trợ chuẩn 802.11 n/g/n
- Điện áp hoạt động 3.3v
Trang 24- Wifi 2.4 Ghz, hỗ trợ WPA/WPA2
- Chuẩn giao tiếp UART với tốc độ Baud lên đến 115200
- Giao thức TCP, UDP
- Có ba chế độ hoạt động: Client/ Acesspoint, Both
- Hỗ trợ các chuẩn bảo mật như: WEP, WPA_PSK, WPA2_PSK
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 Ngoài ra, ESP8266 khả năng xử lý và 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 (General Purpose Input Output) với một chi phí tối thiểu và một PCB (Printed Circuit Board) tối thiểu
2.2.4 NodeMCU v1.0
NodeMCU Wifi v1.0 là kit phát triển dựa trên nền chip Wifi SoC ESP8266 với thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng trên ESP8266 trở nên rất đơn giản
Module hỗ trợ 9 chân GPIO , 1 chân ADC, 1 giao tiếp UART, 1 giao tiếp SPI
và hỗ trợ PWM Tích hợp 2 nút nhấn, IC CH340 chuyển đổi USB -UART
IC chính: ESP8266 Wifi SoC Chip nạp và giao tiếp UART: CH340G Cấp nguồn: 5VDC MicroUSB hoặc V-in GPIO giao tiếp mức 3.3VDC Tích hợp Led báo trạng thái, nút Reset, Flash Tương thích hoàn toàn với trình biên dịch Arduino
Cách vào các chế độ boot của NodeMCU:
Bảng 2.1 Cách vào chế độ Boot của NodeMCU [7]
MTDO
(GPIO15) GPIO0 GPIO2 Mode Mô tả
L H H Flash Boot from SPI Flash
H x x SDIO Boot from SD – card
Trang 25Hình 2.3 Sơ đồ chân board NodeMCU v1.0
2.3 MUDULE ĐIỀU KHIỂN ĐỘNG CƠ L298N
2.3.1 Giới thiệu
Hình 2.4 Module L298N Module điều khiển động cơ (Motor Driver) sử dụng chip cầu H L298N giúp điều khiển tốc độ và chiều quay của động cơ DC một cách dễ dàng [8], ngoài ra module L298N còn điều khiển được 1 động cơ bước lưỡng cực Mạch cầu H của IC L298N có thể hoạt động ở điện áp từ 5V đến 35V
Trang 26Module L298N có tích hợp một IC nguồn 78M05 để tạo ra nguồn 5V để cung cấp cho các thiết bị khác
2.3.2 Thông số kỹ thuật
Thông số kỹ thuật của mạch điều khiển động cơ L298N [8]:
Driver: L298N tích hợp hai mạch cầu H
Điện áp điều khiển: +5 V ~ +35 V
Dòng tối đa cho mỗi cầu H: 2A
Điện áp tín hiệu điều khiển: +5 V ~ +7 V
Dòng tín hiệu điều khiển: 0 ~ 36mA
Công suất hao phí: 20W (khi nhiệt độ T = 75 ℃)
Tiếp điểm đóng ngắt gồm 3 tiếp điểm NC (thường đóng), NO (thường mở) và COM (chân chung) được cách ly hoàn toàn với board mạch chính, ở trạng thái bình thường chưa kích NC sẽ nối với COM, khi có trạng thái kích COM sẽ chuyển sang nối với NO và mất kết nối với NC
Hình 2.5 Module Relay [9]
Trang 272.4.2 Thông số kỹ thuật
Module Relay có các thông số kỹ thuật như sau [9]:
Sử dụng điện áp nuôi DC 5V
Dòng mỗi Relay tiêu thụ dòng khoảng 80mA
Điện thế đóng ngắt tối đa: AC250V ~ 10A hoặc DC30V ~ 10A
Có đèn báo đóng ngắt trên mỗi Relay
Có thể chọn mức tín hiệu kích 0 hoặc 1 qua jumper
đi một góc nhất định, góc ấy là một bước quay của động cơ Khi các xung điện áp đặt vào các cuộn dây phần ứng thay đổi liên tục thì roto sẽ quay liên tục (nhưng thực chất chuyển động đó vẫn là theo các bước rời rạc)
2.5.2 Cách điều khiển động cơ bước
Động cơ bước có nhiều cách điều khiển Có thể điều khiển các dây trực tiếp qua 4 cổng qua MCU thông qua driver đệm công suất Cách này hơi phức tạp một chút, cần phải hiểu rõ bên trong động cơ và thường chỉ điều khiển được full bước
Cách thông dụng nhất là dùng các IC chuyên dụng điều khiển động cơ bước Các IC hay gặp nhất là TB6560, TB6600, L297, A4988, DRV8825, MA860H [10]…
Nguyên lý điều khiển động cơ đơn cực: động cơ bước đơn cực, (có thể là
động cơ vĩnh cửu hoặc động cơ hỗn hợp) có 5, 6 hoặc 8 dây ra thường được quấn như
sơ đồ dưới Khi dùng, các đầu nối trung tâm thường được nối vào cực dương nguồn cấp, và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ trường tạo bởi cuộn đó [10]
Trang 28Hình 2.6 Động cơ bước đơn cực [10]
2.5.3 Các loại động cơ bước
Động cơ bước có nhiều loại như động cơ biến trở từ, động cơ đơn cực, động
cơ lưỡng cực
Về step thì có loại là 0.36 độ/ 1step, loại 0.72/step và thông dụng nhất là loại 1.8 độ/ 1 step Tức là 200 step sẽ được 1 vòng
Trên thị trường chúng ta hay gặp nhất là động cơ đơn cực và lưỡng cực Khi
đi mua thì hay gặp động cơ 4 dây, 5 dây, 6 dây, 8 dây Trong đó 4 dây và 6 dây là gặp thường xuyên nhất Dưới đây là sơ đồ dây của hãng Oriental:
Hình 2.7 Sơ đồ dây động cơ bước [10]
Trang 292.6 CẢM BIẾN DHT11
2.6.1 Giới thiệu
DHT11 là cảm biến nhiệt độ, độ ẩm rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire (giao tiếp digital 1-wire truyền dữ liệu duy nhất) Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ tính toán nào
Hình 2.8 Cảm biến DHT11 [11]
2.6.2 Thông số kỹ thuật
Cảm biến DHT11 có các thông số kỹ thuật sau [11]:
Nguồn: 3 -> 5 VDC
Dòng sử dụng: 2.5mA max (khi truyền dữ liệu)
Đo tốt ở độ ẩm 20 đến 80%RH với sai số 5%
Đo tốt ở nhiệt độ 0 đến 50°C sai số ±2°C
Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
Kích thước 15mm x 12mm x 5.5mm
4 chân, khoảng cách chân 0.1''
2.7 CẢM BIẾN ĐỘ ẨM ĐẤT
2.7.1 Giới thiệu
Cảm biến độ ẩm đất, trạng thái đầu ra mức thấp (0V), khi đất thiếu nước đầu
ra sẽ là mức cao (5V), độ nhạy chúng ta có thể điều chỉnh được bằng biến trở Phần đầu đo được cắm vào đất để phát hiện độ ẩm của đất, khi độ ẩm của đất đạt ngưỡng
Trang 30thiết lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao Nhờ thế, chúng ta
có thể sử dụng Analog hoặc Digital của Arduino để đọc giá trị từ cảm biến
Hình 2.9 Cảm biến độ ẩm đất
2.7.2 Thông số kỹ thuật
Cảm biến độ ẩm đất có các thông số kỹ thuật sau [12]:
Điện áp sử dụng: 3.3-5V
Đầu ra: AOUT, DOUT
AOUT: Tín hiệu ADC
DOUT: Mức logic 0, 1
Sử dụng: IC LM393 mắc theo dạng so sánh
DO khi chưa phát hiện ở mức 1, khi phát hiện độ ẩm cho ra mức 0
Biến trở điều chỉnh độ nhạy
2.8 CẢM BIẾN QUANG TRỞ
2.8.1 Giới thiệu
Là điện trở có trị số càng giảm khi được chiếu sáng càng mạnh Điện trở tối (khi không được chiếu sáng - ở trong bóng tối) thường trên 1M, trị số này giảm rất nhỏ có thể dưới 100 ôm khi được chiếu sáng mạnh
Nguyên lý làm việc của quang điện trở là khi ánh sáng chiếu vào chất bán dẫn (có thể là Cadmium sulfide – CdS, Cadmium selenide – CdSe) làm phát sinh các điện
tử tự do, tức sự dẫn điện tăng lên và làm giảm điện trở của chất bán dẫn Các đặc tính
Trang 31điện và độ nhạy của quang điện trở dĩ nhiên tùy thuộc vào vật liệu dùng trong chế tạo
Cảm biến ánh sáng quang trở có tích hợp sẵn opamp và biến trở so sánh mức tín hiệu giúp cho việc nhận biết tín hiệu trở nên dễ dàng, sử dụng để nhận biết hay bật tắt thiết bị theo cường độ ánh sáng môi trường
Hình 2.10 Module cảm biến quang trở
Trang 32dữ liệu khi ở trạng thái rảnh (khi không có dữ liệu trên đường truyền) phải ở mức cao
do vậy bus dữ liệu phải được kéo lên nguồn thông qua một điện trở
Một tính năng đặc biệt của bus là khả năng chỉ sử dụng hai dây tín hiệu: data
và GND Để thực hiện điều này, các thiết bị 1-Wire bao gồm một tụ điện 800pF để trữ điện, và cung cấp nguồn trong quá trình đường data đang hoạt động
Trang 33Bốn thao tác hoạt động cơ bản của bus 1 wire là Reset/Presence, gửi bit 1, gửi bit 0, và đọc bit Thao tác byte như gửi byte và đọc byte dựa trên thao tác từng bit
Gửi bit 1 (“Write 1” signal): Thiết bị master kéo bus xuống mức thấp trong khoảng 1 đến 15µs Sau đó nhả bus (releases the bus) cho đến hết phần còn lại của khe thời gian
Hình 2.12 Gửi tín hiệu bit “1”
Gửi bit 0 ("Write 0" signal): Kéo bus xuống mức thấp trong ít nhất 60µs, với chiều dài tối đa là 120 µs
Hình 2.13 Gửi tín hiệu bit “0”
Lưu ý: giữa các lần gửi bit (0 hoặc 1), phải có khoảng thời gian phục hồi bus (recovery time) tối thiểu 1 µs
Đọc bit: Thiết bị master kéo bus xuống mức thấp từ 0 -15µs Khi đó thiết bị tớ khi đó sẽ giữ bus ở mức thấp nếu muốn gửi bit 0, Nếu muốn gửi bit 1 đơn giản là nhả bus Bus nên lấy mẫu 15 µs sau khi bus kéo xuống mức thấp
Hình 2.14 Đọc tín hiệu Reset/Presence: Tín hiệu Reset và Presence (báo hiện diện) được trình bày như hình bên dưới Thiết bị master kéo bus xuống thấp ít nhất 8 khe thời gian (tức là 480 µs) và sau đó nhả bus Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu
có thiết bị slave gắn trên bus nó sẽ trả lời bằng tín hiệu Presence tức là thiết bị tớ sẽ kéo bus xuống mức thấp trong khoảng thời gian 60µs Nếu không có tín hiệu
Trang 34Presence, thiết bị master sẽ hiểu rằng không có thiết bị slave nào trên bus, và các giao tiếp tiếp theo sẽ không thể diễn ra
Hình 2.15 Tín hiệu Reset và Presence
Hình 2.16 Tổng hợp dạng sóng các tiến trình hoạt động chuẩn 1-Wire
2.11 CHUẨN GIAO TIẾP UART
2.11.1 Giới thiệu
UART chuyển đổi giữa dữ liệu nối tiếp và song song [15] 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
Trang 35Hình 2.17 Truyền dữ liệu UART
UART của PC hỗ trợ cả hai kiểu giao tiếp là giao tiếp đồng thời và giao tiếp không đồng thời Giao tiếp đồng thời tức là UART có thể gửi và nhận dữ liệu vào cùng một thời điểm Còn giao tiếp không đồng thời (không kép) là chỉ có một thiết
bị có thể chuyển dữ liệu vào một thời điểm, với tín hiệu điều khiển hoặc mã sẽ quyết định bên nào có thể truyền dữ liệu Giao tiếp không đồng thời được thực hiện khi mà
cả 2 chiều chia sẽ một đường dẫn hoặc nếu có 2 đường nhưng cả 2 thiết bị chỉ giao tiếp qua một đường ở cùng một thời điểm Thêm vào đường dữ liệu, UART hỗ trợ bắt tay chuẩn RS232 và tín hiệu điều khiển như RTS, CTS, DTR, DCR, RT và CD
Để thuận tiện, các chương trình gửi và nhận dữ liệu trong định dạng không đồng bộ đơn giản hơn những gì bạn tưởng PC và nhiều vi xử lý khác có một bộ phận gọi là UART (universal asynchronous receiver/transmitter: truyền /nhận không đồng bộ chung) vì thế có thể vận dụng phần lớn những chi tiết truyền và nhận dữ liệu Trong
PC, hệ điều hành và ngôn ngữ lập trình hỗ trợ cho lập trình liên kết nối tiếp mà không cần phải hiểu rõ chi tiết cấu trúc UART Để mở liên kết, ứng dụng lựa chọn một tần
số dữ liệu hoặc là thiết lập khác hoặc cho phép truyền thông tại các cổng Để gửi 1 byte, ứng dụng ghi byte này vào bộ đệm truyền của cổng được lựa chọn, và UART gửi dữ liệu này, từng bit một, trong định dạng yêu cầu, thêm bit Start, bit Stop, bit chẵn lẻ khi cần Trong một cách đơn giản, byte nhận được tự động được lưu trữ trong
bộ đệm UART có thể dùng nhanh một ngắt để báo cho CPU và các ứng dụng biết dữ liệu đang nhận được và các sự kiện khác Một vài vi điều khiển không bao gồm UART, và thỉnh thoảng bạn cần nhiều hơn các UART mà vi xử lý có Trong trường hợp này, có 2 lựa chọn: thêm UART ngoài, hoặc mô phỏng UART trong mã chương trình Basic Stamp của Parallax là một ví dụ của chip với một UART bổ sung trong
mã chương trình UART là một thiết bị đơn giản hỗ trợ tốt cả hai kiểu truyền thông đồng bộ và không đồng bộ
Trang 362.11.2 Các thông số cơ bản của chuẩn truyền UART
Baud rate (tốc độ Baud) [15]: Khi truyền nhận không đồng bộ để hai module hiểu được nhau thì cần quy định một khoảng thời gian cho 1 bit truyền nhận, nghĩa
là trước khi truyền thì tốc độ phải được cài đặt đầu tiên Theo định nghĩa thì tốc độ baud là số bit truyền trong một giây
Frame (khung truyền): Do kiểu truyền thông nối tiếp này rất dễ mất dữ liệu nên ngoài tốc độ, khung truyền cũng được cài đặt từ ban đầu để giảm bớt sự mất mát
dữ liệu này Khung truyền quy định số bit trong mỗi lần truyền, các bit thông báo như start, stop, các bit kiểm tra như parity, và số bit trong một data
Bit Start: Là bit bắt đầu trong khung truyền Bit này nhằm mục đích báo cho thiết bị nhận biết quá trình truyền bắt đầu Trên AVR bit Start có trạng thái là 0
Data: Dữ liệu cần truyền data không nhất thiết phải 8 bit có thể là 5, 6, 7, 8, 9 Trong UART bit LSB được truyền đi trước, bit MSB được truyền đi sau
Parity bit: Là bit kiểm tra dữ liệu Có 2 loại parity: chẵn (even parity), lẻ (old parity) Parity chẵn là bit parity thêm vào để số số 1 trong data + parity = chẵn Parity
lẻ là bit parity thêm vào để số số 1 trong data + parity = lẻ Bit parity là không bắt buộc nên có thể dùng hoặc không
2.12 GOOGLE FIREBASE
2.12.1 Giới thiệu
Google Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu
Hình 2.18 Logo công cụ Google Firebase
Trang 37Hình 2.19 Hệ thống CSDL Realtime của Firebase
2.12.2 Các chức năng chính của Google Firebase
Với Google Firebase, bạn có thể tạo ra các ứng dụng chat như Yahoo Message
của ngày xưa hoặc như Facebook Messager của ngày nay trong thời gian cực ngắn
như khoảng một ngày thậm chí là vài giờ bởi đơn giản là bạn chỉ cần lo phần client
còn phần server và database đã có firebase lo Firebase là sự kết hợp giữa nền tảng
cloud với hệ thống máy chủ cực kì mạnh mẽ tới từ Google, để cung cấp cho chúng ta
những API đơn giản, mạnh mẽ và đa nền tảng trong việc quản lý, sử dụng database
Cụ thể hơn Google Firebase cung cấp tới chúng ta những chức năng chính sau [16]:
Realtime Database – Cơ sở dữ liệu thời gian
Firebase Authentication – Hệ thống xác thực của Firebase
Firebase Hosting – Tạo tên miền
2.12.3 Những lợi ích từ Google Firebase
Những lợi ích từ việc sử dụng Google Firebase [16]:
Triển khai ứng dụng nhanh: Với Firebase bạn có thể giảm bớt rất nhiều thời
gian cho việc viết các dòng code để quản lý và đồng bộ cơ sở dữ liệu, mọi việc
Trang 38sẽ diễn ra hoàn toàn tự động với các API của Firebase Không chỉ có vậy Firebase còn hỗ trợ đa nền tảng nên bạn sẽ càng đỡ mất thời gian rất nhiều khi ứng dụng bạn muốn xây dựng là ứng dụng đa nền tảng Không chỉ nhanh chóng trong việc xây dựng database, Google Firebase còn giúp ta đơn giản hóa quá trình đăng kí và đăng nhập vào ứng dụng bằng các sử dụng hệ thống xác thực
do chính Firebase cung cấp
Bảo mật Firebase hoạt động dựa trên nền tảng cloud và thực hiện kết nối thông qua giao thức bảo mật SSL, chính vì vậy bạn sẽ bớt lo lắng rất nhiều về việc bảo mật của dữ liệu cũng như đường truyền giữa client và server Không chỉ
có vậy, việc cho phép phân quyền người dùng database bằng cú pháp javascipt cũng nâng cao hơn nhiều độ bảo mật cho ứng dụng của bạn, bởi chỉ những user mà bạn cho phép mới có thể có quyền chỉnh sửa cơ sở dữ liệu
Tính linh hoạt và khả năng mở rộng: Sử dụng Firebase sẽ giúp bạn dễ dàng hơn rất nhiều mỗi khi cần nâng cấp hay mở rộng dịch vụ Ngoài ra firebase còn cho phép bạn tự xây dựng server của riêng mình để bạn có thể thuận tiện hơn trong quá trình quản lý
Sự ổn định: Firebase hoạt động dựa trên nền tảng cloud đến từ Google vì vậy hầu như bạn không bao giờ phải lo lắng về việc sập server, tấn công mạng như DDOS, tốc độ kết nối lúc nhanh lúc chậm nữa bởi đơn giản là Firebase hoạt động trên hệ thống server của Google Hơn nữa nhờ hoạt động trên nền tảng Cloud nên việc nâng cấp, bảo trì server cũng diễn ra rất đơn giản mà không cần phải dừng server để nâng cấp như truyền thống
Giá thành Google Firebase có rất nhiều gói dịch vụ với các mức dung lượng lưu trữ cũng như băng thông khác nhau với mức giá dao động từ Free đến $500
đủ để đáp ứng được nhu cầu của tất cả các đối tượng Chính vì vậy bạn có thể lựa chọn gói dịch vụ phù hợp nhất với nhu cầu của mình Điều này giúp bạn tới ưu hóa được vốn đầu tư và vận hành của mình tùy theo số lượng người sử dụng Ngoài ra bạn còn không mất chi phí để bảo trì, nâng cấp, khắc phục các
sự cố bởi vì những điều này đã có Firebase hỗ trợ
2.12.4 Cách tạo project trên Firebase
Để tạo một Firebase project mới, chúng ta truy cập vào Firebase Console, đăng nhập với tài khoản Google của mình, và nhấn “CREATE NEW PROJECT” và tạo project mới
Trang 39Hình 2.20 Tạo Project mới trong Firebase
Sau khi tạo xong, bạn sẽ thấy giao diện trang Firebase với các công cụ hỗ trợ cho các mục đích Develop, Grow và Earn phía bên trái của chúng ta
Hình 2.21 Giao diện của Project mới trên Firebase
Trang 402.13 PHƯƠNG PHÁP XÂY DỰNG WEB SERVER
2.13.1 Phần mềm hỗ trợ lập trình Web Server
2.13.1.1 Máy chủ giả lập XAMPP
Xampp là "chương trình tạo máy chủ Web" (Web Server) được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như php MyAdmin Xampp có chương trình quản lý khá tiện lợi, cho phép chủ động bật tắt hoặc khởi động lại các dịch vụ máy chủ bất kỳ lúc nào
Xampp chính là một phần mềm cho phép bạn giả lập môi trường server hosting cho phép bạn chạy thử demo một website ngay trên chiếc máy vi tính của bạn mà không cần thiết phải mua hosting hay vps Mọi người thường sử dụng để thực hành
và phát triển Web phục vụ cho việc học tập và giải trí
XAMPP là viết tắt của X + Apache + Mysql + PHP + Perl [18]
Chữ X là cross (platform) ám chỉ dùng được cho cả 4 hệ điều hành khác nhau: Windows, Linux, Solaris và MAC Chúng ta có thể download XAMPP miễn phí tại: