You are on page 1of 79

LỜI MỞ ĐẦU

Từ trước tới nay nông nghiệp là một trong những lĩnh vực ít được áp dụng công nghệ nhất.
Đặc biệt là ở những quốc gia đang phát triển và chậm phát triển, nông nghiệp gần như chỉ phụ thuộc
vào kinh nghiệm của những người nông dân về đặc tính của cây trồng, về thời tiết… Chính vì vậy,
năng suất và hiệu suất canh tác gần như được để ngỏ, mang tính “may, rủi”.

Trong khi đó, trước những thách thức về biến đổi khí hậu, gia tăng dân số nhanh chóng, vấn
đề đảm bảo đủ lương thực là một trong những thách thức mang tính toàn cầu. Cộng thêm nhu cầu tự
trồng, tự chăm sóc đảm bảo có thực phẩm sạch đang là xu hướng của cư dân thành thị hay các khu đô
thị. Ngành nông nghiệp phải tìm kiếm những phương thức tốt hơn để gia tăng hiệu quả sản xuất. Cách
duy nhất chính là áp dụng công nghệ mới vào hoạt động sản xuất, canh tác.

Do đó là một sinh viên ngành Điện tử-Viễn thông, cần nắm bắt được sự phát triển không ngừng
của khoa học - kĩ thuật, những tiến bộ công nghệ và những ý tưởng mới lạ để có thể ứng dụng vào
cuộc sống hiệu quả hơn, bên cạnh đó sâu xa hơn là thúc đẩy sự phát triển của nền nông nghiệp nước
nhà nói chung và nông nghiệp tiểu canh hộ gia đình, khu đô thị nói riêng, nắm bắt và đi cùng với xu
thế phát triển đó, em đã chọn đề tài “Xây dựng mô hình hệ thống tự động chăm sóc cây trồng tưới tiêu
thông minh, giám sát điệu kiện môi trường cây trồng từ xa và điều khiển thông qua smart phone” để
làm đề tài cho đồ án tốt nghiệp đại học của sinh viên.

Bình Định, tháng 1 năm 2019

Sinh viên thực hiện


LỜI CẢM ƠN

Qua những năm tháng học tập và rèn luyện tại Đại học Quy Nhơn, nhận được sự chỉ bảo và
giảng dạy nhiệt tình của quý thầy cô khoa Kỹ Thuật-Công nghệ, khoa mà em đã gắn bó suốt 4,5 năm
qua, đã truyền đạt cho em những kiến thức vô cùng quý báu về lý thuyết và thực tiễn trong suốt thời
gian học ở giảng đường. Cùng với sự nỗ lực của bản thân và với sự tìm tòi nghiên cứu tài liệu hay là
có sự giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác đã góp phần giúp em hoàn
thành đồ án tốt nghiệp đại học này.

Từ những kết quả đạt được này, em xin chân thành cảm ơn: Thầy giảng viên hướng dẫn thạc
sĩ Nguyễn Đức Thiện đã hướng dẫn và góp ý kiến quý báu giúp em hoàn thành đồ án tốt nghiệp đại
học này và cùng với đó là các thầy, cô khoa Kỹ Thuật-Công nghệ, Đại học Quy Nhơn đã nhiệt tình
giảng dạy và truyền đạt những kiến thức quý báu, quan trọng và cần thiết cho em trong suốt quá trình
học tập tại trường.

Do kiến thức còn thiếu xót, hạn hẹp nên không tránh khỏi những sai sót trong cách xây dựng
và thực hiện đồ án tốt nghiệp đại học này. Em rất mong nhận được sự thông cảm và đóng góp ý kiến
của quý thầy cô để em tiếp thu thêm để làm cho đồ án tốt nghiệp đại học của em đạt được kết quả tốt
hơn nữa. Em xin chân thành cảm ơn!
NHẬN XÉT

(Của giảng viên hướng dẫn)

…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….

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


Viết tắt Đầy đủ Ý nghĩa
IOT Internet of thing Internet vạn vật

SoC System on chip Hệ thống trên chíp


MQTT Message queuing Là một giao thức gửi
telemetry transport dạng publish/subscribe
MCU Micro controller Hệ thống vi điều khiển
unit
ARM Advance RISC Một loại cấu trúc vi xử
machine lý 32 bít và 64 bít kiểu
RISC được sử dụng rộng
rải trong các thiết kế
nhúng
CPU Central processing Bộ xử lý trung tâm
unit
LCD Liquid crystal Màn hình tinh thể lỏng
display
VGA Video graphics Chuẩn hiển thị máy tính
aray
TCP Transmitssion Giao thức kiểm soát
control protocol truyền tải
IP Internet protocol Giao thức internet
GPIO General purpose Cổng đầu vào và ra với
input output mục đích cơ bản,thực tế
nó là các chân đầu ra,
đầu vào đa chức năng
UART Universal Là một mạch tích hợp
Asychronous được sử dụng trpng việc
Receiver- truyền dẫn dữ liệu nối
Transmitter tiếp giữa máy tính và
các thiết bị ngoại vi
ADC Analog-to-digital Mạch chuyển đổi tương
converter tự sang số

CHƯƠNG 1: MỞ ĐẦU

1.1. Đặt vấn đề

Từ trước tới nay nông nghiệp là một trong những lĩnh vực ít được áp dụng công nghệ nhất.
Đặc biệt là ở những quốc gia đang phát triển và chậm phát triển, nông nghiệp gần như chỉ phụ thuộc
vào kinh nghiệm của những người nông dân về đặc tính của cây trồng, về thời tiết… Chính vì vậy,
năng suất và hiệu suất canh tác gần như được để ngỏ, mang tính “may, rủi”.

Trong khi đó, trước những thách thức về biến đổi khí hậu, gia tăng dân số nhanh chóng, vấn
đề đảm bảo đủ lương thực là một trong những thách thức mang tính toàn cầu. Ngành nông nghiệp phải
tìm kiếm những phương thức tốt hơn để gia tăng hiệu quả sản xuất. Cách duy nhất chính là áp dụng
công nghệ mới vào hoạt động sản xuất, canh tác.

Trong bối cảnh ngày nay xã hội càng lo ngại về chất lượng cũng như an toàn thực phẩm. Điều
then chốt trong việc đánh tan lo ngại này, và góp phần thúc đẩy nâng cao chất lượng sản phẩm nông
nghiệp, là việc nâng cao tính minh bạch, chuyên nghiệp, và khoa học của chuỗi sản xuất nông nghiệp.
IoT đóng vai trò lớn trong việc giúp sự minh bạch và chuyên nghiệp này trở nên đáng tin cậy hơn. Có
thể lấy vài ví dụ như việc lắp đặt thẻ cảm ứng vào tai lợn để theo dõi và thu thập dữ liệu về quá trình
chăn nuôi; hay việc quản lí điều kiện môi trường cây trồng, yếu tố dinh dưỡng trong cây trồng, quy
trình tự động hóa trong việc chăm sóc cho đến xử lý, đóng gói, bán sỉ và lẻ, giúp từng khuôn thịt khi
đến tay người dùng đều kèm theo một hồ sơ quản lý được lưu trữ đáng tin cậy giúp toàn bộ quy trình
sản xuất trở nên minh bạch hơn.

Hình 1.1: Minh họa IoT trong nông nghiêp

Chính vì vậy, người tiêu dùng sản phẩm nông nghiệp cũng nên chờ mong vào ứng dụng IoT
và việc đưa các ứng dụng IoT vào ngành nông nghiệp sẽ giúp minh chứng rõ nhất cho việc IoT đem
lại hiệu quả to lớn như thế nào. Đó chính là lý do mà nông nghiệp là lĩnh vực đang được quan tâm đầu
tư và được nhiều startup lựa chọn để gọi vốn.

1.2. Mục đích nghiên cứu

Mục đích tổng thể của nghiên cứu là: thiết kế, xây dựng mô hình vườn giám sát điều kiện môi
trường cây trồng, tự động bơm tưới thông minh, điều khiển từ xa thông qua smart phone phù hợp với
cây trồng trong nhà tại các khu đô thị hay các khu vườn quy mô vừa và nhỏ. Với các mục tiêu cụ thể:

- Tự động: hệ thống vườn điều khiển bơm tưới thông minh có chức năng tự động, giảm thiểu tối đá
sức ảnh hưởng từ sức lao động.
- Năng suất, hiệu quả: có năng suất khá cao, hiệu quả lớn, khi cây được chăm sóc theo nhu cầu của
chính cây trồng dựa trên các yếu tố của môi trường trồng như nhiệt độ, độ ẩm hay độ ẩm trong đât.

- Tiết kiệm được thời gian: Giảm thiểu tối đa công sức và thời gian chăm sóc cho con người.

- Kinh tế: Mô hình vườn thông minh được thiết kế với các bộ phận, linh kiện và công nghệ tối giản
nhất nhằm vừa có thể đáp ứng được yêu cầu và vừa tiết kiệm chi phí để làm sao cho mô hình vừa có
hiệu quả vừa không gây tốn kém kinh tế.

CHƯƠNG 2: TỔNG QUAN LÍ THUYẾT

2.1. Khái quát về IoT

2.1.1. Khái niệm

Mạng lưới vạn vật kết nối Internet hoặc là Mạng lưới thiết bị kết nối Internet viết tắt là IoT (
Internet of Things) là một kịch bản của thế giới, khi mà mỗi đồ vật, con người được cung cấp một định
danh của riêng mình, và tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy
nhất mà không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT đã
phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Nói đơn giản là
một tập hợp các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực
hiện một công việc nào đó.

Hình 2.1: Mô hình liên kết IoT

Một vật trong IoT có thể là một người với một trái tim cấy ghép; một động vật ở trang trại với
bộ chip sinh học; một chiếc xe với bộ cảm ứng tích hợp cảnh báo tài xế khi bánh xe xẹp hoặc bất kỳ
vật thể tự nhiên hay nhân tạo nào mà có thể gán được một địa chỉ IP và cung cấp khả năng truyền dữ
liệu thông qua mạng lưới. Cho đến nay, IoT là những liên kết máy-đến-máy (M2M) trong ngành sản
xuất, công nghiệp năng lượng, kỹ nghệ xăng dầu. Khả năng sản phẩm được tích hợp máy-đến-máy
thường được xem như là thông minh.

2.1.2. Xu hướng và tính chất

• Thông minh

Sự thông minh và tự động trong điều khiển thực chất không phải là một phần trong ý tưởng về
IoT. Các máy móc có thể dễ dàng nhận biết và phản hồi lại môi trường xung quanh (ambient
intelligence), chúng cũng có thể tự điều khiển bản thân (autonomous control) mà không cần đến kết
nối mạng. Tuy nhiên, trong thời gian gần đây người ta bắt đầu nghiên cứu kết hợp hai khái niệm IoT
và autonomous control lại với nhau. Tương lai của IoT có thể là một mạng lưới các thực thể thông
minh có khả năng tự tổ chức và hoạt động riêng lẻ tùy theo tình huống, môi trường, đồng thời chúng
cũng có thể liên lạc với nhau để trao đổi thông tin, dữ liệu.

Việc tích hợp trí thông minh vào IoT còn có thể giúp các thiết bị, máy móc, phần mềm thu
thập và phân tích các dấu vết điện tử của con người khi chúng ta tương tác với những thứ thông minh,
từ đó phát hiện ra các tri thứcmới liên quan tới cuộc sống, môi trường, các mối tương tác xã hội cũng
như hành vi con người.

• Kiến trúc dựa trên sự kiện

