1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế hệ thống quản lý nông trại

58 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Hệ Thống Quản Lý Nông Trại
Tác giả Bùi Đức Dĩnh, Phan Tấn Duy
Người hướng dẫn TS. Phan Văn Ca
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM
Chuyên ngành Công Nghệ Kỹ Thuật Máy Tính
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2013-2017
Thành phố TP. HỒ CHÍ MINH
Định dạng
Số trang 58
Dung lượng 3,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1.pdf

    • Page 1

  • 2.pdf

  • 4 BIA SAU A4.pdf

    • Page 1

Nội dung

GIỚI THIỆU

ĐẶT VẤN ĐỀ

Hiện nay, sự phát triển của xã hội và tiến bộ khoa học kỹ thuật đang diễn ra mạnh mẽ Nhu cầu về kỹ thuật ngày càng tăng cao, đặc biệt trong các công trình nghiên cứu khoa học Những sản phẩm được thiết kế nhằm nâng cao chất lượng cuộc sống và cung cấp thực phẩm sạch, an toàn cho con người đang trở thành ưu tiên hàng đầu.

Việc áp dụng mô hình quản lý nông trại thông minh giúp theo dõi các thông số môi trường và sinh thái, từ đó phân tích dữ liệu thu thập được Điều này cho phép đưa ra các giải pháp hợp lý nhằm nâng cao hiệu quả và năng suất trong việc chăm sóc và quản lý nông trại Do đó, chúng tôi chọn đề tài “Thiết kế hệ thống quản lý nông trại” để phát triển những giải pháp tối ưu cho ngành nông nghiệp.

MỤC TIÊU ĐỀ TÀI

Hệ thống quản lý nông trại được xây dựng gồm ba phần chính: phần cứng thu thập dữ liệu lắp đặt tại trang trại, máy chủ web và ứng dụng di động, giúp người dùng tương tác dễ dàng Thiết kế này nhằm nâng cao hiệu quả quản lý và giám sát hoạt động nông nghiệp.

Cập nhật liên tục dữ liệu trạng thái thiết bị và thông số cảm biến lên Server và cơ sở dữ liệu qua Internet.

 Người dùng có thể giám sát và điều khiển các thiến bị điện từ xa qua trình duyệt web và ứng dụng trên smartphone.

N ộI DUNG

Mô hình phần cứng thiết kế đơn giản giúp kết nối các thiết bị vận hành nông trại và theo dõi các thông số môi trường thông qua cảm biến Hệ thống này cho phép truyền tải thông tin về các điều kiện môi trường, từ đó hỗ trợ quản lý và tối ưu hóa quy trình sản xuất nông nghiệp.

2 dữ liệu môi trường lên server và ứng dụng di động để người dùng theo dõi và quản lý

Web server cho phép theo dõi và điều khiển các thiết bị vận hành, đồng thời lưu trữ cơ sở dữ liệu để giám sát các thông số môi trường hàng ngày Ứng dụng di động có giao diện thân thiện, cho phép người dùng xem thông số môi trường và môi sinh, cũng như điều khiển thiết bị và cập nhật dữ liệu về số lượng vật nuôi, tuổi tác và ngày nhập.

BỐ CỤC QUYỂN BÁO CÁO

Nội dung chính của đề tài được trình bày với năm chương như sau:

Trong chương này nêu ra được tình hình nghiên cứu hiện nay, lý do và mục tiêu chọn đề tài, nội dung đề tài

Chương 2: Cơ sở lý thuyết

Các lý thuyết chính liên quan đến các thành phần phần cứng và phần mềm cả hệ thống

Chương 3: Phân tích thiết kế hệ thống

Trong chương này, chúng tôi sẽ thiết kế phần cứng và xây dựng phần mềm cho hệ thống dựa trên các yêu cầu đã được xác định Bằng cách sử dụng sơ đồ khối tổng quát và sơ đồ khối chi tiết, chúng tôi sẽ tiến hành lựa chọn các linh kiện phù hợp cho từng khối của hệ thống.

Xây dựng chương trình trên NodeMCU ESP8266 để tạo WebServer và ứng dụng Android, cho phép truyền dữ liệu từ các cảm biến đến Web server và smartphone Người dùng có thể điều khiển thiết bị và hẹn giờ bật máy bơm nước thông qua giao diện Web và ứng dụng Android, tất cả đều qua kết nối Internet.

Chương 4: Kết quả và đánh giá

Trình bày về kết quả thi công phần cứng, phần mềm và đánh giá ƣu nhƣợc điểm của hệ thống

Chương 5: Kết luận và hướng phát triển Đƣa ra các kết luận về những vấn đề mà trong quá trình nghiên cứu đã đạt được và chưa đạt được Đưa ra hướng phát triển đề tài trong tương lai

CƠ SỞ LÝ THUYẾT

GIỚI THIỆU NODEMCU ESP8266

ESP8266 là chip tích hợp cao, phục vụ cho nhu cầu của thế giới Internet of Things (IoT) Nó cung cấp giải pháp kết nối mạng Wi-Fi toàn diện, cho phép lưu trữ ứng dụng và giảm tải chức năng kết nối Wi-Fi từ bộ xử lý ứng dụng.

ESP8266 là một module wifi giá rẻ với khả năng xử lý và lưu trữ mạnh mẽ, cho phép tích hợp dễ dàng với các bộ cảm biến, vi điều khiển và thiết bị ứng dụng cụ thể thông qua GPIOs Nó được sử dụng phổ biến trong các ứng dụng liên quan đến Internet và Wifi, cũng như trong các giải pháp truyền nhận thay thế cho các module RF khác.

