Download as pdf or txt
Download as pdf or txt
You are on page 1of 127

.

BỘ GIÁO DỤC VÀ ĐÀO TẠO


TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP. HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP

HỆ THỐNG TƯỚI CÂY TỰ ĐỘNG HOẠT ĐỘNG BA CHẾ


ĐỘ KHẢ NĂNG ĐIỀU KHIỂN QUA INTERNET

Ngành: Kỹ Thuật Điện Tử Viễn Thông

Giảng viên hướng dẫn: ThS. Bùi Hữu Hiên


Sinh viên thực hiện: MSSV: Lớp:
Trần Nguyễn Nhật Tân 1911790024 19DDTA1
Phạm Quyết Thắng 1911790281 19DDTA1

TP. Hồ Chí Minh, ngày 23 tháng 08 năm 2023.


VIỆN KỸ THUẬT HUTECH BM01/QT05/ĐT-KT

PHIẾU ĐĂNG KÝ
ĐỀ TÀI ĐỒ ÁN/KHÓA LUẬN TỐT NGHIỆP

Hệ: CQ. (CQ, LT, B2,


VLVH)

1. Họ và tên sinh viên/ nhóm sinh viên đăng ký đề tài (sĩ số


trong nhóm 02):
Trần Nguyễn Nhật Tân MSSV: 1911790024 Lớp: 19DDTA1

Điện thoại: 0834384007 Email: tan0834384007@gmail.com


Phạm Quyết Thắng MSSV:1911790321 Lớp:19DDTA1

Điện thoại: 0868983543 Email: t0643826625@gmail.com

2. Tên đề tài đăng ký: Hệ thống tưới cây tự động hoạt động ba
chế độ khả năng điều khiển qua internet

Giảng viên hướng dẫn TP. HCM, ngày 30 tháng 01 năm 2023
(Ký và ghi rõ họ tên) Sinh viên đăng ký
(Ký và ghi rõ họ tên)

i
VIỆN KỸ THUẬT HUTECH MÃ ĐỀ TÀI 02

PHIẾU GIAO NHIỆM VỤ


THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
(Mỗi sinh viên một phiếu, GVHD ghi rõ tên đề tài và nhiệm vụ của từng sinh viên.
GVHD chuyển cho SV để nộp về VP Viện.)
1. Sinh viên thực hiện đề tài
Họ tên : Trần Nguyễn Nhật Tân MSSV: 1911790024 Lớp :19DDTA1
Điện thoại : 0834384007 Email: tan0834384007@gmail.com
Ngành : Điện tử Viễn Thông
2. Tên đề tài: Hệ thống tưới cây tự động kiểm soát bằng cảm biến độ ẩm và theo
dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua internet
3. Nhiệm vụ thực hiện đề tài
+ Thiết kế phần cứng
+ Thiết kế hệ vi điều khiển dùng Arduino DHT11 cảm biến độ ẩm nhiệt độ
không khí, sử dụng module ESP8266 mode MCU. Thiết kế cảm biến mưa, sử dụng
Arduino IDE để nhập code kiểm soát toàn bộ hoạt động của hệ thống hiển thị ra
LCD thông số về độ ẩm và số ngày chưa mưa
+ Hệ thống nhận tín hiệu từ các cảm biến độ ẩm đất kết hợp với các cảm biến
mưa để theo dõi số ngày chưa mưa để ra quyết định bơm và thời gian bơm tưới

Sinh viên thực hiện TP. HCM, ngày 27 tháng 3 năm 2023
(Ký và ghi rõ họ tên) Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)

ii
VIỆN KỸ THUẬT HUTECH MÃ ĐỀ TÀI 02

PHIẾU GIAO NHIỆM VỤ


THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
(Mỗi sinh viên một phiếu, GVHD ghi rõ tên đề tài và nhiệm vụ của từng sinh viên.
GVHD chuyển cho SV để nộp về VP Viện.)
4. Sinh viên thực hiện đề tài
Họ tên : Phạm Quyết Thắng MSSV: 1911790281 Lớp:19DDTA1
Điện thoại : 0868983543 Email: t0643826625@gmail.com
Ngành : Điện tử Viễn Thông
5. Tên đề tài: Hệ thống tưới cây tự động kiểm soát bằng cảm biến độ ẩm và theo
dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua internet
6. Nhiệm vụ thực hiện đề tài
Soạn thảo phần mềm:
+ Sử dụng app Blynk để điều khiển phần cứng từ xa
+ Hệ thống có thể kết nối Internet để thực hiện điều khiển qua mạng
a Xây dựng lưu đồ giải thuật cho hệ thống
b Soạn phần mềm cho hệ thống hoạt động ba chế độ
+ Khi có chủ vườn trực tiếp đến tận nơi điều khiển bơm tưới, hệ thống sẽ reset
lại bộ thông số đếm tích luỹ số ngày chưa mưa.
+ Chủ vườn có thể điều khiển bơm tưới từ xa thông qua internet
+ Khi không có cả 2 điều kiện trên, hệ thống sẽ căn cứ số ngày chưa mưa và đối
chiếu với giá trị đặt kết hợp với độ ẩm đất đê đưa ra quyết định điều khiển bơm và
thời gian bơm tưới

Sinh viên thực hiện TP. HCM, ngày 27 tháng 3 năm 2023
(Ký và ghi rõ họ tên) Giảng viên hướng dẫn
(Ký và ghi rõ họ tên)

iii
LỜI CAM ĐOAN

Tôi xin cam đoan rằng đồ án tốt nghiệp về hệ thống tưới cây tự động kiểm soát
bằng cảm biến độ ẩm và theo dõi số ngày mưa hoạt động ba chế độ khả năng điều
khiển qua internet là công trình nghiên cứu của bản thân mình. Những phần có sử
dụng tài liệu tham khảo có trong đồ án đã được liệt kê và nêu rõ ra tại phần tài liệu
tham khảo. Đồng thời những số liệu hay kết quả trình bày trong đồ án đều mang
tính chất trung thực, không sao chép, đạo nhái.

TP. HCM, ngày 14 tháng 7 năm 2023

Sinh viên thực hiện đồ án

(Ký, ghi rõ họ tên)

iv
LỜI CẢM ƠN

Lời đầu tiên cho phép chúng tôi được gửi lời cảm ơn chân thành đến toàn thể
quý thầy cô Trường Đại Học Công Nghệ TP.HCM nói chung và các thầy cô trong
Viện Kỹ Thuật nói riêng, cùng các bạn trong lớp 19DDTA1, nhờ có sự giúp đỡ của
những thầy cô tạo điều kiện thuận lợi và nhờ có các bạn giúp đỡ nên chúng tôi đã
hoàn thành xong đồ án lần này.
Đặc biệt, chúng tôi xin chân thành cảm ơn ThS. Bùi Hữu Hiên đã tận tình
chỉ dẫn và góp ý, đưa ra những ý kiến nghiên cứu cũng như chỉ bảo chúng tôi, trong
thời gian làm việc với thầy, chúng tôi được tiếp thu thêm kiến thức được chỉ dạy từ
thầy, luôn thể hiện một thái độ học hỏi tích cực và nghiêm túc, Và đây cũng là điều
rất cần thiết trong quá trình học tập và làm việc sau này đối với chúng tôi.
Xin cám ơn các bạn lớp 19DDTA1, nhờ có các bạn giúp đỡ và đồng hành
cùng chúng tôi. Tạo nên nguồn động lực mạnh mẽ đề giúp chúng tôi hoàn thành đồ
án lần này.
Xin chân thành cảm ơn!

TPHCM ngày 14 tháng 7 năm 2023


Sinh viên thực hiện

v
TÓM TẮT

Với đồ án này, chúng tôi tập trung tìm hiểu về IoT các chuẩn giao tiếp của
ESP8266, Wifi, hiện nay có nhiều dòng Board vi điều khiển không thuộc dòng
Arduino nhưng vẫn có thể mượn môi trường lập trình trên môi trường Arduino để
thực hiện vào mô hình hệ thống tưới cây tự động hoạt động ba chế độ khả năng điều
khiển qua Internet. Các SDK khác chủ yếu là mã nguồn mở, bao gồm: Arduino - Bộ
firmware dựa trên C++. Với lõi này, CPU ESP8266 và các thành phần Wi-Fi của nó
có thể được lập trình giống như bất kỳ thiết bị Arduino nào khác. Mã nguồn của
ESP8266 Arduino Core có sẵn trên GitHub. ESP8266 BASIC - Một trình biên dịch
mã nguồn mở giống BASIC được thiết kế riêng cho các ứng dụng Internet of
Things. Môi trường phát triển dựa trên trình duyệt tự lưu trữ.

Sử dụng cảm biến độ ẩm đất kết nối với ESP8266 và điều khiển động cơ tạo
ra hệ thống tưới tự động. Tất cả việc điều khiển tự động diễn ra trong quá trình cài
đặt sẵn và qua các cảm biến để điều tiết việc tưới cây hợp lí trong mọi thời tiết.
Từ ví dụ thực tiễn cùng với sự giúp đỡ của giảng viên hướng dẫn, nhóm em
đã lựa chọn và phát triển đề tài theo hướng sử dụng vi điều khiển ESP8266 làm linh
kiện đầu não để điều khiển các linh kiện và cảm biến có trong mạch.
Ứng dụng điều khiển đơn giản qua các thao tác như điều khiển qua App
Blynk, nút bấm thủ công cài đặt thời gian và thông tin ngày tháng để tưới cây tự
động và làm việc thông minh qua các cảm biến. Trước hết về cảm biến nhiệt độ và
độ ẩm đất được áp dụng trong khí hậu thời tiết nhiệt đới ẩm gió mùa với 4 mùa rõ
rệt vậy nên cảm biến độ ẩm đất có tầm quan trọng trong khâu tự động.
Đối với mùa mưa thì là một điều quan ngại, nhóm em đã thêm phần thiết kế
cảm biến mưa để tránh những lúc tưới tiêu không cần thiết vào mùa mưa để tránh
ảnh hưởng cây trồng. Hệ thống đảm bảo về mảng thời gian cài đặt, độ ẩm đất thay
đổi theo mùa và cảm biến mưa tất cả được tất cả được kết hợp tạo thành hệ thống
thông mình đáp ứng đúng nghĩa với người trồng cây.

vi
Vì vậy việc tưới tiêu cây trồng với con người trong công nghệ này đã thay
thế hoàn toàn con người. Một hệ thống trồng thông minh đáp ứng được về thời tiết
kết hợp thời gian tưới phù hợp cho cây trồng tất cả chỉ trong một vi điều khiển
ESP8266 được lập trình code qua Adrunio IDE. Phù hợp với người bận công việc,
phù hợp với mô hình sản xuất nông nghiệp đưa ra chất lượn cây trồng tốt.

vii
ABSTRACT
With this project, we focused on studying the IoT communication standards
of ESP8266 and WiFi. Nowadays, there are many microcontroller boards available
that are not part of the Arduino line but can still utilize the Arduino programming
environment to integrate into an automatic plant watering system with three modes
of operation and the ability to be controlled over the Internet. Various open-source
SDKs were used, including Arduino: A firmware based on C++. With this core, the
ESP8266 CPU and its Wi-Fi components can be programmed similar to any other
Arduino device. The source code for the ESP8266 Arduino Core is available on
GitHub. ESP8266 BASIC: An open-source, BASIC-like programming language
designed specifically for Internet of Things applications. It provides a browser-
based development environment.
In our project, we used a soil moisture sensor connected to the ESP8266 to
control a motor and create an automatic irrigation system. All the automatic control
operations occur during the preset installation process and through sensors to
regulate watering appropriately under any weather conditions.
Based on practical examples and guidance from our instructor, our team
chose to develop the project using the ESP8266 microcontroller as the main
component to control the circuit's components and sensors.
The control application provides simple control through operations such as
using the Blynk app or manually setting the watering time and date information to
enable automatic irrigation and intelligent operation through the sensors. In
particular, temperature and soil moisture sensors are crucial for automation in a
tropical and humid seasonal climate. Therefore, the soil moisture sensor plays a
significant role in the automation process.
In the rainy season, watering becomes a concern. To avoid unnecessary
watering during rainy periods and prevent harm to the plants, our team added a rain
sensor to the system. The system ensures proper scheduling, adjusts soil moisture
levels according to the seasons, and integrates the rain sensor. All of these elements

viii
combine to create an intelligent system that truly meets the needs of plant growers.
As a result, this technology completely replaces human intervention in the
process of watering plants. A smart plant watering system that adapts to the weather
and provides appropriate watering times for plants is achieved using just one
ESP8266 microcontroller programmed through the Arduino IDE. It is suitable for
busy individuals and agricultural production models, ultimately leading to better
plant growth.

ix
MỤC LỤC

PHIẾU ĐĂNG KÝ ........................................................................................... i


PHIẾU GIAO NHIỆM VỤ............................................................................. ii
LỜI CAM ĐOAN ........................................................................................... iv
LỜI CẢM ƠN .................................................................................................. v
TÓM TẮT ....................................................................................................... vi
ABSTRACT .................................................................................................. viii
MỤC LỤC ........................................................................................................ x
DANH MỤC HÌNH ẢNH ............................................................................ xiv
CHƯƠNG 1: GIỚI THIỆU ............................................................................ 1
1.1. ĐẶT VẤN ĐỀ ..................................................................................... 1
1.2. MỤC TIÊU ĐỀ TÀI ............................................................................ 2
1.3. NỘI DUNG ĐỀ TÀI............................................................................ 3
1.4. PHƯƠNG PHÁP NGHIÊN CỨU ....................................................... 3
1.5. KẾT CẤU ĐỒ ÁN TỐT NGHIỆP ...................................................... 4
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .............................................................. 5
2.1. IoT........................................................................................................ 5
2.1.1. Khái niệm: ....................................................................................... 5
2.1.2. Tổng quan về IoT:........................................................................... 5
2.1.3. Cấu trúc của một hệ thống IoT: .................................................... 6
2.1.4. Cơ sở kỹ thuật của IoT ................................................................... 7
2.1.5. Năng lực truyền thông (Communication Capabilities) ............... 9
2.1.6. Công suất thiết bị (Device Power) ............................................... 10
2.1.7. Công nghệ cảm biến (Sensor Technology) ................................. 11
2.1.8. Thời gian đáp ứng ......................................................................... 12
2.1.9. CÁC ỨNG DỤNG CỦA IoT ........................................................ 13
2.1.10. Các ứng dụng của IoT trong đời sống ...................................... 13
2.1.11. Tại sao IoT lại quan trọng?........................................................ 15

x
2.1.12. Giới thiệu về wifi và các chuẩn giao tiếp: ................................. 15
Khái niệm về wifi .................................................................................... 15
2.1.13. Các thách thức trong việc nghiên cứu, triển khai IoT ............ 16
2.2. Cảm biến mưa: ................................................................................... 19
2.2.1. Khái niệm: ..................................................................................... 19
2.2.2. Module cảm biến mưa: ................................................................. 19
2.3. CẢM BIẾN ĐỘ ẨM ĐẤT ................................................................ 21
2.3.1. Khái niệm: ..................................................................................... 21
2.3.2. Cảm biến độ ẩm đất (dùng trong đồ án): ................................... 21
2.4. Module hạ áp ..................................................................................... 23
2.4.1. Khái niệm: ..................................................................................... 23
2.4.2. Sơ đồ nguyên lí .............................................................................. 25
2.5. SN74HC08N: ..................................................................................... 26
2.5.1. Khái niệm: ..................................................................................... 26
2.5.2. Sơ đồ, chức năng các chân và thông số kỹ thuật IC số 74HC08
cổng AND ................................................................................................. 27
2.6. TIP 41C:............................................................................................. 28
2.6.1. Khái niệm: ..................................................................................... 28
2.6.2. Thông số kỹ thuật: ........................................................................ 29
2.7. CHIP THỜI GIAN THỰC ................................................................ 29
2.7.1. DS1307: .......................................................................................... 29
2.7.2. Ứng dụng: ...................................................................................... 32
2.8. PIN ..................................................................................................... 32
2.8.1. Pin CMOS: .................................................................................... 32
2.9. TBLOCK ........................................................................................... 34
2.9.1. Cơ sở lý thuyết: ............................................................................. 34
2.9.2. Thông số kỹ thuật: ........................................................................ 35
2.10. EL 817 ............................................................................................. 35
2.10.1. Cơ sở lý thuyết: ........................................................................... 35
2.10.2. Sơ đồ EL817: ............................................................................... 36

xi
2.11. ĐIỆN TRỞ THANH 10K9(A103J)................................................. 39
2.11.1. Cơ sở lý thuyết: ........................................................................... 39
2.11.2. Ứng dụng: .................................................................................... 39
2.12. TỤ HOÁ .......................................................................................... 40
2.12.1. Cơ sở lý thuyết: ........................................................................... 40
2.12.2. Cấu tạo và tính chất và nguyên lý hoạt động của tụ hoá: ....... 40
2.13. Màn hình LCD: ................................................................................ 42
2.13.1. Giới thiệu LCD 1602: ................................................................. 42
2.13.2. Module I2C Arduino: ................................................................. 42
2.14. MODULE ESP8266: ....................................................................... 44
2.14.1. Cơ sở lý thuyết: ........................................................................... 44
2.14.2. Sơ đồ chân ESP8266: .................................................................. 46
2.14.3. Giao tiếp ESP8266 chuẩn UART: ............................................. 47
2.14.4. Giao tiếp ESP8266 chuẩn I2C: .................................................. 47
2.15. Phần mềm Arduino IDE: ................................................................. 49
2.15.1. Arduino IDE là gì? ...................................................................... 49
2.15.2. Arduino IDE hoạt động như thế nào? ...................................... 50
2.16. APP BLYNK ................................................................................... 51
2.16.1. Khái niệm: ................................................................................... 51
2.16.2. Cách sử dụng App Blink trên điện thoại .................................. 52
CHƯƠNG 3: PHƯƠNG PHÁP GIẢI QUYẾT .......................................... 55
3.1. GIỚI THIỆU VỀ MÔ HÌNH HỆ THỐNG ....................................... 55
3.2. THIẾT KẾ SƠ ĐỒ KHỐI ................................................................. 62
3.2.1. Thiết kế sơ đồ khối hệ thống:....................................................... 62
3.2.2. Chức năng từng khối: ................................................................... 63
CHƯƠNG 4: QUY TRÌNH THIẾT KẾ PHẦN CỨNG VÀ PHẦN MỀM
......................................................................................................................... 65
4.1. Giới thiệu phần cứng ......................................................................... 65
4.1.1. Giới thiệu ESP 8266: .................................................................... 65
4.1.2. Giới thiệu Chip thời gian thực: ................................................... 66

