You are on page 1of 56

ĐỒ ÁN TỐT NGHIỆP

XÂY DỰNG MÔ HÌNH VƯỜN CÂY


THÔNG MINH THEO HƯỚNG IOT
MỤC LỤC

DANH MỤC CÁC HÌNH VẼ.........................................................................................VIII

DANH MỤC CÁC BẢNG BIỂU........................................................................................X

DANH MỤC CÁC TỪ VIẾT TẮT...................................................................................XI

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI...................................................................................1

1.1 ĐẶT VẤN ĐỀ...............................................................................................................1


1.2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC......................................................1
1.3 MỤC TIÊU...................................................................................................................2
1.4 SƠ ĐỒ KẾT NỐI TỔNG QUÁT CỦA HỆ THỐNG..............................................................3

CHƯƠNG 2. HỆ THỐNG PHẦN CỨNG.........................................................................4

2.1 CÁC LOẠI CẢM BIẾN...................................................................................................4


2.1.1 Cảm biến nhiệt độ, độ ẩm DHT11......................................................................4
2.1.2 Cảm biến cường độ ánh sáng BH1750...............................................................5
2.2 VI ĐIỀU KHIỂN PIC 16F877A.....................................................................................6
2.3 MODULE TRUYỀN WIFI ESP8266..............................................................................11
2.4 MÀN HÌNH HIỂN THỊ LCD 1602...............................................................................14
2.5 MODULE THỜI GIAN THỰC RCT DS1307.................................................................15

CHƯƠNG 3. GIẢI THUẬT TỰ ĐỘNG HÓA................................................................16

3.1 CÁC CHỨC NĂNG CHÍNH...........................................................................................16


3.2 GIẢI THUẬT CHI TIẾT TỪNG KHỐI.............................................................................17
3.2.1 Điều chỉnh nhiệt độ không khí..........................................................................18
3.2.2 Điều chỉnh độ ẩm..............................................................................................20
3.2.3 Điều chỉnh ánh sáng.........................................................................................21

CHƯƠNG 4. XÂY DỰNG WEBSITE GIÁM SÁT VƯỜN CÂY IOT........................24

4.1 THIẾT KẾ GIAO DIỆN DÙNG NGÔN NGỮ PHP............................................................24


4.1.1 Ngôn ngữ PHP..................................................................................................24
4.1.2 Môi trường lập trình Atom................................................................................25
4.2 CƠ SỞ DỮ LIỆU MYSQL............................................................................................27
4.3 ESP8266 GIAO TIẾP GIỮA WEBSITE VÀ PIC.............................................................28

CHƯƠNG 5. KẾT QUẢ THỰC HIỆN HỆ THỐNG.....................................................30

5.1 KẾT QUẢ THI CÔNG PHẦN CỨNG..............................................................................30


5.1.1 Schematic..........................................................................................................30
5.1.2 Layout...............................................................................................................30
5.1.3 Kết quả hàn mạch.............................................................................................31
5.2 KẾT QUẢ GIẢI THUẬT ĐIỀU KHIỂN TỰ ĐỘNG............................................................32
5.3 KẾT QUẢ XÂY DỰNG WEBSITE.................................................................................33
5.3.1 Giao diện Website.............................................................................................33
5.3.2 Truyền dữ liệu từ PIC lên Esp8266...................................................................33
5.3.3 Xây dựng CSDL Mysql......................................................................................34
5.3.4 Kết quả giao tiếp truyền dữ liệu giữa Website..................................................35

CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG THỰC HIỆN..................................................36

6.1 KẾT QUẢ THỰC HIỆN................................................................................................36


6.2 HƯỚNG PHÁT TRIỂN.................................................................................................36

TÀI LIỆU THAM KHẢO..................................................................................................37

PHỤ LỤC A 38
DANH MỤC CÁC HÌNH VẼ

HÌNH 1-1: SƠ ĐỒ KẾT NỐI CỦA HỆ THỐNG..............................................................3

HÌNH 2-1: CẢM BIẾN NHIỆT ĐỘ, ĐỘ ẨM DHT11 [1]................................................4

HÌNH 2-2: CẢM BIẾN ÁNH SÁNG [2].............................................................................6

HÌNH 2-3: HÌNH DẠNG THỰC TẾ PIC 16F877A [3]....................................................8

HÌNH 2-4: SƠ ĐỒ CHÂN PIC 16F877A [3]......................................................................9

HÌNH 2-5: SƠ ĐỒ BỘ NHỚ CHƯƠNG TRÌNH VÀ NGĂN XẾP [4].........................10

HÌNH 2-6: ESP V12 [5].......................................................................................................11

HÌNH 2-7: CÁCH ĐẤU DÂY NẠP CHƯƠNG TRÌNH CHO ESP 8266V12 [8].......12

HÌNH 2-8: LCD 1602 [7]....................................................................................................14

HÌNH 2-9: HÌNH DẠNG MODULE THỜI GIAN THỰC RTC DS1307 [9]..............15

HÌNH 3-1: MÔ HÌNH GIẢ LẬP VỊ TRÍ CÁC CẢM BIẾN.........................................16

HÌNH 3-2: LƯU ĐỒ GIẢI THUẬT ĐIỀU CHỈNH NHIỆT ĐỘ SỬ DỤNG CẢM
BIẾN DHT11 ........................................................................................................................18

HÌNH 3-3: LƯU ĐỒ GIẢI THUẬT ĐIỀU CHỈNH ĐỘ ẨM SỬ DỤNG CẢM BIẾN
DHT11 ........................................................................................................................20

HÌNH 4-1: CÁCH THỨC HOẠT ĐÔNG CỦA NGÔN NGỮ PHP.............................25

HÌNH 4-2: GIAO DIỆN LẬP TRÌNH TRÊN ATOM.....................................................26

HÌNH 4-3: PHẦN MỀM TRUY XUẤT CSDL VÀ MỞ SERVER LOCAL...............27

HÌNH 4-4: KẾT NỐI GIỮA PIC VÀ WEBSITE BẰNG ĐỊA CHỈ IP........................29

HÌNH 5-1: SCHEMATIC CỦA MẠCH SỬ DỤNG PHẦN MỀM PROTUES..........30

HÌNH 5-2: LAYOUT CỦA MẠCH SỬ DỤNG PHẦN MỀM PROTUES..................30

HÌNH 5-3: MẠCH IN MẶT TRƯỚC...............................................................................31

HÌNH 5-4: MẠCH IN MẶT SAU......................................................................................31


HÌNH 5-5: GIAO DIỆN WEBSITE..................................................................................33

HÌNH 5-6: TRUYỀN DỮ LIỆU TỪ PIC LÊN ESP.......................................................34

HÌNH 5-7: CƠ SỞ DỮ LIỆU CỦA CÂY TRỒNG.........................................................34

HÌNH 5-8: TRUYỀN DỮ LIỆU LÊN LCD VÀ WEBSITE..........................................35

DANH MỤC CÁC BẢNG BIỂU


BẢNG 2-1: BẢNG THÔNG SỐ KỸ THUẬT DHT11......................................................4

