Tải bản đầy đủ (.docx) (43 trang)

(Đồ án tốt nghiệp) giải pháp IOT cho vườn rau thông minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.61 MB, 43 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI
HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ
CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ KỸ THUẬT MÁY TÍNH

GIẢI PHÁP IOT
CHO VUỜN RAU THƠNG MINH

GVHD: ÐẬU TRỌNG HIỂN
SVTH: BÙI TRẦN ÐỨC TRÍ
MSSV: 12119149

SKL005467

Tp. Hồ Chí Minh, tháng 01/2019


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO

ĐỒ ÁN TỐT NGHIỆP

GIẢI PHÁP IOT
CHO VƯỜN RAU THƠNG MINH

SVTH: Bùi Trần Đức Trí
MSSV: 12119149
Khóa: 2012
Ngành: CƠNG NGHỆ KỸ THUẬT MÁY TÍNH


GVHD: ThS. ĐẬU TRỌNG HIỂN

TP. Hồ Chí Minh, tháng 1 năm 2019


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
NAM
Độc lập – Tự do – Hạnh phúc
----***---Tp. Hồ Chí Minh, ngày--- tháng--- năm 2019

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ và tên sinh viên: Bùi Trần Đức Trí
Ngành: Cơng Nghệ Kỹ Thuật Máy Tính
Giảng viên hướng dẫn: ThS. Đậu Trọng Hiển
Ngày nhâ ̣n đề tài: 20/9/2018

1. Tên đề tài: Giải pháp IOT cho vườn rau thông
minh.
2. Các số liệu, tài liệu ban đầu: Ý tưởng thiết kế
mơ hình vườn rau thủy canh cho gia đình.
3. Nội dung thực hiêṇ đề tài: Thiết kế hệ thống
vườn rau thông minh, sử dụng cảm biến nhiệt độ, độ
ẩm để theo dõi thông tin môi trường cùng hệ thống
thủy canh và phun sương điều khiển qua điện thoại
thông minh.
4. Sản phẩm: Hệ thống vườn rau thủy canh thông
minh điều khiển và giám sát qua ứng dụng di động
(Android) sử dụng năng lượng mặt trời


TRƯỞNG NGÀNH

GIẢNG VIÊN HƯỚNG DẪN

i


CHƯƠNG 1

GIỚI THIỆU

1.1 Tình hình nghiên cứu hiện nay.
Vài năm trở lại đây, với sự phát triển tột bậc của mạng di động và các dịch
vụ viễn thông, điều khiển thiết bị từ xa trở thành xu hướng chủ đạo của các hãng
công nghệ cao. Từ những thiết bị được lắp đặt phục vụ chuyên dụng đến những
thiết bị phục vụ mục đích dân dụng. Việc điều khiển, quản lý các thiết bị trong
đời sống và đặc biệt là phục vụ, nâng cao chất lượng cuộc sống, thay thế sức lao
động của con người là hết sức quan trọng. Điều đó hướng con người tới một cuộc
sống hiện đại hơn với hệ thống IoT.
Hơn thế nữa, với việc thiết kế một hệ thống vườn rau thông minh sẽ giúp
cho con người có thể tưới nước, giám sát độ ẩm và nhiệt độ của vườn rau ở bất kỳ
nơi đâu.
Đồ án “Giải pháp IoT cho vườn rau thông minh” được xây dựng trên hệ
thống nhúng sử dụng nguồn năng lượng xanh, giao tiếp với con người thông qua
ứng dụng của điện thoại thơng minh.

1.2 Tính cấp thiết của đề tài
Đồ án “Giải pháp IoT cho vườn rau thông minh” hướng đến mục tiêu thiết
kế ra một vườn rau cho nhà ở, chung cư, văn phịng có diện tích khơng gian nhỏ
hẹp như ban công, sân, vườn. Hệ thống hoạt động tự động theo điều kiện thời