xii
4.1.3. Giới thiệu module hạ áp: .............................................................. 67
4.1.4. Giới thiệu SN74HC08: .................................................................. 68
4.1.5. Giới thiệu cảm biến mưa:............................................................. 69
4.1.6. Giới thiệu cảm biến độ ẩm đất: ................................................... 70
4.2. Lưu đồ giải thuật ................................................................................ 70
4.3. Thiết kế phần cứng và thiết kế phần mềm:........................................ 73
4.4. TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC ........................ 76
4.4.1. Tài liệu hưứng dẫn sử dụng ......................................................... 76
CHƯƠNG 5: THI CÔNG MÔ HÌNH THỰC NGHIỆM VÀ MÔ PHỎNG
......................................................................................................................... 77
5.1. GIỚI THIỆU ...................................................................................... 77
5.2. THI CÔNG HỆ THỐNG ................................................................... 77
5.3. Lập trình hệ thống: ............................................................................ 82
5.3.1. Các chức năng chính của hệ thống: ............................................ 82
5.3.2. KIẾN THỨC THU ĐƯỢC........................................................... 83
5.3.3. PHẦN CỨNG ................................................................................ 83
5.3.4. Quy trình thao tác trên thiết bị ................................................... 83
CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ........................... 89
6.1. Kết luận .............................................................................................. 89
6.1.1. Ưu điểm và nhược điểm: .............................................................. 89
6.2. Hướng phát triển đề tài: ..................................................................... 89
THAM KHẢO ............................................................................................... 91
Phụ lục: CODE CHƯƠNG TRÌNH ........................................................... 92

xiii
DANH MỤC HÌNH ẢNH

Hình 1.1 Hệ thống tưới cây tự động............................................................................2


Hình 2.1 Internet of Thing ..........................................................................................6
Hình 2.2 Cấu trúc hệ thống IoT ..................................................................................6
Hình 2.3 Ví dụ về MQTT............................................................................................8
Hình 2.4 Ví dụ XMPP .................................................................................................8
Hình 2.5 Năng lực truyền thông ................................................................................10
Hình 2.6 Bảng so sánh các chuẩn truyền thông không dây ......................................11
Hình 2.7 Một số loại cảm biến hay gặp ....................................................................12
Hình 2.8 Đáp ứng thời gian cho ứng dụng IoT .........................................................12
Hình 2.9 Tổng quan về ứng dụng của IoT. ...............................................................13
Hình 2.10 Theo dõi lộ trình đi của xe chở hàng........................................................14
Hình 2.11 Theo dõi tình trạng sinh trưởng của cây trồng. ........................................14
Hình 2.12 Mạng wifi trong cuộc sống ......................................................................16
Hình 2.13 Cảm biến mưa (raindrops) .......................................................................19
Hình 2.14 Hình thực tế và nguyên lý hoạt động của cảm biến mưa .........................20
Hình 2.15 Cảm biến độ ẩm đất .................................................................................22
Hình 2.16 Module hạ áp ............................................................................................23
Hình 2.17 LM2596 ....................................................................................................24
Hình 2.18 Sơ đồ nguyên lý LM2596 ........................................................................25
Hình 2.19 SN74HC08N ............................................................................................26
Hình 2.20 Sơ đồ các chân SN74HC08N ...................................................................27
Hình 2.21 TIP41C .....................................................................................................29
Hình 2.22 DS1307 (Chip thời gian thực) ..................................................................30
Hình 2.23 Sơ đồ chân DS1307 ..................................................................................32
Hình 2.24 Pin CMOS ................................................................................................33
Hình 2.25 TBlock ......................................................................................................34
Hình 2.26 EL817 .......................................................................................................36

xiv
Hình 2.27 Sơ đồ EL817.............................................................................................37
Hình 2.28 Sơ đồ opto quang .....................................................................................38
Hình 2.29 Điện trở thanh (A103J) ............................................................................39
Hình 2.30 Tụ Hoá ......................................................................................................41
Hình 2.31 LCD 1602 .................................................................................................42
Hình 2.32 Module I2C LCD 16x2 ............................................................................43
Hình 2.33 Module ESP8266 .....................................................................................45
Hình 2.34 Sơ đồ kết nối Arduino Uno với ESP 8266 ...............................................47
Hình 2.35 Sơ đồ kết nối ESP8266 với Arduino ........................................................48
Hình 2.36 Arduino IDE .............................................................................................50
Hình 2.37 Arduino IDE hoạt động trên laptop..........................................................51
Hình 2.38 App sau khi setup .....................................................................................53
Hình 2.39 App lúc chưa kết nối ................................................................................54
Hình 3.1 Kết nối Module thời gian thực với ESP8266 .............................................56
Hình 3.2 Module ESP8266 .......................................................................................56
Hình 3.3 Cảm biến độ ẩm đất ...................................................................................57
Hình 3.4 Cảm biến mưa ............................................................................................57
Hình 3.5 LCD 16x2 ...................................................................................................58
Hình 3.6 Bơm DC12V ..............................................................................................58
Hình 3.7 Sơ đồ khối hệ thống tưới cây tự động kiểm soát bằng cảm biến độ ẩm và
theo dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua internet..........63
Hình 4.1 Module hạ áp ..............................................................................................67
Hình 4.2 Lưu đồ giải thuật ........................................................................................72
Hình 4.3 Ảnh chi tiết trên thiết bị .............................................................................76
Hình 5.1 Sơ đồ nguyên lý..........................................................................................77
Hình 5.2 Mạch PCB ..................................................................................................78
Hình 5.3 Mạch 3D .....................................................................................................79
Hình 5.4 Mạch thực tế đã lắp các linh kiện...............................................................80
Hình 5.5 Hình thiết bị sau khi hoàn thiện .................................................................82

xv
Hình 5.6 Nút bật/tắt thiết bị ......................................................................................84
Hình 5.7 Nút bật máy bơm ........................................................................................85
Hình 5.8 Nút tắt máy bơm.........................................................................................85
Hình 5.9 Nút mode điều chỉnh các chế độ khi hệ tống tự động trên thiết bị ............86
Hình 5.10 Nút mode điều chỉnh các chế độ khi hệ tống tự động trên app ................87
Hình 5.11 Nhấn lại nút bật lần nữa để tắt .................................................................88

xvi
CHƯƠNG 1:
GIỚI THIỆU

1.1. ĐẶT VẤN ĐỀ

Nền nông nghiệp chúng ta là nền nông nghiệp vẫn còn lạc hậu cũng như
chưa có nhiều có nhiều ứng dụng khoa học kĩ thuật được á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 yêu cầu. Có thể nói trong nông nghiệp ngoài kĩ thuật
trồng trọt, chăm sóc thì tưới nước à một khâu quan trọng nhất trong trồng trọt đảm
bảo được cây sinh trưởng và phát triển bình thường.
Mặt khác hiện nay nước ta trong giai đoạn công nghiệp hoá, hiện đại hoá các
thiết bị máy móc tự động được đưa vào phục vụ thay thế sức lao động của con
người. Vì vậy thiết bị tưới đang được nghiên cứu, thiết kế, chế tạo đưa vào thực tiễn
ngày được áp dụng càng nhiều. Thiết bị tưới cũng đa dạng với nhiều chủng loại có
thông số khác nhau phục vụ các loại cây khác nhau. Hơn thế nữa, với việc thiết kế
một hệ thống tưới cây tự động sẽ giúp cho con người không phải tưới cây, không
phải tốn chi phí nhân công tưới nước cũng như giám sát được độ ẩm đất và đếm
được số ngày mưa. Với hệ thống này việc tưới cây tự động sẽ dựa theo độ ẩm đất và
số ngày mưa…. Tất cả các điều kiện đó sẽ được đưa vào hệ thống tính toán đưa ra
thời gian chính xác để bơm nước. Người lao động sẽ không cần phải bận tâm đến
việc tưới cây, cây sẽ được sinh trưởng và phát triển tốt hơn nhờ việc tưới cây phù
hợp và chính xác hơn.

1
Hình 1.1 Hệ thống tưới cây tự động

Ở đề tài này, chúng tôi đưa ra một giải pháp giúp giải quyết vấn đề cho
những người ở thành thị không có nhiều thời gian chăm sóc cho khoảng không gian
xanh của mình bằng hệ thống tưới cây tự động kiểm soát bằng cảm biến độ ẩm và
theo dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua internet. Chức
năng cảm biến độ ẩm sẽ báo cho người sử dụng biết được lượng nước hiện có trong
đất, thiết bị kết nối với các hệ thống tự động để theo dõi và điều chỉnh việc tưới
nước dựa trên nhu cầu thực của cây trồng điều này giúp tiết kiệm nước và đảm bảo
cây trồng nhận được lượng nước phù hợp để phát triển cách tối ưu.
Chức năng theo dõi số ngày mưa dùng để thu thập và ghi lại thông tin số
ngày mưa xảy ra trong vùng cụ thể ghi nhận sự xuất của mưa và tính ngày mưa gửi
dữ liệu và lưu trữ, phân tích dữ liệu.
Chúng tôi đề cao tính di động và linh hoạt của thiết bị. Thiết bị sẽ được thiết
kế nhỏ gọn, để trong sân vườn giúp mọi người điều chỉnh không có nhiều thời gian.

1.2. MỤC TIÊU ĐỀ TÀI

“Thiết bị hệ thống tưới cây tự động kiểm soát bằng cảm biến độ ẩm và theo
dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua internet” của chúng
tôi là một thiết bị nhỏ gọn. Hệ thống sẽ trở thành một phần trong cuộc sống của cây
trồng, nhạy bén cảm nhận những nhu cầu thực tế của chúng với khả năng kết hợp

2
theo dõi số ngày mưa, hệ thống sẽ trở thành một người bạn đồng hành đáng tin cậy
biết khi nào cây cần được tưới và khi nào cây cần được nghỉ ngơi và hấp thụ nước
mưa. Hệ thống sẽ tạo ra môi trường lý tưởng cho sự phát triển của cây, một môi
trường mà tình yêu và quan tâm đều được trao đến từ chúng ta. với điểu khiển qua
internet, chúng ta có thể tiếp tục yêu thương và chăm sóc cây trồng ngay cả khi
chúng ta không ở gần. Chúng ta có thể kiểm soát và điều chỉnh hoạt động tưới cây
từ xa, đảm bảo rằng cây trồng của chúng ta luôn được chăm sóc tốt, ngay cả khi
chúng ta không có mặt.
Chúng tôi thấy đề tài này có thể giúp tạo ra môi trường sống lý tưởng nơi mà
sự quan tâm và tình cảm tràn đầy giúp cây trồng phát triển với sự yêu thương và sự
chăm sóc tận tuỵ chúng ta.

1.3. NỘI DUNG ĐỀ TÀI

Ở đề tài “Thiết bị hệ thống tưới cây tự động kiểm soát bằng cảm biến
độ ẩm và theo dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua
internet” chúng tôi tiến hành các thực hiện những nội dung như sau:
*Nội dung 1: Tìm hiểu các mô hình hiện có, phân tích đặc điểm. Từ đó lựa
chọn giải pháp cho đề tài.
*Nội dung 2: Thiết kế sơ đồ khối, lựa chọn linh kiện phù hợp.
*Nội dung 3: Thiết kế hệ thống điều khiển.
*Nội dung 4: Thi công hệ thống.
*Nội dung 5: Kết quả đạt được.
*Nội dung 6: Đánh giá kết quả thực hiện và đề ra hướng phát triển.

1.4. PHƯƠNG PHÁP NGHIÊN CỨU

Chúng tôi đã nghiên cứu các hệ thống tưới cây tự động và học hỏi các
phương pháp vận hành xem họ thiết kế và sử dụng. Từ đó tích góp những ý kiến và

3
làm một mô hình nghiên cứu nhỏ cho đề tài chúng tôi. Trong đề tài này chùng tôi
thực hiện dùng cảm biến độ ẩm đất và cảm biến mưa sử dụng mạch điều khiển
chính là ESP 8266 kiểm soát hoạt động và thông số về độ ẩm và số ngày chưa mưa.
Chúng tôi viết chương trình code cho đề tài trên phần mềm Arduino IDE và thực
hiện thi công mạch, làm mạch hoàn chỉnh trên phần mềm Proteus.

1.5. KẾT CẤU ĐỒ ÁN TỐT NGHIỆP

Trong báo cáo lần này chúng tôi thực hiện và nghiên cứu. Đề tài sẽ được
chúng tôi chia thành 6 chương như sau:
Chương 1: Lời mở đầu giới thiệu tổng quan và mục tiêu nghiên cứu đề tài.
Chương 2: Cơ sở lý thuyết. Ở chương này chúng tôi sẽ giới thiệu về các linh
kiện, các phần mềm và App sử dụng trong mạch.
Chương 3: Tính toán và thiết kế hệ thống.
Chương 4: Thi công hệ thống.
Chương 5: Kiểm tra kết quả nhận xét và đánh giá.
Chương 6: Hướng phát triển đề tài.

4
CHƯƠNG 2:
CƠ SỞ LÝ THUYẾT

2.1. IOT
2.1.1. Khái niệm:
IoT là viết tắt của "Internet of Things" (Internet của Mọi Vật), một thuật ngữ
được sử dụng để chỉ sự kết nối và giao tiếp giữa các đối tượng vật lý thông qua
Internet. IoT cho phép các thiết bị như cảm biến, máy móc, thiết bị điện tử thông
minh, xe hơi, thiết bị gia đình và nhiều hơn nữa được kết nối và trao đổi dữ liệu với
nhau để thực hiện các chức năng thông minh và tự động.
2.1.2. Tổng quan về IoT:

Internet of Things (IoT) là thuật ngữ dùng để chỉ các đối tượng có thể được
nhận biết cũng như sự tồn tại của chúng trong một kiến trúc mang tính kết nối.
Đây là một viễn cảnh trong đó mọi vật, mọi con vật hoặc con người được cung cấp
các định danh và khả năng tự động truyền tải dữ liệu qua một mạng lưới mà không
cần sự tương tác giữa con người-với-con người hoặc con người-với-máy tính. IoT
tiến hoá từ sự hội tụ của các công nghệ không dây, hệ thống vi cơ điện tử (MEMS)
và Internet. Cụm từ này được đưa ra bởi Kevin Ashton vào năm 1999. Ông là một
nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT [7].

5
Hình 2.1 Internet of Thing

2.1.3. Cấu trúc của một hệ thống IoT:

Với một hệ thống IoT chúng sẽ bao gồm 4 thành phần chính đó là thiết bị
(Things), trạm kết nối (Gateways), hạ tầng mạng (Network and Cloud) và bộ phân
tích và xử lý dữ liệu (Services-creation and Solution Layers).
Các cảm biến sẽ có nhiệm vụ cảm nhận các tín hiệu từ môi trường như nhiệt
độ, áp suất, ánh sáng… và chuyển chúng thành các dạng dữ liệu trong môi trường
Internet. Sau đó các tín hiệu sẽ được xử lý và đưa ra các thay đổi theo ý của người
tiêu dùng. Hiện nay chúng thường được ứng dụng thông qua các ứng dụng trên điện
thoại hay trên máy tính.

Hình 2.2 Cấu trúc hệ thống IoT

6
2.1.4. Cơ sở kỹ thuật của IoT
Giao thức chính

Trong IoT, các thiết bị phải giao tiếp được với nhau (D2D). Dữ liệu sau đó
phải được thu thập và gửi tới máy chủ (D2S). Máy chủ cũng có để chia sẻ dữ liệu
với nhau (S2S), có thể cung cấp lại cho các thiết bị, để phân tích các chương trình,
hoặc cho người dùng. Các giao thức có thể dùng trong IoT là:
- MQTT: một giao thức cho việc thu thập dữ liệu và giao tiếp cho các máy
chủ (D2S).
- XMPP: giao thức tốt nhất để kết nối các thiết bị với mọi người, một
trường hợp đặc biệt của mô hình D2S, kể từ khi người được kết nối với các máy
chủ.
- DDS: giao thức tốc độ cao cho việc tích hợp máy thông minh (D2D).

- AMQP: hệ thống hàng đợi được thiết kế để kết nối các máy chủ với nhau.

* MQTT:

MQTT (Message Queue Telemetry Transport), mục tiêu thu thập dữ liệu và
giao tiếp D2S. Mục đích là đo đạc từ xa, hoặc giám sát từ xa, thu thập dữ liệu từ
nhiều thiết bị và vận chuyển dữ liệu đó đến máy trạm với ít xung đột nhất. MQTT
nhắm đến các mạng lớn của các thiết bị nhỏ mà cần phải được theo dõi hoặc kiểm
soát từ các đám mây.

MQTT hoạt động đơn giản, cung cấp nhiều lựa chọn điều khiển và QoS.
MQTT không có yêu cầu quá khắt khe về thời gian, tuy nhiên hiều quả của nó là
rất lớn, đáp ứng tính thời gian thực với đơn vị tính bằng giây.
Các giao thức hoạt động trên nền tàng TCP, cung cấp các đáp ứng đơn giản,
đáng tin cậy.
* XMPP:

XMPP ban đầu được gọi là "Jabber." Nó được phát triển cho các tin nhắn

7
tức thời (IM) để kết nối mọi người với những người khác thông qua tin nhắn văn
bản. XMPP là viết tắt của Extensible Messaging và Presence Protocol.

Hình 2.3 Ví dụ về MQTT

Hình 2.4 Ví dụ XMPP

8
XMPP sử dụng định dạng văn bản XML, và cũng tương tự như MQTT
chạy, XMPP chạy trên nền tảng TCP, hoặc có thể qua HTTP trên TCP. Sức mạnh
chính của nó là một chương trình name@domain.comaddressing trong mạng
Internet khổng lồ.
2.1.5. Năng lực truyền thông (Communication Capabilities)

Địa chỉ IP được coi là yếu tố quan trọng trong IoT, khi mà mỗi thiết bị được
gán một địa chỉ IP riêng biệt. Do đó khả năng cấp phát địa chỉ IP sẽ quyết định đến
tương lai của IoT. Hệ thống địa chỉ IPv4 được tạo ra mới mục đích đánh cho mỗi
máy tính kết nối vào mạng internet một con số riêng biệt, giúp cho thông tin có thể
tìm tới đúng nơi cần đến ngay khi nó được chuyển đi từ bất cứ địa điểm nào trên
thế giới. Theo thiết kế, Ipv4 có thể cung cấp 2^32 (tương ứng với khoảng 4,2 tỉ)
địa chỉ IP, một con số lớn không tưởng cách đây 30 năm. Tuy nhiên, sự bùng nổ
mạnh mẽ của Internet đã khiến cho số lượng địa chỉ IP tự do càng ngày càng
khan hiếm. Mới đây, RIPE NCC - Hiệp hội các tổ chức quản lý mạng Internet khu
vực châu Âu phải đưa ra tuyên bố rằng họ đã sử dụng đến gói địa chỉ IP chưa cấp
phát cuối cùng (khoảng 1,8 triệu địa chỉ).
Và sự ra đời của IPv6 như là một giải pháp cứu sống kịp thời cho sự cạn
kiệt của IPv4. Độ dài bit của là 128. Sự gia tăng mạnh mẽ của IPv6 trong không
gian địa chỉ là một yếu tố quan trọng trong phát triển Internet of Things.

