Nhờ vào sự hướng dẫn tận tình của thầy, nhóm em đã không chỉ hiểu rõ hơn về các nguyên lý và ứng dụng của truyền số liệu mà còn học được cách tư duy logic, hệ thống hóa vấn đề và áp dụng
Trang 1ĐẠI HỌC QUỐC GIA TPHCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2
Lời cảm ơn
Trước tiên, nhóm em xin gửi lời chào trân trọng đến thầy Nguyễn Khánh Lợi Nhóm xin bày tỏ lòng biết ơn sâu sắc vì sự tận tâm, nhiệt huyết và những kiến thức quý báu mà thầy đã truyền đạt trong suốt quá trình học môn Truyền số liệu và mạng máy tính
Nhờ vào sự hướng dẫn tận tình của thầy, nhóm em đã không chỉ hiểu rõ hơn về các nguyên lý và ứng dụng của truyền số liệu mà còn học được cách tư duy logic, hệ thống hóa vấn đề và áp dụng kiến thức lý thuyết vào thực tế thông qua các bài tập lớp
Dù đôi lúc các bài tập có độ khó cao, nhưng chính sự chỉ dẫn cụ thể và thái độ hỗ trợ không ngại khó của thầy đã giúp em cùng các bạn có thêm động lực để vượt qua thử thách, tích lũy được nhiều kinh nghiệm học tập hữu ích Thầy không chỉ dạy chúng em cách tiếp cận khoa học mà còn truyền cảm hứng để chúng em yêu thích môn học, kiên trì hơn trên con đường chinh phục tri thức Đặc biệt, những buổi thảo luận trên lớp cùng với các ví dụ minh họa thực tế mà thầy chia sẻ đã giúp chúng em mở rộng tầm nhìn về lĩnh vực mạng máy tính và truyền thông số liệu – một lĩnh vực quan trọng trong thời đại số hóa ngày nay
Một lần nữa, Nhóm xin chân thành cảm ơn thầy vì những đóng góp và tận tụy trong việc dạy dỗ Nhóm em hy vọng rằng trong tương lai sẽ tiếp tục có cơ hội được học hỏi thêm từ thầy và áp dụng những gì đã được học để đạt được thành công trong học tập và sự nghiệp
Kính chúc thầy luôn mạnh khỏe, hạnh phúc và gặt hái được nhiều thành công trong sự nghiệp giảng dạy cũng như nghiên cứu của mình
Trang 3MỤC LỤC
I GIỚI THIỆU VỀ ĐỀ TÀI………3
II.CÁC GIAO THỨC ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI………3
2.1 Giao thức TCP/IP……….4
2.1.1 Giới thiệu………4
2.1.2 Nguyên lý hoạt động của TCP/IP……… 5
2.1.3 Cấu trúc của TCP/IP và chức năng của các tầng…………5
2.2 Quá trình đẩy lên node red 2.2.1 Arduino IDE……… 9
2.2.2 Node-red……….10
2.2.3 ESP8266……….12
2.2.4 MQTT……….12
III MÔ TẢ PHẦN CỨNG……….13
IV.SƠ ĐÒ KHỐI VÀ SƠ ĐỒ GIẢI THUẬT………19
V.CLIP DEMO BÀI TẬP LỚN……….24
VI.TÀI LIỆU THAM KHẢO……….25
Trang 4I Giới thiệu về đề tài
Trong bối cảnh nông nghiệp đang dần chuyển mình mạnh mẽ nhờ ứng dụng công nghệ thông minh, việc tối ưu hóa các hoạt động canh tác trở thành một nhu cầu cấp thiết Một trong những vấn đề quan trọng cần giải quyết là hệ thống tưới tiêu – yếu tố then chốt ảnh hưởng đến năng suất và chất lượng cây trồng Với sự phát triển của công nghệ IoT (Internet of Things), việc tích hợp các thiết bị thông minh vào hệ thống nông nghiệp không chỉ giúp tiết kiệm tài nguyên mà còn nâng cao hiệu quả quản lý
Đề tài "Ứng dụng kit IoT2050 cho hệ thống tưới tiêu thông minh" được xây dựng nhằm hiện thực hóa giải pháp tự động hóa và tối ưu hóa quy trình tưới tiêu Kit IoT2050, với khả năng xử lý mạnh mẽ, hỗ trợ giao thức IoT hiện đại và khả năng kết nối đa dạng, là một công cụ lý tưởng để triển khai hệ thống này
Mục tiêu của đề tài là xây dựng một hệ thống tưới tiêu thông minh dựa trên các thông số môi trường như độ ẩm đất, nhiệt độ, độ ẩm không khí, và ánh sáng Hệ thống sẽ sử dụng cảm biến để thu thập dữ liệu, xử lý thông qua kit IoT2050, và từ đó tự động kích hoạt hoặc điều chỉnh hoạt động tưới tiêu Đồng thời, thông qua kết nối internet, người dùng có thể giám sát và điều khiển hệ thống từ xa thông qua ứng dụng hoặc giao diện web
II Các giao thức sử dụng trong đề tài:
1.1 Giao thức TCP/IP:
1.1.1 Giới thiệu:
TCP/IP là cụm từ viết tắt của Transmission Control
Protocol/Internet Protocol hay còn gọi là giao thức điều khiển
truyền/nhận (Giao thức liên mạng) Đây là một bộ các giao thức truyền
thông được sử dụng để kết nối các thiết bị mạng với nhau trên internet
TCP/IP cũng có thể được sử dụng như một giao thức truyền thông trong
mạng máy tính riêng (mạng nội bộ) Trong đó, bộ Giao thức internet –
một tập hợp các quy tắc và thủ tục – thường gọi là TCP/IP (TCP/IP
Protocol) TCP và IP là hai giao thức chính bên cạnh những giao thức
khác trong bộ Bộ giao thức TCP/IP hoạt động như một lớp trừu tượng
giữa các ứng dụng internet và hạ tầng router/switch.TCP/IP chỉ định cách
Trang 5dữ liệu được trao đổi qua internet Nó thực hiện bằng cách cung cấp thông
tin liên lạc đầu cuối Từ đó xác định cách nó được chia thành các packet,
xác định địa chỉ, truyền dẫn, định tuyến và nhận dữ liệu TCP/IP được
thiết kế để đảm bảo độ tin cậy, nó có khả năng khôi phục tự động khi gặp
sự cố trong quá trình truyền dữ liệu
2.1.2 Nguyên lý hoạt động của TCP/IP
TCP/IP hoạt động như một cầu nối giữa các ứng dụng và phần cứng mạng Quá trình truyền
dữ liệu được thực hiện qua các bước cơ bản sau:
-Chia nhỏ dữ liệu: Dữ liệu từ ứng dụng (như một email) được chia thành các
gói tin nhỏ để dễ dàng quản lý và truyền tải
-Đóng gói và định địa chỉ: Các gói tin được gắn địa chỉ IP của thiết bị gửi và
thiết bị nhận
-Truyền tải qua mạng: Các gói tin được định tuyến qua nhiều thiết bị trung gian
để đến đích
-Tái hợp và kiểm tra: Ở phía nhận, các gói tin được tái hợp lại thành dữ liệu
ban đầu, đồng thời kiểm tra lỗi và yêu cầu gửi lại nếu cần thiết
2.1.3 Cấu trúc của TCP/IP và chức năng của các tầng
Như đã biết , cấu trúc của OSI có 7 tầng thì với cấu trúc của TCP/IP người ta
chỉ còn rút lại 4 tầng như hình mà thôi
Trang 6A Tầng Giao diện mạng (Network Interface Layer)
Chức năng:
Đảm bảo việc trao đổi dữ liệu giữa thiết bị và mạng vật lý
Xử lý các khía cạnh liên quan đến phần cứng mạng, như card mạng, cáp, hoặc tín hiệu không dây
Cung cấp cơ chế truyền tải dữ liệu giữa các thiết bị trong cùng một mạng cục bộ
Thành phần chính:
Kết nối với các giao thức lớp vật lý (Ethernet, Wi-Fi, hoặc PPP)
Xử lý địa chỉ vật lý (địa chỉ MAC)
B Tầng Internet (Internet Layer)
Chức năng:
Định tuyến các gói tin từ nguồn đến đích qua một hoặc nhiều mạng trung gian
Gắn địa chỉ IP cho các gói tin để định danh thiết bị gửi và nhận trên mạng
Chia nhỏ các gói tin lớn thành các gói nhỏ hơn để dễ dàng truyền tải, sau đó tái hợp lại ở phía nhận
Giao thức chính:
IP (Internet Protocol):
o Cung cấp địa chỉ IP và định tuyến gói tin
o Hai phiên bản phổ biến: IPv4 và IPv6
ICMP (Internet Control Message Protocol): Xử lý thông báo lỗi và kiểm tra trạng
thái của mạng (như ping)
ARP (Address Resolution Protocol): Chuyển đổi địa chỉ IP sang địa chỉ MAC
C Tầng Giao vận (Transport Layer)
Chức năng:
Đảm bảo dữ liệu được truyền tải chính xác và đáng tin cậy giữa các thiết bị đầu cuối
Quản lý việc chia nhỏ dữ liệu thành các phân đoạn (segments) trước khi gửi đi và tái
hợp chúng ở phía nhận
Điều khiển luồng dữ liệu, phát hiện lỗi, và khôi phục dữ liệu nếu cần
Giao thức chính:
TCP (Transmission Control Protocol):
o Đảm bảo độ tin cậy cao bằng cách thiết lập kết nối trước khi truyền dữ liệu
Trang 7o Có cơ chế kiểm tra lỗi, đánh số thứ tự gói tin, và yêu cầu gửi lại nếu dữ liệu bị mất
o Phù hợp với các ứng dụng cần độ chính xác cao như email, tải tệp, hoặc duyệt web
UDP (User Datagram Protocol):
o Không đảm bảo độ tin cậy (không kiểm tra lỗi hoặc mất gói tin)
o Phù hợp với các ứng dụng yêu cầu tốc độ cao, như truyền video trực tiếp hoặc trò chuyện thoại (VoIP)
D.Tầng Ứng dụng (Application Layer)
Chức năng:
Cung cấp giao diện trực tiếp giữa người dùng và hệ thống mạng
Xử lý dữ liệu ở dạng mà người dùng hoặc ứng dụng có thể hiểu được
Định nghĩa cách thức các ứng dụng giao tiếp với nhau thông qua mạng
Giao thức chính:
HTTP/HTTPS (Hypertext Transfer Protocol): Truyền tải nội dung web
SMTP (Simple Mail Transfer Protocol): Gửi email
DNS (Domain Name System): Chuyển đổi tên miền thành địa chỉ IP
FTP (File Transfer Protocol): Truyền tệp
SSH (Secure Shell): Kết nối từ xa bảo mật
2.1.4 Ưu điểm và nhược điểm của TCP/IP
Ưu điểm:
1 Tính phổ biến và tiêu chuẩn hóa:
o TCP/IP là tiêu chuẩn toàn cầu, được sử dụng rộng rãi trên hầu hết các mạng máy tính và Internet, từ mạng nội bộ (LAN) đến mạng diện rộng (WAN)
4 Độ tin cậy cao:
o Cơ chế kiểm tra lỗi, phát hiện mất gói tin, và khôi phục dữ liệu (đặc biệt với giao thức TCP) đảm bảo dữ liệu được truyền chính xác và an toàn
5 Cấu trúc phân tầng:
o Tách biệt chức năng của từng tầng giúp dễ dàng phát triển, bảo trì và mở rộng
o Cho phép nhiều giao thức khác nhau hoạt động đồng thời mà không xung đột
6 Hỗ trợ định tuyến và kết nối linh hoạt:
o Các giao thức như IP và ICMP giúp đảm bảo dữ liệu được định tuyến hiệu quả qua các mạng trung gian và đến đúng đích
7 Tính năng tự động sửa lỗi:
Trang 8o Đặc biệt hữu ích trong môi trường mạng không ổn định, TCP/IP tự động gửi lại các gói tin bị lỗi hoặc thất lạc, giúp tăng độ tin cậy
Nhược điểm:
1 Phức tạp trong cấu hình:
Cấu hình địa chỉ IP, subnet mask, gateway, và DNS yêu cầu kiến thức chuyên môn, đặc biệt trong các mạng lớn
2.Hiệu suất không tối ưu:
TCP/IP tiêu tốn tài nguyên hệ thống để thực hiện kiểm tra lỗi và đảm bảo độ tin cậy, dẫn đến hiệu suất không cao bằng một số giao thức khác trong các ứng dụng yêu cầu tốc độ cao (ví dụ: UDP không có kiểm tra lỗi nhanh hơn TCP)
3.Khó khăn trong việc bảo trì và quản lý:
Hệ thống lớn với nhiều thiết bị và kết nối có thể trở nên phức tạp, đòi hỏi kỹ năng và công cụ quản lý mạng hiện đại
4.Không được thiết kế để bảo mật:
Các giao thức cơ bản như IP, TCP, và UDP không tích hợp các cơ chế bảo mật Điều này làm tăng nguy cơ bị tấn công mạng như giả mạo IP, tấn công DDoS, hoặc nghe lén dữ liệu Các giao thức bảo mật bổ sung (như HTTPS, IPSec) cần được triển khai riêng
5.Kích thước header lớn:
Các gói tin TCP/IP có phần header chứa thông tin quản lý khá lớn, làm giảm hiệu quả khi truyền dữ liệu nhỏ hoặc trong các mạng có băng thông thấp
6.Phụ thuộc vào địa chỉ IP:
Việc sử dụng địa chỉ IP làm định danh thiết bị khiến TCP/IP phụ thuộc mạnh vào cấu trúc mạng Điều này có thể gây khó khăn trong việc quản lý mạng động hoặc khi chuyển đổi địa chỉ IP
Trang 92.2 Quá trình đẩy data lên node-red
Các thành phần cơ bản và công cụ hỗ trợ cho hệ thống
2.2.1 Arduino IDE
Arduino IDE là một phần mềm mã nguồn mở, được sử dụng để
lập trình cho các bo mạch điều khiển Arduino và các dòng vi điều
khiển AVR Phần mềm này được phát triển dựa trên nền tảng Java
và có tích hợp trình biên dịch GCC để biên dịch mã nguồn C++
Ngôn ngữ lập trình chính của Arduino IDE là C++, được viết với
một số thư viện và hàm tiện ích được cung cấp bởi Arduino Tuy
nhiên, người dùng cũng có thể sử dụng các thư viện bên thứ ba
hoặc tự viết các thư viện riêng để thực hiện các chức năng đặc biệt
Arduino IDE cung cấp một giao diện đồ họa đơn giản để lập trình
cho các bo mạch Arduino và AVR Người dùng có thể viết mã
nguồn, biên dịch và tải chương trình vào bo mạch điều khiển thông
qua cổng USB Để sử dụng Arduino IDE, người dùng cần kết nối
bo mạch điều khiển với máy tính thông qua một cáp USB và cài
đặt driver cho bo mạch điều khiển
Arduino IDE có thể chạy trên các hệ điều hành phổ biến như
Windows, macOS và Linux, là một công cụ lập trình đơn giản và
dễ sử dụng cho người mới bắt đầu với lập trình vi điều khiển
Trang 102.2.2 Node-red
Node-RED là một công cụ lập trình mã nguồn mở mạnh mẽ, được thiết kế để kết nối trực quan các thiết bị, API, và dịch vụ trực tuyến Nó sử dụng cách tiếp cận phát triển dựa trên luồng (flow-based), giúp tạo ra các hệ thống phức tạp mà không cần kiến thức lập trình chuyên sâu Được phát triển bởi IBM và hiện thuộc OpenJS Foundation, Node-RED được sử dụng rộng rãi trong các ứng dụng Internet vạn vật (IoT), tự động hóa công nghiệp và điện toán biên
Giao diện lập trình trực quan: người dùng có thể sử dụng giao diện thả trong trình duyệt để kết nối các “node” từ đó tạo thành các “flows”
kéo- Khả năng mở rộng: Dựa trên Node.js, Node-RED thừa hưởng kiến trúc
hướng sự kiện và không chặn (non-blocking) Nó hỗ trợ hơn 4.000 thư
viện được cộng đồng phát triển, bao gồm tích hợp với MQTT, Modbus,
từ các node trước để chọn đường đi tới các node change dựa vào điều kiện Node change set giá trị của payload để gửi ngược về lại esp8266 Từ đó điều khiển động cơ, led báo động
Sử dụng cơ chế port forwarding trên cổng 1883 với laptop làm trung gian: Gửi
1 gói tin từ esp8266 trực tiếp tới ip của máy tính trong cùng mạng LAN của esp8266 Gói tin này được gửi tới iot2050 qua mạng ethernet có chung lớp mạng Lưu ý, cổng
1883 là cổng broker mosquitto của iot2050, phải bật cấu hình forwarding trên laptop Lệnh để kiểm tra cấu hình:
Trang 11Máy tính đang lắng nghe toàn bộ các dữ liệu gửi tới địa chỉ ip
192.168.72.157, sau đó gửi tới địa chỉ ip 192.168.200.1 trên cổng broker 1883
Lưu ý: phải tắt tường lửa của máy tính, set up port forwarding bằng câu lệnh:
netsh interface portproxy add v4tov4 listenaddress=192.168.72.157
listenport=1883 connectaddress=192.168.200.1 connectport=1883
Hoặc xóa cấu hình trước đó bằng câu lệnh:
netsh interface portproxy delete v4tov4 listenaddress=192.168.72.157
listenport=1883
2.2.3 ESP8266
Trang 12ESP8266 là một vi điều khiển Wi-Fi tích hợp cao do Espressif Systems phát triển, được sử dụng phổ biến trong các ứng dụng IoT Với bộ xử lý Tensilica L106 32-bit RISC, nó có tốc độ xung nhịp tối đa 160 MHz, hỗ trợ hệ điều hành thời gian thực (RTOS), và cho phép sử dụng tới 80% công suất xử lý để lập trình ứng dụng
ESP8266 nổi bật nhờ khả năng tiêu thụ năng lượng thấp, kích thước nhỏ gọn, và giá thành hợp lý
2.2.4 MQTT
MQTT Broker là 1 trạm trung chuyển , nói đơn giản là 1 trung tâm thông tin, có nhiệm vụ nhận thông tin từ rất nhiều các thiết bị khác nhau và chuyển các thông tin này tới từng thiết bị riêng biệt
Trang 13Chúng ta có thể lấy Broker bằng hai cách:
Tự tạo Broker MQTT trên máy tính , raspberry, server … tùy vào điều kiện hiện có: cách này tốn thêm chi phí, phức tạp, không dành cho người mới bắt đầu
USB2.0, SD card slot, 24 V DC industrial power supply
Trang 14B soil moisture sensor
+ Cảm biến giúp xác định độ ẩm của đất qua đầu dò và
trả về giá trị Analog, Digital qua 2 chân tương ứng
+ Tín hiệu đầu ra:
Analog: theo điện áp cấp nguồn tương ứng
Digital: High hoặc Low, có thể điều chỉnh độ ẩm mong
muốn bằng biến trở thông qua mạch so sánh LM393 tích
hợp
+ Nguồn cung cấp: 3.3~5VDC
Trang 15+ Thường được sử dụng trong các mô hình tưới nước tự
động, vườn thông minh,
C Cảm biến độ ẩm, nhiệt độ DHT11
Tính năng
- Cảm Biến Nhiệt Độ Và Độ Ẩm DHT11 là cảm biến 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 dây truyền dữ liệu duy nhất) Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà không phải qua bất kỳ tính toán nào So với cảm biến đời mới hơn là DHT22 thì DHT11 cho khoảng đo và độ chính xác kém hơn rất nhiều
Trang 16Thông số kỹ thuật DHT11
- Điện áp hoạt động: 3V - 5V DC
- Dòng điện tiêu thụ: 2.5mA
- Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH
- Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C
- Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)
+ Ở 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
+ Điện áp sử dụng: 5VDC
+ Tín hiệu kích: TTL 3.3~5VDC, mức cao High Relay đóng, mức thấp Low Relay ngắt
+Relay tiêu thụ khoảng 80mA
E Động cơ bơm chìm mini
Thông số kỹ thuật của máy bơm chìm mini 3 - 5VDC:
Vật liệu: nhựa cứng cao cấp
Màu sắc: trắng ngà
Điện áp: 3VDC - 5VDC
Chiều dài bơm chìm: 43.5 mm
Đường kính ống ra: 7.5mm