gian, nhiệt độ và độ ẩm của mơi trường, đồng thời hệ thống cũng có thể hoạt
động thông qua điều khiển của người sử dụng. Các thông số môi trường và trạng
1


thái hoạt động của hệ thống thủy canh, bơm nước sẽ được thể hiện trên điện thoại
thông minh. Bên cạnh đó, hệ thống hướng tới mục tiêu sử dụng nguồn năng
lượng xanh, tận dụng tính chất khí hậu Việt Nam là vùng nhiệt đới với thời lượng
chiếu sáng cao, song song với đó mang đến cho người sử dụng cơ hội tạo ra
nguồn thực phẩm hữu cơ tự nhiên, đảm bảo vệ sinh, tốt cho sức khỏe. Vấn nạn về
an tồn thực phẩm đang rất được quan tâm. Chính vì thế đồ án mong muốn có thể
sẽ linh hoạt hơn trong việc ứng dụng hệ thống thủy canh thông minh nhằm phát
triển một vườn rau sạch trong các hộ gia đình.

1.3 Mục tiêu nghiên cứu
Xây dựng hệ thống vườn rau thông minh:
- Giao tiếp với người sử dụng qua ứng dụng trên điện thoại thông minh
(Android)
-

Công suất máy bơm nước là 12V/20W, hệ thống dùng 1 máy bơm nước

dùng làm hệ thống thủy canh.
-

Công suất máy bơm phun sương là 12V/24W, hệ thống dùng 1 máy bơm

phun sương.
- Hệ thống sử dụng 1 cảm biến tích hợp nhiệt độ và độ ẩm môi trường.
- Hệ thống sử dụng 1 module Wifi để làm giao thức truyền nhận dữ liệu.

- Truyền nhận dữ liệu giữa điện thoại và kit nhúng phụ thuộc vào hệ thống
server ThingSpeak.

1.4 Nhiệm vụ nghiên cứu
NỘI DUNG 1: Các giải pháp thiết kế hệ thống, mơ hình thủy canh
NỘI DUNG 2: Thiết kế mơ hình
NỘI DUNG 3: Thiết kế hệ thống điều khiển.
NỘI DUNG 4: Thiết kế hệ thống thu thập dữ liệu.
NỘI DUNG 5: Thiết kế ứng dụng android.
NỘI DUNG 6: Đánh giá kết quả thực hiện

2


1.5 Đối tượng và phạm vi nghiên cứu
Trong quá trình nghiên cứu, sinh viên đã xác định đối tượng, phạm vi
nhằm hiểu rõ và nắm vững yêu cầu đặt ra của đề tài. Qua đó có hướng đi hợp lý
để hoàn thành đề tài phù hợp với mục tiêu đề ra, theo kịp tiến độ yêu cầu.
- Đối tượng: vi điều khiển arduino uno r3, cảm biến tích hợp nhiệt độ độ ẩm, relay, động cơ máy bơm, hệ thống năng lượng mặt trời.
-

Phạm vi nghiên cứu: ngôn ngữ lập trình trên vi điều khiển arduino

, xuất nhập trên các port I/O của vi điều khiển arduino, sử dụng cảm
biến nhiệt độ - độ ẩm, các động cơ máy bơm để thiết kế hệ thống thủy
canh và phun sương, lập trình ứng dụng Android cho điện thoại thơng
minh.

3



CHƯƠNG 2

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

2.1 Sơ đồ khối hệ thống
Yêu cẩu của hệ thống là:
-

Thu thập nhiệt độ.

-

Thu thập độ ẩm.

Điều khiển module ESP8266 gửi và nhận dữ liệu nhằm
theo dõi
điều kiện thời tiết và thực thi mệnh lệnh.
- Điều khiển hệ thống bơm thủy canh và bơm phun sương thông
qua relay.
-

Giao tiếp với người dùng thông qua server ThingSpeak và ứng

dụng trên điện thoại thông minh.
Sơ đồ khối của hệ thống:

Hình 3.1 Sơ đồ khối hệ thống
4