BẢNG 2-2: SƠ ĐỒ NỐI DÂY DHT11...............................................................................5

BẢNG 2-3: THÔNG SỐ KỸ THUẬT BH1750................................................................6

BẢNG 2-4: SƠ ĐỒ NỐI DÂY BH1750..............................................................................6

BẢNG 2-5: TÓM TẮT THÔNG SỐ KỸ THUẬT PIC 16F877A...................................8

BẢNG 2-6: BẢNG TẬP LỆNH AT CỦA ESP 8266........................................................13

BẢNG 2-7: SƠ ĐỒ NỐI DÂY DHT11.............................................................................14

BẢNG 2-8: SƠ ĐỒ NỐI DÂY DS1730 VỚI PIC 16F877A..........................................15

BẢNG 2-9: THÔNG SỐ KỸ THUẬT DS1730................................................................15

BẢNG 4-1: BẢNG THÔNG SỐ SINH TRƯỞNG CỦA MỘT SỐ CÂY TRỒNG[10]28

DANH MỤC CÁC TỪ VIẾT TẮT

CSDL Cơ sở dữ liệu
LCD Liquid-crystal-display
IoT Internet of things
PIC Programmable Intelligent Computer
ADC Analog-to-digital converter
EEPROM Electrically Erasable Programmable Read-Only Memory
ROM Read-Only Memory
USART Universal Synchronous/Asynchronous Receiver
RISC Reduced instruction set computer
PHP Hypertext Preprocessor
GPIOS General-purpose input/output
PCM Pulse-code modulation
ĐỒ ÁN TỐT NGHIỆP
Trang 1/50

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI

1.1 Đặt vấn đề


Ngày nay nhu cầu về thực phẩm sạch luôn là vấn đề được đặt lên hàng đầu, nhưng
cùng với sự phát triển của các đô thị với mật độ dân số lớn con người lại tạo ra
những thực phẩm có sự can thiệp của các chất hóa học để tạo sự tươi ngon cho thực
thẩm. Tình trạng bắp cải giả có nguồn gốc từ Trung Quốc, rau muống tưới nhớt, rau
muống ngâm dung dịch để tạo màu xanh tươi… đã làm cho chúng ta hoang mang
và ngày càng mất lòng tin vào những người nông dân được cho là chân chính.
Chính vì lẽ đó việc tự trồng rau sạch là một giải pháp hiệu quả cho mỗi hộ gia đình.
Ứng dụng công nghệ mạng máy tính vào trồng trọt là một trong những ý tưởng hay
của nghiên cứu khoa học ngày nay, giúp con người tiết kiệm được nhiều thời gian
và công sức nhưng vẫn đem lại năng suất cao. Con người có thể ở nhà sử dụng máy
tính hoặc điện thoại mà vẫn có thể điều khiển trang trại của mình ở ngoại thành
giúp tiết kiệm thời gian nhân công hiệu quả.
Trong đề tài này vấn đề được đặt ra là xây dựng một khu vườn thông minh. Trên
một diện tích đất chúng ta có thể trồng nhiều loại rau hoa màu khác nhau. Với công
nghê tự động hóa chỉ cần chọn loại hoa màu muốn trồng với những yếu tố điều kiện
tăng trưởng. Hệ thống sẽ tự điều chỉnh môi trường để tăng khả năng phát triển của
cây. Bên cạnh đó cơ sở dữ liệu được liên tục đưa lên Website giúp cho chúng ta có
thể tra cứu dữ liệu bất kỳ lúc nào.

1.2 Tình hình nghiên cứu trong và ngoài nước


Hiện nay trên thế giới đang phát triển các mô hình trồng cây thông minh phù hợp
trong các đô thị lớn. Khi mà diện tích đất ngày càng thu hẹp, dân số này càng tăng
cao, việc xây dựng những mô hình trồng cây ngay tại các gian bếp hoặc ban công
giúp mang lại thực phẩm sạch không bị ô nhiễm. Con người phải tạo ra một môi
trường nhân tạo các yếu tố nhiệt độ, nước, gió, độ PH, ánh sáng,… cho cây phát
triển, và thế là những trang trại thông minh nhỏ ra đời trong các căn hộ. Hơn thế
nữa việc trồng rau hoặc hoa tại căn hộ đem lại một môi trường tự nhiên sạch và có

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 2/50

tính thẩm mỹ cao. Xu thế phát triển của thế giới về một khu vườn thông minh trong
căn hộ có thể tự động hóa tất cả mọi việc kể cả việc gieo trồng từ xa cũng như là thu
hoach tự động.
Trên thế giới những mô hình trồng rau trong nhà ngày càng phổ biến như những
lồng cây trồng tại bếp theo phương thức trồng thủy canh, sản phẩm rau sạch có thể
sử dụng trực tiếp mà không phải rữa với nước, với những bước trồng cực kì đơn
giản và có thể theo dõi sự phát triển của cây, nhu cầu về thành phần dinh dưỡng,
nhiệt độ, độ ẩm và ánh sáng được tối ưu hóa qua một ứng dụng nhỏ trên điện thoại
hơn thế nữa những lồng trồng cây nhỏ còn được dùng để trang trí tại một số vị trí
như nhà bếp, bàn ăn, bên cửa sổ…
Hiện nay tại Việt Nam đã ứng dụng hệ thống Smart Home với mục tiêu tiến tới hệ
thống Smart City, ngày càng có nhiều gia đình tại Việt Nam sinh sống tại những căn
hộ chung cư với diện tích nhỏ nhưng vẫn có thể trồng cây ngoài sân thượng, hoặc
ngay tại không gian bếp bằng việc ứng dụng những mô hình thông minh vừa mang
lại lợi ích sức khỏe mà còn đem lại tính thẩm mỹ cho ngôi nhà. Những căn hộ được
bán ra với việc thiết kế hệ thống tự động hóa trong nhà kết hợp với hệ thống trồng
cây thông minh đem lại sự tiện dụng cho gia chủ.

1.3 Mục tiêu


Xây dựng mô hình vườn thông minh theo hướng IoT có thể tự động hóa việc chăm
sóc cây dựa vào các loại cảm biến, vi điều khiển và các loại module truyền không
dây. Đề tài tập trung giải quyết những nhiệm vụ sau:

- Sử dụng cảm biến được gắn vào vi điều khiển để chăm sóc cây: cảm biến
nhiệt độ độ ẩm truyền dữ liệu về cho PIC. PIC gửi dữ liệu lên cho Esp để
thực hiện việc so sánh với điều kiện của cơ sở dữ liệu, sau đó sẽ đưa ra các
lựa chọn phù hợp nhất, sau đó Esp gửi lệnh về cho PIC để thực hiện lệnh. Tự
động hóa gồm tưới phun sương để tạo độ ẩm, sử dụng lò sưởi để giảm độ
lạnh, dùng quạt để làm mát, hoặc khi cây thiếu ánh sáng thì đèn led sẽ được
bật để cung cấp lượng ánh sáng vừa phải. Ngoài ra một màn hình LCD sẽ
được đặt ngoài vườn để tiện cho việc theo dõi trực tiếp về nhiệt độ, độ ẩm,
ánh sáng phát triển của cây.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 3/50