Các thực thể, máy móc trong IoT sẽ phản hồi dựa theo các sự kiện diễn ra trong lúc chúng
hoạt động theo thời gian thực. Một số nhà nghiên cứu từng nói rằng một mạng lưới các sensor chính là
một thành phần đơn giản của IoT.

• Là một hệ thống phức tạp

Trong một thế giới mở, IoT sẽ mang tính chất phức tạp bởi nó bao gồm một lượng lớn các
đường liên kết giữa những thiết bị, máy móc, dịch vụ với nhau, ngoài ra còn bởi khả năng thêm vào
các nhân tố mới.

• Kích thước

Một mạng lưới IoT có thể chứa đến 50 đến 100 nghìn tỉ đối tượng được kết nối và mạng lưới
này có thể theo dõi sự di chuyển của từng đối tượng. Một con người sống trong thành thị có thể bị bao
bọc xung quanh bởi 1000 đến 5000 đối tượng có khả năng theo dõi.

• Vấn đề không gian, thời gian

Trong IoT, vị trí địa lý chính xác của một vật nào đó là rất quan trọng. Hiện nay, Internet chủ
yếu được sử dụng để quản lý thông tin được xử lý bởi con người. Do đó những thông tin như địa điểm,
thời gian, không gian của đối tượng không mấy quan trọng bởi người xử lý thông tin có thể quyết định
các thông tin này có cần thiết hay không, và nếu cần thì họ có thể bổ sung thêm. Trong khi đó, IoT về
lý thuyết sẽ thu thập rất nhiều dữ liệu, trong đó có thể có dữ liệu thừa về địa điểm, và việc xử lý dữ
liệu đó được xem như không hiệu quả. Ngoài ra, việc xử lý một khối lượng lớn dữ liệu trong thời gian
ngắn đủ để đáp ứng cho hoạt động của các đối tượng cũng là một thách thức hiện nay.

• Luồng năng lượng mới


Hiện nay, IoT đang trải qua giai đoạn phát triển "bộc phát" và điều này xảy ra nhờ vào một
số nhân tố, trong đó gồm IPv6, 4G, chi phí, tính sẵn có của công nghệ. Gary Atkinson, Giám đốc tiếp
thị sản phẩm nhúng của ARM cho rằng, đã có nhiều thiết bị chứng tỏ rằng có thể thu thập dữ liệu và
truyền tải dữ liệu trên mạng nhưng chỉ có giá khoảng 40USD/sản phẩm. Hiện nay, chúng ta có thể
nhìn thấy các bộ vi điều khiển 32-bit nền tảng ARM có giá dưới chỉ trên dưới 1USD (chỉ ở 23.000
đồng - thời giá tháng 4/2017). Với bộ vi điều khiển này, bạn có thể làm nhiều điều trên đó. Thu thập
và truyền dữ liệu rẻ hơn nhiều: chỉ 50 xu cho một bộ vi điều khiển 32-bit của ARM.

ARM đã "nhanh chân" trong việc nhận ra rằng, ổ đĩa có xu hướng sử dụng các bộ vi điều
khiển 32-bit là giải pháp cho những người có ý định thực hiện một số quyết định của riêng họ theo một
cách tự động. Gary tin rằng, khả năng của các bộ vi điều khiển này ngày càng tăng, điều này có nghĩa
là người dùng có thể làm những điều mà trước đây là bất khả.

Trong 5 năm tiếp theo, bạn sẽ thấy ngày càng có nhiều thiết bị trên thị trường. Những thách
thức đang diễn ra là quản lý dữ liệu và chuyển sang IPv6 (IPv6 đã sẵn sàng và chạy với địa chỉ đã
được cấp phát. IPv4 đã cạn kiệt và 2011 chỉ còn lại những địa chỉ cuối cùng).

Axel Pawlik, Giám đốc Quản lý của RIPE NCC lý giải tại sao IPv6 cần thiết cho tương lai
của IoT, với IPv6 chúng ta sẽ có lượng địa chỉ phong phú và điều này sẽ mở ra khả năng gán địa chỉ
cho mỗi thiết bị (gadget) và chip. Các giải pháp sẽ dễ dàng và đơn giản hơn, rõ ràng hơn, có thể phục
hồi đến từng mục địa chỉ riêng, và phạm vi phát triển vô cùng to lớn.

Lan Pearson, nhà tương lai học với thành tích ấn tượng tại những hãng như BT, Canon và
Fujitsu cho rằng, những gì mà chúng ta thấy ở đây là chưa có tiền lệ hội tụ và phát triển nhanh chóng,
không giống như bất kỳ điều gì chúng ta từng thấy trước đó. Động lực cho việc này chính là áp lực
hướng đến công nghệ mới, để giúp chúng ta tạo ra những chiếc máy tính nhanh hơn, những ổ đĩa có
tốc độ quay nhanh hơn....

Hình 2.2: Xu hướng và tính chất

2.1.3. Ứng dụng

Theo Gartner, Inc. (một công ty nghiên cứu và tư vấn công nghệ), sẽ có gần 26 tỷ thiết bị trên
IoT vào năm 2020. ABI Research ước tính rằng hơn 30 tỷ thiết bị sẽ được kết nối không dây với "Kết
nối mọi thứ" (Internet of Everything) vào năm 2020. Theo một cuộc khảo sát và nghiên cứu gần đây
được thực hiện bởi Dự án Internet Pew Research, một phần lớn các chuyên gia công nghệ đã hưởng
ứng tham gia sử dụng Internet of Things với 83% đồng ý quan điểm cho rằng Internet / Cloud of
Things, nhúng và tính toán đeo (và các hệ thống năng động, tương ứng) sẽ có tác động rộng rãi và
mang lại lợi ích đến năm 2025. Như vậy, rõ ràng là IoT sẽ bao gồm một số lượng rất lớn các thiết bị
được kết nối với Internet.

Tích hợp với mạng Internet có nghĩa rằng thiết bị này sẽ sử dụng một địa chỉ IP như là một
định danh duy nhất. Tuy nhiên, do sự hạn chế không gian địa chỉ của IPv4 (cho phép 4,3 tỷ địa chỉ duy
nhất), các đối tượng trong IOT sẽ phải sử dụng IPv6 để phù hợp với không gian địa chỉ cực kỳ lớn cần
thiết. Các đối tượng trong IoT sẽ không chỉ có các thiết bị có khả năng cảm nhận xung quanh, mà còn
cung cấp khả năng truyền động (ví dụ, củ hoặc khóa điều khiển thông qua Internet). Ở một mức độ
lớn, tương lai của Internet of Things sẽ không thể không có sự hỗ trợ của IPv6; và do đó việc áp dụng
toàn cầu của IPv6 trong những năm tới sẽ rất quan trọng cho sự phát triển thành công của IOT trong
tương lai.

Khả năng kết nối vào mạng của thiết bị nhúng với CPU, bộ nhớ giới hạn và năng lượng bền
bỉ. IoT được ứng dụng trong hầu hết các lĩnh vực. Hệ thống như vậy có thể có nhiệm vụ thu thập
thông tin trong các thiết lập khác nhau, từ các hệ sinh thái tự nhiên cho các tòa nhà và các nhà máy, do
đó việc tìm kiếm các ứng dụng trong lĩnh vực cảm biến môi trường và quy hoạch đô thị.

Mặt khác, hệ thống IoT cũng có thể thực hiện các hành động, không chỉ cảm nhận mọi thứ
xung quanh. Hệ thống mua sắm thông minh, ví dụ, có thể theo dõi thói quen người dùng cần ở một
cửa hàng bằng cách theo dõi điện thoại di động của họ. Người dùng sau đó có thể được cung cấp các
cập nhật trên sản phẩm yêu thích của họ,hoặc thậm chí là vị trí các mục mà họ cần, hay tủ lạnh của họ
cần. Tất cả đã tự động chuyển vào điện thoại, ví dụ bổ sung các cảm biến trong các ứng dụng phản
ứng lại với nhiệt độ môi trường, điện và quản lý năng lượng,cũng như hỗ trợ hành trình của các hệ
thống giao thông vận tải.

Tuy nhiên, các ứng dụng của IoT không chỉ giới hạn trong lĩnh vực này. Tường hợp sử dụng
chuyên ngành khác của IoT cũng có thể tồn tại. Một cái nhìn tổng quan về một số lĩnh vực nổi bật nhất
được cung cấp ở đây. Dựa trên các miền ứng dụng, sản phẩm IoT có thể chia thành năm loại khác
nhau: thiết bị đeo thông minh, nhà thông minh, thành phố thông minh, môi trường thông minh, và
doanh nghiệp thông minh. Các sản phẩm và giải pháp IoT trong mỗi thị trường có đặc điểm khác
nhau.
Hình 2.3: Ứng dụng của IoT

IoT có ứng dụng rộng vô cùng, có thể kể ra một số thứ như sau:

- Quản lý chất thải

- Quản lý và lập kế hoạch quản lý đô thị

- Quản lý môi trường

- Phản hồi trong các tinh huống khẩn cấp

- Mua sắm thông minh

- Quản lý các thiết bị cá nhân

- Đồng hồ đo thông minh

- Tự động hóa ngôi nhà

Một trong những vấn đề với IoT đó là khả năng tạo ra một ứng dụng IoT nhanh chóng. Để
khắc phục, hiện nay nhiều hãng, công ty, tổ chức trên thế giới đang nghiên cứu các nền tảng giúp xây
dựng nhanh ứng dụng dành cho IoT. Đại học British Columbia ở Canada hiện đang tập trung vào một
bộ toolkit cho phép phát triển phần mềm IoT chỉ bằng các công nghệ/tiêu chuẩn Web cũng như giao
thức phổ biến. Công ty như ioBridge thì cung cấp giải pháp kết nối và điều khiển hầu như bất kì thiết
bị nào có khả năng kết nối Internet, kể cả đèn bàn, quạt máy...

Broadcom mới đây cũng đã giới thiệu hai con chip có mức tiêu thụ điện thấp và giá rẻ dành
cho các thiết bị "Internet of things". SoC đầu tiên, BCM4390, được tích hợp một bộ thu phát sóng Wi-
Fi 802.11 b/g/n hiệu suất cao để có thể dùng với các vi điều khiển 8 hoặc 16-bit. Broadcom nói rằng
sản phẩm này có thể dùng trong các nồi nấu ăn thông minh, bóng đèn, hệ thống an ninh cũng như các
thiết bị gia dụng có khả năng điều khiển và quản lý từ xa. SoC thứ hai, BCM20732, thì được tích hợp
bộ thu phát tín hiệu Bluetooth và nhắm đến những máy móc như bộ đo nhịp tim, bộ đo bước chạy,
thiết bị cảnh báo khi có vật gì đến gần hoặc ổ khóa cửa thông minh. Broadcom cũng đã đóng góp các
tập lệnh phần mềm hỗ trợ cho cả công nghệ Bluetooth thường và Bluetooth Smart vào dự án Android
Open Source (AOSP). Hiện bản mẫu của hai con chip nàyđang được giao đến đối tác phần cứng và dự
kiến sẽ được sản xuất đại trà trong quý 4 năm nay.

• Quản lý hạ tầng

