You are on page 1of 12

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

Vật Lý Cho Công Nghệ Thông Tin


Báo cáo đồ án cuối kì
Hệ thống tưới nước tự động dựa trên độ ẩm đất
Lớp học phần: PHY00007_21CLC06
Nhóm: 10
21127459 - Nguyễn Thị Phương Trinh
21127385 - Phạm Uyễn Nhi
21127653 - Nguyễn Hoàng Đức Nguyên
Giảng viên hướng dẫn: Cao Xuân Nam
Đặng Hoài Thương
Mục lục
1 Thông tin thành viên và vai trò ..................................................................................................... 3
Bảng phân công công việc ....................................................................................................................... 3
2 Phần cứng ...................................................................................................................................... 4
2.1 Sơ đồ mạch điện ................................................................................................................... 4
2.2 Chức năng phần cứng: .......................................................................................................... 5
3 Website .......................................................................................................................................... 5
4 Thiết kế 3D bên ngoài sản phẩm ................................................................................................... 7
5 Thiết kế 3D bên trong sản phẩm ................................................................................................. 10
6 Sơ đồ truyền nhận dữ liệu .......................................................................................................... 11
1 Thông tin thành viên và vai trò
Mã số nhóm MSSV Họ tên Vai trò

21127459 Nguyễn Thị Phương Trinh Thành viên


10 21127385 Phạm Uyễn Nhi Thành viên
21127653 Nguyễn Hoàng Đức Nguyên Nhóm trưởng

Bảng phân công công việc


Tuần Ngày bắt đầu Ngày kết thúc Công việc Phân công Tỷ lệ hoàn
thành
8 15/11/2023 15/11/2023 Vấn đáp proposal Cả nhóm 100%
16/11/2023 16/11/2023 Mua linh kiện Cả nhóm 100%
16/11/2023 18/11/2023 Thiết kế sản phẩm, cấp Nguyễn Hoàng 100%
nguồn cho mạch Đức Nguyên
arduino, thiết kế mạch
điện
9 23/11/2023 25/11/2023 Lập trình relay để bơm Nguyễn Hoàng 100%
nước và relay Đức Nguyên
26/11/2023 29/11/2023 Lập trình kết nối với Phạm Uyễn Nhi 100%
ESP8266, thiết lập wifi

26/11/2023 29/11/2023 Lập trình kết nối với Nguyễn Thị 100%
giao thức MQTT Phương Trinh,
Phạm Uyễn Nhi
10 30/11/2023 2/12/2023 Thiết kế vỏ của sản Phạm Uyễn Nhi 100%
phẩm, thiết kế bên
trong sản phẩm
3/12/2023 5/12/2023 Thiết kế giao diện Nguyễn Thị 100%
website Phương Trinh
5/12/2023 7/12/2023 Thông báo cho người Nguyễn Thị 100%
dùng Phương Trinh
7/12/2023 9/12/2023 Lập trình vòng loop, Nguyễn Hoàng 100%
chế độ đèn led, nhận Đức Nguyên
dữ liệu mqtt từ web
gửi về để xử lý cảm
biến
11 9/12/2023 10/12/2023 Hoàn thiện sản phẩm, Cả nhóm 100%
kiểm tra các chức năng
10/12/2023 12/12/2023 Báo cáo Nguyễn Thị 100%
Phương Trinh

2 Phần cứng
2.1 Sơ đồ mạch điện

Hình 1. Sơ đồ mạch điện


Mô tả sơ lược:
- Nguồn: Chân âm của nguồn nối với chân dương của máy bơm, chân dương nối với
chân COM của relay.
- Máy bơm: Chân âm nối với chân NO của relay, chân dương nối với chân âm của
nguồn.
- Relay: Chân COM nối với chân dương của nguồn, chân NO nối với chân âm của
máy bơm, chân tín hiệu nối vào D2 của mạch NodeMCU.
- Led: Nối vào các chân D5, D6, D7 của NodeMCU theo thứ tự xanh lá, vàng, đỏ.
- Cảm biến độ ẩm đất: Chân analog nối vào chân A0 của NodeMCU
2.2 Chức năng phần cứng:
- Cảm biến độ ẩm đất cắm vào phần đất trồng, cảm biến sẽ đo được các giá trị từ 0
đến 1023, ta cần chuyển đổi sang % bằng cách dùng map(0, 100, 0, 1023), sau đó
lấy 100 trừ đi cho giá trị đã tính được, chúng ta sẽ có được độ ẩm đo được tính
theo phần trăm.
- Độ ẩm đo được sẽ được sử dụng để thực hiện tiếp cho chức năng bật đèn led.
- Khi độ ẩm cao hơn mức cảnh báo warningMoisture (mức độ thấp nhất mà chúng
ta muốn thiết bị sẽ thông báo cho chúng ta khi độ ẩm đo được thấp hơn giá trị
này. Giá trị mặc định sẽ là 30 khi chạy chương trình, sau đó ta có thể điều khiển
trên web để thay đổi giá trị này) thì đèn led xanh sẽ sáng, báo hiệu độ ẩm ở mức
ổn định và không cần tưới nước.
- Khi độ ẩm thấp hơn mức cảnh báo, nhưng lớn hơn warningMoisture – 5, thì đèn
led vàng sẽ sáng, báo hiệu độ ẩm đang thấp và cần phải chú ý.
- Khi độ ẩm thấp hơn cả warningMoisture – 5, đèn led đỏ sẽ sáng báo hiệu đất
đang quá khô và gây nguy hiểm cho cây trồng, cần tưới nước ngay. Lúc này, nếu
chế độ tưới nước là “auto” thì thiết bị sẽ thực hiện digitalWrite(relay, HIGH) để
đóng relay, tạo thành mạch kín và máy bơm sẽ hoạt động.
- Ngược lại, nếu đang ở chế độ “manual” thì thiết bị sẽ không tưới nước và nếu
chúng ta kích hoạt nút Watering trên web thì máy bơm mới hoạt động, bất kể
đất đang trong tình trạng nào.
- Vì chân được nối với máy bơm là chân NO (thường mở) nên khi được kích hoạt,
relay sẽ đóng và cho phép dòng điện từ nguồn đi qua và chạy đến máy bơm.