- Một cơ sở dữ liệu cây trồng được lưu kết nối trên website: CSDL lớn gồm
50 loại cây trồng khác nhau. PIC có thể lấy CSDL thông qua ESP để có
thông số điều kiện phát triển của cây. Người sử dụng có thể sử dụng trực tiếp
thông qua Website, có thể chọn loại cây cho hệ thống chăm sóc hoặc xem
những thông số về điều kiện phát triển của cây trồng hiện tại.
- Người sử dụng có thể theo dõi từ xa hệ thống trồng cây thông qua Website.
Những thông số mà PIC nhận được từ cảm biến đã được xử lý và đẩy lên
Website. Ngoài ra cá nhân có thể tự thay đổi các thông số của cơ sở dữ liệu
theo mong muốn.

1.4 Sơ đồ kết nối tổng quát của hệ thống.

Các Cảm biến Vi điều khiển PIC esp 8266 wifi CSDL&Website

Hình 1-1: Sơ đồ kết nối của hệ thống

Vi điều khiển nhận dữ liệu từ cảm biến sau đó nhờ cầu nối Esp8266 gửi dữ liệu lên
Webserver. Ngoài ra khi có yêu cầu từ Webserver vi điều khiển sẽ đọc dữ liệu mà
server gửi yêu cầu. Hệ thống liên tục và thực hiện so sánh thông số thu được và
thông số tăng trưởng để điều chỉnh tạo ra các môi trường tốt cho cây.

CHƯƠNG 2. HỆ THỐNG PHẦN CỨNG

1.5 Các loại cảm biến


Để thực hiện tự động hóa điều chỉnh môi trường phù hợp cho cây, một hệ thống
gồm các cảm biến được sử dụng để thu thập thông tin thực tế của môi trường. Các
cảm biến gồm:
- Cảm biến nhiệt độ, độ ẩm DHT11

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 4/50

- Cảm biến ánh sáng BH1750

1.1.1 Cảm biến nhiệt độ, độ ẩm DHT11


DHT11 là cảm biến nhiệt độ kết hợp độ ẩm dễ sử dụng và có độ chính xác tương
đối cao.

Hình 2-1: Cảm biến nhiệt độ, độ ẩm DHT11 [1]

Thông số kĩ thuật của DHT11 được trình bày trong bảng 2.1
Bảng 2-1: Bảng thông số kỹ thuật DHT11
Điện áp hoạt động 3-5.5v DC
Sai số độ ẩm ±5%
Ngưỡng độ ẩm 20-90
Ngưỡng nhiệt độ 0-500C
Sai số nhiệt độ ±20C

Sơ đồ nối dây giữa PIC và DHT11 được trình bày trong bảng 2.2
Bảng 2-2: Sơ đồ nối dây DHT11
DHT11 PIC 16F877A
GND GND
VCC 5V
SIGNAL B0

- Nguyên lý hoạt động: Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi
xử lý thực hiện theo 2 bước: Gửi tín hiệu muốn đo (Start) tới DHT11, sau đó
DHT11 xác nhận lại và 5-byte dữ liệu về nhiệt độ đo được.
- Bước 1: gửi tín hiệu Start

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 5/50

+ MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong
khoảng thời gian >18ms. Khi có tín hiệu sẽ hiểu MCU muốn đo giá trị nhiệt
độ và độ ẩm. MCU đưa chân đất lên 1, sau đó thiết lập lại chân đầu vào.
+ Sau khoảng 20us, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >20us mà
chân DATA không được kéo xuống thấp nghĩa là không giao tiếp được với
DHT11.
+ Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo lên cao trong
80us. Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp
được với DHT11 không. Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn
thiện quá trình giao tiếp của MCU với DHT11.
- Bước 2: đọc giá trị trên DHT11: Sau khi giao tiếp được với DHT11,
DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về MCU, tương ứng chia thành 5-byte
kết quả của nhiệt độ và độ ẩm.

1.1.2 Cảm biến cường độ ánh sáng BH1750


Cảm biến cường độ ánh sáng BH1750 là một vi mạch cảm biến môi trường ánh
sáng dùng kĩ thuật giao tiếp BUS I2C.

Hình 2-2: Cảm biến ánh sáng [2]

Module này thu dữ liệu về ánh sáng, môi trường cho dữ liệu đo ra trực tiếp với dạng
đơn vị LUX mà không cần phải tính toán chuyển đổi thông qua chuẩn truyền I2C.

Thông số kĩ thuật BH1750 được trình bày trong bảng 2.3. BH1750 có thể đo được
khoảng cường độ rộng 65535 Lux TỪ -40850C
Bảng 2-3: Thông số kỹ thuật BH1750
Chuẩn kết nối I2C
Nguồn cung cấp 3.3-5V
Khoảng đo 1-65535 Lux

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 6/50

Nhiệt độ hoạt động -400C- 850C


Sơ đồ nối dây giữa PIC và BH1750 trình bày trên bảng 2.4:
Bảng 2-4: Sơ đồ nối dây BH1750
BH1750 PIC 16F877A
GND GND
VCC 5V
SDA B4
SCL B5

1.6 Vi điều khiển PIC 16F877A


PIC là một họ vi điều khiển được sản xuất bởi công ty Microchip Technology. PIC
là viết tắt của “Programmable Intelligent Computer” bộ điều, là khiển giao tiếp
ngoại vi.
Hiện nay PIC 16F877A được sử dụng rộng rãi với ưu thế ứng dụng ngôn ngữ c/c++
dễ sử dụng cho người lập trình, giúp học sinh/ sinh viên có thể tiếp cận trực tiếp,
Hơn thế nữa việc truyền nhận dữ liệu trên PIC đơn giản với các giao tiếp thông
dụng như UART, I2C,…mà vẫn đáp ứng được nhu cầu của người sử dụng.

Ý nghĩa của 16F877A: 16xxx là độ dài lệnh 14 bit và F là có bộ nhớ flash.


Các đặc điểm cơ bản của vi điều khiển PIC:
 Có MSSP Peripheal dùng cho các giao tiếp I2C,SPI và I2S.
 Có bộ nhớ nội EEPROM-có thể ghi/xóa lên tới 1 triệu lần.
 Có khối điều khiển động cơ, đọc encoder.
 Có hỗ trợ giao tiếp USB

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 7/50

- Hình dạng thực tế:

Hình 2-3: Hình dạng thực tế PIC 16F877A [3]

- PIC 16F877A có hình dạng thực tế trên hình 2-3 có 5 port xuất /nhập, có 8
kênh chuyển đổi A/D.
- Bảng tóm tắt đặc điểm của PIC 16F877A:
Bảng 2-5: Tóm tắt thông số kỹ thuật PIC 16F877A

Đặc điểm PIC16F877A


Tần số hoạt động DC-20mMhz
Reset PORT ,BOR(PWRT,OST)
Bộ nhớ chương trình Flash(14-bit word) 8K
Bộ nhớ dữ liệu(bytes) 386
Bộ nhớ dữ liệu EEPROM(bytes) 256
Các nguồn ngắt 15
Các port xuất nhập Port A,B,C,D,E
Timer 3
Các module/compare/PWM 2
giao tiếp nối tiếp MSSP, USART
Giao tiếp song song PSP
Module A/D 10bit 8 kênh ngõ vào
Bộ so sánh tương tự 2
Tập lệnh 35 lệnh

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 8/50