9
Hình 2.5 Năng lực truyền thông

2.1.6. Công suất thiết bị (Device Power)

Các tiêu chí hình thức chính của thiết bị khi triển khai một ứng dụng IoT là
phải giá thành thấp, mỏng, nhẹ… và như vậy phần năng lượng nuôi thiết bị cũng
sẽ trở nên nhỏ gọn lại, năng lượng tích trữ cũng sẽ trở nên ít đi. Do đó đòi hỏi thiết
bị phải tiêu tốn một công suất cực nhỏ (Ultra Low Power) để sử dụng nguồn năng
lượng có hạn đó. Bên cạnh đó yêu cầu có những giao thức truyền thông không
dây gọn nhẹ hơn, đơn giản hơn, đòi hỏi ít công suất hơn (Low Energy Wireless
Technologies) như Zigbee, BLE (Bluetooth low energy), ANT/ANT+, NIKE.

10
Hình 2.6 Bảng so sánh các chuẩn truyền thông không dây

2.1.7. Công nghệ cảm biến (Sensor Technology)

Trong Internet of Things, cảm biến đóng vai trò then chốt, nó đo đạt cảm
nhận giá trị từ môi trường xung quanh rồi gửi đến bộ vi xử lý sau đó được gửi lên
mạng. Chúng ta có thể bắt gặp một số loại cảm biến về cảnh báo cháy rừng, cảnh
báo động đất, cảm biến nhiệt độ, cảm biến độ ẩm. Để giúp cho thiết bị kéo dài
được thời gian sống hơn thì đòi hỏi cảm biến cũng phải tiêu hao một lượng năng
lượng cực kỳ thấp. Bên cạnh đó độ chính xác và thời gian đáp ứng của cảm biến
cũng phải nhanh. Để giá thành của thiết bị thấp thì đòi hỏi giá cảm biến cũng phải
thấp.

11
Hình 2.7 Một số loại cảm biến hay gặp

Hình 2.8 Đáp ứng thời gian cho ứng dụng IoT

2.1.8. Thời gian đáp ứng

Thời gian đáp ứng phải đảm bảo tính thời gian thực, sao cho hàng ngàn các
node mạng có thể truy cập vào hệ thống mà không xảy ra hiện tượng nghẽn mạng.
Với các ứng dụng D2D, thời gian đáp ứng trong khoảng 10us đến 10ms, trong khi
ứng dụng D2S, thời gian này là 10ms đến 1s. Với các ứng dụng S2S, không có yêu

12
cầu khắt khe về thời gian đáp ứng, tuy nhiên thông thường yêu cầu từ 3 đến 5s.
2.1.9. CÁC ỨNG DỤNG CỦA IoT

Với những hiệu quả thông minh rất thiết thực mà IoT đem đến cho con
người, IoT đã và đang được tích hợp trên khắp mọi thứ, mọi nơi xung quanh thế
giới mà con người đang sống. Từ chiếc vòng đeo tay, những đồ gia dụng trong
nhà, những mãnh vườn đang ươm hạt giống, cho đến những sinh vật sống như
động vật hay con người… đều có sử dụng giải pháp IoT.

Hình 2.9 Tổng quan về ứng dụng của IoT.

2.1.10. Các ứng dụng của IoT trong đời sống


Ứng dụng trong lĩnh vực vận tải

Ứng dụng điển hình nhất trong lĩnh vực này là gắn chíp lấy tọa độ GPS lên
xe chở hàng, nhằm kiểm soát lộ trình, tốc độ, thời gian đi đến của các xe chở hàng.
Ứng dụng này giúp quản lý tốt khâu vận chuyển, có những xử lý kịp thời khi xe đi
không đúng lộ trình hoạt bị hỏng hóc trên những lộ trình mà ở đó mạng di động
không phủ sóng tới được, kiểm soát được lượng nhiên liệu tiêu hao ứng với lộ
trình đã được vạch trước.

13
Hình 2.10 Theo dõi lộ trình đi của xe chở hàng.

Ứng dụng trong lĩnh vực sản xuất nông nghiệp

Quá trình sinh trưởng và phát triển của cây trồng trải qua nhiều giai đoạn từ
hạt nảy mầm đến ra hoa kết trái. Ở mỗi giai đoạn cần có sự chăm sóc khác nhau về
chất dinh dưỡng cũng như chế độ tưới tiêu phù hợp. Những yêu cầu này đòi hỏi sự
bền bỉ và siêng năng của người nông dân từ ngày này sang ngày khác làm cho họ
phải vất vả. Nhưng nhờ vào ứng dụng khoa học kỹ thuật, sử dụng cảm biến để lấy
thông số nhiệt độ, độ ẩm, độ pH của đất trồng, cùng với bảng dữ liệu về quy trình
sinh trưởng của loại cây đó, hệ thống sẽ tự động tưới tiêu bón lót cho cây trồng
phù hợp với từng giai đoạn phát triển của cây trồng. Người nông dân bây giờ chỉ
kiểm tra, quan sát sự vận hành của hệ thống chăm sóc cây trồng trên một màn hình
máy tính có nối mạng.

14

Hình 2.11 Theo dõi tình trạng sinh trưởng của cây trồng.
Sản phẩm của mỗi loại nông sản sẽ được gắn mã ID, nếu tủ lạnh nhà chúng
ta sắp hết một loại nông sản nào đó thì ngay lập tức nó sẽ tự động gửi thông báo
cần mua đến cơ sở dữ liệu của trang trại có trồng loại nông sản đó, và chỉ sau một
thời gian nông sản mà bạn cần sẽ được nhân viên đem đến tận nhà.
2.1.11. Tại sao IoT lại quan trọng?
IoT là một phần không thể thiếu trong cuộc sống hiện đại và có thể giúp tăng
hiệu quả và tiết kiệm thời gian, cải tiến chất lượng sản phẩm và dịch vụ, giám sát và
điều khiển từ xa, cung cấp dữ liệu và phân tích dữ liệu, và cải tiến an toàn. Nó được
sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như công nghiệp, giao thông, y tế.

Trong ngành công nghiệp, IoT có thể được sử dụng để tự động hoá quy trình
sản xuất, giám sát chất lượng sản phẩm, và tăng hiệu quả sản xuất. Trong ngành
giao thông, IoT có thể được sử dụng để quản lý giao thông, giám sát tình trạng
đường bộ và cảnh báo nguy hiểm, và hỗ trợ cho các hệ thống lái xe tự hành. Trong
ngành y tế, IoT có thể được sử dụng để giám sát sức khỏe của người bệnh, hỗ trợ
cho việc quản lý bệnh trại, và cung cấp dữ liệu cho các nhà khoa học để phát triển
các phương pháp điều trị tốt hơn.

2.1.12. Giới thiệu về wifi và các chuẩn giao tiếp:


Khái niệm về wifi:

- Wifi là viết tắt của Wireless Fidelity là hệ thống truy cập internet không
dây. Loại sóng vô tuyến này tương tự như sóng điện thoại, truyền hình và radio.
- Wifi là công cụ kết nối không thể thiếu trên điện thoại, laptop, máy tính
bảng và một số thiết bị thông minh khác như smartwatch.

15
Hình 2.12 Mạng wifi trong cuộc sống

2.1.13. Các thách thức trong việc nghiên cứu, triển khai IoT
Ngôn ngữ chung:

Ở mức cơ bản nhất, Internet là một mạng dùng để nối thiết bị này với thiết
bị khác. Nếu chỉ riêng có kết nối không thôi thì không có gì đảm bảo rằng các thiết
bị biết cách nói chuyện nói nhau. Ví dụ, chúng ta có thể đi từ Việt Nam đến Mỹ,
nhưng không đảm bảo rằng chúng ta có thể nói chuyện tới với người Mỹ. Để các
thiết bị có thể giao tiếp với nhau, chúng sẽ cần một hoặc nhiều giao thức
(protocols), có thể xem là một thứ ngôn ngữ chuyên biệt để giải quyết một tác vụ
nào đó. Chắc chắn chúng ta đã ít nhiều sử dụng một trong những giao thức phổ
biến nhất thế giới, đó là HyperText Transfer Protocol (HTTP) để tải web. Ngoài ra
chúng ta còn có SMTP, POP, IMAP dành cho email, FTP dùng để trao đổi
file.
Những giao thức như thế này hoạt động ổn bởi các máy chủ web, mail và
FTP thường không phải nói với nhau nhiều, khi cần, một phần mềm phiên dịch
đơn giản sẽ đứng ra làm trung gian để hai bên hiểu nhau. Còn với các thiết bị IoT,
chúng phải đảm đương rất nhiều thứ, phải nói chuyện với nhiều loại máy móc thiết
bị khác nhau. Đáng tiếc rằng hiện người ta chưa có nhiều sự đồng thuận về các

16
giao thức để IoT trao đổi dữ liệu. Nói cách khác, tình huống này gọi là "giao tiếp
thất bại", một bên nói nhưng bên kia không thèm (và không thể) nghe.
Hàng rào subnetwork:

Như đã nói ở trên, thay vì giao tiếp trực tiếp với nhau, các thiết bị IoT hiện
nay chủ yếu kết nối đến một máy chủ trung tâm do hãng sản xuất một nhà phát
triển nào đó quản lí. Cách này cũng vẫn ổn thôi, những thiết bị vẫn hoàn toàn nói
được với nhau thông qua chức năng phiên dịch của máy chủ rồi. Thế nhưng mọi
chuyện không đơn giản như thế, cứ mỗi một mạng lưới như thế tạo thành một
subnetwork riêng, và buồn thay các máy móc nằm trong subnetwork này không
thể giao tiếp tốt với subnetwork khác.

Lấy ví dụ như xe ô tô chẳng hạn. Một chiếc Ford Focus có thể giao tiếp cực
kì tốt đến các dịch vụ và trung tâm dữ liệu của Ford khi gửi dữ liệu lên mạng. Nếu
một bộ phận nào đó cần thay thế, hệ thống trên xe sẽ thông báo về Ford, từ đó
hãng tiếp tục thông báo đến người dùng. Nhưng trong trường hợp chúng ta muốn
tạo ra một hệ thống cảnh báo kẹt xe thì mọi chuyện rắc rối hơn nhiều bởi xe Ford
được thiết lập chỉ để nói chuyện với server của Ford, không phải với server của
Honda, Audi, Mercedes hay BMW. Lý do cho việc giao tiếp thất bại? Chúng ta
thiếu đi một ngôn ngữ chung. Và để thiết lập cho các hệ thống này nói chuyện
được với nhau thì rất tốn kém, đắt tiền.
Một số trong những vấn đề nói trên chỉ đơn giản là vấn đề về kiến trúc
mạng, về kết nối mà các thiết bị sẽ liên lạc với nhau (Wifi, Bluetooth, NFC).
Những thứ này thì tương đối dễ khắc phục với công nghệ không dây ngày nay.
Còn với các vấn đề về giao thức thì phức tạp hơn rất nhiều, nó chính là vật vản lớn
và trực tiếp trên còn đường phát triển của Internet of Things.
Có quá nhiều "ngôn ngữ địa phương":

Bây giờ giả sử như các nhà sản xuất xe ô tô nhận thấy rằng họ cần một giao
thức chung để xe của nhiều hãng có thể trao đổi dữ liệu cho nhau và họ đã phát
triển thành công giao thức đó. Thế nhưng vấn đề vẫn chưa được giải quyết. Nếu

17
các trạm thu phí đường bộ, các trạm bơm xăng muốn giao tiếp với xe thì sao? Mỗi
một loại thiết bị lại sử dụng một "ngôn ngữ địa phương" riêng thì mục đích của
IoT vẫn chưa đạt được đến mức tối đa. Đồng ý rằng chúng ta vẫn có thể có một
trạm kiểm soát trung tâm, thế nhưng các thiết bị vẫn chưa thật sự nói được với
nhau.
Tiền và chi phí:

Cách duy nhất để các thiết bị IoT có thể thật sự giao tiếp đó là khi có một
động lực kinh tế đủ mạnh khiến các nhà sản xuất đồng ý chia sẻ quyền điều khiển
cũng như dữ liệu mà các thiết bị của họ thu thập được. Hiện tại, các động lực này
không nhiều. Có thể xét đến ví dụ sau: một công ty thu gom rác muốn kiểm
tra xem các thùng rác có đầy hay chưa. Khi đó, họ phải gặp nhà sản xuất thùng rác,
đảm bảo rằng họ có thể truy cập vào hệ thống quản lí của từng thùng một. Điều đó
khiến chi phí bị đội lên, và công ty thu gom rác có thể đơn giản chọn giải pháp cho
một người chạy xe kiểm tra từng thùng một.

18
2.2. CẢM BIẾN MƯA:
2.2.1. Khái niệm:
Cảm biến mưa là một thiết bị được sử dụng để đo và là thiết bị chuyên dụng
để nhận biết giọt nước, trời mưa hay các môi trường có mưa.
2.2.2. Module cảm biến mưa:

Hình 2.13 Cảm biến mưa (raindrops)

Cảm biến mưa (raindrops) được sử dụng để đo lại lượng mưa rơi xuống.
Được sử dụng hai mặt FR-04 chất lượng cao, với diện tích lớn và được xử lý bằng
bề mặt mạ niken, có hiệu suất vượt trội chống oxy hoá, dẫn điện và tuổi thọ, đầu ra
so sánh, tín hiệu sạch, dạng sóng tốt điện, điện áp làm việc 3.3v-5v.
Đặc trưng:
Kết nối với nguồn điện 5V, đèn báo nguồn bật sáng khi không có giọt nước
trên bảng cảm biến, đầu ra DO ở mức cao, đèn báo công tắc tắt, đầu ra DO bị tắt ở
mức thấp và đèn báo chuyển đổi được bật.
Chảy các giọt nước ở trên và trở về trạng thái thấp cao
Đầu ra tương tự AO bạn có thể kết nối cổng AD của vi điều khiển để phát
hiện trời mưa.
Đầu ra kĩ thuật số DO TTL cũng có thể được kết nối với vi điều khiển để
phát hiện mưa.

19
Cấu tạo bên trong:

Hình 2.14 Hình thực tế và nguyên lý hoạt động của cảm biến mưa

Cảm biến mưa có cấu tạo gồm hai bộ phận chính đó là đệm cảm biến và mô-
đun cảm biến. Khi nước mưa rơi trên bề mặt của tấm cảm biến thì module cảm biến
sẽ đọc dữ liệu để xử lý và chuyển thành đầu ra dạng tín hiệu tương tự (Analog) hoặc
kỹ thuật số (Digital). Đó là lý do mà đầu ra cảm biến báo mưa sẽ có dạng tín hiệu là
tương tự (Analog-AO) và kỹ thuật số (Digital-DO).
Nguyên lý hoạt động:
Cảm biến mưa hoạt động dựa theo cách so sánh hiệu điện thế của mạch điện
cảm biến nằm ngoài trời với giá trị định trước. Giá trị định trước này thay đổi được
thông qua 1 biến trở màu xanh. Từ kết quả so sánh thì bộ xử lý sẽ phát ra tín hiệu
đóng hoặc ngắt rơ le qua chân DO.
Khi xuất hiện nước trên bề mặt cảm biến, độ dẫn điện của tấm bên ngoài sẽ
tốt hơn khiến cho điện trở giảm xuống. Chân DO sẽ được kéo xuống thấp (0V), đèn
LED màu đỏ sẽ được bật sáng đèn lên.
Khi trời không mưa, độ dẫn điện của vật liệu sẽ kém khiến cho điện trở, chân
DO của module cảm biến mưa được giữ ở mức cao (khoảng từ 5v-12v). Vì vậy, đầu
ra của cảm biến mưa chủ yếu phụ thuộc vào điện trở. Bạn nên dùng các loại rơ le
kích ở mức phù hợp với mục đích sử dụng để kích hoạt chức năng mong muốn.

20
2.3. CẢM BIẾN ĐỘ ẨM ĐẤT
2.3.1. Khái niệm:
Cảm biến độ ẩm đất là một loại cảm biến được sử dụng để đo lường mức độ
ẩm trong đất. Nó giúp theo dõi và điều khiển tưới cây một các tự động và hiệu quả,
đảm bảo rằng cây trông nhận được lượng nước để phát triển một các tối ưu.
Cảm biến đất được sủ dụng trong nhiều ứng dụng khác nhau bao gồm:
Quản lý tưới cây: Cảm biến đất giúp theo dõi mức độ ẩm trong đất và cung
cấp thông tin để điều chỉnh quá trình tưới cây một cách chính xác. Điều này giúp
tiết kiệm nước tăng năng suất và tránh tình trạng cây bị thiếu hoặc thừa nước.
Nghiên cứu đất và môi trường: Cảm biến độ ẩm đất cung cấp dữ liệu quan
trọng cho nghiên cứu về đất, môi trường và thuỷ văn. Nó giúp đo lường độ ẩm trong
đất để hiểu tốt hơn về sự phân bố nước, quản lý tài nguyên nước và dự báo tình hình
môi trường.
Quản lý rừng và đất rừng: Cảm biến độ ẩm đất được sử dụng trong quản lý
rừng và đất rừng để đo lường độ ẩm trong đất và theo dõi tình trạng nước trong môi
trường rừng. Điều này giúp tối ưu hoá quá trình quản lý tài nguyên rừng và đảm bảo
sự phát triển và duy trì hệ sinh thái rừng.
2.3.2. Cảm biến độ ẩm đất (dùng trong đồ án):
Khi cảm biến độ ẩm hoạt động điện trở các điện cực được đo và đưa vào mạch
điện tử. Mạch điện tử sẽ chuyển đổi giá trị điện trở thành giá trị đo lường thích hợp
đại diện cho độ ẩm đất. Thông qua việc chuyển đổi tín hiệu, giá trị đo được chuyển
đổi thành dạng số hoặc phần trăm độ ẩm của đất.
Cảm biến độ ẩm đất này có thể được kết nối với các hệ thống điều khiển hoặc
ghi dữ liệu để theo dõi và điều chỉnh quá trình tưới cây. Khi giá trị độ ẩm đất xuống
dưới một ngưỡng xác định hệ thống có thể kích hoạt quá trình tưới cây để cung cấp
nước cho cây trồng.
Nguyên lý hoạt động:
- Khi module cảm biến độ ảm phát hiện, khi đó sẽ có sự thay đổi điện áp ngay
tại đầu của IC LM393. IC này nhận biết có sự thay đổi nó sẽ đưa ra một tín hiệu 0V

21
để báo hiệu.
- Cảm biến độ ẩm đất rất nhạy với độ ẩm môi trường xung quang thưuongf
được sử dụng phát hiện độ ẩm đất.
- Khi độ ẩm đất vượt quá giá trị thiết lập ngõ ra của module D0 ở mức giá trị
là 0V.
- Ngõ ra D0 có thể được kết nối trực tiếp với vi điều khiển và giúp phát hiện
độ ẩm cao và thấp.
- Đầu ra Analog AO có thể được kết nối với bộ chuyển đổi ADC bạn có thể
nhận được các giá trị chính xác hơn độ ẩm của đất.