NodeMCU ESP8266 là một kit phát triển dựa trên chip Wifi SoC, nổi bật với thiết kế dễ sử dụng nhờ vào mạch nạp tích hợp sử dụng chip CP2102 Với lõi vi xử lý có sẵn, ESP8266 cho phép lập trình trực tiếp mà không cần thêm vi xử lý khác Người dùng có thể lập trình ESP8266 bằng phần mềm IDE của Arduino với thư viện riêng hoặc sử dụng phần mềm NodeMCU, kết hợp các chức năng của WIFI, vi xử lý và ngôn ngữ LUA Thiết kế thân thiện và khả năng lập trình trực tiếp qua Arduino giúp cho việc phát triển ứng dụng trên ESP8266 trở nên đơn giản, đặc biệt là trong các ứng dụng IoT cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi.

Hình 2.1 : Hình ảnh NodeMCU ESP8266 NodeMCU ESP8266 gồm:

 IC chính: ESP 8266 WiFi SoC phiên bản ESP 12

 Chip nạp và giao tiếp UART: CP2102

 Tích hợp Led,nút Reset, Falsh

 API điền khiển sự kiện cho các ứng dụng mạng

 10 chân GPIO giao tiếp mức 3.3V DC từ D0 – D10, có chức năng PWM, I2C, giao tiếp SPI, 1-Wire và ADC trên chân A0

 Cấp nguồn: 5V DC Micro USB

Kết nối mạng WiFi cho phép người dùng truy cập internet để tải lên hoặc lấy dữ liệu, có thể hoạt động như một điểm truy cập hoặc trạm máy chủ lưu trữ.

 Tương thích hoàn toàn với trình biên dịch Arduino

 Chi phí phù hợp cho các dự án Internet of Things (IoT)

 Tích hợp anten PCB trace trên module

 Tiêu chuẩn wifi : 802.11b/g/n, với tần số 2.4GHz và hổ trợ bảo mật WPA/WPA2

 Khoảng cách giữa các chân 2mm

2.1.2 Sơ đồ kết nối của NodeMCU ESP 8266

Sau đây là sơ đồ chân kết nối của NodeMCU ESP8266:

Hình 2.2 : Sơ đồ chân NodeMCU ESP8266

2.1.3 Môi trường lập trình trên NODEMCU ESP8266

ESP8266 NodeMCU là một trong những mạch phổ biến trong phát triển dự án IoT, nổi bật với module wifi tích hợp sẵn và vi điều khiển mạnh mẽ hơn so với các phiên bản Arduino như UNO R3 và Tiny.

Với ESP8266 NodeMCU, người dùng không chỉ có thể lập trình bằng ngôn ngữ Lua mà còn có thể sử dụng C/C++ thông qua Arduino IDE Arduino IDE cung cấp các thư viện hỗ trợ lập trình cho ESP8266 NodeMCU, giúp việc biên dịch, nạp mã và kiểm tra trở nên dễ dàng hơn.

MODULE LCD 20X4

Màn hình LCD (màn hình tinh thể lỏng) là thiết bị nhỏ dùng để hiển thị chữ và số theo mã ASCII Khác với các loại LCD lớn, LCD nhỏ được chia thành các ô, mỗi ô chỉ hiển thị một ký tự ASCII Mỗi ô của Text LCD bao gồm các “chấm” tinh thể lỏng, và việc kết hợp giữa việc “ẩn” và “hiện” các chấm này sẽ tạo ra ký tự cần hiển thị.

Màn hình LCD được định nghĩa bởi kích thước hiển thị, bao gồm số ký tự trên mỗi dòng và tổng số dòng Ví dụ, màn hình LCD 20x4 có khả năng hiển thị 20 ký tự trên mỗi dòng và tổng cộng 4 dòng.

Hình 2.3: Sơ đồ chân LCD 20x4 Lcd có tất cả 16 chân

Chân cấp nguồn: vss (nối nguồn 5V), VDD (nối 0V), V0 (điều chỉnh độ tương phản)

RS: Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi

Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ

Để kết nối với LCD, bạn cần sử dụng chân "ghi" để giao tiếp hoặc kết nối với bộ đếm địa chỉ trong chế độ "đọc" Logic "1" sẽ kết nối Bus DB0-DB7 với thanh ghi dữ liệu DR bên trong LCD Chân RW được sử dụng để chọn chế độ đọc hoặc ghi; nối chân R/W với logic "0" để LCD hoạt động ở chế độ ghi, hoặc với logic "1" để LCD ở chế độ đọc.

Chân E cho phép chốt xung ký tự (Enable) trong quá trình giao tiếp với LCD Khi các tín hiệu được đưa lên bus DB0-DB7, lệnh chỉ được chấp nhận khi có một xung cho phép từ chân E Trong chế độ ghi, dữ liệu từ bus sẽ được LCD chuyển vào thanh ghi nội bộ khi phát hiện xung chuyển từ cao sang thấp của tín hiệu chân E Ngược lại, trong chế độ đọc, dữ liệu sẽ được LCD xuất ra DB0-DB7 khi có cạnh lên (chuyển từ thấp sang cao) ở chân E và sẽ được giữ trên bus cho đến khi chân E xuống mức thấp.

A, K: Chân điều khiển đèn nền

MODULE KẾT NỐI CHUẨN I2C

Để sử dụng màn hình LCD với Raspberry Pi, thường cần nhiều chân kết nối, gây khó khăn trong việc điều khiển Để giải quyết vấn đề này, mạch điều khiển màn hình LCD sử dụng giao tiếp I2C đã được phát triển, giúp đơn giản hóa quá trình kết nối và điều khiển.

2 chân (SDA và SCL) của MCU kết nối với 2 chân (SDA và SCL) của KIT RAS

PI để điều khiển màn hình, thay vì 8 dây như cách thông thường Ngoài ra còn có thể điều chỉnh độ tương phản bằng biến trở gắn trên module