Hình 2-4: Sơ đồ chân PIC 16F877A [3]

- PIC16F877A có tất cả 40 chân như hình 2-4 40 chân trên chia thành 5 PORT,
2 chân cấp nguồn, 2 chân GND, 2 chân thạch anh và một chân RESET mạch.
- 5 port của PIC16F877A có tên gọi A,B,C,D,E bao gồm lần lượt 6,8,8,8,3
chân

- Cấu trúc bộ nhớ chương trình:


Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash có dung lượng
8K word (1 word = 14 bit). Bộ nhớ chương trình không bao gồm bộ nhớ stack và
không được địa chỉ hóa bởi bộ đếm chương trình.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 9/50

Hình 2-5: Sơ đồ bộ nhớ chương trình và ngăn xếp [4]

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 10/50

1.7 Module truyền Wifi Esp8266


Module ESP8266 là module wifi giá rẻ và được dùng rộng rãi các ứng dụng liên
quan đến Internet và Wifi có thể dùng thay thế cho các module RF khác. ESP8266
là một chip tích hợp cao, mở ra một thế giới Internet of Things (IOT).

Hình 2-6: Esp v12 [5]

Tính năng của ESP 8266.


- SDIO 2.0, SPI, UART
- 32-pin QFN ( Chip esp8266)
- Tích hợp RF switch, balun, 24dBm PA, DCXO, and PMU
- Kiến trúc giả miễn phí thế hệ đồng hồ độc quyền
- Tích hợp WEP, TKIP, AES, và các công cụ WAPI
Sơ đồ chân và cách đấu nạp chương trình như hình 2.7

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 11/50

Hình 2-7: Cách đấu dây nạp chương trình cho ESP 8266V12 [8]
Chân RX của Esp kết nối với chân TX của PIC. Chân TX của esp kết nối với chân
RX của PIC. Vcc, GPIO2, CH_PD được nối lên 3.3V. GND, GPIO0, GPIO1 được
nối lênh 0V, khi sử dụng GPIO0 được nối lên VCC
Một số tập lệnh AT cơ bản:

Bảng 2-6: Bảng tập lệnh AT của esp 8266

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 12/50

1.8 Màn hình hiển thị LCD 1602


Màn hình LCD được mô tả qua hình 2-8:

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 13/50

Hình 2-8: LCD 1602 [7]


Vss: tương đương với chân GND – cực âm
Vdd: tương đương với VCC- cực dương
Enable/pin: cho phép ghi vào LCD
D0-D7: 8 chân dữ liệu
Backlight (Anode và Cathode): bật tắt màn hình LCD

- Sơ đồ kết nối chân với PIC


Bảng 2-7: Sơ đồ nối dây DHT11
LCD1602 PIC 16F877A
Vss GND
Vdd 5V
Rs D1
r/w D2
E D3
D4 D4
D5 D5
D6 D6
D7 D7
A 5V
K GND

1.9 Module thời gian thực RCT DS1307

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 14/50

Hình 2-9: Hình dạng module thời gian thực RTC DS1307 [9]
Module thời gian thực DS1307 (RTC) có chức năng lưu trữ thông tin ngày tháng
năm và giờ phút giây, có thể xuất dữ liệu ra bên ngoài theo giao thức I2C. Mạch bao
gồm EEPROM AT24C32 có thể lưu trữ thông tin lên đến 32Kbit

- Sơ đồ kết nối chân giữa PIC và DS1730 đươc trình bày trong bảng 2-8:
Bảng 2-8: Sơ đồ nối dây DS1730 với PIC 16F877A
Ds1307 Pic 16F877A
SDA C4
SCL C3
VCC 5V
GND GND

- Các thông số kĩ thuật của DS1730 đươc trình bày trong bảng 2-9:
Bảng 2-9: Thông số kỹ thuật DS1730
Chuẩn kết nối I2C
Nguồn cung cấp 3.3-5V
Lưu trữ 32 Kbit EEPROM AT24C32
Tần số 1Hz

CHƯƠNG 3. GIẢI THUẬT TỰ ĐỘNG HÓA

1.10 Các chức năng chính


Công nghệ mạng máy tính phát triển bùng nổ, xu hướng phát triển hệ thống tự động
hóa theo hướng IoT ngày càng nhiều, con người không cần phải tự dự đoán sự phát

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 15/50

triển của cây trồng theo mùa nữa và vẫn có thể dễ dàng để cây sinh trưởng phát
triển tốt dựa vào các thông số truyền từ cảm biến. Cảm biến nhiệt độ độ ẩm cho cây
trồng cho phép nhận biết được lượng nước cần thiết cho cây để quyết định việc tưới
nước hoặc không. Khi nhiệt độ cao vượt quá ngưỡng sự sinh trưởng, máy lạnh sẽ
được bật lên để điều hòa lại nhiệt độ cho cây. Cảm biến ánh sáng chọn lựa mức sáng
phù hợp để bật đèn led để cung cấp ánh sáng vừa phải.
Những dữ liệu mà cảm biến truyền về PIC sẽ được xử lý và sau đó tự động điều
khiển lại hệ thống. Ngoài ra hệ thống còn sử dụng cảm biến thời gian thực để tự
động thiết lập thời gian tưới nước cho cây và khoảng thời gian phù hợp cho cây
quang hợp và hô hấp.

Hình 3-1: Mô hình giả lập vị trí các cảm biến.


Ngoai ra những thông số thu thập sẽ được PIC chuyển lên Website thông quá
module wifi esp8266, nhờ đó chúng ta có thể theo dõi điều kiện phát triển của cây
bất cứ nơi nào dùng điện thoại, máy tính, ipad. Điểm đặc biệt của hệ thống trồng
cây này là người sử dụng có thể tự thay đổi thông số của cây trồng trực tiếp trên
web khi có nhu cầu thay đổi một loại cây nào đó, nhờ đó chúng ta có thể tăng tính
linh hoạt của việc trồng cây và trồng được nhiều loại hoa màu hơn.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 16/50

Từ cơ sở dữ liệu thông số sinh trưởng có sẳn trên server chúng ta chỉ cần chọn loại
cây chúng đang trồng, những điều kiện phát triển sẽ được tự động thiết lập cho cây.
Ngoài ra để thuận tiện cho việc theo dõi một màn hình hiển thị sẽ được thiết lập
ngay tại vị trí trồng để chúng ta tiện theo dõi trực tiếp.

1.11 Giải thuật chi tiết từng khối

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 17/50

1.1.3 Điều chỉnh nhiệt độ không khí

Bắt đầu

PIC đọc nhiệt độ từ cảm


biến(Tcb) và gửi lên ESP

Y ESP
Nhiệt độ từ PIC tắt
gửi kí máy
Server
Tmin<Tcb <Tmax tự “f” sưởi,
Tmin,
cho máy lạnh
Tmax
PIC

