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

Hệ thống tưới tiêu iot thông qua app blynk (CÓ KÈM CODE)

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 (917.82 KB, 33 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA VIỄN THƠNG

TIỂU LUẬN CHỦ ĐỀ IOT TRONG
NÔNG NGHIỆP
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG TƯỚI TIÊU TỰ ĐỘNG
DỰA TRÊN ĐỘ ẨM ĐẤT VÀ THEO DÕI TỪ XA THÔNG
QUA APP BLYNK

Hà Nội 2022


Bài tập Kiến trúc và giao thức IoT

LỜI NÓI ĐẦU
Nền nơng nghiệp nước ta hiện nay đã có bước phát triển nhưng vẫn chưa có
nhiều ứng dụng khoa học kỹ thuật áp dụng vào thực tế. Rất nhiều quy trình kỹ thuật
trồng trọt, chăm sóc được tiến hành một cách chủ quan, và khơng đảm bảo được đúng
u cầu. Có thể nói trong nơng học, ngồi những kỹ thuật trồng trọt, chăm sóc thì
tưới nước và tăng thời gian quang hợp của cây là một trong các khâu quan trọng nhất
của trồng trọt, để đảm bảo cây sinh trưởng và phát triển bình thường, tưới đúng và
tưới đủ theo yêu cầu nông học của cây trồng sẽ không chịu sâu bệnh, hạn chế thuốc
trừ sâu cho sản phẩm an toàn, đạt năng suất và hiệu quả cao.
Hệ thống tưới nước tự động kết hợp theo dõi từ xa thông qua điện thoại là hệ
thống thiết bị phụ trợ tốt nhất đáp ứng theo nhu cầu sinh trưởng của cây trồng, đang
được ứng dụng rộng trên các nước đang phát triển. Hệ thống tưới nước tự động kết
hợp theo dõi từ xa là một hình thức tưới nước hợp lý, tiết kiệm sức lao động và chi
phí nhân cơng, vốn đã được phát triển ở nhiều nước trên thế giới. Tuy nhiên, ở Việt
Nam chỉ vài ba năm trở lại đây, việc tận dụng hệ thống này mới trở thành xu hướng.
Hệ thống tưới nước trên cũng trở nên phổ biến hơn với người nông dân ở nông thôn
cùng với quá trình hiện đại hóa, cơng nghiệp hóa nơng thơn nhưng chưa dám mạnh


dạng đưa vào sử dụng vì chi phí cao.
Nắm bắt được nhu cầu cấp thiết trên và mong muốn được góp chút cơng sức của mình
làm giảm bớt gánh nặng cho người làm nơng, nhóm quyết định chọn: “Xây dựng hệ
thống tưới tự động dựa trên độ ẩm đất và theo dõi từ xa thông qua ứng dụng Blynk”
để làm đề tài báo cáo của nhóm.

2


Bài tập Kiến trúc và giao thức IoT

Mục Lục
LỜI NÓI ĐẦU..........................................................................................................2
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI.....................................................................4
1.1 GIỚI THIỆU THIỆU TỔNG QUAN VỀ IOT..........................................................4
1.2 MỤC TIÊU Ý TƯỞNG ĐỀ TÀI.............................................................................4
1.3 YÊU CẦU CHỨC NĂNG......................................................................................5
1.4 SƠ ĐỒ KHỐI VÀ NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG.............................6
1.4.1 Sơ đồ khối hệ thống...................................................................................6
1.4.2 Nguyên lý hoạt động..................................................................................6
1.5 GIỚI THIỆU PHẦN CỨNG..................................................................................7
1.5.1 Mạch thu phát Wifi ESP8266 ESP-12F...................................................7
1.5.2. Thông số kĩ thuật......................................................................................7
1.5.3 Sơ đồ chân.................................................................................................8
1.5.4 Cảm biến độ ẩm.........................................................................................9
1.5.5 Cảm biến nhiệt độ-độ ẩm DHT11...........................................................10
1.5.6 Module relay 1 kênh................................................................................11
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG................................................................13
2.1 LƯU ĐỒ THUẬT TOÁN:...................................................................................13
2.2 TỔNG QUAN VỀ PROJECT TRONG ARDUINO VÀ CÁCH KẾT NỐI VỚI

ESP8266...............................................................................................................13
2.3 THIẾT KẾ ỨNG DỤNG TRÊN WEB...................................................................16
2.3.1 Giới thiệu ứng dụng Blynk......................................................................16
2.3.2 Lập bảng dữ liệu trên Blynk...................................................................17
2.2.3 Biểu diễn các nút chức năng..................................................................20
2.2.4 Viết code chương trình điều khiển.........................................................25
2.2.5 Hoạt động của hệ thống..........................................................................28
CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................28
3.1. KẾT LUẬN......................................................................................................28
3.2. ĐỀ XUÂT HƯỚNG PHÁT TRIỂN......................................................................29

3


CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI


Bài tập Kiến trúc và giao thức IoT

1.1 Giới thiệu thiệu tổng quan về IoT nông nghiệp
Hiện nay, khi mà công nghệ IoT đang dần dần phát triển và áp dụng vào đời sống
con người, giúp cải thiện rất nhiều trong chất lượng cuộc sống về rất nhiều các
lĩnh vực khác nhau như là IoT nông nghiệp, công nghiệp hay cả đời sống xã hội
như nhà thông minh, giao thông thơng minh, thì việc phát triển các ứng dụng sản
phẩm dựa trên các cảm biến được sử dụng rất nhiều.
IoT (Internet of Things) trong nông nghiệp được sử dụng để giúp nâng cao hiệu
quả sản xuất và quản lý tài nguyên trong lĩnh vực nông nghiệp. Các thiết bị IoT
được sử dụng để thu thập dữ liệu về thời tiết, đất đai, cây trồng và động vật để
giúp nhà nông đưa ra quyết định tốt hơn và nâng cao sản lượng.
Các ứng dụng của IoT trong nông nghiệp bao gồm:

 Theo dõi và điều khiển tưới nước: IoT có thể giúp nhà nông theo dõi độ ẩm
của đất, lượng mưa, lượng nước trong đất để điều chỉnh tưới nước một cách
chính xác và tiết kiệm nước.
 Theo dõi và quản lý sức khỏe của cây trồng: Các cảm biến IoT có thể được
sử dụng để theo dõi sức khỏe của cây trồng bao gồm đo lượng nước, độ ẩm,
nhiệt độ và ánh sáng. Nhờ đó, nhà nơng có thể theo dõi tình trạng sức khỏe
của cây và đưa ra phương pháp chăm sóc tốt hơn để tăng năng suất.
 Theo dõi và quản lý đàn gia súc: Các thiết bị IoT có thể được sử dụng để
giám sát sức khỏe và hoạt động của đàn gia súc. Ví dụ: Các cảm biến có thể
đo nhiệt độ, độ ẩm, độ rung của nhà chăn nuôi để giúp nhà nông phát hiện
sớm các vấn đề về sức khỏe của gia súc.
 Dự báo thời tiết: IoT có thể được sử dụng để thu thập dữ liệu về thời tiết từ
các cảm biến để đưa ra dự báo thời tiết chính xác hơn và giúp nhà nông
chuẩn bị tốt hơn cho các hoạt động nông nghiệp.
 Sử dụng IoT trong nông nghiệp giúp tăng năng suất, tiết kiệm tài nguyên và
giảm thiểu tác động tiêu cực đến mơi trường. Nó cũng giúp cho quản lý
nông nghiệp trở nên dễ dàng hơn và hiệu quả hơn.

1.2 Mục tiêu ý tưởng đề tài

5


Bài tập Kiến trúc và giao thức IoT

Dựa vào đó trong bài tập lần này chúng em sẽ làm về chủ đề nông nghiệp
thông minh. Ngày nay do biết được nhu cầu sử dụng nước là rất lớn trên toàn cầu,
và nó cũng là mối quan tâm lớn khi mà nước cần thiết để phục vụ cho rất nhiều
thứ trong sinh hoạt, công nghiệp và cả nông nghiệp cũng vậy. Nước sử dụng cho
việc trồng trọt và tưới tiêu rất nhiều do đó các nhà nghiên cứu đã tạo ra nhiều hệ

thống dựa trên mạch vi điều khiển mã nguồn mở Arduino, ESP8266. Mạch
Arduino, ESP8266 sử dụng thuận tiện và dễ dàng kết nối, gửi thông báo trong hệ
thống IoT và kết hợp thuận tiện trên nền tảng di động để tạo ra các ứng dụng điều
khiển thông minh từ xa.
Với mong muốn giúp tiết kiệm và sử dụng nước hiệu quả, nhóm em đã làm
sản phẩm hệ thống tưới cây tự động, hệ thống sẽ hoạt động dựa trên nhiệt độ và độ
ẩm của môi trường xung quanh thông qua cảm biến độ ẩm và nhiệt độ để xác định
thời điểm cây cần tưới nước và tưới thông minh tùy thuộc và từng loại cây trồng.
Bên cạnh đó hệ thống sẽ hiện thị q trình tưới và các thơng số về độ ẩm và nhiệt
độ thông qua hệ thống thông tin truyền thông bằng app di động.

1.3 Yêu cầu chức năng
Đặc tả hoạt động:
Hệ thống sử dụng kết nối wifi làm nhiệm vụ vận chuyển tín hiệu từ
Web/App android điều khiển tới module wifi của hệ thống máy nước tự động vì
vậy cả điện thoại và module wifi của hệ thống máy nước chỉ cần connect chung
một router wifi.
Hệ thống giúp người sử dụng nhận được sự tương tác trực tiếp tới khu vườn
đang canh tác với sự gửi tín hiệu đo độ ẩm đất liên tục từ cảm biến đo độ ẩm tới
ứng dụng android đang sử dụng để người sử dụng có thể biết được Được định mức
hạn hán hay hơi ẩm của đất ở khu vực đó, từ đó đưa ra quyết định về vịi nước,
bơm nước, hoặc ra lệnh cho máy bơm xả theo yêu cầu người sử dụng muốn đặt ra.

6


Bài tập Kiến trúc và giao thức IoT

Chức năng cơ bản của hệ thống: Gửi thông tin liên hệ ẩm đất theo % về Web
và Ứng dụng điều khiển của người sử dụng.

Có hai chế độ quay:
 Máy thủ cơng: Web/App sẽ hiển thị hai nút Bật Tắt để người dùng có thể chủ
động vịi nước hoặc tắt máy bơm nước theo tình hình thực tế.
 Bộ tự động: Trên Web/App, nhấp/bấm nút Tự động sau đó người sử dụng có
thể đặt độ ẩm bằng hai nút mũi tên hướng lên trên để khi độ ẩm giảm xuống
thấp hơn mức đó thì hệ thống sẽ tự động bật máy Máy bơm nước cho đến khi
độ ẩm đất bằng với độ ẩm tối đa đã được thiết lập rồi sau đó tắt máy.
-

Giao diện web đơn giản tiếp cận dễ dàng sử dụng nắm bắt với đa số người
dùng.
Ứng dụng android tương thích với hệ thống và kích thước màn hình điện thoại
khác nhau.
Server active ổn định.
Hệ thống máy tính hoạt động trơn tru, chính xác khi nhận lệnh từ ứng dụng.

1.4 Sơ đồ khối và nguyên lý hoạt động của hệ thống
1.4.1 Sơ đồ khối hệ thống

Hình 1: Sơ đồ khối hệ thống
1.4.2 Nguyên lý hoạt động
 Mode Auto

7


Bài tập Kiến trúc và giao thức IoT

-


Cảm biến thu tín hiệu độ ẩm về chân A0 của NodeMCU => Hiển thị trên
Blynk thơng qua Value Display(V1)
- Sau đó gửi tín hiệu về NodeMCU để thực thi các lệnh đã ràng buộc
 Mode manual
- Điều khiển đóng tắt replay thơng qua BlinkApp bằng button(V9)
- Bật: Xuất tín hiệu HIGH về chân D2 trên NodeMCU để đóng replay mở
máy bơm
- Tắt: Xuất tín hiệu LOW về chân D2 trên NodeMCU để đóng replay tắt máy
bơm

1.5 Giới thiệu phần cứng
Với cơ sở lý thuyết như trên ta sẽ lựa chọn những thiết bị phần cứng phù hợp
cho sản phẩm:
1.5.1 Mạch thu phát Wifi ESP8266 ESP-12F
Mơ tả
Kít ESP8266 là kít phát triển dựa trên nền chíp Wifi SoC ESP8266 với thiết
kế dễ dàng sửa dụng vì tích hợp sẵn mạch nạp sử dụng chíp CP2102 trên borad.
Bên trong ESP8266 có sẵn một lõi vi sử lý vì thế bạn có thể trực tiếp lập trình cho
ESP8266 mà khơng cần thêm bất kì con vi sử lý nào nữa. Hiện tại có hai ngơn ngữ
có thể lập trình cho ESP8266, sử dụng trực tiếp phần mềm IDE của Arduino để lập
trình với bộ thư viện riêng hoặc sử dụng phần mềm node MCU.

Hình 2: Module wifi ESP8266
1.5.2. Thông số kĩ thuật
- Chip: ESP8266EX.

8


Bài tập Kiến trúc và giao thức IoT


-

WiFi: 2.4 GHz hỗ trợ chuẩn 802.11 b/g/n.
Điện áp hoạt động: 3.3V.
Điện áp vào: 5V thông qua cổng USB.
Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ
chân D0).
Số chân Analog Input: 1 (điện áp vào tối đa 3.3V).
Bộ nhớ Flash: 4MB.
Giao tiếp: Cable Micro USB.
Hỗ trợ bảo mật: WPA/WPA2.
Tích hợp giao thức TCP/IP
Lập trình trên các ngơn ngữ: C/C++, Micropython, NodeMCU – Lua