Giám sát và kiểm soát các hoạt động của cơ sở hạ tầng đô thị và nông thôn như cầu, đường
ray tàu hỏa, trên và trang trại là một ứng dụng quan trọng của IoT. Các cơ sở hạ tầng IoT có thể được
sử dụng để theo dõi bất kỳ sự kiện hoặc những thay đổi trong điều kiện cơ cấu mà có thể thỏa hiệp an
toàn và làm tăng nguy cơ. Nó cũng có thể được sử dụng để lập kế hoạch hoạt động sửa chữa và bảo trì
một cách hiệu quả, bằng cách phối hợp các nhiệm vụ giữa các nhà cung cấp dịch vụ khác nhau và
người sử dụng của các cơ sở này. Thiết bị IoT cũng có thể được sử dụng để kiểm soát cơ sở hạ tầng
quan trọng như cầu để cung cấp truy cập vào tàu. Cách sử dụng của các thiết bị iốt để theo dõi và hạ
tầng hoạt động có khả năng cải thiện quản lý sự cố và phối hợp ứng phó khẩn cấp, và chất lượng dịch
vụ, tăng lần và giảm chi phí hoạt động trong tất cả các lĩnh vực cơ sở hạ tầng liên quan. Ngay cả các
lĩnh vực như quản lý chất thải đứng được hưởng lợi từ tự động hóa và tối ưu hóa có thể được đưa vào
bởi IoT.

• Y tế

Thiết bị IoT có thể được sử dụng để cho phép theo dõi sức khỏe từ xa và hệ thống thông báo
khẩn cấp. Các thiết bị theo dõi sức khỏe có thể dao động từ huyết áp và nhịp tim màn với các thiết bị
tiên tiến có khả năng giám sát cấy ghép đặc biệt, chẳng hạn như máy điều hòa nhịp hoặc trợ thính tiên
tiến, cảm biến đặc biệt cũng có thể được trang bị trong không gian sống để theo dõi sức khỏe và thịnh
vượng chung là người già, trong khi cũng bảo đảm xử lý thích hợp đang được quản trị và hỗ trợ người
dân lấy lại mất tính di động thông qua điều trị là tốt. Thiết bị tiêu dùng khác để khuyến khích lối sống
lành mạnh, chẳng hạn như, quy mô kết nối hoặc máy theo dõi tim mạch, cũng là một khả năng của
IoT.

• Xây dựng và tự động hóa nhà

Thiết bị IoT có thể được sử dụng để giám sát và kiểm soát các hệ thống cơ khí, điện và điện tử
được sử dụng trong nhiều loại hình tòa nhà (ví dụ, công cộng và tư nhân, công nghiệp, các tổ chức,
hoặc nhà ở). Hệ thống tự động hóa, như các tòa nhà tự động hóa hệ thống, thường được sử dụng để
điều khiển chiếu sáng, sưởi ấm, thông gió, điều hòa không khí, thiết bị, hệ thống thông tin liên lạc, giải
trí và các thiết bị an ninh gia đình để nâng cao sự tiện lợi, thoải mái, hiệu quả năng lượng và an ninh.

• Giao thông

Các sản phẩm IoT có thể hỗ trợ trong việc tích hợp các thông tin liên lạc, kiểm soát và xử lý
thông tin qua nhiều hệ thống giao thông vận tải. Ứng dụng của IoT mở rộng đến tất cả các khía cạnh
của hệ thống giao thông, tức là xe, cơ sở hạ tầng, và người lái xe hoặc sử dụng. Năng động, tương tác
giữa các thành phần của một hệ thống giao thông vận tải cho phép truyền thông giữa nội và xe cộ, điều
khiển giao thông thông minh, bãi đậu xe thông minh, hệ thống thu phí điện tử, quản lý đội xe, điều
khiển xe, an toàn và hỗ trợ đường bộ.

Còn rất nhiều các ứng dụng từ nhỏ đến lớn khác mà IoT có thể tạo nên và đề tài cũng đang
ứng dụng IoT vào nghiên cứu và xây dựng mô hình IoT trong nông nghiệp.

2.1.4. Một số tác nhân cản trở sựu phát triển của IoT

• Chưa có một 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ụ, bạn có thể đi từ Việt Nam đến Mỹ, nhưng không đảm bảo rằng bạn có thể nói chuyện 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 bạn đã í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 biê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 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 chuyện đượ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 cả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 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 chuyện đượ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 được với nhau đó 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.

2.2. Kit nodeMCU/esp8266

2.2.1. Lịch sử hình thành và khái niệm

NodeMCU được tạo ra ngay sau khi ESP8266 ra mắt. Vào ngày 30 tháng 12 năm 2013,
Espressif Systems đã bắt đầu sản xuất ESP8266. ESP8266 là một Wi-Fi SoC (System on Chip) tích
hợp với một lõi Tensilica Xtensa LX106, được sử dụng rộng rãi trong các ứng dụng IoT . NodeMCU
bắt đầu vào ngày 13 tháng 10 năm 2014, khi cam kết tệp đầu tiên của phần mềm nodemcu đến
GitHub. Hai tháng sau, dự án mở rộng bao gồm một nền tảng phần cứng mở khi nhà phát triển Huang
R đã tạo ra tệp gerber của một bảng ESP8266, đặt tên devkit v0.9. Cuối tháng đó, Tuan PM đã chuyển
thư viện khách hàng MQTT (MQ Telemetry Transport or Message Queue Telemetry Transport) từ
Contiki sang nền tảng SoC của ESP8266 và cam kết dự án NodeMCU, sau đó NodeMCU đã có thể hỗ
trợ giao thức IQ của MQTT, sử dụng Lua để truy cập vào môi giới MQTT. Một bản cập nhật quan
trọng được thực hiện vào ngày 30 Tháng Một 2015, khi Devsaurus chuyển các u8glib cho dự án
NodeMCU, cho phép NodeMCU dễ dàng kết nối LCD, màn hình, màn hình OLED, thậm chí màn
hình VGA.

Vào mùa hè năm 2015, những người sáng tạo đã từ bỏ dự án phần mềm và một nhóm các nhà
đóng góp độc lập nhưng đã dành riêng. Đến mùa hè năm 2016, NodeMCU bao gồm hơn 40 mô-đun
khác nhau. Do hạn chế nguồn lực, người dùng cần chọn các mô đun có liên quan đến dự án của họ và
xây dựng một phần mềm phù hợp với nhu cầu.

Như vậy:

ESP8266 được định nghĩa là một chip Wi-Fi chi phí thấp với đầy đủ giao thức TCP / IP và vi
điều khiển (MCU).
Hình 2.4: ESP8266

NodeMCU là một nền tảng IoT nguồn mở . Nó bao gồm phần mềm chạy trên ESP5266 Wi-Fi
SoC của Espressif Systems và phần cứng dựa trên mô đun ESP-12. Thuật ngữ "NodeMCU" mặc định
đề cập đến là bộ công cụ phát triển.

Hình 2.5: kit nodeMCU

2.2.2. Tổng quan về nodeMCU/esp8266

NodeMCU/ESP8266 cung cấp một giải pháp mạng Wi-Fi hoàn chỉnh và khép kín, cho phép
nó lưu trữ các ứng dụng hoặc để offload tất cả các chức năng mạng Wi-Fi từ ứng dụng của tiến trình
khác.

Khi NodeMCU/ESP8266 lưu trữ ứng dụng, và khi nó là bộ xử lý ứng dụng duy nhất trong
thiết bị thì nó có thể khởi động trực tiếp từ một đèn flash bên ngoài. Thiết bị đã tích hợp bộ nhớ cache
để cải thiện hiệu suất của hệ thống trong các ứng dụng như vậy, và để giảm thiểu yêu cầu bộ nhớ.

Ngoài ra, thiết bị phục vụ như một bộ chuyển đổi Wi-Fi, truy cập internet không dây có thể
được thêm vào bất kỳ thiết kế vi điều khiển nào dựa trên với kết nối đơn giản thông qua giao diện
UART hoặc CPU giao diện cầu AHB.

ESP8266 trên board xử lý và lưu trữ các khả năng cho phép nó được tích hợp với các cảm
biến và các thiết bị ứng dụng cụ thể thông qua các GPIO của nó với sự phát triển tối thiểu ở phía trước
và tải tối thiểu trong thời gian chạy. Với mức độ tích hợp chip cao, bao gồm: chuyển đổi ăng ten
balun, chuyển đổi quản lý năng lượng, nó đòi hỏi các mạch bên ngoài tối thiểu và toàn bộ giải pháp
bao gồm mô đun đầu cuối, được thiết kế với diện tích PCB tối thiểu.
Các tính năng cung cấp hệ thống tinh vi bao gồm: chuyển đổi bối cảnh nhanh / ngủ thành năng
lượng VoIP, thích ứng cho hoạt động năng lượng thấp, xử lý tín hiệu trước, và kích hoạt tính năng hủy
bỏ và radio co-existence cho các cellular, Bluetooth, DDR, LVDS, LCD.

• Công nghệ năng lượng thấp

ESP8266 được thiết kế cho điện thoại di động, thiết bị điện tử đeo và ứng dụng Internet of
Things với mục đích đạt được tiêu thụ điện năng thấp nhất với sự kết hợp của một số kỹ thuật độc
quyền tiên tiến. Kiến trúc tiết kiệm năng lượng hoạt động ở 3 chế độ: chế độ hoạt động, chế độ ngủ và
chế độ ngủ sâu.

Bằng cách sử dụng các kỹ thuật quản lý năng lượng tiên tiến và logic để tắt chức năng không
yêu cầu và để điều khiển chuyển đổi giữa chế độ ngủ và hoạt động, ESP8266 tiêu thụ ít hơn 12uA ở
chế độ ngủ và ít hơn 1.0mW (DTIM = 3) hoặc nhỏ hơn 0.5mW (DTIM = 10) ở kết nối với điểm truy
cập.

Khi ở chế độ ngủ, chỉ có đồng hồ hiệu chỉnh thời gian thực và cơ quan giám sát vẫn hoạt
động. Thời gian thực đồng hồ có thể được lập trình để đánh thức ESP8266 ở bất kỳ khoảng thời gian
yêu cầu nào.

ESP8266 có thể được lập trình để đánh thức khi phát hiện một điều kiện cụ thể.

Tính năng đánh thức tối thiểu này của ESP8266 có thể được sử dụng bởi thiết bị di động
SOCs, cho phép vẫn ở chế độ chờ nguồn năng lượng thấp cho đến khi cần Wi-Fi.

Để đáp ứng nhu cầu điện năng của thiết bị điện tử di động và đeo được, ESP8266 có thể được
lập trình để giảm công suất ra của PA để phù hợp với các yêu cầu ứng dụng khác nhau.

2.2.3. Các loại modules ESP

ESP- chúng được gọi chung là "ESP-xx modules". Để tạo thành một hệ thống phát triển khả
thi chúng đòi hỏi các thành phần bổ sung, đặc biệt là bộ tiếp hợp TTL-USB (đôi khi được gọi là cầu
nối USB-to-UART) và nguồn điện 3,3 volt bên ngoài. Các nhà phát triển Novice ESP-8266 khuyến
khích xem xét các bảng phát triển Wi-Fi lớn hơn ESP8266 như NodeMCU bao gồm cầu USB-
toUART và một kết nối Micro-USB cùng với bộ điều chỉnh công suất 3,3 volt đã được tích hợp sẵn
trong bảng. Khi phát triển dự án hoàn thành, chúng ta có thể không cần các thành phần này và có thể
xem xét sử dụng các mô-đun ESP-xx rẻ hơn như là một sức mạnh thấp hơn.
Bảng 2.1: Các loại module ESP

Name Ative Pitch Form LEDs Antenna Shielded Dimensions Notes


pins factor (mm)

ESP- 6 0.1” 2x4 DIL YES PCB No 14.3 x 24.8


01 trace

ESP- 6 0.1” 2x4 DIL No U.FL No 14.2 × 14.2


02 castellated connector

ESP- 10 2 2x4 DIL No Ceramic No 17.3 × 12.1


03 mm castellated

ESP- 10 2 2x4 DIL No None No 14.7 × 12.1


04 mm castellated