Hình 2 4: Sơ đồ chân kết nối LCD 20x4

 Kích thước: 41.5mm(L) x 19mm(W) x 15.3mm(H)

 1 jumper điều chỉnh ON/OFF đèn màn hình

 Nguồn sử dụng cho module là 2.5- 6V

 Tốc độ truyền dữ liệu lên đến 400Kbps

 Địa chỉ mặc định: 0x27, có thể mắc vào I2C bus tối đa 8 module (3bit address set), địa chỉ mới 0x3F

CẢM BIẾN DHT11

DHT11 là một cảm biến nhiệt độ và độ ẩm, được phát triển để thay thế dòng SHT1x trong các ứng dụng không yêu cầu độ chính xác cao Cảm biến này sử dụng giao thức giao tiếp một dây, giúp đơn giản hóa việc kết nối và truyền dữ liệu.

Hình 2 5: Module DHT11 tích hợp với 3 chân kết nối

 Dòng sử dụng khi truyền dữ liệu: 2.5mA

 Tần số lấy mẫu tối đa: 1Hz

 Thời gian truyền tín hiệu tối đa: 20ms

 Phạm vi độ ẩm đo đƣợc: 20%-95%

 Phạm vi nhiệt độ đo đƣợc: 0-50 o C

MODULE RELAY

Mạch module relay hoạt động với chân kích mức thấp (0V), khi nhận tín hiệu 0V tại chân IN, relay sẽ chuyển sang trạng thái thường hở Mỗi relay có 3 chân đầu ra: NC, NO và COM, trong đó NO và NC là các chân ra, còn COM (GND) là chân chung cho cả NO và NC.

9 Ứng dụng với relay module khá nhiều bao gồm cả điện DC hay AC, ta có thể xem module relay bên dưới

 Điện áp hoạt động: 5VDC

 Dòng tiêu thụ: 200mA/1Relay

 Tiếp điểm đóng ngắt max: 250VAC-10A hoặc 30VDC-10A

 Có đèn báo đóng ngắt trên mỗi relay

 Kích thước: 52mm * 41mm * 19mm.

M ODULE C ẢM BIẾN ÁNH SÁNG BH 1750

Cường độ ánh sáng (Illuminance) là thước đo thông lượng chiếu sáng trên một diện tích nhất định, phản ánh lượng ánh sáng (đơn vị lumens) có thể nhìn thấy trên bề mặt.

Lumen là đơn vị đo lường lượng ánh sáng phát ra từ một nguồn trong một giây, còn được gọi là quang điện hoặc thông lượng chiếu sáng Cảm biến ánh sáng sẽ ghi nhận giá trị này trên một mét vuông trong một giây, và đơn vị đo lường được ký hiệu là Lux (lx) Mối quan hệ giữa lumen và lux được thể hiện qua công thức: Lux = 1 Lm/m2.

Cảm biến cường độ ánh sáng BH1750 là một thiết bị đo ánh sáng tích hợp bộ chuyển đổi ADC 16 bit, cho phép xuất trực tiếp giá trị cường độ ánh sáng.

(lux) theo dạng digital mà không phải qua bất kỳ xử lý hay tính toán nào thông qua giao tiếp I2C

BH1750 cung cấp độ chính xác cao hơn và dễ sử dụng hơn so với cảm biến quang trở trong việc đo cường độ ánh sáng, giúp giảm thiểu sai số do dữ liệu thay đổi trên điện áp.

Cường độ ánh sáng được tính như sau:

 Trời mây trong nhà: 5 - 50 lx

 Trời mây ngoài trời: 50 - 500 lx

 Trời nắng trong nhà: 100- 1000 lx

 Độ phân giải cao(1 - 65535 lx)

 Khả năng chống nhiễu sáng ở tần số 50 Hz/60 Hz

 Sự biến đổi ánh sáng nhỏ (+/- 20%)

 Độ ảnh hưởng bởi ánh sáng hồng ngoại rất nhỏ

Hình 2.7: Modul cảm biến ánh sáng BH1750

2.6.2 Các chế độ hoạt động BH1750:

 H-Resolution với độ nhạy sáng 0.5 lux

 H-Resolution với độ nhạy sáng 1 lux

L-Resolution có độ nhạy sáng 4 lux, lý tưởng cho việc sử dụng trong chế độ H-Resolution để giảm thiểu nhiễu ánh sáng Chế độ H-Resolution với độ nhạy 1 lx rất phù hợp cho việc đo trong điều kiện ánh sáng yếu, đặc biệt là khi mức ánh sáng nhỏ hơn 10 lx.

M ODULE THỜI GIAN THỰC DS1307

Module thời gian thực DS1307 (RTC) có khả năng lưu trữ thông tin về ngày, tháng, năm và giờ, phút, giây Thiết bị này hoạt động như một chiếc đồng hồ và có thể truyền dữ liệu ra ngoài thông qua giao thức I2C.

Module được thiết kế kèm theo 1 viên pin có khả năng lưu trữ thông tin đến

10 năm mà không cần cấp nguồn 5V từ bên ngoài

Module đi kèm với EEPROM AT24C32 có khả năng lưu trữ thông tin đến 32Kbit

Hình 2.8: Module thời gian thực DS1307

 Khả năng lưu trữ 32K Bit với EEPROM AT24C32

 Lưu trữ thông tin giờ phút giây AM/PM

 Lịch lưu trữ chính xác đến năm 2100

 Ngõ ra tần số 1HZ

2.7.3 Cấu trúc bộ nhớ DS1307:

DS1307 có cấu tạo bên trong bao gồm mạch nguồn, dao động, logic và con trỏ thanh ghi để thực hiện việc ghi đọc Trong các ứng dụng sử dụng DS1307 cho đồng hồ thời gian thực, chúng ta chỉ cần chú trọng đến việc ghi đọc các thanh ghi cần thiết như giây, phút, giờ thông qua giao thức I2C Bộ nhớ của DS1307 có tổng cộng 64 thanh ghi địa chỉ từ 0 đến 63, bắt đầu từ 0x00 đến 0x3F, nhưng chỉ có 8 thanh ghi đầu tiên là thanh ghi thời gian thực Do đó, chúng ta sẽ tìm hiểu sâu hơn về 8 thanh ghi này, bao gồm chức năng và địa chỉ của chúng.

Hình 2.9: Tổ chức bộ nhớ của DS1307

C HU ẨN I 2C

2.8.1 Giới thiệu: Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây đƣợc gọi là I2C I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit Đây là đường Bus giao tiếp giữa các IC với nhau

Bus I2C là một giao thức giao tiếp ngoại vi phổ biến, được sử dụng cho nhiều loại IC khác nhau, bao gồm các vi điều khiển như 8051, PIC, AVR và ARM Nó cũng hỗ trợ các chip nhớ như RAM tĩnh, EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự (DAC), cũng như các IC điều khiển LCD và LED.

Hình 2.13: Bus I2C và các thiết bị ngoại vi

Giao tiếp I2C bao gồm hai dây chính: Dữ liệu tuần tự (SDA) và Xung đồng hồ (SCL) Trong đó, SDA cho phép truyền dữ liệu theo hai hướng, trong khi SCL chỉ truyền xung đồng hồ theo một hướng.

Khi một thiết bị ngoại vi kết nối với đường bus I2C, chân SDA của thiết bị sẽ được nối với dây SDA của bus, trong khi chân SCL sẽ được kết nối với dây SCL.

Mỗi dây SDA và SCL trong giao thức I2C được kết nối với nguồn điện dương thông qua điện trở kéo lên (pullup resistor), điều này cần thiết do chân giao tiếp của các thiết bị ngoại vi thường là kiểu cực máng hở (opendrain hoặc opencollector) Giá trị của các điện trở này thay đổi tùy thuộc vào từng thiết bị và chuẩn giao tiếp, thường nằm trong khoảng từ 1K đến 4.7K Mỗi thiết bị có thể hoạt động như thiết bị nhận hoặc truyền dữ liệu, hoặc có thể thực hiện cả hai chức năng, tùy thuộc vào vai trò của nó là chủ (master) hay tớ (slave).

Hình ảnh trên cho thấy đồng hồ chỉ một chiều từ chủ đến tớ, trong khi luồng dữ liệu có thể di chuyển theo cả hai hướng: từ chủ đến tớ và ngược lại, từ tớ đến chủ.

Hình 2.14 : Cơ chế truyền nhận của I2C

G IAO TH ỨC TCP /IP

Bộ giao thức TCP/IP, hay còn gọi là bộ giao thức liên mạng, là một tập hợp các giao thức truyền thông cài đặt chồng giao thức, được sử dụng rộng rãi trên Internet và hầu hết các mạng máy tính thương mại Tên gọi của bộ giao thức này xuất phát từ hai giao thức chính là TCP (Giao thức Điều khiển Giao vận) và IP (Giao thức Liên mạng), cả hai đều là những giao thức đầu tiên được định nghĩa trong bộ giao thức này.

Bộ giao thức TCP/IP được cấu trúc thành nhiều tầng, mỗi tầng đảm nhiệm các vấn đề liên quan đến truyền dữ liệu và cung cấp dịch vụ rõ ràng cho các giao thức tầng trên, dựa vào các dịch vụ của các tầng thấp hơn Các tầng cao hơn gần gũi với người dùng hơn và làm việc với dữ liệu trừu tượng, phụ thuộc vào các giao thức tầng dưới để chuyển đổi dữ liệu thành các định dạng có thể truyền tải vật lý.

TCP/IP đƣợc xem nhƣ giản lƣợc của mô hình tham chiếu OSI với 4 tầng nhƣ sau:

 Tầng Liên Kết (Datalink Layer)

 Tầng Giao Vận (Transport Layer)

 Tầng Ứng Dụng (Application Layer)

Hình 2.15: Các tầng của mô hình TCP/IP

Tầng liên kết, hay còn gọi là tầng liên kết dữ liệu, là tầng thấp nhất trong mô hình TCP/IP, bao gồm các thiết bị giao tiếp mạng và chương trình cung cấp thông tin cần thiết để truy cập đường truyền vật lý Trong khi đó, tầng Internet, hay tầng Mạng, chịu trách nhiệm xử lý quá trình truyền gói tin trên mạng, với các giao thức quan trọng như IP (Internet Protocol), ICMP (Internet Control Message Protocol) và IGMP (Internet Group Message Protocol).

Tầng giao vận chịu trách nhiệm quản lý luồng dữ liệu giữa hai trạm, phục vụ cho các ứng dụng của tầng trên Hai giao thức chính được sử dụng trong tầng này là TCP (Transmission Control Protocol) và UDP (User Datagram Protocol).

TCP cung cấp một luồng dữ liệu tin cậy giữa hai trạm bằng cách chia nhỏ các gói tin ở tầng ứng dụng thành kích thước phù hợp cho tầng mạng Nó sử dụng cơ chế báo nhận gói tin và đặt thời gian timeout để đảm bảo bên nhận nắm rõ các gói tin đã được gửi đi Nhờ vào tính tin cậy mà TCP mang lại, tầng ứng dụng không cần phải lo lắng về việc quản lý gói tin.

UDP cung cấp một dịch vụ đơn giản cho tầng ứng dụng bằng cách gửi dữ liệu từ một trạm đến trạm khác mà không đảm bảo việc các gói tin đến đích Các cơ chế đảm bảo độ tin cậy được thực hiện bởi tầng ứng dụng phía trên.

