Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
675,23 KB
Nội dung
ĐẠ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 Công việc Phân công Tỷ lệ hoàn thành Tuần Ngày bắt đầu Ngày kết thúc 100% 100% 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 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 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, 100% Phạm Uyễn Nhi 100% 100% 10 30/11/2023 2/12/2023 Thiết kế vỏ của sản Phạm Uyễn Nhi 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ị website Phương Trinh 5/12/2023 7/12/2023 Thông báo cho người Nguyễn Thị 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 100% gửi về để xử lý cảm 100% biến 11 9/12/2023 10/12/2023 Hoàn thiện sản phẩm, Cả nhóm kiểm tra các chức năng 10/12/2023 12/12/2023 Báo cáo Nguyễn Thị 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