9


Bài tập Kiến trúc và giao thức IoT

1.5.3 Sơ đồ chân

Hình 3: Sơ đồ chân của ESP8266

10


Bài tập Kiến trúc và giao thức IoT

1.5.4 Cảm biến độ ẩm


Hình 4: Cảm biến độ ẩm đất
Cảm biến độ ẩm đất Soil Moisture Sensor thường được sử dụng trong các mơ hình
tưới nước tự động, vườn thơng minh,..., 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 để giao tiếp với Vi
điều khiển để thực hiện vô số các ứng dụng khác nhau.
Thông số kỹ thuật:
 Điện áp hoạt động: 3.3~5VDC
 Tín hiệu đầu ra:
o Analog: theo điện áp cấp nguồn tương ứng.
o 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.
 Kích thước: 3 x 1.6cm.

11


Bài tập Kiến trúc và giao thức IoT

VCC
GND
DO
AO

3.3V ~ 5V
GND của nguồn ngồi
Đầu ra tín hiệu số (mức cao hoặc mức thấp)
Đầu ra tín hiệu tương tự (Analog)


1.5.5 Cảm biến nhiệt độ-độ ẩm DHT11

Hình 5: Cảm biến nhiệt độ-độ ẩm DHT11
Cảm biến nhiệt độ-độ ẩm DHT11 ra chân được tích hợp sẵn điện trở 5,1k
giúp dễ dàng kết nối và sử dụng hơn so với cảm biến DHT11 chưa ra chân,
module lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp 1 dây). 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 cần
phải qua bất kỳ tính tốn nào. Module được thiết kế hoạt động ở mức điện áp
5VDC.
Thông số kĩ thuật
 Điện áp hoạt động: 5VDC