Vi xử lý thu thập giá trị từ cảm biến về xử lý và gửi thông tin đến server,
liên tục kiểm tra thông tin từ cảm biến để kịp thời cập nhật dữ liệu về môi trường
cho người sử dụng. Server ThingSpeak đóng vai trị một cơ sở dữ liệu, tiếp nhận
thông tin từ bộ xử lý trung tâm thông qua module Wifi, qua đó ứng dụng từ điện
thoại thơng minh có thể lấy dữ liệu từ ThingSpeak, cũng như gửi thông tin điều
khiển bộ xử lý trung tâm nhằm vận hành hệ thống bơm thủy canh, bơm phun
sương.

2.2 Thiết kế các khối của hệ thống
2.2.1 Khối nguồn
- 1 bơm phun sương 30W hoạt động 20 phút mỗi ngày.
- 1 bơm thủy canh 5W hoạt động liên tục 18/20 tiếng mỗi ngày.
- Bộ xử lý trung tâm 0.3W hoạt động liên tục mỗi ngày.
a.

Xác định tổng lượng điện tiêu thụ mỗi ngày

(30 W x 0.35 giờ) + (5 W x 18 giờ) + (0.3 W x 24 giờ) = 110 Wh/day
b.

Tính pin mặt trời (PV panel)

PV panel = 110 x 1.3 = 143 Wh/day.
Tổng Wp của PV panel = 130 / 4.58 = 32Wp
Chọn loại PV có 35Wp thì số PV cần dùng là 1 tấm.

5



Hình 3.2 Panel pin mặt trời 12V
Thơng số kỹ thuật của panel pin mặt trời
- Công suất tấm pin NL mặt trời: 35W
- Điện áp danh định: 18.0V
- Dòng danh định: 1.93 A
- Điện áp hở mạch: 21.6V
- Dòng ngắn mạch : 2.67 A
- Kích thước: 675 x 395 x 35mm
- Cấu tạo tấm pin mặt trời : Kính cường lực & Khung
nhơm c. Tính tốn Battery
143 / (0.85 x 0.8s x 12) = 17.5 Ah
Như vậy chọn battery deep-cycle 12V/20Ah cho hệ thống
d.

Tính solar charge controller

Thơng số của mỗi PV module: Pm = 35 Wp, Vm = 18.0 Vdc, Im = 1.93
A, Voc = 21.6 A, Isc = 2.67 A

6


Như vậy solar charge controller = (1 tấm PV x 2.67 A) x 1.3 = 3.48 A
Chọn solar charge controller có dịng 10A/12V hoặc cao hơn.

Hình 3.3 Solar charge controller DY1024
Thông số kỹ thuật Solar charge controller
- Công suất: 240W(12V) - 480W(24V)
- Dòng sạc định mức: 20A
- Dòng tải định mức: 20A

- Nhiệt độ làm việc: -20~60 độ
- Áp bảo vệ xả: 10~21.7V
- Áp trở lại xả tải: 12~25V
- Đầu ra USB: 5V 2A
- Màn hình hiển thị: LCD
7


- Áp sạc trơi: 13.7~27.4V
- Kích thước: 135x70x31mm
- Khối lượng: 150g

Hình 3.4 Sơ đồ kết nối khối nguồn và bộ xử lý trung tâm

2.2.2 Khối cảm biến.
Khối cảm biến có nhiệm vụ:
Thu thập thông số nhiệt độ và độ ẩm mơi trường xung
quanh
-

Độ sai lệch ít, ít nhiễu.

Độ chính xác thực tế: 1/4°C ở nhiệt độ phịng và 3/4°C
ngồi
khoảng -55°C tới 150°C.
-

Nhiệt độ hoạt động : 32-122 ° F ( 0-50 ° C).

-


DHT11 có hiệu năng và tính chính xác cao.


8