ESP- 3 0.1” 1x5 SIL No U.FL No 14.2 × 14.2


05 connector

ESP- 11 Misc 4x3 dice No None Yes 14.2 × 14.7 Not FCC
06 approved

ESP- 14 2 2x8 DIL Yes Ceramic Yes 20.0 × 16.0 Not FCC
07 mm castellated + U.FL approved
connector

ESP- 10 2 2x7 DIL No None Yes 17.0 × 16.0 Not FCC


08 mm castellated approved

ESP- 10 Misc 4x3 dice No None No 10.0 × 10.0


09

ESP- 3 2 1x5 DIL No None No 14.2 × 10.0


10 mm? castellated

ESP- 6 0.05” 1x8 No Ceramic Yes 17.3 × 12.1


11 pinhole

ESP- 14 2 2x8 DIL Yes PCB Yes 24.0 × 16.0 FCC and CE
12 mm castellated trace approved[14]

ESP- 20 2 2x8 DIL Yes PCB Yes 24.0 × 16.0 4 MiB Flash
12E mm castellated trace

ESP- 20 2 2x8 DIL Yes PCB Yes 24.0 × 16.0 FCC and CE
12F mm castellated trace approved.
Improved
antenna
performance.
4 MiB Flash

ESP- 16 1.5 2x9 DIL No PCB Yes W18.0 × Marked as


13 mm castellated trace L20.0 ″FCC″.
Shielded
module is
placed
sideways, as
compared to
the ESP-12
modules.

ESP- 22 2 2x6 DIL No PCB Yes 24.3 × 16.2


14 mm castellated trace
+6

2.4. Cấu tạo và nguyên lí làm việc của nodeMCU/esp8266

• Sơ đồ chân của nodeMCU


Hình 2.6: Sơ đồ chân của nodeMCU

• Sơ đồ nguyên lí các khối trong nodeMCU:

- ESP 12-CORE

Hình 2.7: Sơ đồ nguyên lí khối ESP 12-CORE trong nodeMCU

- USB TO UART
Hình 2.8: Sơ đồ nguyên lí khối USB TO UART trong nodeMCU

- POWER

Hình 2.9: Sơ đồ nguyên lí khối POWER trong nodeMCU

- IO CONN

Hình 2.10: Sơ đồ nguyên lí khối IO CONN trong nodeMCU


- KEY

Hình 2.11: Sơ đồ nguyên lí khối KEY trong nodeMCU

2.2.5. Ứng dụng

- Nguồn nuôi thông minh

- Ngôi nhà tự động hóa

- mạng lưới mạng

- Công nghiệp điều khiển không dây

- IP cameras

- Mạng cảm biến

- Thiết bị điện tử mang theo

- Thiết bị nhận biết wifi

- Bảo mật thẻ ID

2.3. Cảm biến

2.3.1. Tổng quan về cảm biến

a. Khái niệm cơ bản về các bộ cảm biến

Cảm biến – sensor: xuất phát từ chữ “ sense” nghĩa là giác quan – do đó nó như các giác quan
trong cơ thể con người. Nhờ cảm biến mà mạch điện, hệ thống điện có thể thu nhân thông tin từ bên
ngoài. Từ đó, hệ thống máy móc, điện tử tự động mới có thể tự động hiển thị thông tin về đại lượng
đang cảm nhận hay điều khiển quá trình định trước có khả năng thay đổi một cách uyển chuyển theo
môi trường hoạt động.

Để dễ hiểu có thể so sánh cảm nhận của cảm biến qua 5 giác quan của người như sau:
5 giác quan Thay đổi môi trường Thiết bị cảm biến

Thị giác Ánh sáng, hình dạng, kích Cảm biến thu hình, cảm biến
thước, vị trí xa gần, màu sắc. quang.

Áp suất, nhiệt độ, cơn đau, Nhiệt trở, cảm biến tiệm cận,
Xúc giác tiếp xúc, tiệm cận, ẩm, khô. cảm biến độ rung động.

Ngọt, mặn, chua cay, béo. Đo lượng đường trong máu.


Vị giác Âm rầm bổng, sóng âm, âm Cảm biến sóng siêu âm,
Thính giác lượng.
mi-cro.
Mùi của các chất khí, chất
lỏng. Đo độ cồn, thiết bị cảm nhận
Khứu giác khí ga.

Bảng 2.2: So sánh cảm nhận của cảm biến qua 5 giác quan

Cảm biến là thiết bị dùng để cảm nhận biến đổi các đại lượng vật lý và các đại lượng không có
tính chất điện cần đo thành các đại lượng điện có thể đo và xử lý được.

Các đại lượng cần đo (m) thường không có tính chất điện (như nhiệt độ, áp suất, ...) tác động
lên cảm biến cho ta một đặc trưng (s) mang tính chất điện (như điện tích, điện áp, dòng điện hoặc trở
kháng) chứa đựng thông tin cho phép xác định giá trị của đại lượng đo. Đặc trưng (s) là hàm của đại
lượng cần đo (m): s = F(m)

• Các đặc trưng của bộ cảm biến: Một cảm biến được sử dụng khi đáp ứng các tiêu chí kỹ thuật xác
định.

- Độ nhạy: Gia số nhỏ nhất có thể phát hiện

- Mức tuyến tính: Khoảng giá trị được biến đổi có hệ số biến đổi cố định

- Dải biến đổi: Khoảng giá trị biến đổi sử dụng được

- Ảnh hưởng ngược: Khả năng gây thay đổi môi trường

- Mức nhiễu ồn: Tiếng ồn riêng và ảnh hưởng của tác nhân khác lên kết quả

- Sai số xác định: Phụ thuộc độ nhạy và mức nhiễu

- Độ trôi: Sự thay đổi tham số theo thời gian phục vụ hoặc thời gian tồn tại (date).

- Độ trễ: Mức độ đáp ứng với thay đổi của quá trình

- Độ tin cậy: Khả năng làm việc ổn định, chịu những biến động lớn của môi trường như sốc các loại

- Điều kiện môi trường: Dải nhiệt độ, độ ẩm, áp suất,... làm việc được
• Phạm vi ứng dụng:

Công nghiệp

Nghiên cứu khoa học.

Môi trường, khí tượng.

Thông tin viễn thông.

Nông nghiệp.

Dân dụng

Giao thông.

Vũ trụ

Quân sự

b. Phân loại cảm biến

Các bộ cảm biến được phân loại theo các đặc trưng cơ bản sau đây:

Theo nguyên lý chuyển đổi giữa kích thích và đáp ứng:

Hiện tượng vật lý:

- Nhiệt điện

- Quang điện

- Quang từ

- Điện từ

- Quang đàn hồi

- Từ điện

- Nhiệt từ...

Hiện tượng hoá học:

- Biến đổi hoá học

- Biến đổi điện hoá

- Phân tích phổ ...

- Biến đổi sinh hoá Hiện tượng sinh học :

- Biến đổi vật lý


- Hiệu ứng trên cơ thể sống ...

Phân loại theo dạng kích thích :

Âm thanh:

- Biên pha, phân cực

- Phổ

- Tốc độ truyền sóng ...

Điện:

- Điện tích, dòng điện

- Điện thế, điện áp

- Điện trường (biên, pha, phân cực, phổ)

- Điện dẫn, hằng số điện môi ...

Từ:

- Từ trường (biên, pha, phân cực, phổ)

- Từ thông, cường độ từ trường

- Độ từ thẩm ...

Quang:

- Biên, pha, phân cực, phổ

- Tốc độ truyền

- Hệ số phát xạ, khúc xạ

- Hệ số hấp thụ, hệ số bức xạ ...

Cơ:

- Vị trí

- Lực, áp suất

- Gia tốc, vận tốc

- Ứng suất, độ cứng

Mô men:

- Khối lượng, tỉ trọng


- Vận tốc chất lưu, độ nhớt ...

Nhiệt:

- Nhiệt độ

- Thông lượng

- Nhiệt dung, tỉ nhiệt ...

Bức xạ:

- Kiểu

- Năng lượng

- Cường độ ...

Theo tính năng của bộ cảm biến :

- Độ nhạy

- Độ chính xác

- Độ phân giải

- Độ chọn lọc

- Độ tuyến tính

- Công suất tiêu thụ

- Dải tần

- Độ trễ

- Khả năng quá tải

- Tốc độ đáp ứng

- Độ ổn định

- Tuổi thọ

- Điều kiện môi trường

- Kích thước, trọng lượng

Phân loại theo phạm vi sử dụng

- Công nghiệp

- Nghiên cứu khoa học


- Môi trường, khí tượng

- Thông tin, viễn thông

- Nông nghiệp

- Dân dụng

- Giao thông

- Vũ trụ

- Quân sự

Phân loại theo thông số của mô hình mạch điện thay thế :

+ Cảm biến tích cực có đầu ra là nguồn áp hoặc nguồn dòng.

+ Cảm biến thụ động được đặc trưng bằng các thông số R, L, C, M .... tuyến tính hoặc phi tuyến.

Hình 2.13: Các loại cảm biến

c. Vai trò - ứng dụng của cảm biến

Các bộ cảm biến đóng vai trò cực kì quan trọng trong lĩnh vực đo lường và điều khiển. Chúng
cảm nhận và đáp ứng theo các kích thích thường là các đại lượng không điện, chuyển đổi các đại
lượng này thành các đại lượng điện và truyền các thông tin về hệ thống đplường điều khiển, giúp
chúng ta nhận dạng, đánh giá, và điều khiển mọi biến trạng thái của đối tượng.

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

a. Giới thiệu:

DHT11 là cảm biến nhiệt độ và độ ẩm. Nó ra đời sau và được sử dụng thay thế cho dòng
SHT1x ở những nơi không cần độ chính xác cao về nhiệt độ và độ ẩm.
Hình 2.14: Cảm biến DHT11

• Kích thước

Hình 2.15: Kích thước cảm biến DHT11

DHT11 có cấu tạo 4 chân như hình. Nó sử dụng giao tiếp số theo chuẩn 1 dây.

- Thông số kỹ thuật:

+ Do độ ẩm: 20%-95%

+ Nhiệt độ: 0-50ºC

+ Sai số độ ẩm ±5%

+ Sai số nhiệt độ: ±2ºC

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


- Sơ đồ kết nối vi xử lý:

Hình 2.16: Kết nối DHT11 với vi xử lí

- 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 tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại.

+ Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ đo được.

- Bước 1: gửi tín hiệu Start

Hình 2.17: Gửi tín hiệu Start hoạt động trong DHT11

+ 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.
Trong Code mình để 25ms. Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm.

+ MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
+ Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp. Nếu >40us mà chân DATA ko được
kéo xuống thấp nghĩa là ko giao tiếp được với DHT11.

+ Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nê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 ko. 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 DHT.

- Bước 2: đọc giá trị trên DHT11

+ DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:

Byte 1: giá trị phần nguyên của độ ẩm (RH%)

Byte 2: giá trị phần thập phân của độ ẩm (RH%)

Byte 3: giá trị phần nguyên của nhiệt độ (TC)

Byte 4 : giá trị phần thập phân của nhiệt độ (TC)

Byte 5 : kiểm tra tổng.

+ Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu
sai thì kết quả đo không có nghĩa.

+ Đọc dữ liệu:

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.

Bit 0:

Hình 2.18: Đọc dữ liệu Bit 0

Bit 1:
Hình 2.19: Đọc dữ liệu Bit 1

Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1. Nếu
chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1. Do đó trong lập trình ta bắt
sườn lên của chân DATA, sau đó delay 50us. Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị
đo được là 1 thì giá trị đo được là 1. Cứ như thế ta đọc các bit tiếp theo.

2.3.3. Cảm biến độ ẩm đất