Hình 2.15 Cảm biến độ ẩm đất

Thông số kỹ thuật:
- Điện áp hoạt động: 3.3-5v.
- Kích thước PCB: 3cm * 1.6cm.
- Led đỏ áo nguồn vào, led xanh báo độ ẩm.
- IC so sánh: LM393.
- VCC: 3.3-5V.
- GN: 0V.
- DO: Đầu ra tín hiệu số (0 và 1).
- AO: Đầu ra Analog (Tín hiệu tương tự).

22
2.4. MODULE HẠ ÁP
2.4.1. Khái niệm:
Module hạ áp hay còn gọi là nguồn hạ áp là một thiết bị dùng để chuyển đổi
và điều chỉnh điện áp từ một nguồn điện vào thành một điện áp thấp hơn phù hợp
các thiết bị hoạt động ở mức điện áp thấp hơn.

Hình 2.16 Module hạ áp

Cấu tạo:
Nguồn điện vào: Đây là nguồn điện ban đầu thường là một nguồn điện cao
hơn, được cung cấp cho module hạ áp. Nguồn điện này có thể là nguồn AC hoặc
nguồn DC và được kết nối đến module hạ áp thông qua các đầu vào.
Bộ chuyển đổi là một phần quan trọng của module hạ áp, nơi sẽ thực hiện
quá trình chuyển đổi từ nguồn điện vào thành một điện áp thấp hơn. Bộ chuyển đổi
có thể sử dụng các linh kiện điện tử như transistor, diot, tụ điện và cuộn cảm để
thực hiện việc điều chỉnh và biến đổi điện áp.
Mạch điều khiển là nơi kiểm soát và điều chỉnh quá trình chuyển đổi của
module hạ áp. Nó thường bao gồm các linh kiện điện tử như vi điều khiển transistor,
điện trở và tụ điện. Mạch điều khiển có nhiệm vụ giám sát và điều chỉnh các thông
số như điện áp đầu ra, dòng điện và bảo vệ quá tải.
Đầu ra điện áp thấp: Đây là điện áp được chuyển đổi và cung cấp bởi module
hạ áp cho các thiết bị hoạt động ở mức điện áp thấp hơn. Đầu ra điện áp thấp này có
thể kết nối với các linh kiện hoặc mạch điện tử khác để cung cấp điện áp phù hơp

23
cho hoạt động của chúng.
Đặc điểm:
Module được xây dựng dựa trên nguyên tắc của các linh kiện điện tử như
transitor, diot, tụ diện và cuộn cảm. Sử dụng các khái niệm logic như mạch điều
khiển, phép chuyển đổi. Nguyên tắc logic cũng được áp dụng trong mạch điều khiển
của module nơi các phép so sánh, kiểm tra điều chỉnh được thực hiện để đảm bảo
hoạt động ổn định và bảo vệ hệ thống khỏi các tình huống không mong muốn như
quá tải quá nhiệt quá áp và ngắn mạch.
Sơ đồ chân:

Hình 2.17 LM2596

IC LM 2596 có 5 chân

• Chân 1: V in (điện áp đầu vào từ 4,5 ~ 40V).

• Chân 2: V out (Điện áp đầu ra được điều chỉnh hạ xuống).

• Chân 3: GND.

24
• Chân 4: Feedback chân phản hồi điện áp (Đặt điện áp đầu ra bằng cách
sử dụng mạng bộ chia sử dụng phản hồi điện áp đầu ra).

• Chân 5: ON/OFF chân tắt bật mức logic (Kích hoạt chân, phải được nối
đất để hoạt động bình thường).

2.4.2. Sơ đồ nguyên lí

Hình 2.18 Sơ đồ nguyên lý LM2596

LM2596 rất dễ sử dụng vì nó yêu cầu rất ít linh kiện. Điện áp không điều
chỉnh được cấp cho chân 1 (Vin) qua tụ lọc để giảm nhiễu đầu vào. Chân ON / OFF
hoặc chân kích hoạt (chân 5) phải được nối với đất để kích hoạt IC. Nếu được đặt ở
mức cao, IC sẽ chuyển sang chế độ tắt và ngăn chặn dòng điện rò rỉ. Tính năng này
sẽ hữu ích để tiết kiệm điện năng đầu vào khi hoạt động qua pin. Chân feedback là
chân quan trọng thiết lập điện áp đầu ra. Nó cảm nhận điện áp đầu ra và dựa trên giá
trị của điện áp đầu ra này, tần số chuyển mạch của công tắc bên trong được điều
chỉnh để cung cấp điện áp đầu ra mong muốn. Cuối cùng điện áp đầu ra thu được
thông qua chân 2 thông qua một bộ lọc LC. Sơ đồ mạch đầy đủ ở bên dưới, bạn
thường có thể tìm thấy các mạch này trong module chuyển đổi DC LM2596.

25
2.5. SN74HC08N:
2.5.1. Khái niệm:
Một loại chip cổng logic NAND 4 cổng trong gói IC DIP-14, nó thuộc loại
logic cấp điện 74HC được thiết kế để thực hiện các phép toán logic NAND trên tín
hiệu đầu vào. SN74HC08N được gói trong 1 IC DIP-14, có 14 chân để kết nối với
các thành phần khác trên mạch in. Mỗi cỗng logic NAND trong chip có hai đầu vào
và một đầu ra và chúng hoạt động theo nguyên tắc cổng NAND.

Hình 2.19 SN74HC08N

Nguyên lý hoạt động:


Khi cả hai đầu của cổng NAND đều là logic cao, đầu ra sẽ logic thấp. Ngược
lại nếu ít nhất một trong hai đầu vào của cổng NAND là logic thấp, đầu ra sẽ logic
cao. Điều này tương ứng với chức năng của cổng NAND là kết quả của việc kết hợp
phép NOT và AND.
SN74HC08N hoạt động với điện áp cấp 5V và nó tương thích ngược với cấu
trúc logic TTL. Nó có tốc độ hoạt động cao và tiêu thụ năng lượng thấp, làm cho nó
phù hợp với các ứng dụng điện tử đòi hỏi hiệu suất cao tiết kiệm năng lượng.
IC SN74HC08N được sử dụng rộng rãi trong các ứng dụng điện tử bao gồm
điều khiển tự động, hệ thống nhúng, viễn thông, thiết bị y tế, máy tính và nhiều lĩnh
vực khác. Nó là một thành phần quan trọng trong việc xây dựng các mạch logic và
hệ thống điện tử hiệu suất cao.

26
2.5.2. Sơ đồ, chức năng các chân và thông số kỹ thuật IC số 74HC08 cổng AND

Hình 2.20 Sơ đồ các chân SN74HC08N

VCC: Nguồn cấp.


GND: Nối đất.
Chân 1, 2; 4, 5; 9, 10; 12, 13: Các cặp đầu vào.
Chân 3, 6, 8, 11: Các đầu ra AND.

27
Datasheet 74HC08

Chân 14

Số cổng AND trong ic 4

Điện áp hoạt động 2V – 6V DC

Dòng ngõ ra 5.2mA

Nhiệt độ hoạt động -40°C – 125°C

Mức logic 0 hoặc 1

2.6. TIP 41C:


2.6.1. Khái niệm:
TIP41C là một loại transistor trung gian dung cho ứng dụng khuếch đại và
chuyển mạch. Đây là một transistor có cấu hình PNP và được sử dụng rộng rãi
trong các ứng dụng điện tử.
Transistor TIP41C thường được sử dụng trong các ứng dụng khuếc đại công
suất nơi cần điện áp và dòng điện trung bình. Ngoài ra, nó cũng có thể được sử
dụng trong mạch chuyển mạch để điều khiển các tải cao hơn. Lưu ý rằng việc đảm

28
bảo làm mát phù hợp là cần thiết khi sử dụng transistor này để tản nhiệt được tạo ra
trong quá trình hoạt động.

Hình 2.21 TIP41C

2.6.2. Thông số kỹ thuật:


- Loại Transistor PNP.
- Điện áp cực trung tối đa: 100V.
- Điện áp cực vàng tối đa: 100V.
- Dòng cực thu tối đa: 6A.
- Hệ số khuếch đại dòng liên tục: từ khoảng 15 đến 7.
- Công suất toả nhiệt (Pd): 65w.
- Tần số chuyển mạch: 3MHz.

2.7. CHIP THỜI GIAN THỰC


2.7.1. DS1307:
Một chip thời gian thực được sử dụng để đo và theo dõi thời gian trong các
ứng dụng điện tử. DS1307 cung cấp chức năng bộ đếm thời gian chính xác và có
khả năng giữ thông tin thời gian và ngày tháng, bất kể khi nguồn điện chính bị mất.
Chip DS1307 được giao tiếp thông qua giao diện I2C (inter-integrated
circuit) và có khả năng lưu trữ thông tin thời gian và ngày tháng trong bộ nhớ nội
bộ. Giúp lưu giữ thông về giây phút giờ, ngày, tháng, năm. DS1307 cũng có tính

29
năng bảo lưu nguồn pin, nghĩa là nó có thể hoạt dộng dựa trên một nguồn pin ngoài
như pin CR2032 để giữ thông tin thời gian khi nguồn điện chính bị mất.

Hình 2.22 DS1307 (Chip thời gian thực)

Thông số kỹ thuật:
- Giao diện: I2C.
- Dải điện áp hoạt động 2.0V đến 5.5V.
- Bộ nhớ: 56 bytes dung để lưu trữ thông tin thời gian và ngày tháng).
- Độ phân giải thời gian: Giây, Phút, Giờ, Ngày, Tháng và Năm.
- Hỗ trợ chức năng tự động điều chỉnh năm nhuận.
- Gói 8 chân DIP (Dual Inline Package) hoặc gói SOIC (Small Outline
Integrated Circuit).
- Chức năng bảo lưu nguồn pun (backup power) để giữ thông tin thời gian
khi nguồn chính bị mất.
- Khả năng báo động theo thời gian.
Sơ đồ chân DS1307:

Chân Tên Chức năng

30
1 X1
Đây là các chân kết nối với thạch anh tần số 32.768 KHz để kích
hoạt bộ dao động nội.
2 X2

Chân này được kết với cực dương pin Lithium 3V để cấp nguồn
3 VBAT
nuôi dự phòng.

4 GND Chân nối đất.

Chân dữ liệu nối tiếp (Serial Data). Đây là chân dữ liệu vào/ra
5 SDA của giao thức I2C. Chân này cần đưa lên nguồn 5V thông qua
điện trở 10kΩ.

Chân đầu vào xung đồng hồ nối tiếp (Serial Clock). Đây là chân
6 SCL ngõ vào xung nhịp của giao thức I2C. Chân này cũng phải được
kéo đến 5V thông qua một điện trở 10kΩ.

Ngõ xuất ra xung vuông, tần số có thể lập trình để thay đổi từ
7 SQW/OUT 1Hz, 4Khz, 8Khz, 32Khz. Nếu không được sử dụng, chân này có
thể được thả nổi.

Chân cấp nguồn chính, khoảng 5VDC. Nếu VCC không có mà


8 VCC VBAT có thì DS1307 vẫn hoạt động bình thường nhưng không
ghi và đọc được dữ liệu.

Sơ đồ chân DS1307 Hình ảnh sau đây cho thấy hình dạng và sơ đồ chân của IC
RTC DS1307. Để giảm công suất tiêu thụ, số lượng chân trên IC phải giảm. Do đó,
DS1307 RTC sử dụng Giao tiếp I2C.

31
Hình 2.23 Sơ đồ chân DS1307

2.7.2. Ứng dụng:


- Chip được sử dụng trong nhiều ứng dụng khác nhau, trong đó chức năng
chính là theo dõi và lưu trữ thông tin thời gian:
- Đồng hồ điện tử: DS1307 có thể được sử dụng để xây dung các đồng hồ
điện tử chính xac với độ phân giải cao và khả năng bảo lưu thông tin thời gian khi
mất nguồn.
- Hệ thống định thời và đồng: Được sử dụng trong các ứng dụng yêu cầu
đồng bộ thời gian, như hệ thống định thời, hệ thống điều khiển thời thực.
- IoT: DS1307 có thể được sử dụng trong các ứng dụng IoT để đồng bộ thời
gian giữa các thiết bị và hệ thống mạng.
- Hệ thống nhúng: DS1307 được tích hợp và các hệ thống nhúng để cung cấp
tính năng thời gian thực.

2.8. PIN
2.8.1. Pin CMOS:
Được gọi là pin RTC (Teal-Time Clock) là một loạit pin được sủ dụng trong
các chip hoặc mạch điện tử có chức năng giữ thông tin thời gian thực khi nguồn
điện chính bị mất.

32
Pin CMOS thường được sử dụng để cung cấp nguồn dự phòng cho các chip
RTC. Khi nguồn điện chính bị mất pin CMOS sẽ tiế tục cung cấp nguồn cho chip
RTC, giữ cho nó hoạt động và giữ thông tin thời gian không bị mất.
Pin CMOS thường có dạng pin button cell như pin CR2032 với điện áp hoạt
động thấp. Loại pin này có tuổi thọ tương đối lâu có thể duy trì hoạt động của chip
RTC trong một khoảng thời gian dài trước khi cần thay pin mới.
Thông số kĩ thuật:
- Dung lượng: 1800mah.
- Điện thế: 1.2V.
- Dòng cả: 0.5C.
- Size pin: SC.
- Kích thước: 23mmx43mm.
- Mã SP: SC1800mAh.
- Khối lượng: 50g.

Hình 2.24 Pin CMOS

33
2.9. TBLOCK
2.9.1. Cơ sở lý thuyết:
Cấu trúc TBlock thường có cấu trúc gồm các khối nhỏ được gắn trên một
thanh chân hoặc mặt phẳng chung. Các khối nhỏ này thường xuất có hình chữ nhật
hoặc hình vuông và được chia thành các khe cắm hoặc điểm kết nối. Các khe cắm
có thể được thiết kế để chưa đầu cắm hoặc dây dẫn điện trực tiếp.

Hình 2.25 TBlock

Chất liệu TBlock thường làm từ các vật liệu có khả năng cách điện và chịu
được nhiệt độ cao như nhựa cách điện, nylon hoặc kim loại như đồng nhôm.
Các đặc tính TBlock có thể có các đặc tính khác như khả năng chống rung,
khả năng chống nước, khả năng chống cháy cách điẹn và chịu được dòng điện và
điện áp cao.
Tính năng chính:
- Kết cuối, nối các dây vào trong mạch. Cố định dây bằng ốc vặn.
- Có thể ghép nhiều cái với nhau.

34
- Dùng làm cọc nguồn.
- Dùng trong các mạch điện tử.
2.9.2. Thông số kỹ thuật:
- Khoảng cách 2 chân là 5 mm, có ốc vặn.
- Loại chân thẳng.
- Điện áp tối đa: 300 V.
- Dòng điện tối đa: 10 A.
- Trở kháng tiếp xúc: 20 milliohm.
- Đường kính chân: 1.1 mm.
- Số lượng chân: 2.
2.10. EL 817
2.10.1. Cơ sở lý thuyết:
EL817 là một loại opto được sử dụng rộng rãi trong các ứng dụng điện tử và
viễn thông như:
Điều khiển relay và máy móc điện: sử dụng để điều khiển các relay và máy
móc điện bằng cách đóng ngắt mạch dựa trên tín hiệu ánh sáng.
Mạch chuyển đổi tín hiệu: sử dụng trong các mạch chuyển đổi tín hiệu để cô
lập các mạch đầu vào và đầu ra với nhau, giảm thiểu nhiễu và đảm bảo tính an toàn
cho hệ thống.
Điều khiển động cơ: sử dụng để kiểm soát động cơ và giảm thiểu các tín
hiệu nhiễu từ động cơ.
Điều khiển đèn: sử dụng để điều khiển đèn bằng tín hiệu ánh sáng và giảm
thiểu các nhiễu từ đường dẫn điện của đèn.
Thiết bị đo: sử dụng để đo các tín hiệu ánh sáng nhỏ, chẳng hạn như đo mức
ánh sáng trong các phòng học hoặc văn phòng làm việc.
Với các tính năng như độ bền cao, giá thành phải chăng và độ tin cậy cao,
linh kiện này là một lựa chọn phổ biến cho các ứng dụng điện tử và viễn thông.

35
Hình 2.26 EL817

Tính năng / Thông số kỹ thuật EL 817:


Loại gói: Dip 4 chân và SMT.
Loại transistor: NPN.
Dòng cực góp tối đa (IC): 50mA.
Điện áp cực góp - cực phát tối đa (VCEO): 80V.
Điện áp bão hòa cực góp - cực phát: 0,1 đến 0,2.
Điện áp cực phát - cực gốc tối đa (VEBO): 6V.
Công suất tiêu tán cực góp tối đa (Pc): 200 mW.
Nhiệt độ lưu trữ và hoạt động phải là: -55 đến +120 độ C để lưu trữ và -30
đến +100 để hoạt động.
2.10.2. Sơ đồ EL817:
Sơ đồ cấu hình chân và giải thích chức năng của mỗi chân. Trong sơ đồ sơ
đồ chân này của PC817, pin1 và pin2 là các phần của phía đầu vào và pin3 – pin4 là
các chân đầu ra.

36
Hình 2.27 Sơ đồ EL817

INPUT

Chân 1 là chân cực dương của đầu vào IR trong Optocoupler.


ANODE PIN 1
Nó sẽ cung cấp tín hiệu đầu vào logic cho IR bên trong.

Chân 2 là chân cực âm của IR trong bộ ghép quang. Nó sẽ cung


CATHODE PIN 2
cấp cho IR để tạo điểm chung với mạch và nguồn điện.

OUTPUT

Chân 3 là chân đầu ra của bộ thu IR bên trong của optocoupler.


COLLECTOR PIN 3
Nó sẽ đưa ra đầu ra logic bằng cách nhận tín hiệu IR.

Chân 4 là chân nối đất cho bộ thu IR. Nó sẽ được sử dụng để


EMITTER PIN 4
làm điểm chung với Nguồn điện và mạch điện.

37
Sơ đồ Opto quang:

Hình 2.28 Sơ đồ opto quang

Khi tín hiệu đầu vào ở mức 5V thì đèn LED sẽ có dòng điện chạy qua nên
phát sáng. Ánh sáng này chiếu vào photo transistor làm nó dẫn điện. Trở kháng lúc
này của photo transistor rất bé và nó gần như dẫn thông xuống mass làm tín hiệu
điện trên chân C sụt về 0V.