N N

T<Tmin T>Tmax

Y Y

ESP gửi kí tự “g” ESP gửi kí tự “h”


cho PIC cho PIC

PIC bật máy sưởi,


Bật máy lạnh, tắt máy sưởi
tắt máy lạnh

Hình 3-2: Lưu đồ giải thuật điều chỉnh nhiệt độ sử dụng cảm biến DHT11

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 18/50

Nhiệt độ được điều chỉnh bằng cách bật/tắt máy lạnh/máy sưởi sử dụng dữ liệu
nhiệt độ từ cảm biến DHT11. Chân RA0 và RA1 của PIC được kết nối với 2 led lần
lượt biểu trưng hệ thống máy lạnh và máy sưởi. Esp8266 nhận dữ liệu từ PIC và so
sánh với nhiệt độ Tmin , Tmax nhận được từ CSDL
Esp8266 thực hiện việc so sánh nhiệt độ tức thời với khoảng nhiệt độ lý thuyết.
Nếu nhiệt độ nằm trong khoảng Tmin-Tmax module Wifi gửi kí tự cho PIC và PIC
thực hiện lệnh tắt máy lạnh và máy sưởi.
+ Khi nhiệt độ <Tmin: module Wifi gửi kí tự “g” cho PIC và PIC thực hiện lệnh tắt
Bắt đầu
máy lạnh, bật máy sưởi( led ở chân RA0 tắt, RA1 sáng)
+ Khi nhiệt độ >Tmax: module Wifi gửi kí tự “h” cho PIC và PIC thực hiện lệnh bật
máy lạnh, tắt máy sưởi ( led chân RA0 sáng, RA1 tắt)

PIC đọc độ ẩm từ cảm


biến(Hcb) và gửi lên ESP

PIC tắt
Y ESP máy
Độ ẩm từ gửi kí phun
Server tự “l” sương và
Hmin<Hcb <Hmax cho
Hmin, máy hút
Hmax PIC ẩm

N N
H<Hmin H>Hmax

Y Y

ESP gửi kí tự “k” ESP gửi kí tự “j”


cho PIC cho PIC
1.1.4 Điều chỉnh độ ẩm

PIC bật máy hút ẩm, tắt máy


Xây Dựng Mô Hình Vườn PIC
Cây bật máy
Thông phun
Minh Theo Hướng IOT
phun sương
sương tắt máy hút ẩm
ĐỒ ÁN TỐT NGHIỆP
Trang 19/50

Hình 3-3: Lưu đồ giải thuật điều chỉnh độ ẩm sử dụng cảm biến DHT11
Độ ẩm được điều chỉnh bằng cách bật/tắt máy phun sương/ máy hút ẩm sử dụng dữ
liệu độ ẩm từ cảm biến DHT11. Chân RA2 và RA3 của PIC được kết nối với 2 led
lần lượt biểu trưng hệ thống máy phun sương và máy hút ẩm.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 20/50

Esp8266 nhận dữ liệu từ PIC và so sánh với độ ẩm Hmin , Hmax nhận được từ CSDL
Esp8266 thực hiện việc so sánh độ ẩm tức thời với khoảng độ ẩm lý thuyết.
Nếu độ ẩm nằm trong khoảng Hmin-Hmax module Wifi gửi kí tự cho PIC và PIC thực
hiện lệnh tắt máy phun sương và máy hút ẩm.
+ Khi độ ẩm <Hmin: module Wifi gửi kí tự “k” cho PIC và PIC thực hiện lệnh tắt
máy phun sương và bật máy hút ẩm( led ở chân RA2 tắt, RA3 sáng)
+ Khi độ ẩm >Hmax: module Wifi gửi kí tự “j” cho PIC và PIC thực hiện lệnh bật
máy phun sương và tắt máy hút ẩm( led chân RA2 sáng, RA3 tắt)

1.1.5 Điều chỉnh ánh sáng

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 21/50

Bắt đầu

PIC đọc ánh sáng từ cảm


biến(Lcb) và gửi lên ESP

PIC đọc thời gian thực


T

N
8H<T<18H
Y

ESP PIC tắt


Y
Độ ẩm từ gửi kí đèn và
Server tự “d” kéo màn
Lmin<Lcb <Lmax
Lmin, cho che
Lmax PIC

N
N N
L<Lmin L>Lmax

Y Y
ESP gửi kí tự ESP gửi kí tự
“e” cho PIC “c” cho PIC

PIC bật đèn trồng


cây và mở màn che PIC tắt đèn và kéo màn che

Hình 3-4: Lưu đồ giải thuật điều chỉnh ánh sáng sử dụng cảm biến DHT11
Điều chỉnh độ ánh sáng sử dụng cẩm biến BH1750

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 22/50

Chân RA4 và RA5 của PIC được kết nối với 2 led lần lượt biểu trưng hệ thống đèn
Led và màn che.
Esp8266 nhận dữ liệu từ PIC và so sánh với ánh sáng Lmin , Lmax nhận được từ CSDL
Esp8266 thực hiện việc so sánh ánh sáng thu được tức thời với khoảng ánh sáng lý
tưởng
 Trong khỏang thời gian ban đêm 18h-8h hệ thống tắt đèn và mở màn che(led
chân RA5 tắt, và led chân RA5 sáng)
 Ánh sáng thích hợp để cây sinh trưởng và phát triển nằm trong khoảng
Lxmin-Lxmax Trong điều kiện thời gian ban ngày 8h-18h:
Nếu ánh sáng nằm trong khoảng Lmin-Lmax , module Wifi gửi kí tự cho PIC và PIC
thực hiện lệnh tắt đèn Led và kéo màn che.
+ Khi ánh sáng <Lmin: module Wifi gửi kí tự “e” cho PIC và PIC thực hiện lệnh tắt
đèn Led và mở màn che( led ở chân RA4 tắt, RA5 sáng)
+ Khi ánh sáng >Lmax: module Wifi gửi kí tự “c” cho PIC và PIC thực hiện lệnh bật
Led và đóng màn che( led chân RA4 sáng, RA5 tắt)

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 23/50

CHƯƠNG 1. XÂY DỰNG WEBSITE GIÁM SÁT VƯỜN CÂY IOT

Để xây dựng Website giám sát vườn cây từ xa, ngôn ngữ php được dùng để thiết kế
giao diện, sử dụng môi trường lập trình Atom. Mysql được dùng để lưu CSDL
thông tin sinh trưởng của cây trồng được kết nối lên Web và kết nối ngược xuống
PIC. Esp8266 đóng vai trò liên kết hai chiều giữa khối điều khiển PIC tại vườn cây
và khối điều khiển từ xa Website.

1.1 Thiết kế giao diện dùng ngôn ngữ PHP