a. Giới thiệu

Cảm biến độ ẩm đất: trạng thái đầu ra mức thấp (0V), khi đất thiếu nước đầu ra sẽ là mức cao
(5V), độ nhạy cao chúng ta có thể điều chỉnh được bằng biến trở. Cảm biến độ ẩm đất có thể sử dung
tưới hoa tự động khi không có người quản lý khu vườn của bạn hoặc dùng trong những ứng dụng
tương tự như trồng cây. Độ nhạy của Cảm biến phát hiện độ ẩm đất có thể tùy chỉnh được (Bằng cách
điều chỉnh chiết áp màu xanh trên board mạch)

Phần đầu đo được cắm vào đất để phát hiện độ ẩm của đất, khi độ ầm của đất đạt ngưỡng thiết
lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao.

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


b. Thông số kĩ thuật

+ Điện áp hoạt động: 3.3V-5V

+ Kích thước PCB: 3cm * 1.6cm

+ Led đỏ báo nguồn vào, Led xanh báo độ ẩm.

+ IC so sánh : LM393

+ VCC: 3.3V-5V

+ GND: 0V

+ DO: Đầu ra tín hiệu số (0 và 1)

+ AO: Đầu ra Analog (Tín hiệu tương tự)

c. Nguyên lí hoạt động

Theo sơ đồ mạch nguyên lý dưới:

Hình 2.21: Sơ đồ nguyên lí của cảm biến độ ẩm đất


Khi module cảm biến độ ẩm phát hiện, khi đó sẽ có sự thay đổi điện áp ngay tại đầu vào 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 để báo hiệu. và thay đổi như thế
nào sẽ được tính toán để đọc độ ẩm đất.

+ Cảm biến độ ẩm đất rất nhạy với độ ẩm môi trường xung quanh, thường được sử dụng để phát hiện
độ ẩm của đất.

+ Khi độ ẩm đất vượt quá giá trị được 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 như (Arduino,PIC,AVR,STM), để phát
hiện cao và thấp, và do đó để phát hiện độ ẩm của đất.

+ Đầ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.

d. Ứng dụng

- Nông nghiệp:

Đo độ ẩm của đất là rất quan trọng cho nông nghiệp ứng dụng để giúp nông dân quản lý của
họ các hệ thống tưới tiêu hiệu quả hơn. Biết được chính xác độ ẩm của đất trên đồng ruộng của họ,
không chỉ nông dân có thể sử dụng ít nước để trồng một vụ, họ cũng có thể tăng sản lượng và chất
lượng của cây trồng bằng cách cải thiện quản lý độ ẩm của đất trong giai đoạn phát triển cây trồng
quan trọng.

- Thủy lợi cảnh quan:

Ở khu vực đô thị và ngoại ô , cảnh quan và bãi cỏ ở đang sử dụng cảm biến độ ẩm của đất để
giao tiếp với bộ điều khiển thủy lợi. Kết nối một cảm biến độ ẩm đất với một đồng hồ thủy sinh đơn
giản sẽ biến nó thành một bộ điều khiển thủy lợi "thông minh" để ngăn ngừa các chu trình tưới khi đất
đã ướt, ví dụ như sau sự kiện mưa gần đây.

Các sân gôn sử dụng cảm biến độ ẩm của đất để tăng hiệu quả của hệ thống tưới tiêu nhằm
ngăn ngừa quá nước tưới và phân bón và các hóa chất khác vào đất.

- Nghiên cứu:

Cảm biến độ ẩm của đất được sử dụng trong nhiều ứng dụng nghiên cứu, ví dụ như trong khoa
học nông nghiệp và làm vườn trong đó có quy hoạch thủy lợi, nghiên cứu khí hậu , hoặc khoa học môi
trường bao gồm chất tan nghiên cứu giao thông vận tải và các cảm biến như phụ trợ cho hô hấp đất đo.

- Cảm biến đơn giản cho người làm vườn:

Các thiết bị tương đối rẻ và đơn giản mà không cần nguồn điện có sẵn để kiểm tra xem các
nhà máy có đủ độ ẩm để phát triển. Sau khi chèn một que thăm dò vào trong đất trong khoảng 60 giây,
một mét cho biết nếu đất quá khô, ướt hoặc ướt cho cây.
CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG MÔ HÌNH

3.1. Thiết kế phần cứng

3.1.1 Phương án thiết kế

Thiết kế, xây dựng mô hình cho đề tài nhằm thực hiện các nhiệm vụ:

- Kiểm tra, lưu trữ các điều kiện của môi trường cây trồng.

- Hiển thị các thông tin lên màn hình LCD.

- Điều khiển thủ công: máy bơm, đèn.

- Điều khiển tự động thông minh theo điều kiện của môi trường trông cây.

- Điều khiển online từ xa qua smart phone. Mô hình xây dựng dựa trên kit nodeMCU/esp8266 là
trung tâm vi xử lí điều hành mọi hoạt dộng của hệ thống. Với mục đích tạo ra môi trường cây trồng
được chăm sóc tự động, thống minh nên phương án thiết kế xoay quanh các điều kiện, yếu tố của môi
trường để cây trồn có thể phát triển bình thường hay có thể là phát triển nhanh và các yếu tố đây là:
nước, độ ẩm, ánh sáng, các chất dinh dưỡng…. Với mục đích như vậy chúng ta cần vạch ra phương án
như sau:

Khối vi xử lí <-> Chức năng điều khiển toàn hệ thống

Khối cảm biến <-> Chức năng cảm nhận sự biến đổi của các điều kiện yếu tố trong môi trường cây
trồng

Khối hiển thị <-> Là nơi hiển thị những thông tin của mà khối cảm biến cảm nhận được

Khối thực thi <-> Thực hiện chức năng tưới tiêu, chiếu sáng

Khối nguồn <-> Cung cấp ngồn nuôi cho toàn hệ thống hoạt động

3.1.2 Sơ đồ khối phần cứng

a. Khối nguồn

Mạch sử dụng nguồn chính là nguồn 5 VDC ổn định nhằm cung cấp cho nodeMCU hoạt
động. Từ nodeMCU chúng ta có thể lấy ra các nguồn là 5V và 3.3V để cho các linh kiện khác hoạt
động là cảm biến DHT11, cảm biến độ ẩm đất, màn hình LCD, relay, nút bấm

Máy bơm và đèn có thể dử dụng các nguồn khác ngoài 2 nguồn 3.3 và 5V tùy vào mỗi loại
máy bơm và đèn.

b. Khối vi xử lí

Sử dụng kit nodeMCU/esp8266: Là khối xử lý trung tâm tiếp nhận và điều khiển toàn bộ hoạt
động của hệ thống. Từ việc điều khiển toàn bộ thiết bị phần cứng cho đến thiết lập kết nối và điều
khiển phần mềm.

• Sơ đồ chân của nodeMCU


Hình 3.2: Sơ đồ chân của nodeMCU

• Thông số kĩ thuật:

- Hỗ trợ STA / AP / STA + AP 3 chế đọ làm việc;

- Tích hợp giao thức TCP / IP, hỗ trợ kết nối TCP Client nhiều kênh (tối đa 5);

0 ~ D8, SD1 ~ SD3: dùng cho GPIO, PWM, IIC, vv; Khả năng điều khiển có thể đạt đến 15mA;

- AD0: một chiều ADC;

- Nguồn vào: 4.5V ~ 9V (10VMAX), hỗ trợ USB được hỗ trợ và gỡ lỗi USB;

- Dòng làm việc: ≈70mA (200mA MAX, tiếp tục) chế độ chờ <200uA ;

- Tốc độ truyền dữ liệu: 110 -460800bps;

- Hỗ trợ giao diện truyền dữ liệu UART/GPIO;

- Hỗ trợ cập nhật phần mền từ xa (OTA);


- Hỗ trợ Smart Link;

- Nhiệt độ làm việc:-40℃ ~+125℃ ;

- Chế độ Driven: tăng gấp đôi công suất cầu H trên cầu

- Trọng lượng: 7g.

• Kích thước:

Hình 3.3: Kích thước của nodeMCU

• Chức năng các chân:

Hình 3.4: chức năng các chân của nodeMCU


c. Khối cảm biến

c.1. Cảm biến nhiệt độ, độ ẩm DHT11

Cảm biến nhiệt độ, độ ẩm DHT11 được tích hợp trên một module để bảo vệ và sử dụng dễ dàng hơn.

Hình 3.5: Module cảm biến DHT11

• Sơ đồ nguyên lí:

Hình 3.6: Sơ đồ nguyên lí của cảm biến DHT11

• Thông số kĩ thuật:

+ Do độ ẩm: 20%-95%
+ Nhiệt độ: 0-50ºC

+ Sai số độ ẩm ±5%

+ Sai số nhiệt độ: ±2ºC

• Kết nối DHT11 với nodeMCU

DHT11 Node MCU/ESP8266

GND GND

VCC 3.3V

DATA D4

c.2. Cảm biến độ ẩm đất

Cảm biến độ ẩm đất cũng được gắn trên một module

Hình 3.7: module cảm biến độ ẩm đất

• Sơ đồ nguyên lí:
Hình 3.8: Sơ đồ nguyên lí của cảm biến độ ẩm đất

• Thông số kĩ thuật

+ Điện áp hoạt động: 3.3V-5V

+ Kích thước PCB: 3cm * 1.6cm

+ Led đỏ báo nguồn vào, Led xanh báo độ ẩm.

+ IC so sánh : LM393

+ VCC: 3.3V-5V

+ GND: 0V

+ DO: Đầu ra tín hiệu số (0 và 1)

+ AO: Đầu ra Analog (Tín hiệu tương tự)

• Kết nối với nodeMCU

Bảng 3.2: Kết nối chân của cảm biến độ ẩm với nodeMCU

Cảm biến độ ẩm đất nodeMCU/esp8266

GND GND

VCC 3.3V

DATA A0
d. Khối hiển thị

Khối hiển thị với vai trò hiển thị kết quả là thông tin nhận về sau khi được xử lí qua khố điều
khiển cho ra khối hiển thị bao gồm hiển thị thông tin về nhiệt độ, độ ẩm,độ ẩm đất của môi trường cây
trồng. Trong mô hình xây dựng ta sử dụng màn hình lcd 16x4

• Hình dạng: có khả năng hiển thị 4 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến

Hình 3.9: LCD 16x4

• Kích thước

Hình 3.10: Kích thước của màn hình LCD 16x4

• Thông số kĩ thuật

- Điện áp hoạt động là 5 V.

- Kích thước: 86.96 x 60 x 13 mm

- Chữ đen, nền xanh lá/xanh dương

- Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.

- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.

- Có thể được điều khiển với 6 dây tín hiệu

- Có bộ ký tự được xây dựng hổ trợ tiếng Anh và tiếng Nhật

Bảng 3.3 Chức năng các chân của LCD

Chân Ký hiệu MÔ TẢ Giá trị

1 VSS GND 0V

2 VCC 5V

3 V0 Độ tương phản

4 RS Lựa chọn thanh RS=0( mức thấp )


ghi chọn thanh ghi
lệnh

RS=1( mức cao)


chọn thanh ghi dữ
liệu

5 R/W Chọn thanh ghi R/W=0 thanh ghi


đọc/viết dữ liệu viết

R/W=1 thanh ghi


đọc

6 E Enable

7 DB0

8 DB1

9 DB2 Chân truyền dữ 8 bit: DB0DB7


liệu
10 DB3

11 DB4

12 DB5

13 DB6

14 DB7

15 A
Cực dương led
nền 0V đến 5V
16 K Cực âm led nền 0V