Như vậy, qua ví dụ trên các bạn có thể thấy, có thể dùng opto để một tín hiệu
5V điều khiển một tín hiệu VCC thông qua ánh sáng. Hay nói cách khác, thiết bị
này cho phép sử dụng một điện áp nhỏ để điều khiển một điện áp lớn hơn.

Trong mạch ví dụ này, điện trở 270kΩ được kết nối bên ngoài được sử dụng
để điều khiển độ nhạy ánh sáng của transistor quang. Giá trị của điện trở có thể
được chọn để phù hợp với bộ cách ly quang đã chọn và độ nhạy chuyển mạch cần
thiết. Tụ điện ngăn chặn mọi đột biến hoặc quá độ điện áp không mong muốn có thể
dẫn đến việc kích hoạt sai vào cực nền của transistor quang.

38
2.11. ĐIỆN TRỞ THANH 10K9(A103J)
2.11.1. Cơ sở lý thuyết:
Điện trở thanh (hay còn gọi là điện trở thanh) thực chất do nhiều điện trở có
cùng giá trị trở kháng.
Trở thanh có một chân chung, các chân còn lại nối với chân chung
Qua một điện trở.

Hình 2.29 Điện trở thanh (A103J)

Thông số kỹ thuật:
Giá trị: 10k.
Công suất: 1/8W.
Độ sai số: 5%.
Loại: điện trở cố định.
Số chân: SIP9.
Giá trị của trở kháng được ghi trên than điện trở.
2.11.2. Ứng dụng:
Trở thanh được sử dụng khi cần nhiều điện trở giống nhau và có yêu cầu hạn
chế diện tích, thiết kế cho gọn.
Đặc biệt đối với các mạch LED và số lượng LED nhiều việc sử dụg trở thanh
sẽ có hiệu quả cao.

39
2.12. TỤ HOÁ
2.12.1. Cơ sở lý thuyết:
Tụ hoá trong tiếng anh sử dụng với thuật ngữ là electrolytic capacitor hay
còn được gọi với tên tụ điện phân. Đây là một loại một loại tụ điện phân cực có
bản cực dương được làm bằng kim loại sau đó tạo thành một lớp oxit các điện giữa
hai chân tụ. Lớp oxit cách điện này chính là lớp điện môi cách điện của tụ.
Tụ điện phân có thể được làm từ chất rắn, gel hoặc chất lỏng bao phủ lên
bề mặt của lớp oxit và vai trò chính của lớp điện phân chính là bản cực âm của tụ
điện hay Cathode. Do lớp điện môi bằng Oxit rất mỏng và bề mặt bản cực dương
mở rộng, điều này khiến cho các tụ điện hóa có điện dung, cùng với điện áp cao
hơn nhiều so với tụ gốm hoặc tụ phim.
2.12.2. Cấu tạo và tính chất và nguyên lý hoạt động của tụ hoá:
Tụ hóa hiện nay có hai hình dạng phổ biến trên thị trường đó là tụ hóa với
hình trụ và tụ hóa có dạng xuyên tâm. Đối với loại tụ hình trụ có mỗi chân trên mỗi
đầu trụ, trong khi đó ở dạng xuyên tâm thì cả hai chân của tụ đều nằm trên cùng
một đầu hình trụ.

Tụ hóa hay tụ điện phân thường có điện dung lớn hơn các loại tụ điện khác
trên thị trường hiện nay. Điện dụng của tụ hóa thường nằm trong khoảng từ 1µF đến
47mF. Tuy nhiên, với những loại tụ điện có hai lớp hoặc siêu tụ điện thì giá trị điện
dung của nó có thể đạt tới hàng ngàn Farad. Đối với tụ hóa thì giá trị điện dung của
nó phụ thuộc vào nhiều yếu tố khác nhau như độ dày của chất điện phân hay chất
cách điện. Đặc biệt, tụ điện có kích thước càng lớn thì điện dung của giá trị càng
lớn.

40
Hình 2.30 Tụ Hoá

Nguyên lý hoạt động:

Nguyên lý phóng nạp: Có thể hiểu một cách đơn giản về nguyên lý này
chính là khả năng tích trữ năng lượng điện của tụ hóa. Khả năng tích năng lượng
này giống như một loại bình ắc quy thu nhỏ và đưa năng lượng điện về dạng điện
trường. Khả năng lưu trữ các điện tích của tụ hóa cực ưu việt và có thể thực hiện
việc phóng ra các điện tích để sinh ra dòng điện cho mạch. Tuy nhiên điểm khác
biệt cực lớn của tụ hóa so với bình ắc quy đó chính là việc nó không có khả năng tự
sinh ra các điện tích e và nó nhận từ dòng điện và lưu trữ lại để dùng.
Nguyên lý xả nạp: Đây chính là tính chất đặc trưng nhất và được coi là cơ
bản nhất trong nguyên lý làm việc của tụ hóa nói riêng và tụ điện nói chung. Chính
vì thế mà tụ hóa có thể dẫn được dòng điện xoay chiều đi qua. Trong trường hợp
điện áp của 2 bản mạch không hề có sự thay đổi đột ngột mà lại xảy ra biến thiên
theo thời gian, khi đó ta thực hiện việc cắm nạp hoặc xả nạp sẽ dễ đến hiện tượng
nổ và có kèm đó sẽ xuất hiện tia lửa điện. Điều này được hình thành là bởi dòng
điện tăng lên một cách đột ngột.

41
2.13. MÀN HÌNH LCD:
2.13.1. Giới thiệu LCD 1602:
Màn hình LCD 16x2 là một linh kiện được sử dụng rộng rãi trong trong các
dự án điện tử và lập trình.

Hình 2.31 LCD 1602

Thông số kỹ thuật LCD 1602:


• LCD 1602 được sử dụng để hiển thị trạng thái hoặc các thông số.
• LCD 1602 có 16 chân trong đó 8 chân dữ liệu (D0 - D7) và 3 chân
điều khiển (RS, RW, EN).
• 5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 1602.
• Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc
chế độ dữ liệu.
• Chúng còn giúp ta cấu hình ở chế độ đọc hoặc ghi. LCD 1602 có thể
sử dụng ở chế độ 4bit hoặc 8bit tùy theo ứng dụng ta đang làm.
2.13.2. Module I2C Arduino:
LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và
chiếm dụng nhiều chân trên vi điều khiển.

42
Module I2C LCD ra đời và giải quyết vấn để này cho bạn.
Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16x2 (RS, EN,
D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.
Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16x2, LCD
20x4, ...) và tương thích với hầu hết các vi điều khiển hiện nay.

Hình 2.32 Module I2C LCD 16x2

Ưu điểm:

• Tiết kiệm chân cho vi điều khiển.

• Dễ dàng kết nối với LCD.

Thông số kĩ thuật:

• Điện áp hoạt động: 2.5-6V DC.

• Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780).

• Giao tiếp: I2C.

• Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân
A0/A1/A2).

• Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.

43
• Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

2.14. MODULE ESP8266:


2.14.1. Cơ sở lý thuyết:
- Là module wifi thông minh dựa trên vi xử lý ESP 8266 nó cung cấp khả
năng kết nối wifi cho các ứng dụng IOT và mạng không dây.
- ESP8266 Là một vi xử lý SoC tích hợp sẳn chip wifi nó bao gồm một bộ
vi xử lý 32-bit có tốc độ xung nhịp khá cao và các thành phần khác nhau.
ESP8266 là một vi xử lý độc lập có khả năng chạy chương trình và thực hiện các
tác vụ riêng biệt. ESP8266 có khả năng kết nối với mạng wi-fi.
- Cho phép truyền và nhận dữ liệu thông qua giao thức wi-fi. Nó hỗ trợ
nhiều chế độ kết nối wi-fi, bao gồm client, access point và chế độ station.
- Hỗ trợ giao tiếp qua giao thức UART được sử dụng giao tiếp với các thiết
bị ngoại vi hoặc truyền dữ liệu với mới tính thông qua cổng nối tiếp, trong khi SPI
được sử dụng kết nối với các thiết bị ngoại vi khác như cảm biến và bộ nhớ ngoại
vi hoặc truyền dữ liệu với máy tính thông qua cổng nối tiếp, trong khi SPI được sử
dụng để kết nối với các thiết bị ngoại vi khác như cảm biến và bộ nhớ ngoại vi.

44
Hình 2.33 Module ESP8266

Nhãn GPIO Đầu vào Đầu ra Ghi chú

không hỗ trợ
không MỨC CAO khi khởi động
D0 GPIO16 PWM hoặc
gián đoạn Sử dụng để đánh thức khi ngủ sâu
I2C

thường được sử dụng như SCL


D1 GPIO5 OK OK
(I2C)

thường được sử dụng như SDA


D2 GPIO4 OK OK
(I2C)

kết nối với nút FLASH, khởi động


D3 GPIO0 kéo lên OK không thành công nếu kéo MỨC
THẤP

45
MỨC CAO khi khởi động
kết nối với đèn LED trên bo mạch,
D4 GPIO2 Kéo lên OK
khởi động không thành công nếu
kéo MỨC THẤP

D5 GPIO14 OK OK SPI (SCLK)

D6 GPIO12 OK OK SPI (MISO)

D7 GPIO13 OK OK SPI (MOSI)

SPI (CS)
kéo đến
D8 GPIO15 OK
GND Khởi động không thành công nếu
kéo MỨC CAO

RX GPIO3 OK Chân RX MỨC CAO khi khởi động

MỨC CAO khi khởi động


đầu ra gỡ lỗi khi khởi động, khởi
TX GPIO1 Chân TX OK
động không thành công nếu kéo
MỨC THẤP

Đầu vào
A0 ADC0 X
analog

2.14.2. Sơ đồ chân ESP8266:

Dựa vào sơ đồ các chân được sử dụng trong khi khởi động ESP8266 có thể
bị ngăn không cho khởi động nếu một số chân được kéo mức thấp hoặc mức cao.
Danh sách sau đây cho thấy trạng thái của các chân khi khởi động:
• GPIO16: chân ở mức cao khi khởi động.
• GPIO0: lỗi khởi động nếu kéo mức thấp.
• GPIO2: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức
thấp GPIO15: lỗi khởi động nếu kéo mức cao.

46
• GPIO3: chân ở mức cao khi khởi động.
• GPIO1: chân ở mức cao khi khởi động, không khởi động được nếu kéo mức
thấp GPIO10: chân ở mức cao khi khởi động.
• GPIO9: chân ở mức cao khi khởi động.
Giao tiếp ESP8266 Với Arduino:
- ESP8266 được điều khiển qua những giao tiếp chuẩn UART, SPI, I2C.
2.14.3. Giao tiếp ESP8266 chuẩn UART:
Có 2 cách để giao tiếp UART giữa ESP8266/NodeMCU:
• Giao tiếp bằng cách code trên cả Uno/Mega và ESP8266/NodeMCU.
• Chỉ code trên Uno/Mega, trên ESP8266/NodeMCU flash thẳng firmware
AT Command.

Hình 2.34 Sơ đồ kết nối Arduino Uno với ESP 8266

2.14.4. Giao tiếp ESP8266 chuẩn I2C:


Khái niệm:
- I2C (Inter-Integrated Circuit) là giao thức kết nối giao diện bus nối tiếp. Nó
cũng được gọi là TWI vì nó chỉ sử dụng hai dây để giao tiếp. Hai chân này là SDA
(đường data) và SCL (đường clock).
- I2C là giao thức truyền thông dựa trên sự thừa nhận, tức là phát tín hiệu
kiểm tra xác nhận từ bên nhận sau khi truyền dữ liệu để biết liệu dữ liệu có được
nhận thành công hay không.

47
Hai chế độ làm việc của I2C:
• Master mode
• Slave mode
- Dây SDA (đường dữ liệu) được sử dụng để trao đổi dữ liệu giữa thiết bị
master và thiết bị slave. SCL (đường xung nhịp đồng hồ) được sử dụng cho đồng hồ
đồng bộ ở giữa thiết bị master và slave.
- Thiết bị master bắt đầu giao tiếp với một thiết bị slave. Thiết bị master yêu
cầu địa chỉ thiết slave để bắt đầu giao tiếp với thiết bị slave. Thiết bị Slave phản hồi
cho thiết bị master khi thiết bị master được giải quyết.
Sơ đồ kết nối:

Hình 2.35 Sơ đồ kết nối ESP8266 với Arduino

Thông số kỹ thuật:
Vi xử lý:
- Kiến trúc 32-bit RISC.
- Tốc độ xung nhịp: 80MHz.
- Bộ nhớ Flash tích hợp: 512KB hoặc 4MB.

48
Kết nối mạng:
- Chuẩn wifi: 802.11b/g/n.
- Chế độ kết nối wifi: Client, Access Point, Station.
- Bảo mật wifi: WPA/WPA2.
GPIO:
- Số lượng chân GPIO 9-17chân.
- Hỗ trợ đầu vào (input) và đầu ra (output) kỹ thuật số.
Giao tiếp:
- Giao diện UART tốc độ baud 115200bps.
- Giao diện SPI.
Nguồn cấp:
- Điện áp hoạt động: 3.3V.
- Tiêu thụ năng lượng thấp trong chế độ ngủ.
Điều khiển và lập trình:
- Hỗ trợ lập trình Arduino thông quan Arduino IDE.
- Hỗ trợ các ngôn ngữ lập trình khác như MicroPython và Lua.
Kích thước:
- Kích thước module thường khoảng 2,5cm x 2,5cm.

2.15. PHẦN MỀM ARDUINO IDE:


2.15.1. Arduino IDE là gì?
• IDE trong Arduino IDE là phần có nghĩa là mã nguồn mở, nghĩa là phần
mềm này miễn phí cả về phần tải về lẫn phần bản quyền: Người dùng có
quyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung
được nhà phát hành cho phép mà không cần xin phép ai, điều mà họ không
được phép làm đối với các phần mềm nguồn đóng.
• Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở
nên dễ dàng mà ngay cả một người bình thường không có kiến thức kỹ thật
cũng có thể làm được.

49
Hình 2.36 Arduino IDE

2.15.2. Arduino IDE hoạt động như thế nào?


• Arduino IDE hoạt động trên 3 hệ điều hành phổ biến nhất là Windows, Mac
OS và Linux giúp người dùng có thể truy cập vào phần mềm ở bất cứ đâu,
bất cứ khi nào miễn là họ có một cái máy tính. Ngoài ra, người dùng có thể
truy cập vào công cụ từ đám mây. Điều này cho phép các nhà lập trình lựa
chọn tạo và lưu dự án của mình trên đám mây hoặc xây dựng chương trình
trên máy tính và upload nó lên bo mạch Arduino.
• Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình
biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử
dụng để biên dịch và tải mã lên module Arduino. Môi trường này hỗ trợ cả
ngôn ngữ C và C +.

50
Hình 2.37 Arduino IDE hoạt động trên laptop

• Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình
biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử
dụng để biên dịch và tải mã lên module Arduino. Môi trường này hỗ trợ cả
ngôn ngữ C và C ++.
• Khi người dùng viết mã và biên dịch, IDE sẽ tạo file Hex cho mã. File Hex
là các file thập phân Hexa được Arduino hiểu và sau đó được gửi đến bo
mạch bằng cáp USB. Mỗi bo Arduino đều được tích hợp một bộ vi điều
khiển, bộ vi điều khiển sẽ nhận file hex và chạy theo mã được viết.

2.16. APP BLYNK


2.16.1. Khái niệm:
App Blynk, là một nền tảng IoT cung cấp các công cụ kết nối, quản lý và điều
khiển các thiết bị từ xa thông qua mạng internet. Điểm nổi bật của Blynk là sự dễ
dàng và nhanh chóng trong việc tạo và quản lý các ứng dụng IoT. Với ứng dụng

51
Blynk bạn có thể kết nối và điều khiển các thiết bị như Arduino, Raspberry Pi hoặc
các module IoT như ESP 8266 hoặc NodeMCU. Blynk cho phép bạn tạo ra các giao
diện người dung tuỳ chỉnh trên điện thoại di động để điều khiển các thiết bị, hiển thị
dữ liệu cảm biến và thực hiện các tác vụ tự động. Blynk cũng cung cấp một bộ thư
viện mã nguồn mở cho các nền tảng nhúng phổ biến như Arduino, ESP8266 và
Raspberry Pi, giúp bạn dễ dàng kết nối và gửi dữ liệu giữa thiết bị và ứng dụng
Blynk.
Với Blynk bạn có thể tạo ra các ứng dụng IoT đơn giản và mạnh mẽ mà không
cần kiến thức lập trình sâu một ứng dụng web mã nguồn mở được cung cấp bởi
Google, và hiện tại được duy trì bởi viện công nghệ Massachusetts (MIT). Nó cho
phép những người mới có thể lập trình máy tính để tạo ra các ứng dụng phần mềm
cho hệ điều hành Android, ví dụ như điện thoại cảm ứng, hay máy tính bảng. Hơn
nữa, thay vì việc gõ từng dòng lệnh để tạo lên 1 ứng dụng, lập trình viên chỉ cần kéo
và thả các khối lệnh và ghép chúng lại với nhau để tạo ra 1 ứng dụng có thể chạy
trên các thiết bị Android.
2.16.2. Cách sử dụng App Blink trên điện thoại
- Cài đặt ứng dụng Blink thông qua App Store:
- App sau khi setup:

52
Hình 2.38 App sau khi setup

- App sẽ hiển thị lúc chưa kết nối và đã kết nối:

53
Hình 2.39 App lúc chưa kết nối

54
CHƯƠNG 3:
PHƯƠNG PHÁP GIẢI QUYẾT

3.1. GIỚI THIỆU VỀ MÔ HÌNH HỆ THỐNG


Ở đề tài này vi điều khiển trung tâm thực hiện việc theo dõi 3 loại thông tin
đưa về theo trình tự ưu tiên như sau:
1- Người chủ vườn có mặt và điều khiển bơm tưới thông qua nút nhấn tại hộp
điều khiển.
2- Lệnh điều khiển bơm từ xa được gửi đến thông qua app Blynk.
3- Số ngày tích lũy cộng dồn được khởi tính từ ngày được bơm tưới gần nhất
kết hợp với các điều kiện tại vườn gồm cảm biến mưa và cảm biến độ ẩm
đất. Kết quả đưa về từ cảm biến mưa là một thông tin tham khảo thêm để
khi độ ẩm đất đạt đến giá trị ngưỡng cần bơm tưới thì sẽ hệ thống sẽ ra
lệnh kích hoạt bơm tự động.
Như vậy, đầu tiên hệ thống sẽ thực hiện tác vụ đếm thời gian do đó hệ thống
cần phải có khối thời gian thực, nhóm em dùng IC thời gian thực DS1307 phối hợp
cùng thạch anh 32.768KHz. DS1307 là chip thời gian thực hay RTC (Read time
clock). Đây là một IC tích hợp cho thời gian bởi vì tính chính xác về thời gian tuyệt
đối cho thời gian: Thứ, ngày, tháng, năm, giờ, phút, giây. DS1307 là chế tạo bởi
Dallas. Chip này có 7 thanh ghi 8 bit mỗi thanh ghi này chứa: Thứ, ngày, tháng,
năm, giờ, phút, giây. DS1307 được đọc thông qua chuẩn truyền thông I2C nên do
đó để đọc được và ghi từ DS1307 thông qua chuẩn truyền thông này.