12


Bài tập Kiến trúc và giao thức IoT







Chuẩn giao tiếp: TTL, 1 wire.
Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH
Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C
Tần số lấy mẫu tối đa 1Hz (1 giây / lần)
Kích thước: 28mm x 12mm x10m

1.5.6 Module relay 1 kênh


Hình 6: Module relay 1 kênh
Module Relay 12V 1 Kênh được dùng như một công tắc điện , dùng để
điều khiển các thiết bị công suất lớn ( đèn, động cơ...)
Module Relay 12V 1 Kênh cảm ứng tự động: khi có người vào phạm vi
cảm ứng, chân tín hiệu sẽ xuất mức cao, khi người rời khỏi phạm vi cảm ứng,
chân tín hiệu sẽ tự động tắt mức cao và xuất mức thấp với một thời gian trễ
nhất định
Thông số kĩ thuật:
- Điện áp hoạt động: 12V
- Kích thước: 43mm x 17.3mm x 17mm (dài x rộng x cao)
- Trọng lượng: 15g
Đầu vào:
- Điện áp nuôi : 5VDC /12VDC

13


Bài tập Kiến trúc và giao thức IoT

- Tín hiệu vào điều khiển: 0V
+ Tín hiệu là 0: thì Relay đóng
+ Tín hiệu là 1 : thì Relay mở
Đầu ra:
- Tiếp điểm relay 220V 10A (Lưu ý tiếp điểm, không phải điện áp ra)
- NC : Thường đóng
- NO: Thường mở
- COM: Chân chung
Ký hiệu nguồn:
- VCC, GND là nguồn ni Relay