1.1.1 Ngôn ngữ PHP
PHP – là từ viết tắt của "Hypertext Preprocessor", là một ngôn ngữ lập trình được
sử dụng ở phía server để tạo ra mã html trên client. PHP thường được sử dụng do có
nhiều ưu điểm như dễ viết, tốc độ truy xuất, dễ học, và được xem là một ngôn ngữ
phù hợp với đối tượng muốn tìm hiểu và học lập trình web hiện nay.
PHP thường được đi kèm với MySQL, Apache, và hệ điều hành Linux (LAMP) do
nó chạy trên môi trường Webserver và được lưu trữ dữ liệu thông qua hệ quản trị cơ
sở dữ liệu.
 Apache là một phần mềm Webserver có nhiệm vụ tiếp nhận các yêu cầu từ
trình duyệt người dùng và chuyển giao cho PHP để xử lý và gửi trả lại kết
quả cho trình duyệt.
 MySQL đóng vai trò là nơi lưu trữ và truy vấn dữ liệu tương tự như các hệ
quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server...).
 Linux là hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các
Webserver, các phiên bản được sử dụng nhiều nhất là RedHat Enterprise
Linux, Ubuntu...
Mô hình cách thức hoạt động:

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 24/50

Hình 4-1: Cách thức hoạt đông của ngôn ngữ PHP

1.1.2 Môi trường lập trình Atom


Atom là text editor mới ra và đang được đông đảo các lập trình viên trong cộng
đồng lập trình đón nhận bởi rất nhiều những tính năng đáng thử của nó.
 Open Source: được sử dụng miễn phí và người dùng còn có quyền xem và
thay đổi source code của phần mềm và tự do đóng góp vào cộng đồng bằng
việc phát triển phần mềm text editor này.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 25/50

Hình 4-2: Giao diện lập trình trên Atom

Hơn thế nữa Atom được phát triển sử dụng các ngôn ngữ web như HTML,
Javascript (NodeJS) và CSS. Các ngôn ngữ này rất dễ học và gần như hầu hết các
lập trình viên đều am hiểu về các ngôn ngữ này.
 Đa Nền Tảng: Atom có thể được cài đặt và chạy trên nhiều nền tảng hệ điều
hành khác nhau như Windows, MacOS và tất cả các distribution phổ biến
của Linux. Điều này giúp bạn yên tâm khi phải làm việc cùng một lúc với
các ngôn ngữ chạy trên các nền tảng khác nhau. Ví dụ như khi bạn phải làm
việc với cả .NET hay Java trên Windows và PHP trên Linux.
 Package Manager: Tương tự như Sublime Text, Atom hỗ trợ việc cài các gói
package để tạo thêm tính năng cho phần mềm này. Việc cài đặt và quản lý
các package được thực hiện một cách đơn giản thông qua package manager.
Giống như mã nguồn của phần mềm này, tất cả các gói package cũng đều
miễn phí và open source.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 26/50

Sau khi lập trình web dùng PHP xong phần mềm XAMPP được sử dụng để truyền
dẫn thông tin lên Server như hình 4-3.

Hình 4-3: Phần mềm truy xuất CSDL và mở server local

1.2 Cơ sở dữ liệu Mysql


Phần mềm Xampp có hỗ trợ lưu cơ sở dữ liệu nó có thể được tạo ra bằng
tay. Lưu trữ dữ liệu từ vi điều khiển, cũng như lưu trữ dữ liệu về thông số
cây trồng. Khi thực hiện chọn loại cây trồng từ Website thì mỗi loại cây
trồng ứng với một ID. ID này sẽ truyền những thông số của loại cây đó lên
giao diện Web.

Sau đây là bảng thông số sinh trưởng của một số loại cây trồng được thực
hiện trong database của Mysql.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 27/50

Bảng 4-1: Bảng thông số sinh trưởng của một số cây trồng[10]

I Name Nhiệt Nhiệt Ánh sáng(MIN) Ánh sáng(MAX) Độ ẩm


d độ(MIN)(0C) độ(MAX)( (LUX) (LUX)
0
C)
1 Hoa 21 26 2000 3000 40%
Hướng
Dương
2 Hoa 18 25 1500 3000 25%
hồng
3 Hoa 20 25 800 1000 20%
LILY
4 Phong 21 23 800 1000 25%
Lan

1.3 Esp8266 giao tiếp giữa Website và PIC


Bắt đầu khởi tạo esp wifi, PIC nhận dữ liệu từ Esp8266, nếu tín hiệu nhận
được từ esp là một mã tương ứng thì PIC sẽ setup điều kiện( nhiệt độ, độ
ẩm, ánh sáng) cho cây. Nếu nhiệt độ cao thì dùng quạt làm mát, độ ẩm thấp
thì tưới phun sương, thiếu ánh sáng thì bật đèn led. Chương trình sau đó gửi
các dữ liệu thông số về điều kiện hiện tại của cây gửi lên web.

Đoạn code trên hình 4.4 cho thấy Esp8266 giao tiếp với server với mật khẩu
Wifi được thiết lập sẳn.

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 28/50

Hình 4-4: Kết nối giữa Pic và Website bằng địa chỉ IP

CHƯƠNG 2. KẾT QUẢ THỰC HIỆN HỆ THỐNG

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 29/50

2.1 Kết quả thi công phần cứng


2.1.1 Schematic

Hình 5-1: Schematic của mạch sử dụng phần mềm Protues

2.1.2 Layout

Hình 5-2: Layout của mạch sử dụng phần mềm Protues

2.1.3 Kết quả hàn mạch

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 30/50

Hình 5-3: Mạch in mặt trước

Hình 5-4: Mạch in mặt sau

2.2 Kết quả giải thuật điều khiển tự động


Giả sử chọn cây trồng là Hoa Hướng Dương có thông số cây trồng như sau:
Id Name Nhiệt Nhiệt Ánh Ánh Độ ẩm Độ ẩm
độ(MIN độ(MAX sáng(MIN) sáng(MAX) (MIN) (MAX
) ) (LUX) (LUX) )

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 31/50

(0C) ( 0C)

1 Hoa Hướng Dương 21 26 2000 3000 50% 70%

Khi nhiệt độ của môi trường khoảng 28 0C, khoảng ánh sáng 1000 lux, độ ẩm 60%
thì PIC sẽ thực hiện lệnh bật máy lạnh và tắt máy sưởi, bật đèn trồng cây và mở
màn che, đồng thời tắt máy phun sương và máy hút ẩm. tương đương với những đèn
RA0, RA2, RA3 bật và RA1, RA4, RA5 tắt

1.12 Kết quả xây dựng Website


2.2.1 Giao diện Website

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 32/50

Hình 5-5: Giao diện Website

2.2.2 Truyền dữ liệu từ PIC lên Esp8266


Esp8266 nhận dữ liệu từ PIC thông qua Serial, ta có thể kiểm tra dữ liệu này thông
qua phần mềm hiển thị dữ liệu cổng COM nếu cổng COM nhận được dữ liệu thì esp
có nhận dữ liệu. Việc hiển thị dữ liệu thông qua hình 5-6:

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 33/50

Hình 5-6: Truyền dữ liệu từ PIC lên Esp

2.2.3 Xây dựng CSDL Mysql


Xây dựng cơ sở dữ liệu trên myphpadmin với chương trình tạo máy chủ web server.
Giao diện xây dựng cơ sở dữ liệu về thông số của các lọa cây như sau:

Hình 5-7: Cơ sở dữ liệu của cây trồng