Kết nối cảm biến truyền dữ liệu thông tin nhiệt độ và độ ẩm sẽ được xuất
từ chân DATA truyền đến chân số 7 của Arduino Uno R3.
Sơ đồ chân kết nối như hình sau:

Hình 3.5 Sơ đồ kết nối cảm biến nhiệt độ

2.2.3 Khối kết nối Wifi.
Khối kết nối Wifi phải có những yêu cầu sau:
-

Thiết lập được kênh truyền nhận dữ liệu thông qua server

ThingSpeak
-

Hoạt động ổn định.

Vậy 2 chân truyền nhận tín hiệu TX, RX sẽ kết nối vào chân số 3, 4 của
Arduino Uno R3.
Sơ đồ kết nối Module ESP8266 và Arduino Uno R3:

9



Hình 3.6 Sơ đồ kết nối Module SIM908
Hoạt động cơ bản của khối này là truyền tín hiệu từ Arduino Uno R3 lên
Server rồi nhận dữ liệu từ Web Server về. Sau đó Arduino Uno R3 tách lọc thơng
tin gửi về để điều khiển khối cơ cấu chấp hành hợp lý.

2.2.4 Khối cơ cấu chấp hành.
Khối cơ cấu chấp hành có các yêu cầu sau:
-

Hoạt động ổn định, thực thi chính xác tác vụ điều khiển.

Bật/tắt hệ thống thủy canh, phun sương khi có tín hiệu u
cầu từ
Arduino Uno R3.
Sơ đồ nối khối cơ cấu chấp hành và Arduino Uno R3:

10


Hình 3.7 Sơ đồ kết nối khối cơ cấu chấp hành

2.2.5 Khối Xử lý trung tâm.
Khối vi điều khiển là khối sử lý tín hiện từ các khối cịn lại nên yêu cầu
của khối này như sau :
-

Xử lý được dữ liệu trả về từ Khối cảm biến.

-


Xử lý tín hiệu truyền và nhận từ Khối kết nối mạng.

-

Phát tín hiện điều khiển ra Khối cơ cấu chấp hành.

-

Khối phải chạy ổn định, ít nhiễu.

Có thể sử dụng nhiều loại Vi Điều Khiển trên thị trường như PIC16F887,
Atmega 8, Atmega 328… Từ những yêu cầu trên, chọn Kit Arduino Uno R3 dùng
Atmega 328P làm Khối điều khiển trung tâm.
Từ các sơ đồ kết nối của các khối trên, tổng hợp và hoàn thành sơ đồ mạch
của hệ thống.
Sơ đồ nối chân với các khối như sau:

11


Hình 3.8 Sơ đồ kết nối Vi Điều Khiển
Hoạt động cơ bản của hệ thống như sau:
Vi xử lý nhận thông tin từ module Wifi truy xuất từ cơ sở
dữ liệu
trên ThingSpeak, lọc thông tin và điều khiển hệ thống bơm bật hoặc tắt
theo yêu cầu.
-

Nhận thông tin từ cảm biến, gửi thông tin nhiệt độ và độ ẩm qua


module Wifi đến server ThingSpeak.

12


CHƯƠNG 3

THI CƠNG HỆ THỐNG

3.1 Giới thiệu

Hình 4.1 Sơ đồ kết nối hồn chỉnh hệ thống
Thi cơng hệ thống bao gồm 3 phần: phần bo mạch, phần giao diện android
và mơ hình.
Phần mơ hình là khung sắt và đường ống dây nhựa của hệ thống. Do hệ
thống sử dụng các module có sẵn nên phần thi cơng bộ xử lý trung tâm là board
kết nối giữa khối xử lý và các khối khác. Phần giao diện Android được thiết kế
trên phần mêm Android Studio và được nạp, chạy thực nghiệm trên 2
smartphone: SAMSUNG A9.

13