- In là chân tín hiệu điều khiển

14


Bài tập Kiến trúc và giao thức IoT

CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 Lưu đồ thuật tốn:

Hình 7: Lưu đồ thuật toán

2.2 Tổng quan về project trong Arduino và cách kết nối với ESP8266
Các chương trình Arduino được viết bằng C hoặc C++. Arduino IDE đi kèm với
một thư viện phần mềm được gọi là "Wiring", từ project Wiring gốc, có thể giúp các thao
tác input/output được dễ dàng hơn. Người dùng chỉ cần định nghĩa 2 hàm để tạo ra một
chương trình vịng thực thi (cyclic executive) có thể chạy được:

15


Bài tập Kiến trúc và giao thức IoT

setup(): hàm này chạy mỗi khi khởi động một chương trình, dùng để thiết lập các
cài đặt
loop(): hàm này được gọi lặp lại cho đến khi tắt nguồn board mạch
Để tạo một project để điều khiển một thiết bị nào đó thơng qua ESP8266. Trước
hết ta phải:
 Kết nối board ESP8266 vào máy tính và kết nối với máy tính thơng qua Port
COM:


Hình 8: Kết nối ESP8266 vào máy tính thơng qua port

16


Bài tập Kiến trúc và giao thức IoT

17


Bài tập Kiến trúc và giao thức IoT

 Include các thư viện cần thiết để lập trình cho project ở đây ta sử dụng thư viện