2.2.4 Kết quả giao tiếp truyền dữ liệu giữa Website

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 34/50

Hình 5-8: Truyền dữ liệu lên Lcd và Website

CHƯƠNG 3. KẾT LUẬN VÀ HƯỚNG THỰC HIỆN

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 35/50

3.1 Kết quả thực hiện


Đồ án đã hoàn thành các nội dung chính gồm: Sử dụng được cảm biến nhiệt độ, độ
ẩm, ánh sáng để điều chỉnh phù hợp với từng loại cây. Sử dụng LCD để hiển thị
những giá trị của cảm biến cũng như việc chăm sóc cây khi điều kiện cây trồng
không phù hợp như khi cây thiếu độ ẩm có thể tưới thêm nước, thiếu ánh sáng có
thể bật đèn led để thêm ánh sáng cho cây.
 Xây dựng CSDL của cây trồng với nhiều loại cây khác nhau, CSDL được lưu
trong mysql và có thể truy xuất tại giao diện Web.
 Theo dõi từ xa hệ thống trồng cây thông qua Webserver vì những thông số
mà PIC nhận được từ cảm biến đã được xử lý và đẩy lên Website. Ngoài ra
cá nhân có thể tự thay đổi các thông số của cơ sở dữ liệu theo mong muốn.
Tuy nhiên đồ án còn một số hạn chế về độ trễ về thời gian của dữ liệu từ PIC gửi
lên trên Webserver khoảng 30s-80s. Tuy vậy, trong ứng dụng chăm sóc cây thì độ
trể này là chấp nhận được.

3.2 Hướng phát triển


Trong tương lai hệ thống có thể được áp dụng phát triển với quy mô lớn hơn, những
hộ gia đình nhỏ có thể trồng cây ở nhiều nơi khác nhau, ứng dụng web có thể thực
hiện việc trồng cây ở nhiều nơi như ban công nhà bếp hay ở trong phòng khách để
chăm sóc cây kiểng.
Ngoài ra nếu khắc phục được nhược điểm về độ trễ thời gian truy xuất dữ liệu thì có
thể trồng được những giống cây có điều kiện sinh trưởng phức tạp.

TÀI LIỆU THAM KHẢO

[1] Nerokas, https://store.nerokas.co.ke/, truy cập ngày 10/1/2017


[2] Đientu360, https://dientu360.com/cam-bien-cuong-do-anh-sang-bh1750, truy
cập ngày 10/1/2017

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 36/50

[3] Microcontrollerslab, http://microcontrollerslab.com/pic16f877a-introduction-


features/, truy cập ngày 10/1/2017
[4] Giáo trình Vi xử lý 2 tác giả Nguyễn Đình Phú đại học Sư Phạm Kỹ Thuật
TPHCM, năm xuất bản 2013
[5] Thietkemachdien, http://thietkemachdien.com/product/esp8266-v7/, truy cập
ngày 8/1/2017

[6] Zoetrope, http://zoetrope.io/, truy cập ngày 10/1/2017


[7] Linhkien888, https://linhkien888.vn/, truy cập ngày 10/1/2017
[8] Arduino, http://arduino.vn/, truy cập ngày 10/1/2017
[9] Tdegypt, https://www.tdegypt.com/, truy cập ngày 9/1/2017
[10] Cayvietnam, https://cayvietnam.vn/, truy cập ngày 10/1/2017

PHỤ LỤC A

Code trên PIC 16F877A


#include <16F877A.h>
#device *= 16

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 37/50

#include <lcd.h>
#include <DHT11.H>
#include <BH1750.c>
#include <DS1307.H>
//#fuses PROTECT, NOWDT, BROWNOUT, NOWRT //INTRC_IO,
//#fuses NODEBUG, PUT,CPD // FCMEN, NOMCLR, NOIESO,
#fuses hs, noput, nowdt, noprotect, nodebug, nobrownout, nolvp, nocpd, nowrt
#use delay(clock = 20M)
#use rs232(uart, baud = 115200, parity = N, bits = 8, stop = 1, timeout = 10)

float nhiet_do, do_am;

unsigned int8 c;

UNSIGNED long lux = 0;


UNSIGNED char* pTimeArray; //ngat ngoai du lieu
VOID setup()
{

setup_comparator(NC_NC_NC_NC);
setup_timer_0(0 | 0 | 0);
setup_timer_1(T1_disabled);
setup_timer_2(T2_disabled, 255, 1);
setup_CCP1(CCP_off);
set_timer0(0);
set_timer1(0);
set_timer2(0);
BH1750_init();

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 38/50

lcd_init();
lcd_putc("\f");
lcd_gotoxy(1, 1);
lcd_putc("H - T - LX");
delay_ms(2000);

lcd_putc('\f');
}
int getTempHumid(float& temp, float& humid)
{
unsigned int8 t0, t1, h0, h1;
if (DHT_GetTemHumi(t0, t1, h0, h1)) {
temp = t0 + t1 / 100.0;
humid = h0 + h1 / 100.0;
return 1;
}
else
return 0;
}

void print2LCD(float temp, UNSIGNED long lux, float humid,pTimeArray[2],


pTimeArray[1], pTimeArray[0])
{
lcd_gotoxy(1, 1);
printf(lcd_putc, "T:%f", temp);
lcd_putc(223);
printf(lcd_putc, " L:%lu", lux);
lcd_gotoxy(1, 2);

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 39/50

printf(lcd_putc, "H:%f", humid);


printf(lcd_putc, " %02d:%02d:%02d", pTimeArray[2], pTimeArray[1],
pTimeArray[0]);
}

void printAndCheckTime()
{
pTimeArray = Get_DS1307_RTC_Time();
// lcd_gotoxy (2, 2) ;

SWITCH(pTimeArray[3])
{
CASE AM_Time : printf(lcd_putc, "AM");
break;
CASE PM_Time : printf(lcd_putc, "PM");
break;
DEFAULT:
lcd_putc('H');
break;
}

//pRTCArray[2] & 0x40 == 2;///what is this?

///////////////////////////////////////////////////////////////////////
// Set_DS1307_RTC_Time (TwentyFourHoursMode, 9, 17, 59); // dung gio tuoi
cay

if ((pTimeArray[2] == 10 && pTimeArray[1] == 26 && pTimeArray[0] == 55)

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 40/50

|| (pTimeArray[2] == 22 && pTimeArray[1] == 25 && pTimeArray[0] == 0))


{
output_high(pin_b2); // bat may tuoi nuoc
delay_ms(5000);
output_low(pin_b2); //tat may tuoi nuoc
}
}