55
Hình 3.1 Kết nối Module thời gian thực với ESP8266

Trong quá trình hệ thống đếm thời gian, nếu có một trong hai tín hiệu báo về
theo trình tự ưu tiên như vừa nêu ở trên thì việc đếm thời gian sẽ được reset lại từ
đầu.
Việc kết nối mạng Wifi thông qua app Blynk cho nên hệ vi điều khiển trung
tâm em chọn dùng con ESP8266 trên đó đã tích hợp sẵn khối kết nối wifi rồi.

Hình 3.2 Module ESP8266

56
Về phần cảm biến, em dùng 3 con cảm biến độ ẩm đất đặt ở 3 nơi rải rác trong
khu vườn làm điều kiện cần, kết hợp với 3 cảm biến mưa làm điều kiện đủ để khi
điều kiện về độ ẩm đất đạt ngưỡng mà trời không có mưa thì sẽ xuất lệnh bơm tưới.

Hình 3.3 Cảm biến độ ẩm đất

Hình 3.4 Cảm biến mưa

Để tiện cho việc theo dõi và tránh hiện tượng tín hiệu giả (chưa chắc chắn),
nhóm em dùng cổng AND (74HC08) để nhập 3 tín hiệu riêng biệt trên từng cảm
biến về một một ngõ vào chung, khi nào cả 3 cảm biến đều có kết quả là có mưa
(mức Logic H) thì mới được xác nhận là có mưa. Tương tự như vậy cho cảm biến

57
độ ẩm đất, kết quả đo đạt về độ ẩm đất sẽ được đưa về các cổng OR để đảm bảo chỉ
cần một vùng nào đó bị khô hạn thì đã đủ điều kiện cần rồi!
Ngoài ra để hiển thị ngày tháng, số ngày chưa mưa cùng với các thông số độ
ẩm, nhiệt độ nhóm em dùng LCD 16x2 để hiển thị.

Hình 3.5 LCD 16x2

Để tăng thêm tính thuyết phục khi ra quyết định bơm tưới, nhóm em có gắn
thêm một cảm biến nhiệt độ để đo nhiệt độ môi trường tại vườn được kết nối bằng
một dây bus rời bên ngoài.
Khối thừa hành và khối tải nhóm em dự kiến dùng Relay và Contactor để điêu
khiển bơm sử dụng điện lưới trong thực tế, tuy nhiên, trong phạm vi mô hình thực
nghiệm của khuôn khổ đồ án, nhóm em chọn dùng bơm DC 12V thay thế.

Hình 3.6 Bơm DC12V

58
Phương án thiết kế phần cứng được trình bày ở chương 3, hệ thống của chúng
ta xem như đã đủ. Việc xây dựng một sơ đồ khối tổng thể và lưu đồ giải thuật phần
mềm được đặt ra.

Thực hiện gửi dữ liệu qua mạng bằng app Blynk và gửi các dữ liệu đo được
từ các cảm biến đến các máy chủ trực tuyến.
Dựa trên dữ liệu đo được khối vi điều khiển thiết bị như van điều khiển nước
hoặc bơm nước để bật hoặc tắt và điều chỉnh lượng nước tưới cây. ESP8266 có thể
được lập trình để tạo ra giao diện người dùng đơn giản, ví dụ như trang web hoặc
ứng dụng di động. Giao diện này cho phép người dùng thiết lập các thông số tưới
cây, xem trạng thái và xem được độ ẩm đất khi trời mưa và không mưa.
Các cảm biến dùng trong đề tài bao gồm cảm biến mưa và cảm biến độ ẩm
đất:
Cảm biến mưa: Một cảm biến mưa có thể được sử dụng để phát hiện mưa.
Nó có thể gửi tín hiệu cho ESP8266 để thông báo về tình trạng mưa. Dựa trên thông
tin này, hệ thống tưới cây có thể tự động tạm dừng hoạt động tưới cây. Điều này
giúp tránh việc tưới cây thừa nước khi đã có mưa.
Cảm biến độ ẩm đất: Cảm biến độ ẩm đất có thể được sử dụng để đo độ ẩm
hiện có trong đất. Thông qua ESP8266, dữ liệu từ cảm biến độ ẩm đất có thể được
gửi đến hệ thống tưới cây. Dựa trên mức độ ẩm đất đo được, hệ thống có thể quyết
định liệu cây cần được tưới nước hay không. Nếu độ ẩm đất thấp hơn ngưỡng được
cài đặt, hệ thống sẽ kích hoạt thiết bị tưới cây để cung cấp nước cho cây.
Kết hợp cảm biến mưa và cảm biến độ ẩm đất vào hệ thống tưới cây tự động
giúp tối ưu hóa việc sử dụng nước và đảm bảo cây được tưới cây đúng lượng và
thời điểm cần thiết. Điều này giúp tiết kiệm nước, đồng thời đảm bảo sự phát triển
và sống sót của cây trong điều kiện thích hợp.
Hệ thống kích hoạt bơm bằng công suất:

59
-Xác định công suất cần thiết cho bơm: Dựa trên yêu cầu và quy mô của hệ
thống, xác định công suất cần thiết cho bơm nước. Công suất này sẽ phụ thuộc vào
lượng nước cần tưới và áp suất cần đạt được.
-Lựa chọn bơm: Chọn bơm nước phù hợp với công suất đã xác định. Cần chú
ý đến hiệu suất, độ tin cậy và khả năng làm việc liên tục của bơm.
-Thiết kế mạch điều khiển: Thiết kế mạch điều khiển bơm, bao gồm vi điều
khiển ESP8266 hoặc mạch điều khiển tương tự. Sử dụng một transistor hoặc relay
để kích hoạt và ngắt nguồn cho bơm.
-Kết nối nguồn 12V: Kết nối nguồn 12V với mạch điều khiển và bơm. Đảm
bảo cấp nguồn ổn định và đủ công suất cho hoạt động của bơm.
-Xử lý tín hiệu từ cảm biến: Sử dụng cảm biến độ ẩm đất để đo lượng nước
trong đất. Nếu độ ẩm đất thấp và hệ thống được kích hoạt để tưới cây, gửi tín hiệu
kích hoạt bơm từ mạch điều khiển.
-Kiểm soát qua Internet: Sử dụng kết nối Internet và ứng dụng Blynk, có thể
điều khiển hệ thống tưới cây từ xa thông qua điện thoại di động hoặc máy tính.
-Bảo vệ và an toàn: Đảm bảo rằng hệ thống được bảo vệ và an toàn. Sử dụng
các phương pháp bảo vệ quá tải, bảo vệ ngắn mạch và các biện pháp an toàn khác
để đảm bảo hoạt động ổn định và tránh tai nạn.
-Kiểm tra và hiệu chỉnh: Thực hiện kiểm tra và hiệu chỉnh hệ thống để đảm
bảo hoạt động chính xác và hiệu quả. Kiểm tra độ chính xác của cảm biến, độ ổn
định của kết nối và hiệu suất của bơm.
Phương thức kết nối cảm biến độ ẩm đất và vi điều khiển ESP8266 qua tín
hiệu Digital:
- Kết nối digital (Digital Interface): Kết nối chân VCC của cảm biến độ ẩm
đất với nguồn cấp 3.3V trên ESP8266. Kết nối chân GND của cảm biến độ ẩm đất
với chân GND trên ESP8266. Kết nối chân OUT của cảm biến độ ẩm đất với một
chân GPIO trên ESP8266 (ví dụ: GPIO2). Sử dụng chức năng digitalRead trong mã
lập trình ESP8266 để đọc giá trị digital từ cảm biến, trong đó giá trị HIGH hoặc
LOW biểu thị độ ẩm đất cao hoặc thấp.

60
Phương thức kết nối cảm biến mưa và vi điều khiển ESP8266 được sử dụng
tín hiệu Digital
- Kết nối chân nguồn và đất: Kết nối chân VCC của cảm biến mưa với nguồn
cấp 3.3V trên ESP8266 và chân GND với chân GND trên ESP8266.
- Kết nối chân tín hiệu: Kết nối chân OUT của cảm biến mưa với một chân
Analog Input trên ESP8266.
- Lập trình ESP8266 để đọc dữ liệu từ module chuyển đổi tương tự sang
digital: Sử dụng mã lập trình trên ESP8266 để đọc giá trị digital từ module chuyển
đổi. Bạn có thể sử dụng chức năng digitalRead trong mã lập trình ESP8266 để đọc
giá trị digital từ chân tín hiệu của module chuyển đổi.
Phương thức kết nối giữa LCD 16x2 và vi điều khiển ESP8266:
- Sử dụng giao tiếp I2C (Inter-Integrated Circuit). Giao tiếp I2C sử dụng hai
chân dữ liệu là SDA (Serial Data Line) và SCL (Serial Clock Line) để truyền và
nhận dữ liệu giữa vi điều khiển và màn hình LCD.
- Kết nối chân nguồn và đất: Kết nối chân VCC của màn hình LCD với
nguồn cấp 5V hoặc 3.3V trên ESP8266. Kết nối chân GND của LCD với chân GND
trên ESP8266.
- Kết nối chân SDA và SCL: Kết nối chân SDA của LCD với một chân
GPIO trên ESP8266 (ví dụ: GPIO4) để truyền dữ liệu. Kết nối chân SCL của LCD
với một chân GPIO khác trên ESP8266 (ví dụ: GPIO5) để đồng bộ dữ liệu.
- Kết nối các resistor nội kéo: Thêm hai resistor nội kéo 10kΩ giữa chân
SDA và VCC, cũng như giữa chân SCL và VCC để kéo chân về mức cao (pull-up
resistors). Điều này giúp đảm bảo tín hiệu I2C ổn định.
- Lập trình ESP8266 để giao tiếp với LCD: Sử dụng thư viện
LiquidCrystal_I2C hoặc Adafruit_LCD để điều khiển màn hình LCD thông qua
giao tiếp I2C. Import thư viện và khởi tạo đối tượng LCD với địa chỉ I2C của màn
hình LCD.
Phương thức kết nối chip thời gian thực và vi điều khiển ESP8266:
- Chip thời gian thực (RTC - Real-Time Clock) kết nối vi điều khiển

61
ESP8266 qua giao tiếp I2C.
- Kết nối chân nguồn và đất: Kết nối chân VCC của RTC với nguồn cấp
3.3V trên ESP8266. Kết nối chân GND của RTC với chân GND trên ESP8266.
- Kết nối chân SDA và SCL: Kết nối chân SDA của RTC với một chân
GPIO trên ESP8266 (ví dụ: GPIO4) để truyền dữ liệu. Kết nối chân SCL của RTC
với một chân GPIO khác trên ESP8266.
- Kết nối các resistor nội kéo: Thêm hai resistor nội kéo 4.7kΩ giữa chân
SDA và VCC, cũng như giữa chân SCL và VCC để kéo chân về mức cao (pull-up
resistors). Điều này giúp đảm bảo tín hiệu I2C ổn định.
- Lập trình ESP8266 để giao tiếp với RTC: Sử dụng một thư viện hỗ trợ
RTC thông qua giao tiếp I2C (ví dụ: thư viện DS1307 hoặc DS3231) để điều khiển
và đọc dữ liệu từ RTC. Import thư viện và khởi tạo đối tượng RTC với địa chỉ I2C
của chip RTC.
3.2. THIẾT KẾ SƠ ĐỒ KHỐI
3.2.1. Thiết kế sơ đồ khối hệ thống:
Từ yêu cầu của đề tài và theo kiến trúc hệ thiết bị đã được nêu ra trước đó,
nhóm sinh viên bọn tôi tiến hành thiết kế sơ đồ khối hoàn chỉnh cho hệ thống, được
trình bày như hình 3.2.1:

62
Hình 3.7 Sơ đồ khối hệ thống tưới cây tự động kiểm soát bằng cảm biến độ
ẩm và theo dõi số ngày mưa hoạt động ba chế độ khả năng điều khiển qua
internet

3.2.2. Chức năng từng khối:


Khối nút nhấn: Điều chỉnh chế độ thủ công khi ở chế độ thủ công chế độ bật
máy bơm và tắc máy bơm, khi chế độ tự động chỉnh giờ tăng và giảm dần.
Khối cảm biến:
- Cảm biến độ ẩm đất: Phát hiện tình trạng khô hạn của đất đã tới ngưỡng
điều khiển bơm hay chưa gửi tín hiệu về trung tâm xử lý. (Điều kiện cần)
- Cảm biến mưa: Phát hiện sự khi có trời mưa làm điều kiện đủ. Nếu trời có
mưa thì lệnh bơm chưa được Vi điều khiển trung tâm đưa ra…
Khối thời gian thực: Thực hiện đếm số ngày chưa mưa để tích lũy, khi số
ngày chưa mưa đạt tới giá trị đặt trước thì sau đó thực hiện chế độ tưới cây tự động.
Khối nguồn: Cung cấp nguồn cho hệ thống.
Khối vi điều khiển trung tâm: Có vai trò quan trọng trong việc điều khiển và
quản lý các hoạt động của hệ thống.

63
Khối hiển thị: Giúp hiển thị biết được số ngày mưa, số ngày không mưa, độ
ẩm đất, thời gian ngày tháng, và nhiệt độ.
Khối thiết bị thừa hành: Nhận lệnh điều khiển từ vi điều khiển trung tâm thì
tiến hành bơm tưới.

64
CHƯƠNG 4:
QUY TRÌNH THIẾT KẾ PHẦN CỨNG VÀ PHẦN
MỀM

4.1. GIỚI THIỆU PHẦN CỨNG


4.1.1. Giới thiệu ESP 8266:
- Là module wifi thông minh dựa trên vi sử lý ESP 8266 nó cung cấp khả
năng kết nối wifi cho các ứng dụng IoT và mạng không dây.
ESP8266 Là một vi xử lý SoC tích hợp sẳn chip wifi nó bao gồm:
- Một bộ vi xử lý 32-bit có tốc độ xung nhịp khá cao và các thành phần khác
nhau. ESP8266 là một vi xử lý độc lập có khả năng chạy chương trình và thực hiện
các tác vụ riêng biệt. ESP8266 có khả năng kết nối với mạng wi-fi cho phép truyền
và nhận dữ liệu thông qua giao thức wi-fi. Nó hỗ trợ nhiều chế độ kết nối wi-fi, bao
gồm client, access point và chế độ station.
Chức năng chính của Esp8266 trong hệ thống trên:
➢ Kết nối WiFi: Esp8266 có khả năng kết nối vào mạng WiFi, cho phép truyền
dữ liệu qua mạng không dây. Điều này cho phép hệ thống tưới cây tự động
kết nối với Internet và giao tiếp với các thiết bị khác qua giao thức TCP/IP.
➢ Giao tiếp với máy chủ: Esp8266 có khả năng gửi và nhận dữ liệu từ máy chủ
thông qua giao thức HTTP hoặc MQTT.
- Có người tưới bằng chế độ thủ công.
- Có lệnh điều khiển qua Internet.
- Đếm số ngày chưa mưa, khởi đầu từ ngày kết thúc bơm gần nhất.
- Reset lại số ngày đếm.
- Khi đếm đủ số ngày không mưa theo giá trị đặt thì kiểm tra độ ẩm làm điều
kiện cần, Kiểm tra trời có mưa không điều kiện đủ kích hoạt bơm.

65
➢ Thu thập dữ liệu từ cảm biến: Esp8266 có thể đọc dữ liệu từ cảm biến độ ẩm
đất và cảm biến mưa. Nó có thể đọc giá trị analog từ cảm biến độ ẩm đất và
đọc giá trị digital từ cảm biến mưa thông qua các chân GPIO.
➢ Điều khiển hoạt động tưới cây: Dựa trên dữ liệu đọc từ cảm biến, Esp8266
có khả năng điều khiển hoạt động bơm tưới cây thông qua các chân GPIO.
Khi cảm biến độ ẩm đất cho thấy đất khô, Esp8266 có thể kích hoạt bơm tưới
để cung cấp nước cho cây.
➢ Lập trình linh hoạt: Esp8266 có thể được lập trình bằng Arduino IDE hoặc
ESP-IDF (ESP8266 IoT Development Framework). Điều này cho phép
người dùng tùy chỉnh và mở rộng chức năng của Esp8266 để phù hợp với
yêu cầu cụ thể của hệ thống tưới cây tự động.
4.1.2. Giới thiệu Chip thời gian thực:
Một chip thời gian thực được sử dụng để đo và theo dõi thời gian
trong các ứng dụng điện tử. DS1307 cung cấp chức năng bộ đếm thời gian
chính xác và có khả năng giữ thông tin thời gian và ngày tháng, bất kể khi
nguồn điện chính bị mất.
Chip DS1307 được giao tiếp thông qua giao diện I2C (inter-integrated
circuit) và có khả năng lưu trữ thông tin thời gian và ngày tháng trong bộ
nhớ nội bộ. Giúp lưu giữ thông về giây phút giờ, ngày, tháng, năm. DS1307
cũng có tính năng bảo lưu nguồn pin, nghĩa là nó có thể hoạt dộng dựa trên
một nguồn pin ngoài như pin CR2032 để giữ thông tin thời gian khi nguồn
điện chính bị mất.
Chức năng chính Chip thời gian thực:
➢ Kết nối WiFi: Esp8266 có khả năng kết nối vào mạng WiFi, cho phép truyền
dữ liệu qua mạng không dây. Điều này cho phép hệ thống tưới cây tự động
kết nối với Internet và giao tiếp với các thiết bị khác qua giao thức TCP/IP.
➢ Kết nối WiFi: Esp8266 có khả năng kết nối vào mạng WiFi, cho phép truyền
dữ liệu qua mạng không dây. Điều này cho phép hệ thống tưới cây tự động
kết nối với Internet và giao tiếp với các thiết bị khác qua giao thức TCP/IP.

66
➢ Thu thập dữ liệu từ cảm biến: Esp8266 có thể đọc dữ liệu từ cảm biến độ ẩm
đất và cảm biến mưa. Nó có thể đọc giá trị analog từ cảm biến độ ẩm đất và
đọc giá trị digital từ cảm biến mưa thông qua các chân GPIO.
➢ Điều khiển hoạt động tưới cây: Dựa trên dữ liệu đọc từ cảm biến, Esp8266
có khả năng điều khiển hoạt động bơm tưới cây thông qua các chân GPIO.
Khi cảm biến độ ẩm đất cho thấy đất khô, Esp8266 có thể kích hoạt bơm tưới
để cung cấp nước cho cây.
4.1.3. Giới thiệu module hạ áp:
- Module hạ áp hay còn gọi là nguồn hạ áp là một thiết bị dùng để chuyển
đổi và điều chỉnh điện áp từ một nguồn điện vào thành một điện áp thấp hơn phù
hợp các thiết bị hoạt động ở mức điện áp thấp hơn.