3.2 Thi công phần cứng
3.2.1 Thi công bộ xử lý trung tâm
Đề tài sẽ sử dụng một hộp nhựa có nắp đậy để lắp đặt bộ điều khiển, bố tr í
các linh kiện, bộ nguồn cung cấp cho hệ thống, module cảm biến, module truyền
nhận dữ liệu, module relay và domino dạng thanh.
Tiến hành kết nối và bố trí linh kiện


Hình 4.2 Bộ xử lý trung tâm
14


Module Relay được sử dụng như sau:
-

Relay 1 điều khiển bật/tắt hệ thống thủy canh.

-

Relay 2 điều khiển bật/tắt hệ thống bơm phun sương.

Về domino thì chỉ có một số cổng là dùng để kết nối với các thành phần khác
của hệ thống:
-

Cổng 1 để kết nối với dây nguồn (+) cấp cho cả hệ thống.

-

Cổng 2 để kết nối với dây nguồn (-) cấp cho cả hệ thống.

3.2.2 Thi cơng mơ hình
Ở phần thiết kế mơ hình sẽ gồm 1 khung chính, 3 khung phụ. Hệ thống giàn
rau trước và sau khi lắp đặt.

Hình 4.3 Hệ thống giàn rau trong q trình thi cơng
Sau khi thiết kế giá đỡ, các thành phần trong hệ thống được bố trí gồm bộ

điều khiển, bình chứa nước và máy bơm như hình.

15


Hình 4.4 Bố trí hệ thống bơm nước
Trong đó, bình chứa nước được sử dụng là hộp nhựa loại 20 lít và có khả
năng đậy kín tránh cặn bẩn rơi vào. Các ống dẫn nước được sử dụng loại ống dẻo
PVC trong suốt có kích thước đường kính ngồi và trong lần lượt là 12 và 8 mm.
Kết hợp sử dụng cổ dê ở đầu vào và đầu ra của bơm để đảm bảo nước khơng bị rị
rĩ.

16


Hình 4.5 Hệ thống hồn chỉnh

3.3 Lập trình phần mềm
3.3.1 Phần mềm cho bộ xử lý trung tâm
a.

Lưu đồ giải thuật

Đầu tiên, hệ thống sẽ khởi tạo và kết nối với wifi. Tiếp theo tắt toàn bộ
động cơ của hệ thống. Sau đó bắt đầu đọc các thơng số mơi trường từ cảm
biến độ ẩm và nhiệt độ. Sau đó, hệ thống bắt đầu đọc field 1 của thingspeak.
Khi kết nối wifi có vấn đề hoặc sóng wifi yếu làm Arduino khơng đọc được
dữ liệu từ thingspeak thì hệ thống sẽ quay lại bước kiểm tra giá trị nhiệt độ,
độ ẩm.


17


Hình 4.6 Lưu đồ giải thuật
18


Dữ liệu của các field trên thingspeak gồm 2 dạng, 2 field dữ liệu 1 bit dùng
để điều khiển 2 bơm, 2 field dữ liệu 2 bit dùng để lưu trữ giá trị độ ẩm và nhiệt
độ. Nếu bit điều khiển ở field 1 là mức 1, bơm thủy canh sẽ được kích hoạt.
Tương tự cho bơm phun sương. Độ ẩm và nhiệt độ của hệ thống được truyền
nhận ở field 3 và 4 của thingspeak gồm 2 bit.
b. Viết chương trình hệ thống
Trình biên dịch của Arduino là phần mềm Arduino IDE được viết bằng ngôn
ngữ C. Sau đây là chương trình chính của Arduino trong đề tài.
Khai báo thư viện cho module wifi ESP8266:
#include<stdlib.h>
#include <SoftwareSerial.h>
#include <espduino.h>
#include <rest.h>
Set up chân giao tiếp UART của Arduino với ESP8266.
SoftwareSerial espPort(3, 4);
Khởi tạo tốc độ baud của ESP8266:
espPort.begin(19200);
Khởi tạo và kết nối với mạng wifi:
esp.enable();
delay(500);
esp.reset();
delay(500);
while(!esp.ready());