void checkCommand()
{
if (KBHIT() == 0)
return;
c = getc();
if (8 < pTimeArray[2] && pTimeArray[2] < 17) {

IF(c == 'c') // x < lux < y


{
output_low(pin_b1); //tat den
output_high(pin_b2); //mo man che
}

IF(c == 'd') // lux < x


{
output_high(pin_b1); //bat den
output_high(pin_b2); //mo man che
}

IF(c == 'e') // lux > y


{

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 41/50

output_low(pin_b1); //tat den


output_low(pin_b2); //keo man che
}
}

////////////////////////////////////////////////////////////////////////
IF(c == 'f') // x < t < y
{

output_low(pin_b1); //tat may suoi


output_low(pin_b2); //tat may lanh
}

IF(c == 'g') // t < x


{
output_high(pin_b1); //bat may suoi
output_low(pin_b2); //tat may lanh
//printf(" ban dang in chu g");
}

IF(c == 'h') //t > y


{
output_low(pin_b1); //tat may suoi
output_high(pin_b2); //bat may lanh
// printf(" ban dang in chu h");
}

////////////////////////////////////////////////////////////////////////
IF(c == 'j') // x < H < y

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 42/50

output_low(pin_b1); //tat may phun suong


output_low(pin_b2); //tat may hut am
}

IF(c == 'k') // H < x


{
output_high(pin_b1); //bat may phun suong
output_low(pin_b2); //tat may hut am
}

IF(c == 'l') // H > y


{
output_low(pin_b1); //tat may phun suong
output_high(pin_b2); //bat may hut am
}
}

int delayCount = 0;
void loop()
{
if(delayCount == 0){
if(getTempHumid(nhiet_do, do_am))
{

lux = get_lux_value(cont_H_res_mode1, 180);

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 43/50

print2LCD(nhiet_do, lux, do_am,pTimeArray[2], pTimeArray[1],


pTimeArray[0]);

printf("\n> %f", nhiet_do);


printf(" %lu", lux);
printf(" %f\n", do_am);
}
}
if (delayCount%10 == 0)
// printAndCheckTime();
checkCommand();
delayCount = (delayCount+1)%50;
delay_ms(100);

VOID main()
{

setup();
// read_t_h_l () ;
while (true) {
loop();
}
}
 Code Web

<?php

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 44/50

$CONTENT->exports["js.ui.iot.main"] = function(){ ?>


<script type="text/javascript">
/*global ui*/

function isFloat(n) {
return !isNaN(parseFloat(n));
}

function isInt(n) {
return !isNaN(parseInt(n, 10));

var _ = ui.dom.createWrapper;
var CONTENT = {};

var MODAL = function(v, content) {


var root = _('div').clazz('iot-modal');
root.child(content.getView());

v.close = function() {
if (root.element.parentElement)
root.element.parentElement.removeChild(root.element);
};

content.closeParent = function() {
v.close();
results[i].text = results[i].name;
}

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 45/50

var treeListObj = new ui.DomObj(ui.iot.PARAM, {


name: "tree",
label: "Chọn loại cây",
items: results
});

root.child(treeListObj.getView());
var content = _('div');
root.child(content);
content.removeAllChild();
content.child(createEnvTable(results[0]));
treeListObj.setListener(function(item) {
content.removeAllChild();
content.child(createEnvTable(item));
selectedItem = item;
});
}
var tools = _('div').style("padding:10px 20px;");
root.child(tools);
var buttonAdd = _("div").textNode("Thêm")
.style("width:60px;line-height:30px;margin:0 30px;").clazz("button-
black-gray").click(function() {
var onComplete = function(res) {
var req = "apis/addtree.php?id=" + res.id + "&name=" + res.name
+
"&temp_min=" + res.temp_min + "&temp_max=" +
res.temp_max +
"&light_min=" + res.light_min + "&light_max=" +
res.light_max +

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 46/50

"&humid_min=" + res.humid_min + "&humid_max=" +


res.humid_max;
// console.log(req);
JsonHttpRequest(req,
function(response) {
v.refresh();
if (response.status != "OK") {
var error = new ui.DomObj(ERRORMODAL, "Không thể
truy cập cơ sở dữ liệu");
var modalerror = new ui.DomObj(MODAL, error);
ui.dom.wrap('page-wrapper').child(modalerror.getView());
}
else {
v.refresh();
var ss = new ui.DomObj(SUCCESSMODAL, "Thêm " +
res.name + " thành công");
var modalss = new ui.DomObj(MODAL, ss);
ui.dom.wrap('page-wrapper').child(modalss.getView());
}
});
};
var modify = new ui.DomObj(MODIFYTREE, undefined,
onComplete);
var modal = new ui.DomObj(MODAL, modify);
root.child(modal.getView());
});
tools.child(buttonAdd);

var buttonEdit = _("div").textNode("Sửa")

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 47/50

.style("width:60px;line-height:30px;margin:0 30px;").clazz("button-
black-gray").click(function() {
var onComplete = function(res) {
var req = "apis/edittree.php?id=" + res.id + "&name=" + res.name
+
"&temp_min=" + res.temp_min + "&temp_max=" +
res.temp_max +
"&light_min=" + res.light_min + "&light_max=" +
res.light_max +
"&humid_min=" + res.humid_min + "&humid_max=" +
res.humid_max;
// console.log(req);
JsonHttpRequest(req,
function(response) {
v.refresh();
if (response.status != "OK") {
var error = new ui.DomObj(ERRORMODAL, "Không thể
truy cập cơ sở dữ liệu");
var modalerror = new ui.DomObj(MODAL, error);
ui.dom.wrap('page-wrapper').child(modalerror.getView());
}
else {
v.refresh();
var ss = new ui.DomObj(SUCCESSMODAL, "Sửa " +
res.name + " thành công");
var modalss = new ui.DomObj(MODAL, ss);
ui.dom.wrap('page-wrapper').child(modalss.getView());
}
});

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 48/50

};
var modify = new ui.DomObj(MODIFYTREE, selectedItem,
onComplete);
var modal = new ui.DomObj(MODAL, modify);
root.child(modal.getView());
var req = 'apis/editdevice.php?id=' + res.id + '&name=' +
res.name + "&treeid=" + res.treeid;
JsonHttpRequest(req, function(response) {
console.log(response);
if (response.status != "OK") {
var error = new ui.DomObj(ERRORMODAL, "Không thể
truy cập cơ sở dữ liệu");
var modalerror = new ui.DomObj(MODAL, error);
ui.dom.wrap('page-wrapper').child(modalerror.getView());
}
else {
v.refresh();
var ss = new ui.DomObj(SUCCESSMODAL, "Sửa " +
res.name + " thành công");
var modalss = new ui.DomObj(MODAL, ss);
ui.dom.wrap('page-wrapper').child(modalss.getView());
}
});
console.log(req);
};
var modify = new ui.DomObj(MODIFYDEVICE, selectedItem,
onComplete);
var modal = new ui.DomObj(MODAL, modify);
root.child(modal.getView());

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT
ĐỒ ÁN TỐT NGHIỆP
Trang 49/50

}
else {

var MAIN = function(v) {


//todo
CONTENT.device_infor = new ui.DomObj(DEVICE_INFO);
CONTENT.tree_infor = new ui.DomObj(TREE_INFO);
var root = _('div');
root.child(CONTENT.tree_infor.getView());
root.child(_('div').style('height:0.7em;').textNode(" "));
root.child(CONTENT.device_infor.getView());
v.getView = function() {
return root;
};
};

</script>
<?php
}?>

Xây Dựng Mô Hình Vườn Cây Thông Minh Theo Hướng IOT

You might also like