Để thuận tiện cho việc thiết kế phần cứng chúng ta kết hợp lcd với module điều khiển màn
hình giao tiếp I2C: I2C Adapter dùng cho LCD 16x2 và LCD16x4 giúp cho việc giao tiếp với LCD trở
nên đơn giản hơn, với chuẩn i2C chỉ cần dùng 2 dây thay vì 4 dây hay 8 dây như cách thông thường.
Module sử dụng chip PCF8574.

• Hình dạng

Hình 3.11: module điều khiển màn hình giao tiếp I2C

• Thông số kĩ thuật:

- 16x2, 16x4 LCD chỉ cần dùng 2 dây qua chuẩn I2C

- Sử dụng 8 LCD hiển thị cùng lúc với bus I2C

- Module đi kèm header 16 chân đơn giản chỉ cần hàn vào module LCD

- 1 jumper điều chỉnh ON/OFF đèn màn hình.

- Module tích hợp biến trở điều chỉnh độ tương phản.

- Nguồn sử dụng cho module là 5V.

• Cách kết nối lcd 16x4 với module điều khiển màn hình giao tiếp I2C: Chúng ta kết nối tương tự theo
thứ tự từ chân 1 đến 16 của màn hình lcd 16x4 tương ứng với các chân từ 1 đến 16 của module điều
khiển màn hình giao tiếp I2C.
Hình 3.12: kết nối LCD 16x4 với module giao tiếp điều khiển I2C

• Kết nối module điều khiển màn hình giao tiếp I2C với nodeMCU

Như vậy là sau khi thực hiện kết nối lcd 16x4 với module điều khiển màn hình giao tiếp I2C
thì việc kết nối tới nodeMCU đã trở nên đơn giản và gọn nhẹ hơn, thay vì phải quan tâm tới 16 chân
của lcd thì hiện tại chúng ta chỉ cần kết nối 4 chân của module điều khiển màn hình là các chân: VCC,
GND, SDA, SCL tới nodeMCU là xong.

Bảng 3.4: kết nối chân nodeMCU với module điều khiển giao tiếp I2C

Module điều khiển giao nodeMCU


tiếp 12C

GND GND

VCC 5VDC

SDA D2

SCL D1

e. Khối thực thi

Khối thực thi bao gồm máy bơm nước và đèn.

Có 2 cách để vận hành khối này đó là:

- Sử dụng điều khiển thủ công

- Điều khiển online qua smart phone

Các linh kiện cần dùng:

a. Module Relay
• Hình dạng

Hình 3.13: Module relay 2 kênh

• Sơ đồ cấu tạo

Hình 3.14: Sơ đồ nguyên lí của module relay 2 kênh

• Sơ đồ chân

Hình 3.15: Sơ đồ chân của module relay 2 kênh

• Thông số kĩ thuật
- Điện áp hoạt động: 5VDC.

- Dòng tiêu thụ: 200mA/1Relay

- Tín hiệu kích: High (5V) ho

- Relay trên mạch:

Nguồn nuôi: 5VDC.

Tiếp điểm đóng ngắt max: 250VAC-10A hoặc 30VDC-10A

- Kích thước: 52mm * 41mm * 19mm

Relay 2 Kênh gồm 2 rơ le hoạt động tại điện áp 5VDC, chịu được hiệu điện thế lên đến
250VAC-10A. Relay 2 kênh được thiết kế chắc chắn, khả năng cách điện tốt. Trên module đã có sẵn
mạch kích relay sử dụng transistor và IC cách ly quang giúp cách ly hoàn toàn mạch điều khiển (vi
điều khiển) với rơ le bảo đảm vi điều khiển hoạt động ổn định. Có sẵn header rất tiện dụng khi kết nối
với vi điều khiển.

Mạch relay 2 kênh sử dụng chân kịch mức Thấp (0V), khi có tín hiệu 0V vào chân IN thì relay
sẽ nhảy qua thường Hở của Relay. ứng dụng với relay module khá nhiều bao gồm cả điện DC hay AC.

b. Máy bơm: có thể sử dụng các loại máy bơm

• Máy Bơm Mini 6-12V MB385

Hình 3.16: máy bơm

- Thông số:

+ Điện áp: DC 6-12V

+ Dong tiêu thụ: 0.6-2A


+ Công suất: 5-12W

+ Nhiệt độ hoạt động: 80 độ C

+ Lưu lượng bơm: 1-2L/Min

+ Kích thước: 90x40x35MM

+ Đầu hút cách nước: <= 2m

+ Đẩy nước cao: <= 3m

3.2. Thiết kế phần mềm

3.2.1. Web server ThingSpeak

ThingSpeak là một mã nguồn mở “Internet of Things” ứng dụng và API để lưu trữ và lấy dữ
liệu từ những thứ sử dụng HTTP qua Internet hoặc thông qua một Local Area Network. Với
ThingSpeak, bạn có thể tạo các ứng dụng ghi chép cảm biến, ứng dụng theo dõi vị trí và mạng xã hội
với những cập nhật trạng thái.

Ngoài việc lưu trữ và lấy dữ liệu số và chữ số, API ThingSpeak cho phép xử lý dữ liệu số như
khoảng thời gian, trung bình, trung bình, tổng hợp và làm tròn. Mỗi Kênh ThingSpeak hỗ trợ các mục
nhập dữ liệu lên đến 8 trường dữ liệu, vĩ độ, kinh độ, độ cao và trạng thái. Kênh nguồn cấp dữ liệu hỗ
trợ các định dạng JSON, XML và CSV để tích hợp vào các ứng dụng.

Ứng dụng ThingSpeak cũng có tính năng quản lý múi giờ, quản lý khóa API API đọc / ghi và
các biểu đồ dựa trên JavaScript từ Highslide Software.

Sử dụng web server Thingspeak cho hệ thống ta cần thực hiện các bước sau:

- Bước 1: truy cập vào web server thingspeak (https://thingspeak.com)

- Bước 2: để có thể có quyền sử dụng thingspeak chúng ta cần tạo lập một tài khoản đăng nhập với
một số thông tin:
Hình 3.17: tạo tài khoản trên Thingspeak

- Bước 3: Sau khi tạo lập tài khoản ta tiếp tục đăng nhập vào thingpseak bằng tài khoản vừa tạo

Hình 3.18: Đăng nhập vào Thingspeak

- Bước 4: Sau khi đăng nhập thành công giờ chúng ta đã có được My Channels riêng của mình

Tiếp tục nếu như chúng ta muốn tạo 1 channel hay nhiều channel mới:
Hình 3.19: tạo New Channel

Hình 3.20: tạo New Channel

+ channel Name: Nhập một tên cho kênh ThingSpeak.

+ Description: Nhập mô tả của kênh ThingSpeak.

+ Field #: Chọn hộp để bật trường và nhập tên trường. Mỗi kênh ThingSpeak có thể có tối đa 8
trường.

+ Metadata: Nhập thông tin về dữ liệu kênh, bao gồm dữ liệu JSON, XML hoặc CSV.
+ Tags: Nhập từ khóa xác định kênh. Ngăn cách bằng các dấu phẩy.

+ Latitude: Xác định vị trí của cảm biến hoặc vật thu thập dữ liệu theo độ thập phân.

+ Longitude: Chỉ định vị trí của cảm biến hoặc vật thu thập dữ liệu theo độ thập phân.

+ Elevation: Chỉ định vị trí của cảm biến hoặc vật thu thập dữ liệu theo mét.

+ Make Public: Nếu bạn muốn làm cho kênh công khai, hãy chọn hộp này.

+ URL: Nếu bạn có một trang web có chứa thông tin về kênh ThingSpeak, hãy chỉ định URL.

+ Video ID: Nếu bạn có video YouTube ™ hoặc Vimeo® hiển thị thông tin kênh của bạn, hãy chỉ
định đường dẫn đầy đủ của URL video.

Sau khi điền đầy đủ các thông tin cần thiết cho channel chúng ta nhấp chọn Save channel và như
vậy chúng ta đã tạo xong các kênh channel để phục vụ cho việc lưu dữ và hiển thị dữ liệu:

Hình 3.21: Giao diện My Channels

- Bước 5: Như vậy là chúng ta đã tạo thành công channel của mình, tiếp tục chũng ta sẽ nhấp vào
channel đã tạo, chọn tới mục API keys. Tại đây chúng ta copy Key của phần Write API Key vào code
chương trình của vi điều khiển
Hình 3.22: API keys của Channel

Nhập apiKey

Hình 3.23: Nhập API Keys vào chương trình

- Bước 6: như vậy sau khi nhập apiKey xong và chạy chương trình cho vi xử lí thì chúng ta thu được
kết quả trên wep server thingspeak

Hình 3.24: hiển thị dữ liệu lên Channel

3.2.2. Ứng dụng Blynk

Blynk được thiết kế cho Internet of Things. Nó có thể kiểm soát phần cứng từ xa, nó có thể hiển
thị dữ liệu cảm biến, nó có thể lưu trữ dữ liệu và làm được nhiều điều thú vị khác.

Hình 3.25: Ứng dụng Blynk

Có 3 thành phần quan trọng trong blynk:

- Blynk App: cho phép tạo ra các giao diện tuyệt vời cho các dự án và sử dụng nhiều widget.
- Blynk Server: chịu trách nhiệm về tất cả các thông tin liên lạc giữa các điện thoại thông minh và
phần cứng.

- Blynk Libraries: cho tất cả các nền tảng phần cứng phổ biến, cho phép giao tiếp với máy chủ và xử
lý tất cả các lệnh đến và outcoming.

Mô hình kết nối hoạt động của 3 thành phần quan trọng trong Blynk:

Hình 3.26: Mô hình kết nối của Blynk

• Tính năng, đặc điểm

- API tương tự & UI cho phần cứng và các thiết bị hỗ trợ tất cả

- Kết nối với đám mâysử dụng:

+ Ethernet

+ Wifi

+ Bluetooth và BLE

+ USB (Serial),….

- Tập hợp các Widgets dễ sử dụng

- Thao tác trực tiếp với pin không viết code

- Dễ dàng tích hợp và bổ sung chức năng mới sử dụng ghim ảo

- Giám sát dữ liệu lịch sử qua lịch sử Graph phụ tùng

- Các thiết bị thông tin liên lạc bằng cầu Widget


- Gửi email, tweet, thông báo đẩy vv

- Tính năng mới liên tục được bổ sung!

Như vậy tất cả các thứ chúng ta cần để Blynk có thể hoạt động bao gồm:

- Phần cứng: nodeMCU/ESP8266 hoặc Arduino, Raspberry Pi…

- Smart phone: đã tải Blynk Apps.

- Cài đặt thư viện Blynk trên IDE Arduino: để chạy chương trình hoạt động cho nodeMCU.

Các chức năng được thực hiện trên Blynk

- Đọc và hiển thị toàn bộ dữ liệu từ cảm biến và trạng thái của bơm,đèn

- Điều khiển từ xa Đèn và Bơm

- Gửi thông báo hệ thống offline hoặc khi đèn hoặc bơm được bật

- Lưu lại dữ liệu từ cảm biến

Chúng bắt đầu tạo lập các điều kiện cần thiết để Blynk Apps hoạt động:

• Bước 1: Tạo tài khoản Blynk

Sau khi chúng ta tải về App Blynk, chúng ta cần phải tạo một tài khoản mới Blynk. Tài khoản này
là cần thiết để lưu dự án của chúng tavà có thể truy cập chúng từ nhiều thiết bị từ bất cứ nơi nào. Nó
cũng là một biện pháp an ninh.

Hình 3.27: Tạo tài khoản trên Blynk


• Bước 2: Tạo Proiect mới

Sau khi tạo tài khoản thành công và sẽ tạo project cho đề tài của mình

Hình 3.28: Tạo project mới

Nhấp chuột vào Create New Project và sau đó nhập tên project:

Hình 3.29: tạo Project mới

Tiếp tục trong mục HARDWARE MODEL kéo chuột và chọn NodeMCU
Hình 3.30: Chọn thiết bị kết nối

Sau đó nhấn chọn CONTINUE và chọn Create. Như vậy là ta đã hoàn thành xong việc tạo lập Project

• Bước 3: Ta tạo lập các Widget hiển thị nhiệt độ, độ ẩm và độ ẩm đất

Trong Widget Box chúng ta lấy chọn ra 3 Gauge: để thể hiện nhiệt độ, độ ẩm và độ ẩm đất.

Hình 3.31: Tạo các Widget

- Tạo giao diện hiển thị thông số cảm biến và điều chỉnh thông số nhiệt độ

TEMP tại GAUSE 1


Chúng ta cài đặt các thông số: nhấn vào GAUGE chúng ta vừa lấy ra để vào mục GAUGE Settings

Ta viết tên cho GAUGE: nhập TEMP

Hình 3.32: cài đặt GAUSE cho nhiệt độ

Tiếp tục điều chỉnh đầu vào INPUT: chọn chân pin V10 và chỉ số từ 0 cho đến 100 và tại READING
FREQUENCY ta chọn là 5 sec

Hình 3.33: cài đặt các chỉ số của nhiệt độ

- Tạo giao diện hiển thị thông số cảm biến và điều chỉnh thông số độ ẩm

HUMID tại GAUSE 2

Chúng ta cũng tiến hành làm tương tự như với cấu hình cho hiển thị nhiệt độ TEMP:
+ Nhập tên: HUMID

+ Tại INPUT: chọn chân PIN là V11 và chỉ số từ 0 cho đến 100

+ Tại READING FREQUENCY: chọn 5 sec

Hình 3.34: Cài đặt thông số cho độ ẩm đất

- Tạo giao diện hiển thị thông số cảm biến và điều chỉnh thông số độ ẩm đất SOIL tại GAUSE 3

Chúng ta cũng tiến hành làm tương tự như với cấu hình cho hiển thị nhiệt độ TEMP và độ ẩm
HUMID:

+ Nhập tên: SOIL

+ Tại INPUT: chọn chân PIN là V12 và chỉ số từ 0 cho đến 100

+ Tại READING FREQUENCY: chọn 5 sec


Hình 3.35: Cài đặt thông số cho độ ẩm đất

• Bước 4: Thêm các WIDGET đèn LED trạng thái và cảnh báo điện thoại

Vẫn trong WIDGET BOX ta chọn đèn LED và Notification để cảnh báo điện thoại

Hình 3.36: Thêm đèn LED

- Cài đặt cho 2 đèn LED

+ Đèn LED 1: thể hiện trạng thái của bơm

Kích chọn và LED 1 để tiến tới LED Settings: Ta viết tên cho LED là BOM và thay đổi đầu vào
INPUT là V0
Hình 3.37: Cài đặt đèm LED hiển thị bơm

+ Đèn LED 2: thể hiện trạng thái của đèn ta làm tương tự như với LED 1

Kích chọn và LED 2 để tiến tới Led Settings: Ta viết tên cho LED là DEN và thay đổi đầu vào
INPUT là V1

Hình 3.38: Cài đặt LED cho đèn

- Cài đặt cho cảnh báo điện thoại Notification: ta cũng kích vào

Notification đã lấy ra để vào Notification Settings và chuyển đổi trong mục NOTIFI WHEN
HARDWARE GOES OFFLINE từ chế độ OFF sang ON.
Hình 3.39: Cài đặt ảnh báo điện thoại

• Bước 5: Chúng ta tiếp tục tạo thêm nút bấm để có thể thực hiện điều khiển bơm và đèn từ xa

Từ WIDGET BOX chúng ta lấy ra 2 BUTTON

Hình 3.40: Lấy Widget nút bấm

- BUTTON 1: chúng ta cài đặt để làm nút bấm cho máy bơm

Kích chọn vào BUTTON chúng ta đến mục Button Settings:

+ Viết tên BOM


+ Tại OUTPUT: chọn V3 và chỉ số 0 sang 1

+ Tại MODE: để ở PUSH

+ Tại ON/OFF LABELS: Mục ON chọn ACT

Mục OFF chọn OK

Hình 3.41: Cài đặt nút bấm cho bơm

- BUTTON 2: chúng ta cài đặt để làm nút bấm cho đèn và cũng làm tương tự như với BUTTON máy
bơm

Kích chọn vào BUTTON chúng ta đến mục Button Settings:

+ Viết tên DEN

+ Tại OUTPUT: chọn V4 và chỉ số 0 sang 1

+ Tại MODE: để ở PUSH

+ Tại ON/OFF LABELS: Mục ON chọn ACT

Mục OFF chọn OK


Hình 3.42: Cài đặt nút bấm cho đèn

Như vậy là chúng ta đã có các Widget cần thiết để hiển thị

• Bước 6: Lấy Token Để có thể kết nối được Blynk App với phần cứng hay với thiết bị khác thì chúng
ta cần phải có Token. Chúng ta nhấn chọn vào My Devices và chỉ cần nhấn chọn E-mail thì như vậy
Blynk sẽ tự động gửi token vào e-mail cho chúng ta ( e-mail đã được khai báo ở phần đăng kí tài
khoản)

Hình 3.43: Lấy Token

Sau khi có được Token từ e-mail chúng ta sẽ copy và paste vào code trong chương trình.

Hình 3.44: Nhập Token vào code chương trình


3.3. Sơ đồ thiết kế và nguyên lí hoạt động

• Sơ đồ được thiết kế trên phần mềm vẽ mạch Fritzing

Hình 3.45: Sơ đồ khối phần cứng

- Các linh kiện được sử dụng trong sơ đồ:

+ NodeMCU

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

+ Cảm biến độ ẩm đất

+ LCD 16x2

+ Module relay 2 kênh

+ Máy bơm

+ Đèn

+ Nút bấm, điện trở, dây nối

• Kết nối các chân của nodeMCU và các linh kiện khác:

Bảng 3.5: Kết nối chân của nodeMCU với các linh kiện

Chân của node MCU Các linh kiện khác

3.3V, GND VCC, GND

Vin Nguồn 5VDC


A0 Chân Data của cảm biến độ ẩm đất

D0 Nút bấm 1

D1 Chân SLC của module điều khiển


màn hình

D2 Chân ADS của module điều khiển


màn hình

D3 Nút bấm 2

D4 Chân Data của cảm biến DHT11

D5 Nút bấm 3

D6 Nối với IN2 của module relay 2 kênh

D7 Nối với IN1 của module relay 2 kênh

• Nguyên lí hoạt động

hoạt động để thực hiện các chức năng: hiển thị nhiệt độ, độ ẩm và độ ẩm đất ra màn hình; gửi
dữ liệu lên web server và smart phone; tưới tiêu và bật đèn thủ công taị chỗ; thực hiện điều khiển bơm
và đèn thông qua smart phone.

NodeMCU với vai trò chính là trung tâm điều khiển toàn mạch và có kết nối với các bộ phận
khác và được cung cấp nguồn như

Khối cảm biến hoạt động với cảm biến độ ẩm đất và cảm biến DHT11 sẽ cung cấp dữ liệu về
cho nodeMCU. Vi điều khiển chính này sẽ thực hiện việc gửi dữ liệu nhận được từ cảm biến và gửi
lên web server Thingspeak và smart phone đã cài ứng dụng Blynk

Khối hiển thị nhận thông tin điều khiển từ nodeMCU gửi đến dữ liệu về độ ẩm, nhiệt độ và độ
ẩm đất để hiển thị lên màn hình LCD

Khối thực thi có kết hợp máy bơm và đèn với module relaycó để cso thể hoạt động được,
chúng ta 2 cách vận hành là: điều khiển thủ công tại chỗ và điều khiển qua điện thoại.

- Đối với điều khiển thủ công tại chỗ: Chúng ta thiết kế khối thực thi có thêm 3 nút bấm để thực hiện
các chức năng bật tắt:

+ nút bấm 1: bật/tắt máy bơm

+ nút bấm 2: bật/tắt đèn

+ nút bấm 3: thực hiện chức năng lấy nhanh dự liệu nhiệt đô, độ ẩm và độ ẩm đất hiển thị trên màn
hình LCD, cso nhiệm vụ như reset lại màn hình

- Đối với điều khiển qua smart phone: điều khiển thông qua smart phone với ứng dụng Blynk
Về việc điều khiển tự động thông minh: mô hình đề tài có gắng xây dựng thực hiện một chế
độ thông minh gồm chức năng:

- Tự động bơm tưới thông minh: dựa vào các điều kiện mà cảm biến thu thập được, nếu mực nước
hay độ ẩm trong đất không đạt yêu cầu => hệ thống tự động bật bơm để tưới, khi mực nước trong đất
được bơm đạt nhu cầu cần của cây trồng => hệ thống tự động tắt bơm.

- Tự động bật đèn: dựa vào yếu tố nhiệt độ và độ ẩm của cảm biến DHT thực hiện được thì hệ thống sẽ
tự lọc thông tin avf đưa ra điều khiển hợp lí như là khi thiếu ánh sang hay thời tiết lạnh thì hệ thống sẽ
tự động bật đèn để cung cấp thêm ánh sáng và để sưởi ấm cho cây trồng và khi ngược lại cây trồng
được cung cấp đủ ánh sáng và có nhiệt độ môi trường xung quanh phù hợp thì hệ thống sẽ tự động tắt
đèn

Ngoài ra trên smart phone trong ứng dụng Blynk còn có thêm chức năng cảnh báo phải bơm
hay bật đèn phòng trường hợp hệ thống tự động bị hỏng hoặc gặp sự cố.

3.4. Code điều khiển

Code điều khiển hệ thống được viết trên nền Arduino IDE. NodeMCU cũng có thể được nạp
code trong Arduino IDE và chúng ta chỉ cần điều chỉnh một chút:

- Thêm thư viện cho esp8266 trong Arduino IDE: vào file -> preferences Và thêm đường dẫn

Hình 3.46: Thêm thư viện ESP8266 trong Arduino IDE

- Tiếp theo là thêm Boards ESP8266: chọn Tool -> Board -> Boards Manager
Hình 3.47: Intall Board ESP8266

Và sau đó Intall

- Cuối cùng chúng ta điều chỉnh một số yếu tố nữa:


Hình 3.48: Cài đặt các thông số Board nodeMCU

Như vậy chúng ta đã cài đặt xong nodeMCU/esp8266 trong Arduino IDE và tiếp tục là viết chương
trình.

• Code điều khiển

/* ESP & Blynk */

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

WidgetLED PUMP(V0); // Đèn trạng thái bơm

WidgetLED LAMP(V1); // Đèn trạng thái đèn sưởi

#include <DS3231.h>

#include "DHT.h"

#include <Wire.h>
#include <ds3231.h>

#include <LiquidCrystal_I2C.h>

DS3231 clock;

TCDateTime dt;

LiquidCrystal_I2C lcd(0x27,16,4);

/* TIMER */

#include <SimpleTimer.h>

#define DHTPIN D4 // Chân DATA nối với D4 //

WiFiClient client;

#define SOIL_MOIST_1_PIN A0 // Chân PE4 nối với cảm biến độ ẩm

// Relay, nút nhấn

#define PUMP_ON_BUTTON D0 //Nút điều khiển bằng tay bơm

#define LAMP_ON_BUTTON D3 //Nút điều khiển đèn bằng tay

#define SENSORS_READ_BUTTON D5 //Nút lấy dữ liệu tức thời

#define PUMP_PIN D6 //Bom

#define LAMP_PIN D7 //Den

// Uncomment loại cảm biến bạn sử dụng, nếu DHT11 thì uncomment DHT11 và comment DHT22

#define DHTTYPE DHT11 // DHT 11

/* Thông số cho chế độ tự động */

#define DRY_SOIL 50

#define WET_SOIL 75

#define COLD_TEMP 12

#define HOT_TEMP 22

#define TIME_PUMP_ON 15

#define TIME_LAMP_ON 15

/* TIMER */

#define READ_BUTTONS_TM 1L // Tương ứng với giây


#define READ_SOIL_HUM_TM 10L //Đọc cảm biến ẩm đất

#define READ_AIR_DATA_TM 2L //Đọc DHT

#define DISPLAY_DATA_TM 10L //Gửi dữ liệu lên terminal

#define SEND_UP_DATA_TM 10L //Gửi dữ liệu lên blynk

#define AUTO_CTRL_TM 60L //Chế độ tư động

// Thay xxxx bằng thingspeak API key của bạn, sau đó thay ten_wifi và mat_khau

String apiKey = "NAGVHBTN1MXD7LR7";

const char* server = "api.thingspeak.com";

//Token Blynk và wifi

char auth[] = "b5002d4a25724a7c8c90170091a9dec1"; // Blynk token

char ssid[] = "TP-LINK_3C5C32"; //Tên wifi

char pass[] = "Matkhaua"; //Mật khẩu

// Biến lưu các giá trị cảm biến

float humDHT;// = 0;

float tempDHT;// = 0;

//int lumen;

int soilMoist = 0;

// Biến lưu trạng thái bơm

boolean pumpStatus = 0;

boolean lampStatus = 0;

int timePumpOn = 10; // Thời gian bật bơm nước

// Biến cho timer

long sampleTimingSeconds = 50; // ==> Thời gian đọc cảm biến (s)

long startTiming = 0;

long elapsedTime = 0;

// Khởi tạo timer

SimpleTimer timer;
// Khởi tạo cảm biến

DHT dht(DHTPIN, DHTTYPE);

byte degree[8] = {

0B01110,

0B01010,

0B01110,

0B00000,

0B00000,

0B00000,

0B00000,

0B00000

};

void setup() {

pinMode(PUMP_PIN, OUTPUT);

pinMode(LAMP_PIN, OUTPUT);

pinMode(PUMP_ON_BUTTON, INPUT_PULLUP);

pinMode(LAMP_ON_BUTTON, INPUT_PULLUP);

pinMode(SENSORS_READ_BUTTON, INPUT_PULLUP);

aplyCmd();

// Khởi tạo cổng serial baud 115200

Serial.begin(115200);

Serial.println("Nong nghiep IoT!");

lcd.init();

lcd.backlight();

lcd.setCursor(0,1);

lcd.print("Nhiet do:");

lcd.setCursor(-4,2);
lcd.print("Do am:");

lcd.setCursor(-4,3);

lcd.print("Do am dat:");

lcd.createChar(1, degree);

clock.begin();

clock.setDateTime(__DATE__, __TIME__);

dht.begin(); // Bắt đầu đọc dữ liệu

Blynk.begin(auth, ssid, pass);

PUMP.off();

LAMP.off();

startTimers();

void loop() {

timer.run(); // Bắt đầu SimpleTimer

Blynk.run();

/****************************************************************

* Hàm điều khiển nhận tín hiệu từ blynk

****************************************************************/

BLYNK_WRITE(3) // Điều khiển bơm

int i = param.asInt();

if (i == 1)

pumpStatus = !pumpStatus;

aplyCmd();

}
}

BLYNK_WRITE(4) // Điều khiển đèn

int i = param.asInt();

if (i == 1)

lampStatus = !lampStatus;

aplyCmd();

void getSoilMoist(void)

int i = 0;

soilMoist = 0;

for (i = 0; i < 10; i++) //

soilMoist += analogRead(SOIL_MOIST_1_PIN); //Đọc giá trị cảm biến độ ẩm đất

delay(50); // Đợi đọc giá trị ADC

soilMoist = soilMoist / (i);

soilMoist = map(soilMoist, 1023, 0, 0, 100);

//Ít nước:0% ==> Nhiều nước 100%

lcd.setCursor(7,3);

lcd.print(soilMoist);

void getDhtData(void)

{
dt = clock.getDateTime();

tempDHT = dht.readTemperature();

humDHT = dht.readHumidity();

lcd.setCursor(0,0);

lcd.print(dt.hour);

lcd.print(":");

lcd.print(dt.minute);

lcd.setCursor(6,0);

lcd.print(dt.day);

lcd.print("/");

lcd.setCursor(3,2);

lcd.print(humDHT);

lcd.print(" %");

//soilMoist

return;

void printData(void)

// IN thông tin ra màn hình

Serial.print("Do am: ");

Serial.print(humDHT);

Serial.print(" %\t");

Serial.print("Nhiet do: ");

Serial.print(tempDHT);

Serial.print(" *C\t");

Serial.print(" %\t");
Serial.print("Do am dat: ");

Serial.print(soilMoist);

Serial.println(" %");

/****************************************************************

Hàm đọc trạng thái bơm và kiểm tra nút nhấn

(Nút nhấn mặc định là mức "CAO"):

****************************************************************/

void readLocalCmd()

boolean digiValue = debounce(PUMP_ON_BUTTON);

if (!digiValue)

pumpStatus = !pumpStatus;

aplyCmd();

digiValue = debounce(LAMP_ON_BUTTON);

if (!digiValue)

lampStatus = !lampStatus;

aplyCmd();

digiValue = debounce(SENSORS_READ_BUTTON);

if (!digiValue)

getDhtData();

getSoilMoist();
printData();

/***************************************************

Thực hiện điều khiển các bơm

****************************************************/

void aplyCmd()

if (pumpStatus == 1)

Blynk.notify("NDTRBOT: Canh bao ==>> BOM ON");

digitalWrite(PUMP_PIN, LOW);

PUMP.on();

Else

digitalWrite(PUMP_PIN, HIGH);

PUMP.off();

if (lampStatus == 1 )

Blynk.notify("NDTRBOT: Canh bao ==>> DEN ON");

digitalWrite(LAMP_PIN, LOW);

LAMP.on();

else

{
digitalWrite(LAMP_PIN, HIGH);

LAMP.off();

/***************************************************

Hàm kiểm tra trạng thái phím bấm

****************************************************/

boolean debounce(int pin)

boolean state;

boolean previousState;

const int debounceDelay = 60;

previousState = digitalRead(pin);

for (int counter = 0; counter < debounceDelay; counter++)

delay(1);

state = digitalRead(pin);

if (state != previousState)

counter = 0;

previousState = state;

return state;

/*************************************************** *

Chế độ tự động dựa trên thông số cảm biến


****************************************************/

void autoControlPlantation(void)

if (soilMoist < DRY_SOIL)

turnPumpOn();

if (tempDHT < COLD_TEMP)

turnLampOn();

/*************************************************** *

Bật bơm trong thời gian định sẵn

****************************************************/

void turnPumpOn()

pumpStatus = 1;

aplyCmd();

delay (TIME_PUMP_ON * 1000);

pumpStatus = 0;

aplyCmd();

/*************************************************** *

Bật đèn trong thời gian định sẵn

****************************************************/

void turnLampOn()
{

lampStatus = 1;

aplyCmd();

delay (TIME_LAMP_ON * 1000);

lampStatus = 0;

aplyCmd();

/***************************************************

Khởi động Timers

****************************************************/

void startTimers(void)

timer.setInterval(READ_BUTTONS_TM * 1000, readLocalCmd);

timer.setInterval(READ_AIR_DATA_TM * 1000, getDhtData);

timer.setInterval(READ_SOIL_HUM_TM * 1000, getSoilMoist);

timer.setInterval(SEND_UP_DATA_TM * 1000, sendUptime);

timer.setInterval(AUTO_CTRL_TM * 1000, autoControlPlantation);

timer.setInterval(DISPLAY_DATA_TM * 1000, printData);

/***************************************************

Gửi dữ liệu lên Blynk

**************************************************/

void sendUptime()

Blynk.virtualWrite(10, tempDHT);

//Nhiệt độ với pin V10

Blynk.virtualWrite(11, humDHT);
// Độ ẩm với pin V11

Blynk.virtualWrite(12, soilMoist);

// Độ ẩm đất với V12

Blynk.virtualWrite(8, tempDHT);

Blynk.virtualWrite(4, humDHT);

Blynk.virtualWrite(3, soilMoist);

}
KẾT QUẢ ĐẠT ĐƯỢC

Sau khi phân tích:

• Input

- Các thông số của cảm biến: nhiệt độ, độ ẩm, độ ẩm đất

- Nút nhấn: điều khiển bơm và đèn

• Output

- Relay điều khiển bơm

- Relay điều khiển đèn

- Thông tin điều khiển cần hiển thị lên điện thoại

+ bật được bơm

+ bật được đèn

- Hệ thống điều khiển offline

- Dữ liệu cần hiển thị trên LCD

- Dữ liệu cần lưu trữ trên server hay điện thoại Kết quả cuối cùng của đề tài:

- Xây dựng được mô hình hoạt động ofline: điều khiển thủ công bật bơm và đèn

- Xây dựng mô hình hệ thống online tự động bơm tưới nước, bật đèn

- Wed server Thingspeak: hiển thị và lưu trữ thông tin

- Ứng dụng Blynk:

+ Đọc và hiển thị toàn bộ dữ liệu từ cảm biến và trạng thái của bơm,đèn

+ Điều khiển từ xa Đèn và Bơm

+ Gửi thông báo hệ thống offline hoặc khi đèn hoặc bơm được bật

+ Lưu lại dữ liệu từ cảm biến


KẾT LUẬN

1. Hướng tích cực


Như vậy mục tiêu xây dựng “hệ thống tự động chăm sóc cây trồng tưới tiêu thông
minh, giám sát điệu kiện môi trường cây trồng từ xa và điều khiển thông qua smart phone” cơ
bản đã hoàn thành được hầu hết các chức năng:
- Theo dõi, hiển thị và lữa trữ điều kiện môi trường trồng.
- Tự động điều khiển thông minh bơm, đèn.
- Có thể điều khiển thông qua smart phone.
Đề tài góp phần nhỏ vào hướng lựa chọn và phát triển của mô hình nông nghiệp mini tại các
khu đô thị hay trong gia đình, góp phần nào đó cung cấp nguồn lương thực mới tự trồng và
chăm sóc đảm bảo an toàn chất lượng thực phẩm. Không những vậy mô hình còn đưa ra nhằm
tiết kiệm kinh tế, thời gian và công sức.

2. Nhược điểm

Sau quá trình tìm hiểu, nghiên cứu và xây dựng mô hình thì kết quả đạt được còn ở mức cơ
bản và chưa có gì nổi bật, song song với đó là mô hình vẫn còn nhiều hạn chế ví dụ như:

- Tình trạng delay, trễ quá nhiều khi ấn nút điều khiển

- Phản hồi hơi chậm với chế độ điều khiển bằng tay

- Còn thiếu nhiều chức năng cần thiết khác như: chưa đo được các chất dinh dưỡng trong đất, độ
Ph,….

- ….
TÀI LIỆU THAM KHẢO

[1] http://hocarm.org

[2] http://arduino.vn

[3] https://en.wikipedia.org

[4] http://www.instructables.com

[5] https://learn.adafruit.com

You might also like