Tầng ứng dụng trong mô hình TCP/IP là tầng cao nhất, bao gồm các tiến trình và ứng dụng giúp người dùng truy cập mạng Trong tầng này, có nhiều ứng dụng phổ biến như Telnet cho việc truy cập mạng từ xa, FTP (File Transport Protocol) để truyền tệp tin, dịch vụ email cho việc gửi thư tín điện tử, và WWW (World Wide Web) để duyệt web.

Khi truyền dữ liệu, quá trình diễn ra từ tầng cao xuống tầng thấp, trong đó thông tin điều khiển được thêm vào dữ liệu dưới dạng Header Ngược lại, khi nhận dữ liệu, quá trình diễn ra từ tầng thấp lên tầng cao, và mỗi tầng sẽ loại bỏ phần Header tương ứng Cuối cùng, khi dữ liệu đến tầng cao nhất, nó sẽ không còn phần Header.

Hình 2.16: Quá trình đóng mở gói dữ liệu trong TCP/IP

Cấu trúc dữ liệu trong TCP/IP được minh họa qua lược đồ ở Hình 2.17, cho thấy cách thức dữ liệu được truyền tải qua các tầng khác nhau Mỗi tầng sử dụng những thuật ngữ riêng để mô tả dữ liệu, phản ánh sự phân chia và chức năng của từng lớp trong mô hình TCP/IP.

 Trong tầng ứng dụng: dữ liệu là các luồng đƣợc gọi là stream

 Trong tầng giao vận: đơn vị dữ liệu mà TCP gửi xuống gọi là TCP segment

 Trong tầng mạng, dữ liệu mà IP gửi xuống tầng dưới gọi là IP Datagram

 Trong tầng liên kết, dữ liệu đƣợc truyền đi gọi là frame.

NGÔN NGỮ LẬP TRÌNH PHP

PHP là ngôn ngữ lập trình mã nguồn mở, chủ yếu được sử dụng để phát triển ứng dụng máy chủ Với khả năng nhúng dễ dàng vào trang HTML, PHP rất phù hợp cho phát triển web và phục vụ cho nhiều mục đích tổng quát.

Do đƣợc tối ƣu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống

PHP là một ngôn ngữ lập trình web phổ biến nhất thế giới, nhờ vào tính dễ học và thời gian phát triển sản phẩm ngắn hơn so với các ngôn ngữ như C và Java.

2.10.2 Phương thức GET trong PHP

Phương thức GET là cách gửi dữ liệu qua URL trên thanh địa chỉ trình duyệt Khi nhận được đường dẫn, server sẽ phân tích và trả về kết quả cho client Tất cả thông tin sau dấu hỏi (?) trong URL chính là dữ liệu mà client đã gửi.

Phương thức GET có các đặc điểm sau:

 Giới hạn gửi tối đa chỉ 1024 ký tự

 GET không thể gửi dữ liệu nhị phân, ví dụ nhƣ hình ảnh hoặc tài liệu word lên Server

 Dữ liệu gửi bởi phương thức GET có thể được truy cập bằng cách sử dụng biến môi trường QUERY_STRING

 PHP cung cấp mảng liên hợp $_GET để truy cập tất cả các thông tin đã được gửi bởi phương thức GET

2.10.3 Phương thức POST trong PHP

Phương thức POST truyền thông tin thông qua HTTP header Thông tin này đƣợc mã hóa và đặt vào một header đƣợc gọi là QUERY_STRING

Phương thức POST có các đặc điểm:

 Phương thức POST không có bất kì hạn chế nào về kích thước dữ liệu sẽ gửi

 Phương thức POST có thể sử dụng để gửi ASCII cũng như dữ liệu nhị phân

 Dữ liệu gửi bởi phương thức POST thông qua HTTP header, vì vậy việc bảo mật phụ thuộc vào giao thức HTTP

 PHP cung cấp mảng liên hợp $_POST để truy cập tất cả các thông tin được gửi bằng phương thức POST.

CƠ SỞ DỮ LIỆU MYSQL

MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất, nổi bật với tốc độ cao, tính ổn định và dễ sử dụng Hệ thống này hoạt động trên nhiều hệ điều hành và cung cấp nhiều hàm tiện ích mạnh mẽ Với khả năng bảo mật tốt, MySQL là lựa chọn lý tưởng cho các ứng dụng truy cập cơ sở dữ liệu qua internet Người dùng có thể tải MySQL miễn phí từ trang chủ, với các phiên bản tương thích cho Windows, Linux, Mac OS X, Unix và nhiều hệ điều hành khác.

MySQL là một hệ quản trị cơ sở dữ liệu quan hệ phổ biến, sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để quản lý và thao tác dữ liệu hiệu quả.

MySQL hỗ trợ các ngôn ngữ lập trình như PHP, Perl và nhiều ngôn ngữ khác, đóng vai trò là nơi lưu trữ thông tin cho các trang web được phát triển bằng PHP hoặc Perl SQL, theo tiêu chuẩn của ANSI (Viện tiêu chuẩn quốc gia Hoa Kỳ), quy định cách truy xuất dữ liệu từ các hệ thống cơ sở dữ liệu Các câu lệnh SQL được sử dụng để truy vấn và cập nhật dữ liệu trong cơ sở dữ liệu.

SQL hoạt động với hầu hết các chương trình CSDL như: MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase v.v

NỀN TẢNG ANDROID

Android là hệ điều hành di động của Google, hiện đang chiếm gần 80% thị phần trên thị trường di động Nền tảng này có mặt trên nhiều sản phẩm từ phân khúc bình dân đến cao cấp Với ưu điểm mã nguồn mở và sự đa dạng về thiết bị, Android thu hút nhiều lập trình viên tham gia phát triển.