if(!rest.begin("api.thingspeak.com")) {
while(1);
}
esp.wifiConnect("iPhone","01998888484");
}
Cập nhật và xử lý giá trị nhiệt độ - độ ẩm:
chk = DHT.read11(DHT11_PIN);
19


int a=DHT.humidity;
int b=DHT.temperature;
Kiểm tra yêu cầu của người sử dụng và bật/tắt động cơ
if(value_data1==1){digitalWrite(aqua,LOW);}
else

{digitalWrite(aqua,HIGH);}

if(digitalRead(aqua)==HIGH) controldata1=0;
else controldata1=1;
value_data1 = controldata1;
Đọc dữ liệu field 1 trên server ThingSpeak
sprintf(buff, "/channels/589939/fields/1/last");
Serial.println(buff);

rest.get((const char*)buff);
if(rest.getResponse(response, 266) == HTTP_STATUS_OK)
{ strId = "";
strData = "";
strCode = "";

getData();
value_data1= strId.toInt();
Gửi dữ liệu lên thingspeak:
dtostrf(value_data1, 1, 0, str_field1);
dtostrf(value_data2, 1, 0, str_field2);
dtostrf(a, 2, 0, str_field3);
dtostrf(b, 2, 0, str_field4); //chuyen kieu thuc sao chuoi ki tu
sprintf(buff,"//update?key=1YKHXGFFA1TCA6AV&field1=%s&field2=%s&fi eld3=
%s&field4=%s",str_field1,str_field2,str_field3,str_field4);

Serial.println(buff);
rest.get((const char*)buff);
if(rest.getResponse(response, 266) == HTTP_STATUS_ OK)
{ strId = "";
20


getData();
3.3.2 Phần mềm cho ứng dụng di động
Như đã giới thiệu ở chương trước, ứng dụng sẽ được viết bằng phần mềm
Android Studio.
Thiết kế ứng dụng trên Android Studio
Sau khi đã thiết kế các khối chức năng làm việc ở phần thiết kế. Ta tiến
hành sử dụng Android Studio để xây dựng chi tiết các đối tượng thành giao diện
cũng như lập trình cho ứng dụng hoạt động.
Bằng cách sử dụng các widgets cơ bản trong Android Studio và thay đổi các
thuộc tính sao cho phù hợp với mục đích sử dụng. Ta có thể dễ dàng thiết kế được
giao diện. Ở đây, chúng ta sử dụng widget TextView trong việc hiển thị các tiêu
đề, các nhãn cũng như các thơng tin khơng thể thay đổi bởi người dùng. Ngồi ra,
widget Switch được sử dụng như các công tắc tắt hoặc mở hệ thống bơm. Có thể

thay đổi màu sắc hoặc các biểu tượng cho từng nội dung thể hiện để thêm phần
sinh động.
Như chúng ta đã biết, việc sử dụng ThingSpeak như một môi trường trung
giao trong việc giao tiếp giữa người dùng và hệ thống tưới sẽ phải phụ thuộc vào
thời gian truyền nhận hay xử lý dữ liệu, cũng như yếu tố tốc độ nhanh hay chậm
của mạng wifi. Chính vì vậy, việc thay đổi đơn lẻ từng field sẽ làm ảnh hưởng
đến vấn đề đáp ứng nhanh hay chậm của cả hệ thống. Hay nói cách khác, việc
truyền nhận dữ liệu lên ThingSpeak bắt buộc người dùng phải có một khoảng
thời gian đợi, nên việc rút ngắn khoảng thời gian này lại nhằm hệ thống đáp ứng
nhanh hơn là một vấn đề cần được giải quyết.
Để tối ưu được phần nào quá trình này, ở đây chúng ta sẽ sử dụng thêm một
Widget Button để việc gửi dữ liệu điều khiển lên ThingSpeak sẽ chỉ diễn ra một
lần cho cả 2 hệ thống bơm (đề cập rõ hơn trong phần thi công).

21


×