Hình 4.1 Module hạ áp

Chức năng chính module hạ áp:


➢ Chuyển đổi nguồn điện: Module hạ áp có chức năng chuyển đổi nguồn điện
ban đầu (như nguồn cấp 220V AC) thành mức điện áp cần thiết cho các
thành phần điện tử trong hệ thống (thường là 5V hoặc 3.3V DC). Nó đảm
bảo rằng các linh kiện và vi điều khiển như esp8266, cảm biến, chip RTC, và
các linh kiện khác nhận được nguồn điện phù hợp và ổn định.
➢ Bảo vệ và ổn định nguồn điện: Module hạ áp có chức năng bảo vệ các thành

67
phần khác khỏi các tác động không mong muốn của nguồn điện, chẳng hạn
như tăng áp, giảm áp, nhiễu điện, và dao động điện áp. Nó giúp ổn định
nguồn điện và bảo vệ các linh kiện quan trọng khỏi hỏng hóc và suy giảm
tuổi thọ.
➢ Điều chỉnh và điều khiển nguồn điện: Một số module hạ áp cho phép điều
chỉnh và điều khiển mức điện áp đầu ra thông qua việc điều chỉnh các thành
phần bên trong. Điều này giúp tùy chỉnh và cung cấp nguồn điện chính xác
cho các linh kiện và vi điều khiển theo yêu cầu cụ thể của hệ thống.
➢ Cung cấp nguồn điện liên tục: Module hạ áp đảm bảo cung cấp nguồn điện
liên tục và ổn định cho các linh kiện và vi điều khiển trong hệ thống. Điều
này đảm bảo rằng hệ thống hoạt động một cách đáng tin cậy và duy trì tính
ổn định của các chức năng và hoạt động.
➢ Tiết kiệm năng lượng: Một số module hạ áp có tính năng tiết kiệm năng
lượng, cho phép hệ thống hoạt động trong chế độ tiết kiệm năng lượng khi
không cần thiết. Điều này giúp kéo dài tuổi thọ pin hoặc nguồn điện của hệ
thống và giảm lượng năng lượng tiêu thụ.
4.1.4. Giới thiệu SN74HC08:
Một loại chip cổng logic NAND 4 cổng trong gói IC DIP-14, nó thuộc
loại logic cấp điện 74HC được thiết kế để thực hiện các phép toán logic NAND
trên tín hiệu đầu vào. SN74HC08N được gói trong 1 IC DIP-14, có 14 chân để
kết nối với các thành phần khác trên mạch in. Mỗi cỗng logic NAND trong chip
có hai đầu vào và một đầu ra và chúng hoạt động theo nguyên tắc cổng NAND.
Chức năng chính SN74HC08:
➢ Xử lý tín hiệu: SN74HC08 có chức năng xử lý tín hiệu đầu vào từ các cảm
biến và các linh kiện khác trong hệ thống. Nó có bốn cổng AND độc lập, mỗi
cổng có hai đầu vào và một đầu ra.
➢ Kiểm soát hoạt động của hệ thống: Dựa trên các tín hiệu đầu vào từ cảm biến
và các thành phần khác, SN74HC08 sẽ thực hiện các phép tính logic AND để
đưa ra kết quả xác định hoạt động của hệ thống. Ví dụ, nếu tất cả các tín hiệu

68
đầu vào từ cảm biến độ ẩm đất cho thấy đất khô, SN74HC08 sẽ đưa ra tín
hiệu kích hoạt để bật bơm tưới cây.
➢ Điều khiển các chế độ hoạt động: SN74HC08 có thể được sử dụng để điều
khiển ba chế độ hoạt động của hệ thống tưới cây tự động. Dựa trên các tín
hiệu đầu vào từ cảm biến độ ẩm đất và cảm biến mưa, SN74HC08 sẽ xác
định xem cây cần được tưới hay không và xác định chế độ hoạt động phù
hợp (ví dụ: chế độ tưới cây thông thường, chế độ tưới cây sau mưa, hoặc chế
độ tưới cây khi đất khô).
➢ Điều khiển hoạt động bơm tưới: SN74HC08 sẽ đưa ra tín hiệu kích hoạt để
điều khiển hoạt động bơm tưới cây dựa trên các điều kiện xác định. Khi tín
hiệu kích hoạt được đưa ra, nó sẽ kích hoạt bơm tưới để cung cấp nước cho
cây.
4.1.5. Giới thiệu cảm biến mưa:
Cảm biến mưa là một thiết bị được sử dụng để đo và là thiết bị chuyên dụng
để nhận biết giọt nước, trời mưa hay các môi trường có mưa.
Chức năng chính cảm biến mưa:
➢ Phát hiện mưa: Chức năng chính của cảm biến mưa là phát hiện sự có mưa.
Khi mưa rơi lên cảm biến, nước sẽ làm nối dòng điện giữa các chân của cảm
biến. Cảm biến mưa sẽ phản ứng và tạo ra tín hiệu tương ứng để báo hiệu
rằng có mưa xảy ra.
➢ Kích hoạt hệ thống: Khi cảm biến mưa phát hiện mưa, nó sẽ tạo ra tín hiệu
kích hoạt để thông báo cho hệ thống. Tín hiệu này có thể được sử dụng để
ngắt hoặc tạm dừng hoạt động tưới cây trong thời gian mưa.
➢ Bảo vệ hệ thống: Cảm biến mưa đóng vai trò quan trọng trong việc bảo vệ hệ
thống tưới cây. Khi cảm biến phát hiện mưa, nó giúp ngăn chặn việc tưới cây
trong thời gian mưa, giúp tiết kiệm nước và nguồn điện, và tránh làm quá
tưới cây.
➢ Tương tác với hệ thống: Tín hiệu từ cảm biến mưa có thể được gửi đến vi
điều khiển (như esp8266) hoặc các thành phần khác của hệ thống. Nó có thể

69
được sử dụng để kích hoạt hoặc vô hiệu hóa các hoạt động tưới cây, thông
báo về trạng thái mưa cho người dùng hoặc gửi thông báo đến máy chủ
thông qua Internet.
4.1.6. Giới thiệu cảm biến độ ẩm đất:
Cảm biến độ ẩm đất là một loại cảm biến được sử dụng để đo lường mức độ
ẩm trong đất. Nó giúp theo dõi và điều khiển tưới cây một các tự động và hiệu quả,
đảm bảo rằng cây trông nhận được lượng nước để phát triển một các tối ưu.
Chức năng chính cảm biến độ ẩm đất:
➢ Đo mức độ ẩm của đất: Chức năng chính của cảm biến độ ẩm đất là đo lượng
nước hiện có trong đất xung quanh cây. Nó sẽ đo và cung cấp thông tin về
mức độ ẩm của đất, đưa ra giá trị số hoặc tín hiệu tương ứng.
➢ Xác định nhu cầu tưới cây: Dựa trên mức độ ẩm đo được, cảm biến độ ẩm
đất giúp xác định xem cây có cần được tưới cây hay không. Nếu mức độ ẩm
đất dưới một ngưỡng xác định, nó cho thấy đất đã khô và cây cần được tưới
cây.
➢ Điều khiển hoạt động tưới cây: Cảm biến độ ẩm đất có thể được sử dụng để
điều khiển hoạt động tưới cây. Khi mức độ ẩm đất dưới ngưỡng xác định,
cảm biến sẽ gửi tín hiệu cho phép hệ thống kích hoạt bơm tưới cây để cung
cấp nước cho cây.
➢ Cân chỉnh ngưỡng độ ẩm: Cảm biến độ ẩm đất cho phép người dùng cân
chỉnh ngưỡng độ ẩm để phù hợp với yêu cầu của cây và môi trường. Ngưỡng
này có thể được điều chỉnh để đáp ứng các điều kiện đặc biệt của cây cần
tưới hoặc yêu cầu của hệ thống.
4.2. LƯU ĐỒ GIẢI THUẬT

70
71
Hình 4.2 Lưu đồ giải thuật

72
4.3. THIẾT KẾ PHẦN CỨNG VÀ THIẾT KẾ PHẦN MỀM:
Quy trình thiết kế phần cứng và phần mềm cho mô hình đồ án hệ thống tưới
cây tự động kiểm soát bằng cảm biến độ ẩm và theo dõi số ngày mưa hoạt động ba
chế độ khả năng điều khiển qua internet được phân thành các bước sau:
Xác định các yêu cầu chức năng trên board mạch thực tế và trên App Blynk
của hệ thống. Điều này bao gồm xác định các tính năng điều chỉnh các tính năng
nhiệt độ, ngày, thời gian phát hiện và đếm số ngày mưa và không mưa.
Thiết kế phần cứng:
• Chuẩn bị một Vi điều khiển ESP8266: Sử dụng vi điều khiển ESP8266 điều
khiển toàn bộ hệ thống và kết nối với Internet thông qua WiFi.
• Cảm biến độ ẩm đất (Soil Moisture Sensor): Sử dụng cảm biến độ ẩm đất để
đo mức độ ẩm của đất xung quanh cây.
• Cảm biến mưa (Rain Sensor): Sử dụng cảm biến mưa để phát hiện sự có
mưa.
• Chip thời gian thực (RTC - Real-Time Clock): Sử dụng chip RTC để theo
dõi thời gian thực và đồng bộ hóa các hoạt động của hệ thống.
• Module hạ áp (Power Supply Module): Sử dụng module hạ áp để chuyển đổi
nguồn điện ban đầu thành nguồn điện cung cấp cho các linh kiện khác trong
hệ thống.
• Sử dụng app Blynk: Dùng xử lý dữ liệu từ các cảm biến, đồng bộ hóa từ IC
thời gian thực, quyết định hoạt động tưới cây dựa trên ngưỡng độ ẩm đất và
cảm biến mưa sau đó đưa ra số lượng mưa, số ngày không mưa và độ ẩm đất
cao hoặc thấp đưa ra quyết định bơm tưới hoặc không.
Quy trình kết nối:
Kết nối nguồn và ESP8266:
✓ Kết nối chân VCC của ESP8266 đến nguồn 3.3V từ nguồn 12V thông qua bộ
điều tiết.
✓ Kết nối chân GND của ESP8266 đến mối đất chung với nguồn 12V.

73
Kết nối nguồn và cảm biến đất:
✓ Kết nối chân VCC của cảm biến đất đến nguồn 5V từ nguồn 12V thông qua
mạch chuyển đổi.
✓ Kết nối chân GND của cảm biến đất đến mối đất chung với nguồn 12V.
✓ Kết nối chân đọc dữ liệu của cảm biến đất đến một chân analog hoặc chân kỹ
thuật số trên ESP8266.
Kết nối nguồn và cảm biến mưa:
✓ Kết nối chân VCC của cảm biến đất đến nguồn 5V từ nguồn 12V thông qua
mạch chuyển đổi.
✓ Kết nối chân GND của cảm biến đất đến mối đất chung với nguồn 12V.
✓ Kết nối chân đọc dữ liệu của cảm biến đất đến một chân analog hoặc chân kỹ
thuật số trên ESP8266.

Kết nối ESP826 và thời gian thực:


✓ Kết nối chân SDA (Data) của chip thời gian thực đến chân SDA trên
ESP8266.
✓ Kết nối chân SCL (Clock) của chip thời gian thực đến chân SCL trên
ESP8266.
Kết nối nguồn với máy bơm nước:
✓ Kết nối nguồn 12V đến máy bơm nước để cung cấp nguồn điện cho máy
bơm.
✓ Kết nối một chân dương của máy bơm nước đến nguồn 12V.
✓ Kết nối chân âm của máy bơm nước đến chân âm (-) của nguồn điện chung
với ESP8266 và các linh kiện khác.
Kết nối nguồn với màn hình LCD:
✓ Kết nối chân VCC của LCD đến nguồn 5V từ nguồn 12V thông qua mạch
chuyển đổi.
✓ Kết nối chân GND của LCD đến mối đất chung với nguồn 12V.
✓ Kết nối chân SDA của LCD đến chân SDA trên ESP8266.

74
✓ Kết nối chân SCL của LCD đến chân SCL trên ESP8266.
Lập trình phần mềm:
✓ Chuẩn bị môi trường phát triển: Cài đặt phần Arduino IDE và các thư viện
liên quan để lập trình ESP8266.
✓ Xây dựng chương trình: Viết mã ứng dụng để cấu hình và điều khiển
ESP8266 bao gồm xử lý tín hiệu từ các cảm biến mưa và cảm biến độ ẩm
đất, phân tích số ngày có mưa và số ngày không mưa, độ ẩm đất cao hoặc
thấp và giao tiếp App Blynk.
✓ Xác thực và tác vụ: Triển khai các tác vụ bơm tưới cây khi xác thực độ ẩm
đất cao thực hiện tưới cây và khi độ ẩm đất thấp cây đủ nước và không cần
tưới.
Quá trình phân tích và xử lý dữ liệu các cảm biến trong mạch bao gồm
các bước sau:
Bước 1. Chuẩn bị môi trường phát triển:
✓ Cài đặt Arduino IDE và các thư viện liên quan để lập trình ESP8266.
✓ Kết nối ESP8266 với máy tính để lập trình.
Bước 2. Thiết kế phần cứng:
✓ Kết nối nguồn 12V với ESP8266 và các linh kiện khác trong hệ thống.
✓ Kết nối cảm biến độ ẩm đất và cảm biến mưa với các chân GPIO của
ESP8266.
✓ Kết nối máy bơm nước với một chân GPIO của ESP8266 để điều khiển hoạt
động của máy bơm.
Bước 3. Xây dựng chương trình:
✓ Mở Arduino IDE và tạo một tệp mới.
✓ Import các thư viện cần thiết, bao gồm thư viện ESP8266WiFi, Blynk, và
các thư viện khác liên quan đến cảm biến và điều khiển.
✓ Khai báo biến và định nghĩa các chân GPIO cho các linh kiện.
✓ Thiết lập kết nối WiFi và kết nối đến Blynk sử dụng hàm Blynk.begin(auth,
ssid, pass).

75
✓ Định nghĩa các hàm để đọc giá trị từ cảm biến độ ẩm đất và cảm biến mưa.
✓ Xử lý số ngày mưa và độ ẩm đất để xác định chế độ hoạt động của hệ thống
tưới cây.
✓ Gửi thông tin và điều khiển qua Internet thông qua ứng dụng Blynk sử dụng
các hàm Blynk.virtualWrite() và Blynk.virtualRead().

Bước 4. Xác thực tác vụ:


✓ Trong hàm loop, gọi các hàm đọc giá trị từ cảm biến và xử lý dữ liệu.
✓ Dựa vào giá trị độ ẩm đất và số ngày mưa, xác định chế độ tưới cây và điều
khiển hoạt động của máy bơm nước.
✓ Gửi thông tin đến ứng dụng Blynk để hiển thị các thông số và trạng thái của
hệ thống.
4.4. TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC
4.4.1. Tài liệu hưứng dẫn sử dụng
Tổng quan thiết bị:

12Hình 4.3 Ảnh chi tiết trên thiết bị

Sử dụng thiết bị đơn giản thông qua các bước sau:


- Cấp nguồn: Cấp nguồn 12Vcho mạch.

- Mạch có ba chế độ: tự động, điều khiển thủ công và app Blynk.

76
CHƯƠNG 5:
THI CÔNG MÔ HÌNH THỰC NGHIỆM VÀ
MÔ PHỎNG

5.1. GIỚI THIỆU


Quả trình thi công để được một hệ thống hoàn chỉnh gầm các bước:
- Vẽ sơ đồ nguyên lý, mạch in.

- Làm mạch in.

- Kiểm tra và chỉnh sửa mạch.

5.2. THI CÔNG HỆ THỐNG


Sơ đồ nguyên lý:

Hình 5.1 Sơ đồ nguyên lý

77
Mạch PCB:

Hình 5.2 Mạch PCB

78
Mạch 3D:

Hình 5.3 Mạch 3D

Mạch thực tế đã lắp các linh kiện:

79
Hình 5.4 Mạch thực tế đã lắp các linh kiện

Lắp ráp và kiểm tra thiết bị.


Quy trình lắp ráp - kiểm tra mạch:
Bước 1: Rửa board đồng sạch sẽ bằng nước rửa mạch sau khi ủi mạch in.
Bước 2: Kiểm tra dây kết nối giữa các linh kiện trong mạch với nhau và với
nguồn, tiến hành phủ nhựa thông bảo vệ mạch.
Bước 3: Tiến hành khoan mạch, gắn hàng rào và hàn mạch.
Bước 4: Sau khi hàn xong mạch, tiến hành gắn linh kiện vào mạch và kiểm tra
lại mạch.
Bước 5: Chuyển đổi nguồn điện: Module hạ áp có chức năng chuyển đổi
nguồn điện ban đầu (nguồn DC có mứa áp cao maximum lên đến 40VDC) thành
mức điện áp thấp hơn cần thiết cho các thành phần điện tử trong hệ thống dùng
phương pháp băm giảm áp (cấu trúc mạch Converter kiểu Buck), nhờ chức năng
Adj nên điện áp ra có thể thay đổi được trong khoảng từ 1,2V đến 35V dòng 3A.

80
Nó đảm bảo rằng các linh kiện và vi điều khiển như esp8266, cảm biến, chip RTC,
và các linh kiện khác nhận được nguồn điện phù hợp và ổn định .
Bước 6: Cuối cùng nạp chương trình và kiểm tra chương trình có đạt như yêu
cầu ban đầu không.

Đóng hộp và thi công mô hình.


Sau khi kiểm tra mạch hoạt động tốt ta tiến hành đóng hộp thành mô hình.
Hệ thống được thiết kế gọn phù hợp với mục đích sử dụng cá nhân bao gồm khối xử
lí và các cảm biến.
Hộp bảo vệ thiết bị:
- Chất liệu: bìa cứng màu trắng.
- Kích thước(độ dài, rộng, cao): 22x13x7cm.

81
Hình 5.5 Hình thiết bị sau khi hoàn thiện

5.3. LẬP TRÌNH HỆ THỐNG:


5.3.1. Các chức năng chính của hệ thống:
- Chức năng thứ nhất: Đo độ ẩm đất, cảnh báo nếu độ ẩm đất vượt mức cho

phép Đọc từ cảm biến, tiến hành tính toán, so sánh các giá trị đo được để kết luận
báo tình hình đất trồng quá khô của đất về App trên thiết bị điện thoại. Nếu vượt
mức cho phép, thiết bị sẽ báo, đồng thời thực hiện nhiệm vụ tưới cây tự động.
- Chức năng thứ thứ hai: Đo và theo dõi số ngày mưa và không mưa thực

nhiệm vụ đếm ngày để tưới cây khi người sử dụng set chế độ tưới cây khi đến ngày
10 sẽ tự đông tưới nhưng khi đếm ngày 5 thì trời bất ngờ đổ mưa , thì hệ thống tiến

