Tuy nhiên, không giống như mục đích ban đầu mà nó được tạo ra, Firebase được các nhà phát triển ứng dụng sử dụng để xử lý và trao đổi dữ liệu của họ thay vì trò chuyện, vì vậy nó dần trở
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
- -
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
HỆ THỐNG THEO DÕI SỰ TĂNG TRƯỞNG
CÂY DƯA LƯỚI
Mã số đề tài: SV2024-157 Chủ nhiệm đề tài: Lý Gia Huy MSSV: 20161205
Tp Hồ Chí Minh, tháng 7 năm 2024
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
- -
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
HỆ THỐNG THEO DÕI SỰ TĂNG TRƯỞNG
CÂY DƯA LƯỚI
Mã số đề tài: SV2024 – 157
Thuộc nhóm ngành khoa học: Điện – Điện tử
SV thực hiện: Lý Gia Huy Nam, Nữ: Nam
Dân tộc: Hoa
Lớp/ Khoa: 20161CLVT2B Năm thứ: 4/Số năm đào tạo: 4
Ngành học: CNKT Điện tử viễn thông
Người hướng dẫn: Th.S Nguyễn Ngô Lâm
Tp Hồ Chí Minh, tháng 7 năm 2024
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
Tên đề tài: Hệ thống theo dõi sự tăng trưởng cây dưa lưới
Chủ nhiệm đề tài: Lý Gia Huy Mã số SV: 20161205
Lớp: 20161CLVT2B Khoa: Điện – Điện tử
Thành viên đề tài:
1 Đỗ Hồ Xuân Long 20161223 20161CLVT2B Điện – Điện tử
2 Nguyễn Thuận Tín 20161269 20161CLVT2A Điện – Điện tử
Người hướng dẫn: Th.S Nguyễn Ngô Lâm
2 Mục tiêu đề tài:
Nghiên cứu và phân tích yêu cầu: Điều tra và phân tích các yêu cầu cần thiết để xây dựng hệ thống theo dõi sự sinh trưởng của cây dưa lưới Xác định các thông số môi trường quan trọng cần theo dõi như độ ẩm, nhiệt độ, ánh sáng, chất lượng không khí
3 Tính mới và sáng tạo:
Trong lĩnh vực nông nghiệp, việc theo dõi quá trình sinh trưởng của cây trở nên vô cùng quan trọng Đối với trường hợp của cây dưa lưới, việc giám sát sự phát triển của cây có thể giúp xác định thời điểm tưới nước, bón phân, xử lý sâu bệnh và thu hoạch một cách chính xác và hiệu quả Bằng cách sử dụng các công nghệ tiên tiến như các tiêu chuẩn giao tiếp không dây và Internet of Things (IoT), có thể xây dựng một hệ thống theo dõi thông minh để theo dõi cây dưa lưới và cung cấp thông tin cần thiết cho người trồng cây ở khoảng cách xa
4 Kết quả nghiên cứu:
Hệ thống giám sát cây có giao diện điều khiển và xem các thông số nhiệt độ, độ ẩm Một bảng điều khiển từ xa LoRa có giao diện ứng dụng cho người dùng Một phần mềm di
động trên điện thoại Android điều khiển từ xa qua Internet
Trang 45 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và khả năng áp dụng của đề tài:
Về mặt giáo dục và đào tạo, đề tài đóng góp những kiến thức liên quan đến kỹ thuật canh tác cây dưa lưới, các điều kiện cần quan trọng để phát triển cây dựa lưới và các kiến
thức kỹ thuật chế tạo và thi công một hệ thống
6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ghi rõ tên tạp chí nếu có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):
Ngày tháng năm
SV chịu trách nhiệm chính thực hiện đề tài
(kí, họ và tên)
Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề tài
( phần này do người hướng dẫn ghi ):
Ngày tháng năm
Người hướng dẫn
(kí, họ và tên)
Trang 5MỤC LỤC
MỤC LỤC 5
DANH MỤC HÌNH ẢNH 7
DANH MỤC BẢNG BIỂU 8
DANH MỤC CÁC TỪ VIẾT TẮT 9
MỞ ĐẦU 10
1 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU 10
2 MỤC TIÊU CỦA ĐỀ TÀI: 10
3 PHƯƠNG PHÁP NGHIÊN CỨU: 1
4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3
1.1 TỔNG QUAN VỀ CÂY DƯA LƯỚI 3
1.1.1 Giới thiệu 3
1.1.2 Điều kiện thích nghi 3
1.1.3 Công nghệ kỹ thuật IoT trong việc trồng cây dưa lưới 3
1.2 KỸ THUẬT CANH TÁC CÂY DƯA LƯỚI 4
1.2.1 Kỹ thuật trồng dưa lưới thông thường 4
1.2.2 Chuyển đổi sang canh tác kỹ thuật công nghệ cao 5
1.3 ỨNG DỤNG DI ĐỘNG 7
1.3.1 Ngôn ngữ Dart 7
1.3.2 Framework Flutter 7
1.4 GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU FIREBASE 9
1.4.1 Khái niệm 9
1.4.2 Các tinh năng của Firebase 10
1.5 THIẾT LẬP KẾT NỐI 13
1.5.1 Thiết lập và kết nối dịch vụ giữa Firebase và ESP – 32 13
1.5.2 Thiết lập và kết nối dịch vụ Firebase với ứng dụng Android 14
1.6 VI ĐIỀU KHIỂN, MÔ-ĐUN CẢM BIẾN, CƠ CẤU CHẤP HÀNH VÀ NGOẠI VI PHÙ HỢP 15
1.7 GIAO THỨC TRAO ĐỔI DỮ LIỆU 16
1.7.1 Chuẩn truyền UART 16
1.7.2 Chuẩn truyền I2C 17
1.7.3 Chuẩn truyền SPI 19
1.7.4 Chuẩn truyền 1 – Wire 21
1.7.5 Chuẩn truyền HTTP 22
1.7.6 Chuẩn truyền Lora 23
Trang 61.9 TỔNG QUAN VỀ ESP – 32 CAM 30
CHƯƠNG 2 THIẾT KẾ VÀ THI CÔNG MÔ HÌNH 31
2.1 YÊU CẦU ĐỐI VỚI ĐỀ TÀI: 31
2.2 SƠ ĐỒ KHỐI VÀ CHỨC NĂNG CỦA MỖI KHỐI: 31
2.3 SƠ ĐỒ KHỐI HỆ THỐNG CHI TIẾT 32
2.3.1 Hoạt động hệ thống 34
2.4 TỔNG QUAN TỪNG KHỐI 35
2.4.1 Khối hiển thị giao diện 35
2.4.2 Khối báo động: 35
2.4.3 Khối chấp hành động cơ 36
2.4.4 Khối RFID RC522 37
2.4.5 Khối cảm biến ánh sáng 38
2.4.6 Khối bàn phím cảm ứng 39
2.4.7 Khối phím 4x3 nhựa 40
2.4.8 Khối cảm biến nhiện độ, độ ẩm – DHT22 40
2.4.9 Khối cảm biến độ ẩm đất 41
2.4.10 Khối cảm biến chất lượng không khí MQ135 42
2.4.11 Khối đếm thời gian 42
2.4.12 Khối đèn led 43
2.4.13 Khối mô-đun tăng áp XL6019 43
2.4.14 Mô-đun chuyển đổi RS485 MAX3232 44
2.4.15 Quạt điều hòa không khí 45
2.4.16 Khối truyền nhận thông tin – LoRa 45
2.4.17 Khối ngoại vi Camera 46
2.4.18 Khối Wi-Fi 47
2.4.19 Khối xử lý trung tâm 47
2.4.20 Khối nguồn 50
CHƯƠNG 3 KẾT QUẢ, NHẬN XÉT VÀ ĐÁNH GIÁ 54
3.1 KẾT QUẢ ĐẠT ĐƯỢC 54
3.1.1 KẾT QUẢ THỰC NGHIỆM 54
3.1.2 NHẬN XÉT VÀ ĐÁNH GIÁ 56
CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58
4.1 KẾT LUẬN 58
4.2 HƯỚNG PHÁT TRIỂN 58
TÀI LIỆU THAM KHẢO 60
Trang 7DANH MỤC HÌNH ẢNH
Hình 1 1 Cơ sở dữ liệu Firebase 9
Hình 1 2 Thanh điều hướng Firebase 11
Hình 1 3 Các nền tảng hỗ trợ trên Firebase 12
Hình 1 4 Một số dữ liệu liên quan để tạo liên kết Firebase 12
Hình 1 5 Cấu hình các dữ liệu liên kết 13
Hình 1 6 Firebase instance 13
Hình 1 7 Gán dữ liệu thiết lập 13
Hình 1 8 Cách cài đặt FlutterFire CLI 14
Hình 1 9 Gói tin truyền UART 17
Hình 1 10 Hoạt động ghi của giao thức UART 19
Hình 1 11 Gói tin truyền SPI 20
Hình 1 12 Hoạt động ghi bit 1 22
Hình 1 13 Hoạt động ghi bit 0 22
Hình 1 14 Hoạt động đọc 22
Hình 1 15 Lệnh reset 22
Hình 1 16 Cấu trúc khung truyền LoRa (MAC) 25
Hình 1 17 Board Arduino Mega 2560 28
Hình 2 1 Sơ đồ tổng quan hệ thống 31
Hình 2 2 Sơ đồ khối chi tiết 32
Hình 2 3 Kết nối LCD với Arduino Mega 35
Hình 2 4 Buzzer kết nối với Arduino Mega 36
Hình 2 5 Kết nối giữa L293D với Arduino Mega 37
Hình 2 6 Kết nối RFID RC522 38
Hình 2 7 Kết nối giữa mô-đun cảm biến ánh sáng và Arduino Mega 39
Hình 2 8 Kết nối giữa mô-đun phím nhấn và Arduino Mega 39
Hình 2 9 Keypad Matrix 4x3 40
Hình 2 10 Kết nối giữa DHT22 và Arduino Mega 41
Hình 2 11 Kết nối giữa mô-đun cảm biến độ ẩm đất và Arduino Mega 41
Hình 2 12 Kết nối giữa mô-đun cảm biến MQ135 và Arduino 42
Hình 2 13 Kết nối giữa mô-đun RTC và Arduino 43
Hình 2 14 XL6019 44
Hình 2 15 Mô-đun RS485 Converter 44
Hình 2 16 Khối truyền động quạt lưu thông 45
Hình 2 17 Kết nối giữa mô-đun truyền/nhận tín hiệu và Arduino Mega 46
Hình 2 18 Mô-đun OV2640 46
Hình 2 19 Mô-đun ESP32-CAM 47
Hình 2 20 Arduino Mega 2560 48
Hình 2 21 Nguồn pin 12V – 4Ah dùng cho hệ thống phụ 51
Hình 2 22 Nguồn pin 12V – 6Ah dùng cho hệ thống chính 52
Hình 2 23 Bảng thiết kế mô hình nhà kính 53
Hình 3 1 Kết quả thực tế giữa khối thu/phát 55
Hình 3 2 Kết quả thực tế giữa khối thu/phát 55
Trang 8DANH MỤC BẢNG BIỂU
Bảng 1 1 Các linh kiện sử dụng 1
Bảng 1 2 Mô tả dự án Flutter 8
Bảng 1 3 Bộ nhớ nội Arduino Mega 2560 28
Bảng 1 4 Địa chỉ ô nhớ Arduino Mega 29
Bảng 1 5 Thông số mô-đun ESP32-CAM 30
Bảng 2 1 Thông số hoạt động của mô-đun LM20L I2C 35
Bảng 2 2 Thông số hoạt động Buzzer 36
Bảng 2 3 Thông số hoạt động mô-đun L293D 37
Bảng 2 4 Thông số hoạt động mô-đun RFID RC522 38
Bảng 2 5 Thông số hoạt động mô-đun cảm biến ánh sáng 39
Bảng 2 6 Thông số hoạt động mô-đun TTP229 40
Bảng 2 7 Thông số hoạt động mô-đun DHT22 41
Bảng 2 8 Thông số hoạt động mô-đun cảm biến độ ẩm đất 42
Bảng 2 9 Thông số hoạt động mô-đun cảm biến MQ135 42
Bảng 2 10 Thông số hoạt động mô-đun RTC 43
Bảng 2 11 Thông số năng lượng LED 43
Bảng 2 12 Bảng thông số E32 – DTU 46
Bảng 2 13 Thông số hoạt động mô-đun OV2640 46
Bảng 2 14 Thông số hoạt động ESP32-CAM 47
Bảng 2 15 Thông số hoạt động Arduino Mega 2560 49
Bảng 2 16 Bảng tiêu thụ khối chính 50
Bảng 2 17 Bảng tiêu thụ năng lượng khối phụ 51
Trang 9DANH MỤC CÁC TỪ VIẾT TẮT
API Application Programming Interface
FS File System
HTTP Hyper Text Transfer Protocol
I2C Inter-Integrated Circuit
ID Identification
IP Internet Protocol
Rx Receiver
SCCB Serial Camera Control Bus
SCL Serial Clock Line
SD Secure Digital
SDA Serial Data Line
SPI Serial Peripheral Interface
SPIFFS Serial Peripheral Interface Flash File System
Tx Transmitter
UART Universal Asynchronous Receiver – Transmitter
URL Uniform Resource Locator
LoRa Long Range Radio
CSS Chirp spread spectrum
Trang 10MỞ ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học kỹ thuật đã nâng cao đời sống của con người, góp phần làm cho đời sống trở nên hiện đại hơn Từ đó thúc đẩy xã hội phát triển,
và mở rộng hơn nữa là đóng góp một phần vào nền văn minh nhân loại
Trong tất cả những cơ sở khoa học ấy thì không thể không nhắc đến sự phát triển của
kỹ thuật điện tử và viễn thông Thứ đã ảnh hưởng đến gần như toàn bộ các nhóm ngành khác nhau Và hơn hết nhu cầu sử dụng những thiết bị điện tử trong sinh hoạt của con người ngày càng tăng Các sản phẩm mang tính ứng dụng cao ngày càng được quan tâm, đẩy mạnh phát triển theo thị hiếu thị trường Vì thế mà viễn thông đóng vai trò rất quan trọng trong việc giải quyết vấn đề kết nối giữa các thiết bị điện tử với nhau trong nền công nghiệp 4.0
Hơn thế nữa, với sự bùng nổ của IoT (Internet of Things) mang vạn vật kết nối với nhau qua mạng không dây Kỹ thuật này lấy việc truyền tín hiệu trong môi trường không dây (wireless) làm nền tảng nên nó có ưu điểm rất lớn trong vấn đề tiết kiệm chi phí, năng lượng, nâng cao thẩm mỹ và chính xác không kém gì so với các phương thức liên kết khác
Ngoài ra, với việc thu thập và phân tích dữ liệu toàn diện theo thời gian thực, các hệ thống điều khiển hay dây chuyền sản xuất có thể trở nên nhanh nhạy hơn đáng kể
Ở đề tài này, việc giám sát sự phát triển của cây có thể giúp xác định thời điểm tưới nước, bón phân, xử lý sâu bệnh và thu hoạch một cách chính xác và hiệu quả Bằng cách sử dụng các công nghệ tiên tiến như các tiêu chuẩn giao tiếp không dây và Internet of Things (IoT), có thể xây dựng một hệ thống theo dõi thông minh để theo dõi cây dưa lưới và cung cấp thông tin cần thiết cho người trồng cây ở khoảng cách xa
Nghiên cứu và phân tích yêu cầu: Tìm hiểu và phân tích các yêu cầu cần thiết để xây dựng hệ thống theo dõi sự sinh trưởng của cây dưa lưới Xác định các thông số quan trọng cần theo dõi như độ ẩm, nhiệt độ, ánh sáng, chất lượng không khí và theo dõi bệnh của lá trên cây dưa lưới qua các ảnh chụp của mô-đun camera
Trang 113 PHƯƠNG PHÁP NGHIÊN CỨU:
• Phương pháp thu thập số liệu:
Nhóm sinh viên đã dựa vào các tính năng mã nguồn mở của cộng đồng Arduino
và ESP để xây dựng cấu trúc chương trình phần cứng dựa trên thư viện mã nguồn cơ bản Đối với ứng dụng dành cho thiết bị di động, nhóm cũng cung cấp các ví dụ về cách tạo giao diện ứng dụng, cách liên kết các trường dữ liệu Firebase với ứng dụng
• Phương pháp thực nghiệm:
Để có thể tối ưu hóa hệ thống và đáp ứng các yêu cầu kết nối thời gian thực nghiêm ngặt, nhóm cần dựa vào các hiện tượng thực tế khi giao tiếp giữa phần mềm và phần cứng Chỉ bằng cách sử dụng phương pháp này, bạn mới có thể nhận được kết quả thực sự đáng tin cậy
• Phương pháp nghiên cứu định tính:
Khi xảy ra lỗi, nhóm sẽ hỏi về nguyên nhân lỗi và dự đoán cách khắc phục Điều này dẫn đến sự hiểu biết sâu sắc hơn về tổng thể của sự vật, hiện tượng và nguyên nhân gây ra những tác động đó
Đối tượng nghiên cứu:
Bảng 1 1 Các linh kiện sử dụng
1 Arduino Mega 2650 Vi xử lý chính
3 Mô-đun cảm biến DHT22 Đo nhiệt độ và độ ẩm không
khí
4 Mô-đun cảm biến ánh sáng Đo lượng ánh sáng
5 Mô-đun cảm biến chất lượng không khí Đo lượng không khí sạch
6 Mô-đun thời gian thực Hiển thị thời gian thực
7 Mô-đun cảm biến độ ẩm đất Đo độ ẩm dất
8 Mô-đun điều khiển động cơ mở rộng L293D Điều khiển khối chấp hành
9 Động cơ bơm 365 12VDC Dùng để tưới cây
Trang 1210 Động cơ DC 5V – trong hệ thống kéo rèm Dùng để che nắng
15 Mô-đun truyền/nhận dữ liệu từ xa thông qua
16 Xây dựng mô hình trí tuệ nhân tạo Dùng để phát hiện bệnh ở lá
Phạm vi nghiên cứu:
Nghiên cứu lý thuyết về các phương pháp truyền dữ liệu từ hệ thống đến máy
chủ quản lý dữ liệu Mục tiêu của dự án là tạo ra một sản phẩm có thể theo dõi sự phát
triển của cây dưa trong hơn một tháng bằng cách sử dụng hình ảnh được hệ thống giám
sát ghi lại
Dữ liệu được truyền qua cơ sở dữ liệu Firebase thay vì trực tiếp từ CPU đến web
hoặc ứng dụng di động Khi kết nối Internet bị gián đoạn, hệ thống có thể được điều
chỉnh từ xa hoặc tại chỗ
Tìm hiểu lý thuyết bao gồm ngôn ngữ lập trình Arduino, ESP32, lập trình web
và xây dựng ứng dụng Android
Hệ thống giám sát hoạt động tốt trong điều kiện bình thường nhưng không thể
hoạt động hiệu quả trong môi trường khắc nghiệt như hạn hán, bão tố
Trang 13CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
1.1 TỔNG QUAN VỀ CÂY DƯA LƯỚI
Dưa lưới là trong số những quả cây trồng quý giá thuộc họ Bầu bí (Cucurbitaceae), đây là loại trái cây thơm ngon rất phổ biến, bổ dưỡng, mang đến sự sảng khoái trong những ngày hè nóng bức Loại quả này không chỉ chinh phục thực khách bởi hương vị ngọt thanh, mọng nước mà dưa lưới còn được ví như kho báu của
tự nhiên, chứa đựng hàm lượng vitamin A, C dồi dào, đóng vai trò quan trọng trong việc tăng cường hệ miễn dịch, bảo vệ cơ thể khỏi tác nhân gây bệnh Bên cạnh đó, dưa lưới còn cung cấp lượng kali, magie thiết yếu cho hoạt động tim mạch, hỗ trợ điều hòa huyết
áp
1.1.2 Điều kiện thích nghi
Dưa lưới phù hợp để trồng trên đất có cấu trúc pha cát, giàu chất dinh dưỡng và
có khả năng thoát nước tốt Để đạt hiệu quả tối đa trong việc phát triển cây, đất trồng cần có mức pH dao động từ 6.0 đến 6.5
Việc sử dụng phân bón NPK hoặc các loại phân hữu cơ như phân trùn quế, phân chuồng bò, đạm cá, phân gà hữu cơ là điểm quan trọng không thể thiếu Việc bón lót trước khi trồng và bón thúc khi cây đã phát triển rất cần thiết
Nhiệt độ lý tưởng cho dưa lưới dao động từ 21°C đến 31°C và cây cần ánh sáng mặt trời chiếu sáng ít nhất 8 giờ mỗi ngày
Để đảm bảo cây được chiếu sáng đều, có thể sử dụng giàn treo hoặc màng che để điều chỉnh ánh sáng theo ý muốn
Việc tưới nước được coi là yếu tố không thể thiếu, hãy tưới nước một cách đều
để duy trì độ ẩm của đất nhưng không gây ngập úng Lượng nước khoảng từ 0.5 - 0.7 lít mỗi cây mỗi ngày được xem là tiêu chí hàng ngày quan trọng trong việc chăm sóc dưa lưới hiệu quả
1.1.3 Công nghệ kỹ thuật IoT trong việc trồng cây dưa lưới
Trong cuộc cách mạng công nghệ không ngừng phát triển, Internet of Things (IoT) là một trụ cột then chốt trong thời đại công nghệ 4.0 IoT mở ra một hướng phát triển mới cho lĩnh vực nông nghiệp, khi mà từ trước đến này các người canh tác luôn bị
Trang 14bó buộc thời gian với khu vườn của mình, giờ đây thông qua việc kết nối các sự vật (things) thành một mạng giao tiếp lớn sẽ cung cấp đầy đủ các chức năng hành nghề canh tác cho khu vườn với độ chính xác cao và tiết kiệm hơn rất nhiều
Các thiết bị tinh gọn nhỏ bé nay đã thông minh khi ứng dụng các hình thức giao tiếp số rộng rãi ngày nay Nông dân không còn cần phơi mình dưới ánh mặt trời hay cảm nhận sự mệt mỏi qua tháng ngày canh tác Thay vào đó, họ sử dụng dữ liệu một hệ thống giám sát toàn diện cho việc trồng trọt canh tác
Việc kết hợp khoa học công nghệ trong quá trình sản xuất dưa không chỉ tạo ra giá trị kinh tế đáng kể mà còn giúp đảm bảo an ninh lương thực, bảo vệ môi trường và thúc đẩy phát triển bền vững trong ngành nông nghiệp Điều này không chỉ là một xu hướng mà còn là điều cần thiết cho sự phát triển trong tương lai của ngành này Đặc biệt, ở Việt Nam, nơi mà ngành trồng dưa đã có sự phát triển mạnh mẽ, việc này đã mở
ra những tiềm năng không giới hạn, góp phần vào việc thúc đẩy sự phát triển ổn định của ngành này
1.2 KỸ THUẬT CANH TÁC CÂY DƯA LƯỚI
1.2.1 Kỹ thuật trồng dưa lưới thông thường
• Khoảng cách trồng: Hàng cách hàng 1,5-2m, cây cách cây 0,5-0,7m
• Cách trồng: Trồng cây vào buổi chiều mát, lấp đất và tưới nước nhẹ để cây con mau bén rễ
Chăm sóc
Trang 15• Tưới nước: Cần duy trì độ ẩm vừa phải cho đất, tránh tưới quá nhiều gây úng rễ
• Bón phân: Sử dụng phân hữu cơ hoặc phân NPK Lần đầu bón sau khi trồng 15-20 ngày, tiếp tục bón phân theo chu kỳ 15-20 ngày/lần
• Tỉa cành: Loại bỏ các nhánh phụ không cần thiết để tập trung dinh dưỡng cho trái
• Thời gian thu hoạch: Sau khoảng 70-80 ngày kể từ khi gieo trồng
• Dấu hiệu thu hoạch: Quả dưa lưới chín có màu vàng, vỏ mềm, và có mùi thơm đặc trưng
Bảo quản
• Sau thu hoạch: Rửa sạch, để ráo và bảo quản ở nơi thoáng mát hoặc trong
tủ lạnh để kéo dài thời gian sử dụng
1.2.2 Chuyển đổi sang canh tác kỹ thuật công nghệ cao
Trang 16• Gieo hạt: Tương tự như phương pháp thông thường
• Ươm cây: Ươm cây trong nhà màng để kiểm soát điều kiện môi trường tốt nhất cho cây con
• Thời gian thu hoạch: Tương tự phương pháp thông thường
• Sử dụng thiết bị thu thập hình ảnh: đánh giá chất lượng của quả đến hạn thu hoạch hay chưa, chụp lại theo ngày
• Dấu hiệu thu hoạch: Quả dưa lưới chín có màu vàng, vỏ mềm, và có mùi thơm đặc trưng
Trang 171.3 ỨNG DỤNG DI ĐỘNG
1.3.1 Ngôn ngữ Dart
Ngôn ngữ lập trình Dart được Google phát hành vào năm 2011, các mã lệnh và
cú pháp lâp trình được xây dựng trên nền tảng ngôn ngữ C/C++ Dart là một ngôn ngữ lập trình bậc cao và hiện đại, với các cú pháp tinh gọn và dễ ứng dụng, thuận lợi phát triển các phần mềm di động hiệu quả và nhanh chóng Hiện nay, Dart vẫn luôn duy trì cập nhật và phát triển các tính năng, cấu trúc mới mẻ hợp thời hỗ trợ tối đa lập trình viên
ở mọi cấp bậc dễ dàng tiếp cận và sử dụng
Các thuật ngữ về lập trình hướng đối tượng như lớp, đối tượng, kế thừa, trừu tượng, đóng gói, đa hình đều được hỗ trợ trong Dart, bên cạnh đó còn cung cấp những chức năng lập trình giao diện ứng dụng (front-end), những mô-đun về mixin, kiểu dữ liệu generic Ngoài việc cung cấp một lượng lớn thư viện phong phú, Dart còn sở hữu một lượng lớn cộng đồng lập trình viên sử dụng ngôn ngữ nhằm giúp đỡ và xây dựng nhiều kỹ thuật lập trình khác nhau, tối ưu hóa các phần mềm dễ bảo trì và phát triển
1.3.2 Framework Flutter
Để phát triển các giao diện UI cho ứng dụng di động Android, Dart phải ứng dụng một gói thư viện hay còn gọi là framework mang tên Flutter được xây dựng sẵn những thành phần thiết kế giao diện trên ngôn ngữ Dart qua những thuật toán, phép tính Ứng dụng những khối thiết kế và API được cung cấp, lập trình viên dễ dàng tạo và xây dựng những phần mềm di động nhanh chóng cho cá nhân mình Bên cạnh Android, Flutter đồng thời hỗ trợ biên dịch chéo mã nguồn đa nền tảng như Website và iOS Hiệu suất phát triển phần mềm tinh giản, nhỏ gọn cũng được cải thiện đáng kể khi ứng dụng Flutter
Trong lĩnh vực Flutter, toàn bộ giao diện người dùng (UI) được xây dựng bằng cách sử dụng các lớp (class) mạng tên gọi là widget Các tiện ích này dùng để tạo các yếu tố trực quan trên màn hình hoặc hỗ trợ tương tác với người dùng
Ngoài ra, Flutter tự hào có một cộng đồng nhà phát triển sôi động, cung cấp nhiều gói chứa các vật dụng chuyên dụng Các gói này hợp lý hóa việc phát triển mã nguồn, làm cho nó có tổ chức, hiệu quả và dễ dàng mở rộng
Trang 18Bảng 1 2 Mô tả dự án Flutter
.dart_tool folder Thư mục chứa các tệp liên quan đến các công cụ của
Dart
Android folder Thư mục chứa toàn bộ các dữ liệu liên quan để có thể
biên dịch và tạo ứng dụng Android Trong quá trình xây dựng dự án, đôi khi sẽ cần viết native code để tinh chỉnh các tập tin sau:
• build.gradle trong Android/app
• AndroidManifest.xml trong Android/app/src/main build folder Thư mục build sẽ được tạo khi lần đầu chạy chương
trình Nó sẽ chứa các tệp cần thiết cho việc chạy chương trình trên mỗi nền tảng khác nhau
iOS folder Tương tự với thư mục Android, khi xây dựng chương
trình trên nền tảng iOS sẽ có những tinh chỉnh phù hợp
để kích hoạt một số chức năng cần thiết Các tệp thường hay điều chỉnh là:
• AppDelegate.swift trong iOS/Runner
• Info.plist trong iOS/Runner lib folder Toàn bộ các tệp chương trình code sẽ được lưu trữ
trong thư mục này Lập trình viên phải lưu ý việc sắp xếp, bố trí và đặt tên các tệp
test folder Thư mục chứa các tệp xây dựng môi trường test cho
code Khi được tổ chức phù hợp sẽ dễ dàng hơn trong việc bảo trì và chỉnh sửa code
web folder Các mã nguồn chương trình cho Website sẽ được khởi
tạo trong thư mục, có thể thêm các gói thư viện tùy vào mục đích sử dụng
windows/linux/macos
folder
Các mã nguồn sẽ được khởi tạo cho hệ điều hành nào được xây dựng chương trình sử dụng
Trang 19.gitignore file Chứa toàn bộ các thông tin về dự án, bao gồm về
phiên bản, các chỉnh sửa và lưu lần cuối
.metadata file Tệp tin được điều khiển và sử dụng bởi các công cụ
Dart, không nên chỉnh sửa
.packages file Tệp chứa các thông tin các gói package được sử dụng
trong dự án Không được chỉnh sửa
analysis_options.yaml file Bộ phân tích các luật lệ cú pháp code của Dart
dummy.iml Tệp được quản lý bởi Flutter SDK
pubspec.lock/pubspec.yaml Pubspec chứa các mô tả, ràng buộc, phụ thuộc và nội
dung của dự án Tất cả các gói thư viện bên thứ ba của bạn sẽ được xác định tại đây để các công cụ Flutter biết phiên bản nào sẽ được tìm nạp
1.4 GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU FIREBASE
1.4.1 Khái niệm
Hình 1 1 Cơ sở dữ liệu Firebase
Firebase là cơ sở dữ liệu hữu ích do Google phát triển nhằm giúp các nhà phát triển quản lý dữ liệu và thông tin người dùng trong ứng dụng của họ Firebase được xây dựng rất cẩn thận và khéo léo, tích hợp đầy đủ các chức năng back-end cần thiết nhằm đảm bảo mức độ bảo mật thông tin cao cho người dùng mà không cần phải xây dựng cơ
sở dữ liệu riêng Một số dịch vụ Firebase cung cấp dịch vụ lưu trữ dữ liệu cho Android, iOS, Web và Unity, lưu trữ đám mây và cơ sở dữ liệu NoSQL
Trang 20Firebase bắt đầu với tư cách là nhà cung cấp dịch vụ trò chuyện trực tiếp thông qua API cho nhiều trang web khác nhau và hoạt động dưới tên trước đây là Envolve Tuy nhiên, không giống như mục đích ban đầu mà nó được tạo ra, Firebase được các nhà phát triển ứng dụng sử dụng để xử lý và trao đổi dữ liệu của họ thay vì trò chuyện,
vì vậy nó dần trở nên phổ biến trong cộng đồng và dẫn đến việc tách hệ thống khỏi hệ thống trò chuyện Liên quan đến kiến trúc Từ đó kiến trúc được đầu tư và phát triển thành Firebase
1.4.2 Các tinh năng của Firebase
Database
Firebase Realtime Database: Cơ sở dữ liệu NoSQL lưu trữ và đồng bộ hóa dữ liệu trong thời gian thực trên tất cả các thiết bị
Cloud Firestore Cơ sở dữ liệu NoSQL linh hoạt và có khả năng mở rộng cao hơn,
hỗ trợ truy vấn mạnh mẽ hơn và tích hợp dễ dàng với các dịch vụ khác của Google Cloud
Một tính năng hữu ích cho mội developer, với Firebase Crash Reporting chúng
ta sẽ có tất tần tật log từ thông tin OS đến chi tiết lỗi nếu xảy ra
Cloud Storage
Firebase Storage lưu trữ tệp không giới hạn, an toàn và dễ dàng tích hợp, giúp lưu trữ và phân phối nội dung như hình ảnh, video và tệp khác.Sử dụng FCM để chạy quảng cáo, khuyến mãi, miễn là nó dưới 4KB
Remote Config
Trang 21Remote config theo các developer là tính năng xịn nhất của Firebase, cho phép thực hiện những thay đổi mà không cần chạy lại build User sẽ có được những thay đổi đổi mới nhất mà không cần update lại app
Hướng dẫn tạo và sử dụng dịch vụ Firebase
Bước 1: Truy cập đến trang chủ Firebase qua đường dẫn trang chủ và tiến hành đăng nhập thông qua tài khoản Google cá nhân
Bước 2: Trên thanh điều hướng, người dùng nhấp đúp chuột vào mục go to console theo Hình minh họa 1.2, sau đó tiếp tục nhấp đúp chuột vào mục create a project
để tiến hành tạo một dự án cá nhân:
Hình 1 2 Thanh điều hướng Firebase
Bước 3: Đặt tên cho dự án, Firebase sẽ đề xuất một số dịch vụ thêm hỗ trợ phân tích dữ liệu thu thập trên cơ sở dữ liệu của họ, tùy vào mục đích sử dụng người dùng có thể ứng dụng thêm các dịch vụ đó, lưu ý cần đọc kỹ những điều khoản trước khi đồng ý
sử dụng
Bước 4: Sau khi điều hướng đến trang chủ dự án, mục dịch vụ đầu trang theo Hình 1.3 cho phép người dùng tạo và liên kết đến các nền tảng ứng dụng phát triển như iOS, Android, Web app hoặc Web server, …v.v Tiếp tục điều hướng xuống bên dưới
là các tính năng về cơ sở dữ liệu hỗ trợ lưu trữ, gồm tính năng xác thực, lưu trữ Json, lưu trữ tệp tin có định dạng, host web apps, …
Trang 22Hình 1 4 Một số dữ liệu liên quan để tạo liên kết Firebase
Ưu điểm và nhược điểm của Firebase
• Ưu điểm
− Triển khai ứng dụng cực nhanh
− Tính bảo mật cao
− Linh hoạt và mở rộng ứng dụng dễ dàng
− Tình ổn định cao, ít khi gặp trường hợp sập server
− Người đăng ký được sử dụng miễn phí 1GB dung lượng lưu trữ
• Nhược điểm
Trang 23− Đăng ký tài khoản miễn phí thì chỉ được tối đa 100 thiết bị hoặc người truy cập trong khi có tính phí thì không giới hạn thiết bị hoặc người truy cập
1.5 THIẾT LẬP KẾT NỐI
1.5.1 Thiết lập và kết nối dịch vụ giữa Firebase và ESP – 32
Để thiết lập kết nối đến Firebase, người dùng cần các thông tin sau:
Bước 1: Cài đặt thư viện API Firebase Arduino Client Library for ESP8266 and ESP32
Bước 2: Lưu trữ các dữ liệu thông tin liên kết vào các biến tạm gồm mã API, tài khoản và mật khẩu email trên tính năng xác thực của Firebase, đối với các tính năng cơ
sở lưu trữ cần liên kết, lưu lại các đường dẫn hay địa chỉ IP liên kết được cung cấp trong tính năng đó Các thông tin lưu trữ được minh họa như Hình 1.5
Hình 1 5 Cấu hình các dữ liệu liên kết
Bước 3: Tạo đối tượng truy xuất như Hình 1.6
Trang 241.5.2 Thiết lập và kết nối dịch vụ Firebase với ứng dụng Android
Flutter là một framework được phát triển bởi Google nên được hỗ trợ một công
cụ FlutterFire CLI hỗ trợ việc cấu hình và thiết lập sẵn các điều kiện cần thiết cho việc tạo kết nối đến dự án ứng dụng
Hình 1 8 Cách cài đặt FlutterFire CLI
Các bước thực hiện cấu hình Firebase qua công cụ Flutter CLI theo Hình 1.8 như sau:
Bước 1: Tạo các dự án flutter và lưu vào một đường dẫn thư mục cụ thể, sau đó, truy xuất đến thư mục lưu các dự án đó thông qua terminal, lưu ý, cần thực hiện tải và cài đặt NodeJs trước khi thực hiện bước tiếp theo
Bước 2: Nhập lệnh npm install -g Firebase-tools vào terminal để tiến hành cài đặt công cụ phân phối các gói tiện tích của Firebase
Bước 3: Nhập lệnh Firebase login để tiến hành liên kết và đăng nhập vào tài khoản đang sử dụng trên dịch vụ Firebase để được cấp quyền sử dụng công cụ
Bước 4: Nhập lệnh flutter pub global activate flutterfire_cli để kích hoạt và cài đặt tiện tích FlutterFire CLI
Bước 5: Nhập lệnh Firebase_configure để cấu hình nền tảng liên kết vào ứng dụng, chọn đúng dự án mong muốn liên kết dịch vụ Firebase, sau đó, sử dụng kết hợp phím space và phím mũi tên để chọn nền tảng Android
Sau khi đã thực hiện các bước trên, người dùng có thể sử dụng các gói API đã được phát triển trên dart pub, người dùng tiến hành tải về và ứng dụng vào dự án cá
Trang 25nhân để lấy dữ liệu trên cơ sở về cho các mục đích sử dụng mong muốn Lưu ý, người dùng cần phải tải và thiết lập thư viện Firebase_core bên trong dự án đang thực hiện.
1.6 VI ĐIỀU KHIỂN, MÔ-ĐUN CẢM BIẾN, CƠ CẤU CHẤP HÀNH
Nhờ sự phát triển công nghệ khoa học nhanh chóng và vượt bậc, hầu hết các thiết
bị cảm biến ngày nay đều đáp ứng đủ các yếu tố này Tuy nhiên, đa dạng sự lựa chọn cũng cần phải chọn lọc các phần cứng sao cho đáp ứng phù hợp với hệ thống đề tài, cung cấp đủ tài nguyên ứng dụng và phát triển hệ thống
Để tổng hợp và điều khiển vô số các cảm biến và ngoại vi ứng dụng trong đề tài,
vi điều khiển Arduino Mega 2560 là một sự lựa chọn phù hợp, đây là một khối tính toán
có tốc độ ổn định, vừa phải đáp ứng được số lượng chân điều khiển các mô-đun, cung cấp đầy đủ các chức năng về một số giao thức truyền dữ liệu giữa các mô-đun, khối bộ nhớ của vi điều khiển cũng đáp ứng tốt cho một quy mô chương trình ứng dụng lớn, hỗ trợ không gian lập trình rộng rãi cho lập trình viên
Đối với các yếu tố môi trường, ứng dụng một số mô-đun cảm biến thịnh hành như:
• DHT22 dùng đo nhiệt độ, đô ẩm của không khí xung quanh môi trường,
từ hai giá trị đo tính toán được sức nóng bao quanh cây
• MQ135 ứng dụng đo chất lượng không khí quanh không gian cây, đun có thể đưa ra giá trị nồng độ của một số khí như
mô-• BH1750 đo giá trị độ sáng bao quanh môi trường cây, cung cấp thông tin cho việc mở đèn tự động, đáp ứng kịp thời độ sáng cần thiết cho cây sinh trưởng
• Độ ẩm đất diện dung hỗ trợ giá trị đo lượng nước tồn đọng trong đất khoảng bao nhiêu phần trăm, nhằm đáp ứng kịp thời lượng nước cho cây
Bên cạnh những mô-đun cảm biến hỗ trợ thông tin về các yêu tố môi trường cũng không thể thiếu những khối chắp hành phù hợp giải quyết các vấn đề cây trồng đang gặp phải, gồm:
Trang 26• Hai động cơ quạt luân phiên điều tiết lưu lượng thông khí bên trong môi trường trồng, hỗ trợ giảm lượng nhiệt, thu phấn nhận tạo
• Một động cơ bơm nước dùng để đẩy lương nước từ bình chứa đến cây trồng
• Một động cơ kéo màn che, hỗ trợ kéo màn tự động trên trần nhà kính, giúp cây đón ánh sáng mặt trời, che mưa hoặc ngăn chặn côn trùng vào bên trong
Cuối cùng là một số ngoại vi ứng dụng thêm như :
• Camera giám sát quá trình sinh trưởng cây
• Đèn LED cấp sáng cho cây
• Mô-đun LCD hỗ trợ giao diện giám sát thông tin
1.7 GIAO THỨC TRAO ĐỔI DỮ LIỆU
Giao thức truyền UART là một giao thức phổ biến trong nhiều hệ thống nhúng, điện tử, …v.v Giao thức được ứng dụng để truyền tải thông tin dữ liệu giữa hai thiết bị, bao gồm ba dây kết nối, một trong số đó là dây TX dùng để truyền dữ liệu đi, tiếp đến
là dây RX dùng để nhận dữ liệu về, cuối cùng là dây GND kết nối giữa hai thiết bị nhằm đưa mức điện áp lên chuẩn logic Bởi vì không có xung đồng bộ kết nối để đồng bộ dữ liệu truyền tải nên giao thức được định nghĩa là truyền không đồng bộ Thay vào đó, hai thiết bị sẽ đồng bộ dữ liệu qua việc cùng thiết lập chung một tốc độ baud cụ thể Tuy nhiên, sự đồng bộ sẽ mất hiệu quả khi tốc độ baud càng lớn nên chuẩn chỉ hỗ trợ tốc độ thấp
Các thông tin liên quan:
• Tốc độ baud : xác định tốc độ truyền tải
• Độ dài bit : thông thường từ 5 đến 9 bit dữ liệu
• Kiểm tra chẵn/lẻ : cơ chế kiểm tra lỗi dữ liệu
• Bit dừng : có thể từ 1 đến 2 bit được gắn vào cuối khung dữ liệu truyền
Ưu điểm:
• Dễ thực hiện và thiết lập
• Được ứng dụng rộng rãi bởi các thiết bị
• Truyền bất đồng bộ do không yêu cầu một xung clock cụ thể
Trang 27Nhược điểm:
• Truyền bất đồng bộ không giúp thiết bị xác định chính xác được các xung dữ liệu đến, dễ gây ra lỗi
• Giới hạn khoảng cách do sự suy hao tín hiệu
• Chế độ truyền dẫn bán song công, thiết bị không thể truyền và nhận dữ liệu cùng lúc
Nguyên lý hoạt động:
Hình 1 9 Gói tin truyền UART
Trạng thái rỗi Idle, được kéo lên mức logic cao Các thông số trong khung sẽ được quyết định bởi phía phát và phía thu
Hoạt động truyền như Hình 1.9, khi truyền dữ liệu, bên phát gửi start bit bằng cách kéo mức logic xuống mức thấp để báo hiệu cho phía thu chuẩn bị, sau đó, phía phát
sẽ gửi từng bit dữ liệu, ở cuối khung dữ liệu sẽ bao gồm bit kiểm tra chẵn lẻ và stop bit
Hoạt động đọc có cơ chế giống với hoạt động truyền, trong đó, phía thu tiếp nhận các bit dữ liệu truyền từ phía phát và tách các bit dữ liệu ra riêng biệt để nhận biết các thông số trong khung
Trong đề tài, chuẩn truyền UART được sử dụng để trao đổi thông tin giữa hệ thống chính với hệ thống phụ ESP32 thông qua hệ thống phần cứng được tích hợp sẵn bên trong vi điều khiển Do việc truyền tải thông tin bao gồm nhiều loại dữ liệu khác nhau trong hệ thống nên giữa các chuỗi dữ liệu sẽ được gửi kèm một ký tự nhận diện theo sau chuỗi
I2C là một trong những giao thức kết nối dữ liệu không thể thiếu trong nhiều hệ thống IoT, hỗ trợ kết nối từ hai thiết bị trở lên trên một đường truyền, tối đa 127 thiết bị,
Trang 28chuẩn truyển sử dụng hai dây truyền dẫn, thứ nhất là dây SDA có vai trò truyền tải thông tin cần gửi, thứ hai là dây SCL có vai trò đồng bộ dữ liệu truyền tải
Các thông tin liên quan:
• Điều kiện bắt đầu và kết thúc chuỗi dữ liệu
• Địa chỉ thiết bị : mỗi thiết bị giao tiếp sẽ có một số địa chỉ riêng biệt dùng
để định danh thiết bị, giúp hệ thống chính chọn đúng thiết bị mong muốn
• Khoảng cách truyền gần do sự suy hao tín hiệu
• Đồng bộ xung, yêu cầu các thiết bị giao tiếp phải có cùng tốc độ xung
• Độ phức tạp trong việc quản lý các thiết bị khi càng có nhiều kết nối
Trang 29Nguyên lý hoạt động :
Hình 1 10 Hoạt động ghi của giao thức UART
Hoạt động ghi của giao thức được mô tả như sau, theo Hình 1.10 đầu tiên cần kéo mức điện áp xuống mức thấp hay còn được gọi là xung cạnh xuống để đánh thức các thiết bị vào trạng thái chuẩn bị, thiết bị chủ sẽ gửi 7 bit địa chỉ kèm theo bit chọn cơ chế đọc/ghi dữ liệu, khi thiết bị phụ nào khớp địa chỉ sẽ gửi về bit báo hiệu ACK sẵn sàng nhận lệnh từ thiết bị chủ, thiết bị chủ sẽ tiến hành ghi toàn bộ dữ liệu mong muốn vào thiết bị phụ, sau mỗi một byte, thiết bị phụ sẽ gửi bit báo hiệu ACK, trường hợp NACK thiết bị chủ sẽ gửi lại byte đó, kết thúc hoạt động ghi, thiết bị chủ sẽ kéo mức điện áp truyền về lại mức cao hay còn được gọi là xung cạnh lên, báo hiệu kết thúc việc ghi dữ liệu
Hoạt động đọc cũng có cơ chế tương tự, tuy nhiên sẽ có vài điểm khác biệt là ở bit chọn cơ chế đọc/ghi dữ liệu, thiết bị chủ sẽ đổi vai trò cho thiết bị phụ qua cơ chế báo hiệu ACK, nhưng sau chuỗi dữ liệu định địa chỉ thiết bị chủ cần đợi phản hổi ACK của thiết bị phụ trước khi nhận dữ liệu
Lưu ý, các dữ liệu sẽ có ý nghĩa khi SCL được tích cực xung cạnh lên hoặc xung cạnh xuống tùy thuộc vào phần cứng
Các mô-đun giao tiếp ứng dụng I2C trong đề tài bao gồm LCD20X4, BH1750, RTC DS1307 Ứng dụng thư viện TwoWire và interface sẵn có của mô-đun trong việc thiết lập giao tiếp
1.7.3 Chuẩn truyền SPI
SPI là chuẩn truyền thông dữ liệu nối tiếp đồng bộ được ứng dụng nhiều cho việc truyền dẫn thông tin giữa cảm biến, vi điều khiển, v.v…Hỗ trợ chế độ truyền dẫn song công, tức vừa thực hiện chế độ đọc/ghi cùng lúc Đường truyền yêu cầu bốn kết nối gồm
Trang 30bị phụ (MOSI), ngược lại thiết bị phụ đến thiết bị chính (MISO) và một đường chọn thiết bị phụ để giao tiếp (SS)
Các thông tin liên quan:
• Chế độ truyền dẫn song công
• Cấu hình xung : SPI cho phép cấu hình bit cực xung nhịp (CPOL) và pha xung nhịp (CPHA), bit cực xung nhịp xác định mức logic trang thái rỗi của đường truyền, bit pha xung nhịp xác định tích cực xung cạnh lên hoặc cạnh xuống
• Độ dài dữ liệu thay đổi : trong quá trình truyền, các gói tin không bị cố định độ dài dữ liệu
Ưu điểm:
• Tốc độ truyền dẫn cao, hỗ trợ các hệ thống yêu cầu phản hồi nhanh
• Được hỗ trợ bởi nhiều nhà sản xuất thiết bị
• Kết nối được nhiều hơn hai thiết bị trên cùng đường truyền
Nhược điểm:
• Khoảng cách gần do sự suy hao tín hiệu
• Yêu cầu bốn kết nối, độ phức tạp sẽ tăng theo số lượng thiết bị
• Không có tích hợp sẵn cơ chế phát hiện lỗi
Nguyên lý hoạt động:
Hình 1 11 Gói tin truyền SPI
Hoạt động ghi được mô tả theo Hình 1.11, trước tiên cần tích cực chân CS xuống mức thấp để chọn thiết bị phụ mong muốn giao tiếp, thiết bị chính sẽ xuất dữ liệu ra chân MOSI, đồng thời xuất xung SCK ra thiết bị phụ, trước hết gửi chuỗi dữ liệu lệnh cấu hình chế độ đọc ghi, tiếp đến gửi chuỗi dữ liệu địa chỉ thanh ghi cần ghi, cuối cùng
là chuỗi dữ liệu mong muốn ghi vào thanh ghi Chân MISO được đặt ở trạng thái rỗi
Trang 31Hoạt động đọc cũng tương tự, thay vì gửi lệnh ghi thì thiết bị chính sẽ gửi lệnh đọc kèm địa chỉ thanh ghi cần đọc, sau đó, thiết bị phụ sẽ phản hồi dữ liệu qua chân MISO kèm xung SCK đồng bộ
Mô-đun ứng dụng truyền thống SPI trong đề tài là RFID RC522 NFC qua việc ứng dụng thư viện được phát triển riêng cho mô-đun
1.7.4 Chuẩn truyền 1 – Wire [4]
Chuẩn 1-Wire là giao thức truyền dữ liệu số cho phép thiết bị có thể giao tiếp hai chiều với yêu cầu phần cứng tối thiểu, chỉ sử dụng một dây dữ liệu giao tiếp duy nhất Giao thức được phát triển bởi Dallas Semiconductor, hiện là một phần của Maxim Integrated Giao thức cũng hỗ trợ việc giao tiếp nhiều hơn hai thiết bị qua một mạng cấu trúc liên kết được thiết kế xây dựng riêng
Các thông tin liên quan:
• Một đường dữ liệu : chỉ kết nối một dây dữ liệu, đơn giản hóa việc kết nối phần cứng
• Giao tiếp theo miền thời gian : truyền dữ liệu trên một dây dữ liệu cần ước tính chính xác từng khoảng thời gian cho việc truyền hoặc nhận dữ liệu
• Định đỉa chỉ ROM : trên mỗi mô-đun 1-Wire có một bộ nhớ địa chỉ ROM 64-bit, cho phép thiết bị chính nhận diện và giao tiếp với mỗi thiết bị khác nhau, cơ chế phát hiện lỗi CRC được tích hợp trong ROM
Ưu điểm:
• Chi phí thấp : đối với các hệ thống yêu cầu nhiều cảm biến
• Nguồn điện ký sinh : một số mô-đun 1-Wire có thể dùng nguồn điện ký sinh thay cho nguồn chính
• Cấu trúc mạng : hỗ trợ kết nối nhiều thiết bị trên một dây
Nhược điểm:
• Tốc độ thấp do việc ước tính khoảng thời gian đọc ghi sẽ khó khăn hơn khi làm việc ở tốc độ cao
• Độ phức tạp cao khi giao tiếp nhiều mô-đun
• Khoảng cách giao tiếp giới hạn do sự suy hao đường truyền
Trang 32Nguyên lý hoạt động:
Hình 1 12 Hoạt động ghi bit 1
Ghi bit ‘1’ kéo mức điện áp xuống mức thấp khoảng 6 us, sau đó thả mức điện áp lên cao khoảng 64 us
Hình 1 13 Hoạt động ghi bit 0
Ghi bit ‘0’ kéo mức điện áp xuống mức thấp khoảng 60 us, sau đó thả mức điện áp lên cao khoảng 10 us
Hình 1 14 Hoạt động đọc
Lệnh đọc, master kéo mức điện áp xuống mức thấp khoảng 15 us, slave gửi bit ‘1’ sẽ thả mức điện áp lên cao, ngược lại bit ‘0’ sẽ tiếp tục giữ mức thấp thêm khoảng 50 us
đó sẽ kéo mức điện áp xuống thấp khoảng 60 us
1.7.5 Chuẩn truyền HTTP [5]
Về cơ bản, HTTP là chuẩn truyền thông được dùng để truyền nhận dữ liệu trên World Wide Web, đây là một nền tảng giao tiếp dữ liệu trên internet, trao đổi các dữ liệu văn bản, hình ảnh, video và các tài nguyên đa phương tiện khác giữa máy chủ và máy khách
Phản hồi các yêu cầu từ máy khách là nhiệm vụ của HTTP, cụ thể là phản hồi các thông tin được lưu trữ trên máy chủ HTTP sẽ hỗ trợ giao tiếp kết nối giữa ESP32
và phần mềm di động thông qua dịch vụ máy chủ Firebase
Các thông tin liên quan:
Trang 33• Các phương thức yêu cầu từ máy khách như lấy dữ liệu (GET), gửi dữ liệu cần xử lý (POST), đăng tải tệp tin (PUT), xóa tài nguyên (DELETE),…v.v
• Các mã trạng thái báo hiệu kết quả của yêu cầu, một số mã phổ biến như
200 (OK), 404 (không tìm thấy), 500 (lỗi máy chủ nội bộ)
• Tiêu đề bổ sung các thuộc tín của nội dung như kích thước, định dạng,…v.v giúp tối ưu hóa giao tiếp giữa máy khách và máy chủ
• Mô hình phản hồi yêu cầu của HTTP gây ra độ trễ không phù hợp với các
hệ thống yêu cầu thời gian thực
1.7.6 Chuẩn truyền Lora
LoRa là một chuẩn truyền thông vô tuyến được phát triển bởi tập đoàn Semtech Đây là chuẩn truyền thông được sử dụng phổ biến trong các ứng dụng IoT bởi tính năng truyền xa và công suất thấp LoRa hoạt động ở những băng tần thấp không được cấp phép, do đó có tốc độ truyền dữ liệu thấp
Trong đề tài, LoRa đóng vai trò quan trọng trong việc điều khiển kết nối hệ thống
từ xa phòng trường hợp không có Internet khi sử dụng phần mềm di động
Các thông tin liên quan:
• Độ phủ sóng xa: LoRa có thể truyền tín hiệu ở khoảng cách rất xa, lên đến
15-20 km trong điều kiện lý tưởng
Trang 34• Tiêu thụ năng lượng thấp: LoRa được thiết kế để tiêu thụ năng lượng cực
thấp, phù hợp cho các thiết bị chạy bằng pin trong thời gian dài
• Dải tần số: LoRa hoạt động ở các dải tần số không được cấp phép, chẳng hạn như 433 MHz, 868 MHz (Châu Âu), và 915 MHz (Bắc Mỹ)
Ưu điểm:
• Phạm vi phủ sóng rộng: LoRa có thể truyền tín hiệu ở khoảng cách rất xa, phù hợp cho các ứng dụng trong nông nghiệp, quản lý năng lượng, và các khu vực xa xôi
• Khả năng xuyên thấu tốt: LoRa có thể xuyên qua các chướng ngại vật như tường và cây cối, đảm bảo tín hiệu ổn định trong các môi trường khó khăn
• Khả năng mở rộng: LoRa có thể hỗ trợ hàng ngàn thiết bị trên một mạng, phù
hợp cho các ứng dụng IoT quy mô lớn
Nhược điểm:
• Tốc độ giao tiếp thấp không phù hợp với các hệ thống yêu cầu phản hồi nhanh
• Giới hạn băng thông: Băng thông hạn chế, phù hợp hơn cho việc truyền các gói dữ liệu nhỏ
• Do sử dụng các băng tần không cấp phép nên có thể sẽ bị nhiễu đối với các thiết bị sử dụng chung dải tần
Trang 35Hình 1 16 Cấu trúc khung truyền LoRa (MAC) Nguyên lý hoạt động:
Nguyên lý hoạt động của LoRa dựa trên việc sử dụng một phương pháp gọi là Chirp Spread Spectrum (CSS), kết hợp với một kiến trúc mạng mesh (LoRaWAN) để truyền dữ liệu không dây ở khoảng cách xa và tiêu thụ ít năng lượng
Chirp Spread Spectrum (CSS):
Điều chế tín hiệu: LoRa sử dụng CSS để điều chế tín hiệu dữ liệu CSS là một kỹ thuật điều chế trong đó tần số của sóng radio tăng hoặc giảm theo thời gian, tạo ra một tín hiệu có dạng sóng chirp
CSS sử dụng các tín hiệu được gọi là "chirps", là các tín hiệu tần số thay đổi tuyến tính theo thời gian Quá trình này được gọi là "chirping" Một "chirp" có thể tăng (up-chirp) hoặc giảm (down-chirp) tần số của nó trong một khoảng thời gian nhất định Tầm xa và chống nhiễu: Tín hiệu chirp có khả năng chịu được nhiễu và giảm suy giảm tín hiệu, cho phép LoRa truyền dữ liệu ở khoảng cách xa và trong các môi trường có nhiều nhiễu
Các Spreading Factor (SF): LoRa cho phép điều chỉnh Spreading Factor, tức là tốc độ dữ liệu và khoảng cách truyền Các giá trị SF cao hơn sẽ tạo ra tốc độ truyền thấp hơn nhưng khoảng cách truyền xa hơn và ngược lại