2.12.2 Lập trình Andriod: Để hỗ trợ tối đa cho lập trình viên, Google đã phát hành ứng dụng Android Studio Đây là một ứng dụng giúp việc lập trình cho Android trở nên dễ dàng và thân thiện hơn với vô số hàm và thƣ viện mà Google cung cấp

Android Studio sử dụng ngôn ngữ Java để lập trình và ngôn ngữ XML để thiết kế giao diện, tạo điều kiện thuận lợi cho người dùng tiếp cận và phát triển ứng dụng trên nền tảng Android.

THIẾT KẾ HỆ THỐNG

YÊU CẦU HỆ THỐNG

Xây dựng hệ thống có thể giúp chủ trang trạng quản lí trang trại 1 cách hiệu quả hơn

Hệ thống cho phép người dùng nhập dữ liệu về việc xuất nhập chuồng cho vật nuôi qua điện thoại, sử dụng cơ sở dữ liệu MySQL để lưu trữ thông tin Dữ liệu được nhập từ điện thoại sẽ được truyền lên máy chủ web qua mạng wifi.

Người dùng có thể theo dõi thông số cảm biến trong hệ thống thông qua máy tính hoặc điện thoại Ngoài ra, từ các thiết bị này, người dùng cũng có khả năng điều khiển các thiết bị trong hệ thống một cách dễ dàng.

THIẾT KẾ HỆ THỐNG

Hình 3.1: Mô hình hệ thống quản lý nông trại Hình 3.1 mô tả hệ thống quản lí nông trại quản lý nông trại gồm 3 phần chính:

Phần cứng của dự án bao gồm board NodeMCU ESP8266, cảm biến nhiệt độ và độ ẩm DHT11, cảm biến ánh sáng BH1750, cảm biến thời gian thực DS1307, cùng với màn hình LCD để hiển thị các thông tin cần thiết.

Phần 2: Ứng dụng trên điện thoại Android cho phép thu thập dữ liệu người dùng, xử lý thông tin và truyền tải lên web server Ngoài ra, ứng dụng còn hỗ trợ điều khiển thiết bị và theo dõi các thông số cảm biến một cách hiệu quả.

Web server trên máy tính nhận và hiển thị dữ liệu người dùng nhập từ điện thoại, cùng với thông số cảm biến Tất cả thông tin này được lưu trữ trong cơ sở dữ liệu MySQL, giúp người dùng dễ dàng theo dõi và quản lý.

THIẾT KẾ PHẦN CỨNG

Sơ đồ khối hệ thống được mô tả cụ thể thông qua hình dưới:

Hình 3.2: Sơ đồ khối của hệ thống Chức năng từng khối:

 Smart Farm Systerm : Đọc dữ liệu cảm biến xử lí rồi gửi dữ liệu lên web và nhận giá trị điều khiển

 Khối giao tiếp: kết nối vào mạng wifi rồi giao tiếp với web kết nối tới server

Khối cảm biến bao gồm cảm biến DHT11 để thu thập dữ liệu về nhiệt độ và độ ẩm, cảm biến ánh sáng BH1750 để thu thập thông tin về ánh sáng, cùng với cảm biến thời gian thực DS1307 gửi dữ liệu đến NodeMCU ESP8266 để xử lý.

 Khối hiển thị: bao gồm LCD20x4 giao tiếp với khối NodeMCU ESP8266 thông qua LMC1602 theo chuẩn I2C, có chức năng hiển thị các thông tin cần thiết

 Khối cơ cấu chấp hành: bao gồm các thiết bị đèn, quạt, máy bơm

 Khối nguồn: cung cấp nguồn điện 5V, 2A cho khối NodeMCU ESP8266, khối NodeMCU ESP8266sẽ cung cấp dòng điện cho các

25 thiết bị nhƣ DHT11 (3.3V), LCD hiển thị dùng nguồn nuôi 5V, nguồn nuôi relay 5V, cung cấp nguồn 12V, 2A cho các thiết bị trong khối thực thi

Các cảm biến được kết nối với kit theo sơ đồ dưới:

Cảm biến DHT11 được kết nối với chân D3 của kit thông qua chân data (chân 2) Đồng thời, cảm biến ánh sáng BH1750 và cảm biến thời gian thực DS1307 cũng được kết nối với kit qua giao thức I2C, trong đó chân SCL (D1) được nối với chân SCL của cả hai cảm biến và chân SDA được kết nối tương tự.

Nhóm dùng màn hình LCD 20x4 để hiển thị thông tin và đƣợc kết nối nhƣ sau:

Khối hiển thị sử dụng module I2C để tối ưu hóa số lượng chân kết nối, giúp tiết kiệm tài nguyên cho kit Nhờ vào việc giảm thiểu số chân sử dụng, chúng ta có thể phát triển thêm nhiều ứng dụng cần thiết từ những chân tiết kiệm được.

3.3.2.3 Khối nguồn và khối cơ cấu chấp hành

Các thiết bị trong mạch được kết nối theo hình dưới:

Hình 3.5: Sơ đồ kết nối khối nguồn và khối thực thi

Khối thực thi bao gồm 3 thiết bị dùng nguồn 12V 2A, nên nhóm dùng 3 relay 5V kích ở mức thấp để không làm cháy kit

3.3.3 Sơ đồ nguyên lí hệ thống

Các module và thiết bị có trong hệ thống đƣợc kết nối nhƣ hình sau:

Hình 3.6: Sơ đồ nguyên lí toàn hệ thống

THIẾT KẾ PHẦN MỀM

3.4.1 Chức năng hoạt động của phần mềm

Phần mềm đƣợc thiết kế gồm 3 phần chính :