82
hành tính toán, so sánh các giá trị đo và gửi tín hiệu về và báo hiệu độ ẩm đất đủ độ
ẩm cho cây trồng sau khi trời mưa và hệ thống sẽ cài đặt đếm số ngày mưa lại.

5.3.2. KIẾN THỨC THU ĐƯỢC


Sau hơn 16 tuần nghiên cứu và thực hiện đề tài, quá trinh làm việc chúng tôi
biết và hiểu thêm về những kiến thức đã học:
- Biết được cách lập trình Arduino cơ bản và giao tiếp với máy tính.

- Hiểu được nguyên lý của một số module, linh kiện thông dụng.

- Làm quen dần với các đề tài loT ứng dụng vào đời sống, các cách thức nhận

và truyền dữ liệu không dây thông qua internet .


- Nâng cao các kỹ năng mềm: Làm việc nhóm, cách thức xây dựng kế hoạch...

5.3.3. PHẦN CỨNG


Linh kiện và thiết bị mạch bao gồm:
- Cảm biến độ ẩm đất.
- Cảm biến mưa.
- Module hạ áp.
- Chip thời gian thực.
- Opto Quang.
- Màn hình LCD.
- Module thu phát wifi.

Phần cứng đã được hoàn thiện, tuy chưa phải là sản phẩn có thể đưa vào sử
dụng, nhưng thiết bị vẫn đảm bảo được độ chắc chắn. Các linh kiện sắp xếp dễ sử
dụng.
Sau khi hoàn thành phần cứng của hệ thống, nhóm tiến hành nạp code vào
mạch và khảo sát hoạt động thực tế của thiết bị.

5.3.4. Quy trình thao tác trên thiết bị


Thiết bị tích hợp 2 chức năng chính: Đo độ ẩm đất và theo dõi số ngày mưa.

83
Thao tác đơn giản với các bước sau:
Bước 1: Nhấn nút nguồn BẬT/TẮT để khởi động thiết bị và Chế độ thủ
công.

Hình 5.6 Nút bật/tắt thiết bị

Bước 2: Nút bật máy bơm thực hiện tác vụ bơm nước khi không điều khiển tự
động.

84
Hình 5.7 Nút bật máy bơm

- Nút tắt máy bơm thực hiện tác vụ tắt khi người dân cảm thấy bơm nước đầy

đủ cho cây trồng.

Hình 5.8 Nút tắt máy bơm

Chế độ tự động:

85
- Giúp người dùng điều chỉnh thông qua app điện thoại và điều chỉnh các nút

nhấn trên thiết bị gồm 3 nút:


- Nút mode trên mạch và trên app dùng điều chỉnh ngày, giờ, phút, giới hạn

nhiệt độ khi đất tới ngưỡng sẽ bơm nước.


- Nút bật tắt máy bơm khi chế độ thủ công khi chuyển sang chế độ tự động sẽ

thành nút điều chỉnh các giá trị trên màn hình LCD.

Hình 5.9 Nút mode điều chỉnh các chế độ khi hệ tống tự động trên thiết bị

- Hệ thống giúp người dùng chủ động trong việc điều khiển thiết bị khi
không có nhiều thời gian chăm sóc mảnh sân vườn của mình.

86
Hình 5.10 Nút mode điều chỉnh các chế độ khi hệ tống tự động trên App

87
Bước 3: Tắt thiết bị bằng cách nhấn vào nút đầu tiên như bước 1

Hình 5.11 Nhấn lại nút bật lần nữa để tắt

88
CHƯƠNG 6:
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. KẾT LUẬN


Nhằm giúp giải quyết vấn đề tưới cây của người dân khi thời tiết thất thường
của khí hậu nhiệt đới việt nam sáng nắng chiều mưa giúp người dân nhận biết được
độ ẩm của đất và đếm số ngày mưa trong tuần giúp người dân tiết kiệm được nhiều
thời gian trong việc chăm sóc cây trồng. Kết quả độ ẩm đất và số ngày mưa được
cập nhật trên app và kiểm tra cũng như điều khiển trên app dễ dàng.
6.1.1. Ưu điểm và nhược điểm:
Ưu điểm:
- Giải quyết được yêu cầu đặt ra của đề tài.

- Phần cứng được thiết kế đơn giản, dễ sử dụng.

- Các thông số đo đạc được sát với thực tể.

- Chi phí của thiết bị khá hợp lý và đáp ứng được đầy đủ các tính năng.

Nhược điểm:
Dù nhóm nghiên cứu đã rất cố gắng hoàn thành đề tài một cách tốt nhất có thể
tuy nhiên hệ thống vẫn còn một vài khuyết điểm sau:
- Vì đây là đề tài nguyên cứu nên các hoạt động của các linh kiện trong mạch

chưa đem lại kết quả là tối ưu nhất.


- Thiết bị chưa thực sự gọn gàn, chưa thuận tiện cho việc sử dụng.

- Vì kiến thức, thời gian cũng như kinh phí hạn chế nên mô hình không được

tối ưu 100%.
6.2. HƯỚNG PHÁT TRIỂN ĐỀ TÀI:
Mở rộng chức năng:
• Thêm các cảm biến và linh kiện khác như cảm biến nhiệt độ, cảm biến ánh
sáng để tăng tính tự động và hiệu suất của hệ thống.
• Tích hợp hệ thống cảnh báo hoặc thông báo qua ứng dụng di động hoặc

89
email khi cần tưới cây hoặc khi có sự cố xảy ra trong hệ thống.
• Phát triển giao diện người dùng trực quan hơn trên ứng dụng Blynk để dễ
dàng theo dõi và điều khiển hệ thống.
• Tích hợp hệ thống đo lường năng lượng mặt trời để tận dụng năng lượng tái
tạo cho hoạt động của hệ thống.
Nâng cao tính ổn định và bảo mật:
• Tối ưu mã nguồn và xử lý lỗi để đảm bảo tính ổn định và đáng tin cậy của hệ
thống.
• Áp dụng các biện pháp bảo mật như mã hóa thông tin và xác thực người
dùng để đảm bảo an toàn cho dữ liệu và hệ thống.
Tích hợp công nghệ IoT và Cloud:
• Sử dụng các dịch vụ đám mây như AWS IoT, Google Cloud Platform hoặc
Microsoft Azure để lưu trữ và quản lý dữ liệu từ cảm biến.
• Tích hợp trí tuệ nhân tạo và học máy để phân tích dữ liệu và tối ưu hóa hoạt
động của hệ thống tưới cây.
• Tích hợp hệ thống điều khiển giọng nói hoặc truyền hình ảnh để dễ dàng
tương tác và theo dõi hệ thống.
Mở Rộng quy mô và ứng dụng:
• Tăng quy mô hệ thống để áp dụng cho các khu vườn hoặc nông trại lớn.
• Ứng dụng hệ thống cho các ứng dụng khác như tự động tưới cây trong công
viên, khu vườn thủy sinh, hoặc các hệ thống tưới cây tự động trong nhà kính.

90
THAM KHẢO

Trang web tham khảo:


[1] Trang Web, “randomnerdtutorials.com/”, chủ đề tìm kiếm là “projects-
esp8266”
[2] Trang Web, “arduinokit.vn”, chủ đề tìm kiếm là “hướng dẫn cài dặt arduino
IDE”
[3] Trang Web, “examples.blynk.cc/tham khảo các code mẫu “
[4] Trang web, “thegioididong.com” trong mục “tin tức công nghệ” với chủ đề
“tìm hiểu công nghệ thu phát sóng wifi”.
[5] Trang web, “vi.wikipedia.org/” với chủ đề “wifi”.
[6] Trang web, “tinhte.vn/” với chủ đề “Arduino IDE”.
[7] Trang web, “tinhte.vn/” với chủ đề “IOT”.
[8] Trang web, “tinhte.vn/” với chủ đề “blynk”

91
Phụ lục:
CODE CHƯƠNG TRÌNH
Chương trình chính:
#include <Wire.h>
#include<SoftwareSerial.h>

#define BLYNK_PRINT Serial


#define BLYNK_TEMPLATE_ID "TMPL6OhMI6RfX"
#define BLYNK_TEMPLATE_NAME "doan"
#define BLYNK_AUTH_TOKEN
"yvNXRL7PvtJAQISCWEkWVp1Dgvm_8oW2"
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "yvNXRL7PvtJAQISCWEkWVp1Dgvm_8oW2";


char ssid[] = "thang";
char pass[] = "123456789";

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

int chon = 14;


int mod = 2;
int up = 0;
int dw = 16;

92
int mb=15;
int mua=12;

#define ONE_WIRE_BUS 13
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

const byte DS1307 = 0x68;


const byte NumberOfFields = 7;

int second, minute, hour, day, wday, month, year;


int giay,phut,gio, thu, ngay, thang, nam;
int tt_chon, tt_mod;

long nd;
long ndt;
int gt0,gt1,gt2,gt3,gt6;
long ghnd,ghda;
long ghndt;
long i,adc;
int ttmb,ttmbt;
int chay;
int sl_mua,sl_muat,tt_mua,tt_chont;

WidgetLED ledmb(V8);

BLYNK_CONNECTED()
{

93
Blynk.syncAll();
}

BLYNK_WRITE(V0)
{
gt0 = param.asInt();
if(gt0==1)
{
tt_chon++;
if(tt_chon>1) tt_chon=0;
tt_mod=0;
ttmb=0;
}
}

BLYNK_WRITE(V6)
{
gt6 = param.asInt();
if(gt6==1)
{
if(tt_chon==1)
{
ttmb++;
if(ttmb>1) ttmb=0;
}
}
}

BLYNK_WRITE(V1)

94
{
gt1 = param.asInt();
if(gt1==1)
{
if(tt_chon==0) // chinh thoi gian ds1307
{
tt_mod++;
if(tt_mod>4) tt_mod=0;
}
}
}

BLYNK_WRITE(V2)
{
gt2 = param.asInt();
if(gt2==0)
{
if(tt_chon==0)
{
if(tt_mod==1)
{
gio++;
if(gio>23) gio=0;
}
else if(tt_mod==2)
{
phut++;
if(phut>59) phut=0;
}

95
else if(tt_mod==3)
{
thu++;
if(thu>8) thu=1;
}
else if(tt_mod==4)
{
ghnd++;
if(ghnd>99) ghnd=99;
}
setTime(gio,phut,giay,thu,ngay,thang,nam);
}
}
}

BLYNK_WRITE(V3)
{
gt3 = param.asInt();
if(gt3==0)
{
if(tt_chon==0)
{
if(tt_mod==1)
{
gio--;
if(gio<0) gio=23;
}
else if(tt_mod==2)
{

96
phut--;
if(phut<0) phut=59;
}
else if(tt_mod==3)
{
thu--;
if(thu<1) thu=8;
}
else if(tt_mod==4)
{
ghnd--;
if(ghnd<0) ghnd=0;
}
setTime(gio,phut,giay,thu,ngay,thang,nam);
}
}
}

void setup()
{
Serial.begin(9600);

pinMode(mb,OUTPUT);
pinMode(mua,INPUT);
pinMode(chon,INPUT);
pinMode(mod,INPUT);
pinMode(up,INPUT);
pinMode(dw,INPUT);
digitalWrite(mb,LOW);

97
sensors.begin();
lcd.begin();
lcd.backlight();
Wire.begin();
lcd.setCursor(0, 0);
lcd.print("ID : thang ");
lcd.setCursor(0, 1);
lcd.print("PASS: 123456789 ");
Blynk.begin(auth, ssid, pass);
gt1=0;
gt2=0;
gt3=0;
gt6=0;

tt_chon=0;
tt_mod=0;
chay=0;
ghnd=35;
sl_mua=0;
tt_mua=0;

setTime(7,59,55,2,22,4,20);
ttmb=0;
}

void loop()
{
Blynk.run();

98
hienthi();
nn_chon();
nn_mod();
nn_up();
nn_dw();
gui_dl();
if(tt_chon==0)
{
if(tt_mua==0)
{
if(digitalRead(mua)==0)
{
sl_mua++;
if(sl_mua>15) sl_mua=0
tt_mua=1;
}
}
else
{
if(digitalRead(mua)==1)
{
tt_mua=0;
}
}

chay++;
if(chay>10)
{
chay=0;

99
if(tt_mod==0)
{
readDS1307();
sensors.requestTemperatures();
nd=sensors.getTempCByIndex(0);
}
}

if((thu==1)&&(gio==23)&&(phut==59)&&(giay>55))
{
sl_mua=0;
}

if(sl_mua<10)
{
if((nd>ghnd)||(analogRead(A0)<1000))
{
ttmb=1;
// digitalWrite(mb,1);
// Serial.println("BAT MB");
}
else
{
ttmb=0;
// digitalWrite(mb,0);
// Serial.println("TAT MB");
}
}
else

100
{
tt_mua=0;
}
}
else
{

}
if(ttmb==1)
{
digitalWrite(mb,1);
ledmb.on();
}
else
{
digitalWrite(mb,0);
ledmb.off();
}
}

void hienthi()
{
if(tt_mod==0)
{
lcd.setCursor(8, 0);
lcd.write(gio/10+0x30);
lcd.write(gio%10+0x30);
lcd.print(":");
lcd.write(phut/10+0x30);

101
lcd.write(phut%10+0x30);
lcd.print(":");
lcd.write(giay/10+0x30);
lcd.write(giay%10+0x30);
if(thu==1)
{
lcd.setCursor(0, 0);
lcd.print("CN ");
}
else
{
lcd.setCursor(0, 0);
lcd.print("T:");
lcd.print(thu);
lcd.print(" ");
}

lcd.setCursor(0, 1);
lcd.print("ND:");
lcd.write(nd/10%10+0x30);
lcd.write(nd%10+0x30);
lcd.write(0xdf);
lcd.print("C ");

if(tt_chon==0)
{
lcd.setCursor(10, 1);
lcd.print(" Sl:");
lcd.write(sl_mua/10%10+0x30);

102
lcd.write(sl_mua%10+0x30);
}
else
{
lcd.setCursor(10, 1);
lcd.print("T/CONG");
}
}
else if(tt_mod==1)
{
lcd.setCursor(0, 0);
lcd.print("CHINH GIO: ");
lcd.write(gio/10+0x30);
lcd.write(gio%10+0x30);
lcd.print(" ");
}
else if(tt_mod==2)
{
lcd.setCursor(0, 0);
lcd.print("CHINH PHUT: ");
lcd.write(phut/10+0x30);
lcd.write(phut%10+0x30);
lcd.print(" ");
}
else if(tt_mod==3)
{
if(thu==1)
{
lcd.setCursor(0, 0);

103
lcd.print("CHINH THU: CN ");
}
else
{
lcd.setCursor(0, 0);
lcd.print("CHINH THU: ");
lcd.print(thu);
lcd.print(" ");
}
}
else if(tt_mod==4)
{
lcd.setCursor(0, 0);
lcd.print("CHINH GH:");
lcd.write(ghnd/10%10+0x30);
lcd.write(ghnd%10+0x30);
lcd.write(0xdf);
lcd.print("C ");
}
}

void gui_dl()
{
if((ndt!=nd)||(ghndt!=ghnd))
{
ndt=nd;
ghndt=ghnd;
Blynk.virtualWrite(V5, ghnd);
Blynk.virtualWrite(V4, nd);

104
delay(100);
}

if((ttmbt!=ttmb)||(sl_muat!=sl_mua)||(tt_chont!=tt_chon))
{
ttmbt=ttmb;
sl_muat=sl_mua;
tt_chont=tt_chon;
Blynk.virtualWrite(V7, sl_mua);
Blynk.virtualWrite(V6, ttmb);
Blynk.virtualWrite(V0, tt_chon);
delay(100);
}
}

void nn_chon()
{
if(digitalRead(chon)==0)
{
delay(20);
if(digitalRead(chon)==0)
{
tt_chon++;
if(tt_chon>1) tt_chon=0;
ttmb=0;
while(digitalRead(chon)==0);
}
}
}

105
void nn_mod()
{
if(digitalRead(mod)==0)
{
delay(20);
if(digitalRead(mod)==0)
{
if(tt_chon==0)
{
tt_mod++;
if(tt_mod>4) tt_mod=0;
}
while(digitalRead(mod)==0);
}
}
}

void nn_up()
{
if(digitalRead(up)==0)
{
delay(20);
if(digitalRead(up)==0)
{
if(tt_chon==0)
{
if(tt_mod==1)
{

106
gio++;
if(gio>23) gio=0;
}
else if(tt_mod==2)
{
phut++;
if(phut>59) phut=0;
}
else if(tt_mod==3)
{
thu++;
if(thu>59) thu=0;
}
else if(tt_mod==4)
{
ghnd++;
if(ghnd>99) ghnd=99;
}
setTime(gio,phut,giay,thu,ngay,thang,nam);
}
else ttmb=1;
while(digitalRead(up)==0);
}
}
}

void nn_dw()
{
if(digitalRead(dw)==0)

107
{
delay(20);
if(digitalRead(dw)==0)
{
if(tt_chon==0)
{
if(tt_mod==1)
{
gio--;
if(gio<0) gio=23;
}
else if(tt_mod==2)
{
phut--;
if(phut<0) phut=59;
}
else if(tt_mod==3)
{
thu--;
if(thu<1) thu=8;
}
else if(tt_mod==4)
{
ghnd--;
if(ghnd<0) ghnd=0;
}
setTime(gio,phut,giay,thu,ngay,thang,nam);
}
else ttmb=0;

108
while(digitalRead(dw)==0);
}
}
}

void readDS1307()
{
Wire.beginTransmission(DS1307);
Wire.write(byte(0x00)); // đặt lại pointe
Wire.endTransmission();
Wire.requestFrom(DS1307, NumberOfFields);

second = bcd2dec(Wire.read()& 0x7f);


minute = bcd2dec(Wire.read());
hour = bcd2dec(Wire.read()& 0x3f);
wday = bcd2dec(Wire.read());
day = bcd2dec(Wire.read());
month = bcd2dec(Wire.read());
year = bcd2dec(Wire.read());

giay=second;
phut=minute;
gio=hour;
thu=wday;
ngay=day;
thang=month;
nam=year;
}

109
int bcd2dec(byte num)
{
return((num/16*10)+(num%16));
}

int dec2bcd(byte num)


{
return((num/10*16)+(num%10));
}

void setTime(byte hr, byte min, byte sec, byte wd, byte d, byte mth, byte yr)
{
Wire.beginTransmission(DS1307);
Wire.write(byte(0x00);
Wire.write(dec2bcd(sec));
Wire.write(dec2bcd(min));
Wire.write(dec2bcd(hr));
Wire.write(dec2bcd(wd));
Wire.write(dec2bcd(d));
Wire.write(dec2bcd(mth));
Wire.write(dec2bcd(yr));
Wire.endTransmission();
}

110

You might also like