3 Website

Hình 2. Giao diện đăng nhập của website


- Ở phần đăng nhập, ta cần phải nhập đúng username và password thì ta sẽ được
đưa đến trang Home, là trang chủ của website, và sẽ có thông báo đăng nhập
thành công. Ngược lại, nếu sai username hoặc password, hệ thống sẽ thông báo
đăng nhập thất bại, ta sẽ phải đăng nhập lại.

Hình 3. Giao diện trang chủ

- Thiết bị gửi giá trị cảm biến đo được lên MQTT server thông qua topic
21127653/out, mỗi lần đo, gửi cách nhau 1s, website sẽ lấy dữ liệu thông qua
node “mqtt in” từ topic đó bằng cách subscribe, sau đó sử dụng các dữ liệu nhận
được cho các chức năng tiếp theo.
- Đầu tiên, từ trái sang, ta sẽ thấy một biểu đồ Gauge dạng Donut. Biểu đồ này
hiển thị giá trị độ ẩm đang đo được, màu của vòng tròn thể hiện các mức độ của
độ ẩm:
o Xanh lá: Từ 100 về 31, là độ ẩm ổn định hoặc tạm ổn định của đất,
o Vàng: Từ 30 về 25, là độ ẩm đang thiếu dần và đất đang trở nên khô hơn.
o Đỏ: Từ 24 về 0, là đất đang rất khô và rất thiếu nước, gây nguy hiểm cho
cây trồng nên cần được tưới nước ngay.
- Tiếp theo, biểu đồ Last Measuring ghi nhận các điểm dữ liệu đo được trong thời
gian mỗi 1s vừa qua, và sau đó vẽ thành một biều đồ đường thể hiện độ ẩm theo
thời gian.
- Biều đồ Last data from cloud lấy dữ liệu được lưu từ các lần đo trước trên
Thingspeak về, và sau đó vẽ thành một biểu đồ đường tương tự biểu đồ Last
Measuring
- Current moisture là một node UI để thể hiện độ ẩm hiện tại dưới dạng text
- Nút điều chỉnh số Minimum Moisture được tạo ra từ node UI “Numeric”, nút này
có tác dụng điều chỉnh độ ẩm thấp nhất có thể chấp nhận được theo ý chúng ta,
nhỏ nhất là 0, lớn nhất là 100, bước điều chỉnh là 10. Sau đó, giá trị nhận được sẽ
được gửi lên topic 21127653/limit, thiết bị sẽ lấy giá trị đó về bằng cách
subscribe topic trên, sau đó lưu vào biến warningMoisture để sử dụng.
- Công tắc Auto được tạo bằng cách sử dụng node “Switch”, công tắc sẽ được lưu
2 trạng thái là “auto” và “manual” tương ứng với “on” và “off”. Các trạng thái đó
là chế độ tưới nước cho cây, “auto” là tự động và “manual” là thủ công. Sau khi
được điều chỉnh, trạng thái của công tắc sẽ được gửi lên topic 21127653/switch,
thiết bị sẽ lấy trạng thái đó và lưu vào biến isAuto để sử dụng cho việc tưới nước.
- Công tắc Watering có 2 trạng thái là “Watering” và “Stop” tương ứng với “on” và
“off”. Trạng thái của công tắc sẽ được gửi lên topic 21127653/button, sau đó
được thiết bị lấy về và lưu vào biến isWatering. Lưu ý rằng chức năng này chỉ
hoạt động khi chế độ tưới nước đang là “Manual”.
- Cuối cùng là đèn Led trên dashboard của web, sử dụng node UI “Led”. Đèn led
này sẽ hiển thị tương ứng với đèn led của thiết bị, thiết bị sẽ gửi trạng thái báo
hiệu led nào đang sáng lên topic 21127653/ledColor, sau đó web sẽ lấy trạng thái
đó về và gửi đến node Led để hiển thị trên dashboard.

4 Thiết kế 3D bên ngoài sản phẩm


5 Thiết kế 3D bên trong sản phẩm
6 Sơ đồ truyền nhận dữ liệu

Hình 4. Sơ đồ truyền nhận dữ liệu


- Các dữ liệu được truyền nhận giữa thiết bị và web thông qua mqtt đã mô tả như
trên.
- Dữ liệu website gửi lên cloud là độ ẩm đo được lấy từ topic 21127653/out, sau
đó tiếp tục gửi lên Thingspeak thông qua node “https request” bằng API key, và
lưu vào field 1 trong channel He Thong Tuoi Nuoc, mỗi lần gửi cách nhau 10s
bằng node “delay”.
- Khi thực hiện đăng nhập, Website sẽ lấy dữ liệu username và password lưu trên
Thingspeak để kiểm tra xem người dùng nhập đúng không, nếu đúng thì đăng
nhập thành công, nếu sai thì đăng nhập thất bại.
- Thiết bị gửi request thông báo cho IFTTT khi xảy ra điều kiện độ ẩm đất quá thấp,
sau đó IFTTT sẽ gửi thông báo có nội dung “Soil moisture is too low, please water
the plant” về điện thoại của người dùng

You might also like