NodeMCU ESP8266 hoạt động chủ yếu để nhận dữ liệu từ người dùng, bao gồm việc bật tắt thiết bị và hẹn giờ, đồng thời tiếp nhận tín hiệu từ các cảm biến để xử lý và gửi thông tin lên web server.

 Hoạt động trên web server có chức năng nhận thông tin từ kit, điện thoại sau đó phản hồi lại kit

 Hoạt động trên điện thoại có chức năng nhập xuất thông tin của người dùng, bật tắt thiết bị, theo dõi thông số cảm biến

3.4.2.1 Lưu đồ giải thuật trên NodeMCU ESP8266

Hoạt động của kit sẽ chạy theo sơ đồ tổng quan nhƣ sau:

Sau khi khởi tạo các biến, kit sẽ thực hiện chương trình Setup để kết nối wifi Khi kết nối thành công, kit sẽ hiển thị thông tin dự án lên màn hình LCD và sau đó tiếp tục chạy chương trình loop.

Chương trình loop có nhiệm vụ kết nối với web server; sau khi kết nối thành công, nó sẽ thực thi các chương trình con như readSensor, sentData, readDS1307 và Control.

Chương trình con readSenSor có khả năng đọc dữ liệu từ các cảm biến ánh sáng, nhiệt độ và độ ẩm, sau đó hiển thị thông tin này trên màn hình LCD, được thực hiện theo lưu đồ đã cung cấp.

Hình 3.8: Lưu đồ giải thuật chương trình con readSenSor

Sau khi thu thập dữ liệu từ các cảm biến, chương trình con sentData sẽ thực hiện việc truyền thông tin lên máy chủ web Quá trình truyền thông tin được thực hiện theo lưu đồ đã được mô tả bên dưới.

Chương trình con sentData() gửi thông tin lên server và chờ phản hồi Sau khi nhận thông tin hồi đáp, dữ liệu sẽ được xử lý bằng hàm xuly_dlweb(), theo sơ đồ trình bày bên dưới.

Hình 3.10: Lưu đồ giải thuật chương trình con xuli_dlweb

Sau khi nhận dữ liệu phản hồi từ máy chủ web, bao gồm chế độ, trạng thái hoạt động của thiết bị và thời gian hẹn, hàm con control() sẽ tìm kiếm và trả về giá trị các biến, từ đó thực hiện yêu cầu của người dùng Quá trình thực hiện được minh họa qua lưu đồ dưới đây.

Hình 3.11: Lưu đồ giải thuật chương trình con control

3.4.3 Lưu đồ giải thuật trên web server

Nhằm tăng cường sự tương tác của người dùng trên môi trường web, nhóm đã phát triển một trang web với giao diện thân thiện, giúp người dùng dễ dàng điều hướng và tương tác.

34 khiển thiết bị bằng một trình duyệt web bất kỳ, web gồm 1 số chức năng cơ bản nhƣ sau:

 Cập nhập nhiệt độ, độ ẩm, ánh sáng theo thời gian thực

 Giao diện bật tắt các thiết bị

 Hẹn giờ hoạt động cho máy bơm ở mode auto

Máy chủ chịu trách nhiệm tiếp nhận dữ liệu từ bảng điều khiển trung tâm và các nền tảng tương tác khác như điện thoại Hoạt động của máy chủ web được thực hiện theo lưu đồ đã được xây dựng dưới đây.

Web server không chỉ nhận dữ liệu từ kit mà còn tiếp nhận thông tin do người dùng nhập trên thiết bị di động Quá trình nhận dữ liệu từ điện thoại được mô tả qua lưu đồ dưới đây.

Hình 3.13: Lưu đồ giải thuật hoạt động giữa web và thiết bị di động

3.4.4 Lưu đồ giải thuật trên thiết bị di động

Với mục đích tạo ra môt ứng dụng di động với các chức năng cơ bản sau:

 Cập nhập nhiệt độ, độ ẩm, ánh sáng theo thời gian thực

 Giao diện bật tắt các thiết bị

 Hẹn giờ hoạt động cho máy bơm ở mode auto

 Nhập thông tin của vật nuôi khi nhập nuôi Dưới đây lưu đồ hoạt động trên ứng dụng di động:

Để phát triển một ứng dụng Android thân thiện với người dùng, nhóm thiết kế đã xây dựng cấu trúc giao diện như hình 3.15.

Hình 3.15: Giao điện trên ứng dụng di động Khi người dùng nhấn nút “Cập nhập” thì sẽ theo dõi được thông số cảm biến

Khi người dùng nhấn nút “Điều khiển thiết bị”, họ sẽ được chuyển đến giao diện điều khiển, nơi mà họ có thể dễ dàng bật tắt các thiết bị.

Khi người dùng nhấn nút “Nhập dữ liệu”, họ sẽ được chuyển đến giao diện nhập thông tin, nơi có thể điền các thông số cơ bản về vật nuôi.

Khi người dùng nhấn nút “Hẹn giờ” thì sẽ chuyển đến giao diện hẹn giờ, từ đó người dùng có thể hẹn giờ bật máy bơm ở chế độ auto

KẾT QUẢ

KẾT QUẢ MÔ HÌNH THI CÔNG

4.1.1 Hình thực tế Wed Server và ứng dụng di động:

Giao diện của wed server đươc nhóm thiết kế theo hình bên dưới:

Hình 4.1: Giao diện của wed server Để thực hiện các tác vụ trên wed server người dùng phải đăng nhập vào hệ thống:

Sau khi người dùng đăng nhập vào hệ thống, họ có thể theo dõi thông số cảm biến tại địa chỉ http://farmdyu.96.lt/hienthi.php Tại đây, người dùng cũng có khả năng chọn chế độ hoạt động cho hệ thống.

Trong chế độ Manual, người dùng có khả năng điều khiển việc bật tắt các thiết bị một cách linh hoạt Giao diện trang điều khiển được thiết kế trực quan, giúp người dùng dễ dàng thao tác.

Hình 4.4: Giao diện trang điều khiển