cho:

18


Bài tập Kiến trúc và giao thức IoT

Hình 9: Include thư viện

 Chọn main board

Hình 10: Chọn main board

2.3 Thiết kế ứng dụng trên web
2.3.1 Giới thiệu ứng dụng Blynk
Blynk là một ứng dụng chạy trên nền tảng iOS và Android để điều khiển và

giám sát thiết bị thông qua internet. Blynk không bị ràng buộc với những phần
cứng cụ thể nào cả, thay vào đó, nó hỗ trợ phần cứng cho bạn lựa chọn như
Arduino, Raspberry Pi, ESP8266 và nhiều module phần cứng phổ biến khác.
Những lý do nên sử dụng Blynk:

19


Bài tập Kiến trúc và giao thức IoT

 Dễ sử dụng: việc cài đặt ứng dụng và đăng ký tài khoản trên điện thoại rất
đơn giản cho cả IOS và Android
 Chức năng phong phú: Blynk hỗ trợ rất nhiều chức năng với giao diện đẹp
và thân thiện, bạn chỉ việc kéo thả đối tượng và sử dụng nó.
 Khơng phải lập trình ứng dụng: nếu bạn khơng có kiến thức về lập trình
app cho
Android cũng như IOS thì Blynk là một ứng dụng tuyệt vời để giúp bạn
khám phá thế giới IOTs.
 Điều khiển, giám sát thiết bị ở bất kì đâu thơng qua internet với khả năng
đồng bộ hóa trạng thái và thiết bị.

2.3.2 Lập bảng dữ liệu trên Blynk
1. Chức năng Switch bật tắt máy bơm (V1)
Trên Blynk app
Virtual Widget
pin
V1
Button
/
Switch


Chức
năng
Tắt/bật
chế dộ
hoạt
động
của
máy
bơm

Trên NodeMCU
Chân
Code trên NodeMCU
kết nối
int previous_chedo_hoatdong = -1;
BLYNK_WRITE(V1){
int new_chedo_hoatdong = param.asInt();
if (new_chedo_hoatdong !=
previous_chedo_hoatdong) {
Serial.print("chedo_hoatdong: ");
Serial.println(new_chedo_hoatdong);
previous_chedo_hoatdong =
new_chedo_hoatdong;
}
}
//Chế độ hoạt động bấm nút
if(previous_chedo_tudong==0){
if(previous_chedo_hoatdong==1){
//delay(1000);

Serial.println("Mở");
digitalWrite(pumpPin, HIGH);
} else {
Serial.println("Đóng");
digitalWrite(pumpPin, LOW);}
}
}

20



×