Trên web người dùng có thể thông kế được nhưng thông số người dùng đã nhập từ điện thoại qua địa chỉ http://farmdyu.96.lt/datalog.php :

Ứng dụng di động không chỉ hỗ trợ người dùng nhập dữ liệu khi nhập hàng mà còn cho phép điều khiển bật tắt các thiết bị một cách dễ dàng.

Hình 4.6: Giao diện ứng dụng trên điện thoại

4.1.2 Hình ảnh thực tế phần cứng

Mô hình board thực tế được thể hiện bên dưới

Hình 4.7: Mô hình thực tế của phần cứng

Mô hình bao gồm một màn hình LCD 20x4 kết nối với LMC1602 qua giao tiếp I2C, cảm biến DHT1, cảm biến ánh sáng BH1750, đèn và quạt Board NodeMCU ESP8266 được tích hợp với 3 relay 5V, cảm biến thời gian thực DS1307 và nguồn 12V, 2A, tất cả được lắp đặt gọn gàng trong hộp bên dưới.

H OạT ĐộNG CủA Hệ THốNG

Sau khi cấp nguồn cho hệ thống, người dùng có thể điều khiển các thiết bị từ máy tính qua web server hoặc qua ứng dụng di động Đồng thời, hệ thống cũng cập nhật thông tin lên web server để người dùng theo dõi dễ dàng.

Hình 4.8: Bật tắt đèn bằng nút nhấn trên wed, ứng dụng di động

Màn hình LCD hiển thị thông tin quan trọng như các thông số ánh sáng ở dòng 1, độ ẩm và nhiệt độ ở dòng 2, thời gian thực tế ở dòng 3, và thời gian kích hoạt máy bơm trong chế độ tự động ở dòng 4.

44 Hình 4.9: Màn hình LCD hiển thị thông tin ở chế độ Automatic

Ngày đăng: 29/11/2021, 10:37

HÌNH ẢNH LIÊN QUAN

2.1.2  Sơ đồ kết nối của NodeMCU ESP 8266. - Thiết kế hệ thống quản lý nông trại
2.1.2 Sơ đồ kết nối của NodeMCU ESP 8266 (Trang 15)
Hình 2. 4: Sơ đồ chân kết nối LCD 20x4 - Thiết kế hệ thống quản lý nông trại
Hình 2. 4: Sơ đồ chân kết nối LCD 20x4 (Trang 17)
Hình 2. 5: Module DHT11 tích hợp với 3 chân kết nối - Thiết kế hệ thống quản lý nông trại
Hình 2. 5: Module DHT11 tích hợp với 3 chân kết nối (Trang 18)
Hình 2.13: Bus I2C và các thiết bị ngoại vi - Thiết kế hệ thống quản lý nông trại
Hình 2.13 Bus I2C và các thiết bị ngoại vi (Trang 23)
Hình 2.14 : Cơ chế truyền nhận của I2C - Thiết kế hệ thống quản lý nông trại
Hình 2.14 Cơ chế truyền nhận của I2C (Trang 24)
Hình 2.15: Các tầng của mô hình TCP/IP - Thiết kế hệ thống quản lý nông trại
Hình 2.15 Các tầng của mô hình TCP/IP (Trang 25)
Hình 2.16: Quá trình đóng mở gói dữ liệu trong TCP/IP - Thiết kế hệ thống quản lý nông trại
Hình 2.16 Quá trình đóng mở gói dữ liệu trong TCP/IP (Trang 26)
Hình 2.17: Cấu trúc dữ liệu trong TCP/IP  Hình trên cho ta thấy lƣợc đồ dữ liệu qua các tầng - Thiết kế hệ thống quản lý nông trại
Hình 2.17 Cấu trúc dữ liệu trong TCP/IP Hình trên cho ta thấy lƣợc đồ dữ liệu qua các tầng (Trang 27)
Hình 2.18: Smartphone Android - Thiết kế hệ thống quản lý nông trại
Hình 2.18 Smartphone Android (Trang 30)
Hình 2.19: Android Studio. - Thiết kế hệ thống quản lý nông trại
Hình 2.19 Android Studio (Trang 31)
Hình 3.1: Mô hình hệ thống quản lý nông trại  Hình  3.1  mô  tả  hệ  thống  quản  lí  nông  trại  quản  lý  nông  trại  gồm  3  phần  chính: - Thiết kế hệ thống quản lý nông trại
Hình 3.1 Mô hình hệ thống quản lý nông trại Hình 3.1 mô tả hệ thống quản lí nông trại quản lý nông trại gồm 3 phần chính: (Trang 33)
3.3.1  Sơ đồ khối - Thiết kế hệ thống quản lý nông trại
3.3.1 Sơ đồ khối (Trang 34)
Hình 3.3: Sơ đồ kết nối khối cảm biến  DHT11 dùng chân 2 làm chân data nên ta kết nối chân 2 với chân D3 của kit - Thiết kế hệ thống quản lý nông trại
Hình 3.3 Sơ đồ kết nối khối cảm biến DHT11 dùng chân 2 làm chân data nên ta kết nối chân 2 với chân D3 của kit (Trang 35)
3.3.3  Sơ đồ nguyên lí hệ thống - Thiết kế hệ thống quản lý nông trại
3.3.3 Sơ đồ nguyên lí hệ thống (Trang 37)
Hình 3.7: Lưu đồ giải thuật chương trình trên kit    Sau khi khởi tao các biến kit sẽ chạy chương trình Setup sau đó chạy liên  tực chương trình loop - Thiết kế hệ thống quản lý nông trại
Hình 3.7 Lưu đồ giải thuật chương trình trên kit Sau khi khởi tao các biến kit sẽ chạy chương trình Setup sau đó chạy liên tực chương trình loop (Trang 39)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w