BỘ GIÁO DỤC VÀ ĐẠO TẠO
TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ
-----
-
----
BÀI TIỂU LUN
BÀI THI KẾT THÚC HỌC PHẦN
Tên Học Phần: Phát triển ứng dụng IoT
Sinh viên thực hiện: Nguyễn Thái Tài
Nguyễn Minh Quang
Nguyễn Phước Bảo Thắng
Nguyễn Lê Xuân Tùng
Nguyễn Văn Hưng
Lớp học phần: 24.25.2.S4.N02.IoT
MỤC LỤC
I.
Đặt vấn đề:.....................................................................................................................................................................
II.
Nội dung của đềi:.......................................................................................................................................................
1. Các nội dung cần thực hiện:..........................................................................................................................................
2. Thiết kế mạch IoT:.........................................................................................................................................................
2.1.
đồ logic của hệ thống:.....................................................................................................................................
2.2.
Thiết kế mạch IoT:.................................................................................................................................................
2.2.1. ESP8266.......................................................................................................................................................
2.2.2. Cảm biến nhiệt độ, độ ẩm không khí DHT22...............................................................................................
2.2.3. Relay
12V....................................................................................................................................................
2.2.4. Led:..............................................................................................................................................................
2.3.
Nguyên hoạt động:............................................................................................................................................
2.3.1. Tổng quan hệ thống.....................................................................................................................................
2.3.2. Chi tiết quá trình hoạt động........................................................................................................................
2.3.2.1. Khởi động kết nối..........................................................................................................................
2.3.2.2. Thu thập xử dữ liệu...................................................................................................................
2.3.2.3. Quy trình ra quyết định tự động.......................................................................................................
2.3.2.4. Hệ thống cảnh báo trực quan............................................................................................................
2.3.2.5. Truyền dữ liệu giao tiếp................................................................................................................
2.3.2.6. Điều khiển từ xa................................................................................................................................
2.4.
Mạch vật ............................................................................................................................................................
III.
Các ứng dụng cần cài đặt :............................................................................................................................................
3.1. Arduino IDE:................................................................................................................................................................
3.2. HiveMQ.......................................................................................................................................................................
3.3. Cài broker Mosquitto...................................................................................................................................................
3.4. Node-red.....................................................................................................................................................................
IV.
Kết quả thực hiện:
Khi nhiệt độ nằm trong khoảng 15-40 độ thì sẽ thông báo nhiệt dộ bình thường
Khi độ ẩm nằm trong khoảng 50%-80% thì sẽ thông báo độ ẩm bình thường...................................................................
V.
Kết luận hướng phát triển........................................................................................................................................
5.1. Các công việc đã thực hiện được................................................................................................................................
5.2. Các công việc chưa thực hiện được............................................................................................................................
5.3. Hướng phát triển của đề tài.......................................................................................................................................
5.3.1. Mở rộng hệ thống cảm biến.......................................................................................................................
5.3.2. Cải thiện tính thông minh của hệ thống.....................................................................................................
5.3.3. Mở rộng quy ứng dụng.........................................................................................................................
LỜI MỞ ĐẦU
Trong những năm gần đây, công nghệ ngày càng phát triển và được ứng dụng rộng rãi
trong nhiều lĩnh vực. Internet of Things (IoT) một trong những xu hướng quan trọng,
giúp kết nối và điều khiển các thiết bị thông minh thông qua mạng internet. Một trong
những ứng dụng tiêu biểu của IoT trong lĩnh vực nông nghiệpchăm sóc cây trồng
hệ thống tưới cây tự động, giúp người dùng quản lý tình trạng cây trồng một cách hiệu
quả và tiết kiệm thời gian.
Hệ thống tưới cây tự động không chỉ mang lại sự thuận tiện cho người sử dụng mà còn
tối ưu hóa việc sử dụng nước, cải thiện sức khỏe cho cây và nâng cao năng suất trồng
trọt. Nhờ các cảm biến độ ẩmbộ điều khiển thông minh, hệ thống thể tự động điều
chỉnh lượng nước tưới dựa trên nhu cầu của cây, đồng thời cho phép người dùng điều
khiển và giám sát từ xa qua điện thoại.
Xuất phát từ những lợi ích đó, nhóm chúng tôi quyết định nghiên cứu về "Ứng dụng IoT
trong tưới cây tự động" nhằm tìm hiểu nguyên lý hoạt động, các công nghệ liên quan và
cách xây dựng một hệ thống tưới cây tự động đơn giản. Qua bài báo cáo này, chúng tôi
mong muốn có được cái nhìn tổng quan về lĩnh vực này và góp phần vào sự phát triển
của các giải pháp tự động hóa trong nông nghiệp trong tương lai.
I.
Đặt vấn đ:
Đất nước Việt Nam là 1 trong những đất nước có truyền thống văn hóa lâu đời về ngành
nông nghiệp , là nước có tỷ trọng ngành nông nghiệp chiếm phần trăm cao so với các ngành
khác, là nước tự sản xuất và xuất khẩu các mặt hàng nông nghiệp lớn ở Đông Nam Á .Nông
nghiệp và công nghiệp 2 ngành kinh tế quan trọng mối quan hệ mật thiết với nhau, nông
nghiệp phát triển tạo cơ hội cho công nghiệp phát triển, ngược lại công nghiệp phát triển và tiến
bộ để đáp ứng yêu cầu gia tăng năng suất và sản lượng để phục vụ lượng hàng tiêu thụ trong
nước và xuất khẩu. Hiện nay với sự phát triển mạnh mẽ của công nghệ, đặc biệt là Internet vạn
vật (IoT), ứng dụng công nghệ vào sản xuất nông nghiệp đã trở thành một xu hướng tất yếu.
Trong đó, hệ thống tưới cây tự động sử dụng IoT đóng vai trò quan trọng trong việc tối ưu hóa
quy trình chăm sóc cây trồng, tiết kiệm tài nguyên và nâng cao hiệu quả sản xuất. Hệ thống tưới
cây tự động sử dụng IoT sẽ đạt tối đa năng suất khắc phục được các mặt hạn chế của hệ thống
tưới cây truyền thống như phụ thuộc vào con người , mất nhiều thời gian sức người. Hệ thống
tưới cây tự động sử dụng IoT còn giúp dễ quản lí và giám sát lượng nước tưới để có thể tiết
kiệm nước, giảm thiểu chi phí và nguồn nhân lực so với hệ thống tưới cây truyền thống. Hệ
thống này còn có thể tích hợp thêm nhiều chức năng khác như đo độ ẩm, nhiệt độ , lượng ánh
sáng để giúp cây phát triển với điều kiện tốt nhất giúp nâng cao năng suất cây trồng và gia tăng
sản lượng thu hoạch. Với những lợi ích trên, đề tài "Hệ thống tưới cây tự động ứng dụng IoT"
được thực hiện nhằm nghiên cứu và xây dựng một hình tưới cây thông minh, giúp tối ưu hóa
quá trình chăm sóc cây trồng, góp phần vào sự phát triển bền vững của ngành nông nghiệp Việt
Nam.
II.
Nội dung của đề tài:
1. Các nội dung cần thực hiện:
1.1.
Tìm hiểu khái niệm IoT và ứng dụng trong tưới cây tự động IoT giúp kết nối các thiết bị
điện tử với nhau qua mạng Internet, giúp giám sát và điều khiển từ xa. Tưới cây tự động một
ứng dụng của IoT trong nông nghiệp, giúp tự động hóa quá trình tưới nước cho cây trồng. Hệ
thống sẽ giám sát nhiệt độ độ ẩm và tự động bật/tắt hệ thống tưới khi cần thiết.
1.2.
Phân tích các công nghệ cốt lõi: Để xây dựng hệ thống tưới cây tự động, cần sử dụng các
công nghệ chính như: Cảm biến DHT để đo nhiệt độ, độ ẩm. Vi điều khiển: ESP8266/ESP32
hoặc Arduino để xử dữ liệu từ cảm biếnđiều khiển bơm nước. Bơm nước: Được điều khiển
qua module rơ-le để bật/tắt khi cần thiết. Kết nối không dây: Sử dụng Wi-Fi để truyền dữ liệu và
nhận lệnh từ ứng dụng di động hoặc nền tảng IoT. Giao diện điều khiển: Tạo trang web để theo
dõi độ ẩm đất và điều khiển hệ thống tưới từ xa. Thiết kế hệ thống tưới cây tự động Hệ thống
tưới cây tự động sẽ bao gồm các chức năng chính: Giám sát nhiệt độ, độ ẩm và tự động tưới cây
khi độ ẩm giảm xuống dưới mức cài đặt hiển thị các thông báo nếu nhiệt độ quá thấp hoặc quá
cao. Điều khiển bơm nước từ xa qua ứng dụng di động hoặc trang web.
2. Thiết kế mạch IoT:
2.1.
đồ logic của hệ thống:
đồ logic của hệ thống trình bày cách các thành phần trong hệ thống IoT giám sát và điều
khiển môi trường trồng cây cảnh phối hợp với nhau. Các luồng dữ liệu chính:
Cảm biến (Sensor): gồm cảm biến nhiệt độ - độ ẩm không khí (DHT22) cảm biến độ
ẩm đất. Chúng liên tục thu thập dữ liệu môi trường (nhiệt độ, độ ẩm không khí, độ ẩm
đất).
Vi điều khiển (ESP8266): đóng vai trò trung tâm xử lý. Nhận dữ liệu từ cảm biếngửi
đến máy chủ MQTT (HiveMQ) thông qua Wi-Fi.
MQTT Broker (HiveMQ): làm trung gian truyền dữ liệu giữa ESP8266 và các giao diện
giám sát như Node-RED.
Node-RED: xử hiển thị dữ liệu cảm biến lên dashboard trực quan. Đồng thời, người
dùng có thể ra lệnh điều khiển như bật/tắt máy bơm từ đây.
Thiết bị điều khiển (Relay & máy bơm): nhận lệnh từ ESP8266 để kích hoạt hoặc ngắt
máy bơm tưới ớc.
LED cảnh báo: sẽ sáng nếu môi trường thông số bất thường (ví dụ: đất quá khô hoặc
nhiệt độ quá cao).
Tóm lại, đây hệ thống phản hồi thời gian thực tự động giám sát và điều khiển môi trường,
đồng thời cho phép người dùng can thiệp từ xa.
2.2.
Thiết kế mạch IoT:
Giải thích chức năng bản của các linh kiện, thiết bị được sử dụng trong mạch
2.2.1. ESP8266
ESP8266 đã tạo ra một cuộc cách mạng trong lĩnh vực IoT (Internet of Things) nhờ khả năng
kết nối WiFi mạnh mẽ, giá thành rẻ dễ dàng lập trình. được sử dụng rộng rãi trong các ứng
dụng từ điều khiển thiết bị thông minh đến thu thập dữ liệu từ xa.
ESP8266 một vi điều khiển tích hợp WiFi phổ biến, hỗ trợ lập trình bằng nhiều nền tảng như
Arduino IDE, MicroPython, và Lua. Nhờ vào tính linh hoạt và hiệu suất cao, ESP8266 đã trở
thành một trong những lựa chọn hàng đầu cho các dự án IoT.
Thông số kỹ thuật:
-Chip Wifi: ESP8266
-USB-to-Serial: CP2102
-Điện Áp Hoạt Động: 3.3V
-Dòng Điện Tiêu Thụ: Tiết kiệm điện với chế độ ngủ sâu, tiêu thụ khoảng 10µA
-Kích Thước: Khoảng 58mm x 31mm x 13mm
-Giao Thức Kết Nối: Hỗ trợ 802.11 b/g/n
-Bộ Nhớ Flash: Thường từ 4MB đến 32MB
-GPIO: 11 chân GPIO thể lập trình
-Tích Hợp: Hỗ trợ giao thức TCP/IP, UDP, HTTP, MQTT
Vi điều khiển
-ESP8266 sử dụng vi điều khiển Tensilica Xtensa LX106 chạy ở xung nhịp lên đến 80 MHz
hoặc 160 MHz, cao hơn nhiều so với ATmega328P của Arduino UNO. ESP8266 không chỉ là
một vi điều khiển còn tích hợp WiFi giúp dễ dàng kết nối mạng điều khiển thiết b từ xa.
-ESP8266 11 chân GPIO (General Purpose Input/Output) thể lập trình linh hoạt, trong đó
một số chân hỗ trợ PWM, I2C, SPI, UART, và ADC (Analog to Digital Converter). Đặc biệt,
ESP8266 chỉ có 1 chân ADC (ký hiệu A0), khác với Arduino UNO có 6 chân ADC.
-Nguồn cấp cho ESP8266 thể từ cổng micro USB (đối với các board như NodeMCU, Wemos
D1 Mini) hoặc cấp trực tiếp 3.3V (chú ý không dùng 5V vì ESP8266 không hỗ trợ mức điện áp
này).
Các chân của ESP8266
Các chân ng lượng: GND (Ground), 3.3V (nguồn cấp chính), Vin (Voltage Input), EN
(Enable), RST (Reset).
Các cổng ra/vào:
-ESP8266 ít chân GPIO hơn so với Arduino. Cụ thể, ESP-12E (NodeMCU) khoảng 11
chân GPIO có thể sử dụng: GPIO0 - GPIO16 (một số chân có chức năng đặc biệt).
-ESP8266 1 chân Analog (A0) với độ phân giải 10 bit, đọc giá trị điện áp từ 0V - 1V (có thể
mở rộng lên 3.3V với mạch phân áp).
2.2.2. Cảm biến nhiệt độ, độ ẩm không khí DHT22
Cảm biến DHT22 một loại cảm biến phổ biến dùng để đo nhiệt độđộ ẩm không khí. Trong
hệ thống tưới cây tự động, DHT22 đóng vai trò quan trọng trong việc giám sát môi trường, giúp
điều chỉnh chế độ tưới nước phù hợp nhằm đảm bảo sự phát triển tối ưu của cây trồng.
Cảm biến DHT22 đo nhiệt độ (từ -40°C đến 80°C) và độ ẩm không khí (0-100% RH), giúp
theo dõi môi trường một cách chính xác.
Thông số kỹ thuật:
Điện áp hoạt động: 3.3V - 5.5V
Dải đo nhiệt độ: -40°C đến 80°C
Sai số nhiệt độ: ±0.5°C
Dải đo độ ẩm: 0% - 100% RH
Sai số độ ẩm: ±2% - 5% RH
Tần số lấy mẫu: 0.5 Hz (mỗi 2 giây đo một lần)
Giao tiếp: Tín hiệu số (Digital Signal)
Sơ đồ nối dây
DHT22 4 chân:
VCC: Kết nối với nguồn 3.3V hoặc 5V
Data: Kết nối với một chân digital của vi điều khiển
NC: Không sử dụng
GND: Kết nối với GND của vi điều khiển
Nếu cần, thể sử dụng điện trở 10kΩ kéo lên giữa chân VCC và Data.
2.2.3. Relay 12V
Module relay là một thiết bị điện tử được sử dụng để điều khiển mạch điện công suất lớn bằng
tín hiệu điện áp thấp. Relay hoạt động như một công tắc điện tử, cho phép đóng ngắt mạch điện
một cách an toàn và hiệu quả.
Cấu tạonguyên hoạt động:
Cuộn dây (Coil): Khi dòng điện chạy qua, cuộn dây tạo ra từ trường, hút hoặc đẩy tiếp
điểm.
Tiếp điểm (Contacts): Các tiếp điểm cơ khí đóng hoặc mở mạch điện công suất lớn.
Mạch kích: Transistor hoặc IC cách ly quang giúp khuếch đại tín hiệu điều khiển bảo
vệ vi điều khiển.
Điện áp hoạt động: 12VDC. Điều này có nghĩa là relay này cần nguồn điện 12VDC để hoạt
động. Thường được sử dụng với các vi điều khiển như Arduino, vốn hoạt động mức điện áp
thấp hơn nên cần mạch chuyển đổi.
Tín hiệuch:
thể được kích hoạt bằng tín hiệu mức cao (12V) hoặc mức thấp (0V), lựa chọn thông
qua jumper. Điều này tạo sự linh hoạt trong việc kết nối với các mạch điều khiển khác
nhau.
Nguồn cấp: 12VDC.
Tiếp điểm đóng ngắt tối đa: 250VAC - 10A hoặc 30VDC - 10A.
Điều này cho thấy khả năng đóng ngắt dòng điện của relay. thể xử dòng điện
xoay chiều lên đến 10A ở điện áp 250VAC hoặc dòng điện một chiều 10A ở điện áp
30VDC.
Kích thước: 52mm × 41mm × 19mm.
Ứng dụng:
Thích hợp cho các dự án điện tử sử dụng vi điều khiển 12V.
Điều khiển các thiết bị điện gia dụng như đèn, quạt, động cơ, v.v.
Ưu điểm:
Độ bền cao, thể hoạt động lâu dài không bị suy giảm hiệu suất.
Cách ly tốt giữa mạch điều khiển mạch tải, đảm bảo an toàn cho vi điều khiển.
Dễ dàng sử dụng và tích hợp vào các mạch điện tử.
Tiêu thụ ít điện năng khi điều khiển.
Hoạt động ổn định, thể đóng ngắt dòng điện lớn một cách đáng tin cậy.
2.2.4. Led:
Báo hiệu hoạt động của hệ thống: LED thể được sử dụng để báo hiệu rằng hệ thống
tưới cây đang hoạt động, đang tưới nước hoặc cảnh báo.
2.3.
Nguyên hoạt động:
2.3.1. Tổng quan hệ thống
Hệ thống tưới cây tự động của chúng tôi hoạt động dựa trên nguyên lý thu thập dữ liệu từ môi
trường, xử thông tin, đưa ra quyết định dựa trên các ngưỡng đã được thiết lập sẵn. Hệ thống
bao gồm các thành phần chính: ESP8266 (bộ xử lý trung tâm), cảm biến DHT22 (thu thập thông
số môi trường), module relay (điều khiển máy bơm), LED cảnh báo, và kết nối MQTT (giao tiếp
với giao diện người dùng).
2.3.2. Chi tiết quá trình hoạt động
2.3.2.1. Khởi độngkết ni
ESP8266 khởi động, thiết lập kết nối với mạng WiFi "O2"
Sau khi kết nối WiFi thành công, hệ thống thiết lập kết nối bảo mật với MQTT broker
HiveMQ qua cổng 8883
Hệ thống đăng (subscribe) các chủ đề MQTT để nhận lệnh điều khiển từ xa:
"home/led2", "home/pump"
2.3.2.2. Thu thậpxử dữ liệu
Cảm biến DHT22 thu thập thông tin nhiệt độ và đ ẩm không khí mỗi 5 giây
Dữ liệu được ESP8266 xử để phân loại thành các trạng thái:
Độ ẩm: Thấp (<50%), Bình thường (50-85%), Cao (>85%)
Nhiệt độ: Thấp (<15°C), Bình thường (15-40°C), Cao (>40°C)
2.3.2.3. Quy trình ra quyết định tự động
Điều khiển máy m:
Khi độ ẩm <50%: Kích hoạt máy bơm (PUMP_PIN = HIGH), cập nhật trạng thái
pumpStatus = true
Khi độ ẩm >85% hoặc trở về mức bình thường: Tắt máy bơm (PUMP_PIN =
LOW), cập nhật trạng thái pumpStatus = false
Gửi thông tin trạng thái qua MQTT đến "home/humidity_status" (0: thấp, 1: bình
thường, 2: cao)
Giám sát nhiệt độ:
Khi nhiệt độ <15°C: Gửi cảnh báo nhiệt độ thấp qua MQTT đến
"home/temperature_status" (giá trị 0)
Khi nhiệt độ >40°C: Gửi cảnh báo nhiệt độ cao qua MQTT đến
"home/temperature_status" (giá trị 2)
Khi nhiệt độ trong khoảng 15-40°C: Báo nhiệt độ bình thường qua MQTT (giá trị
1)
2.3.2.4. Hệ thống cảnh báo trực quan
LED cảnh báo:
Khi máy bơm hoạt động hoặc nhiệt độ bất thường: LED đỏ nhấp nháy với tần số
10Hz (50ms)
Khi các thông số bình thường và máy bơm không hoạt động: LED tắt
2.3.2.5. Truyền dữ liệu và giao tiếp
Toàn bộ dữ liệu cảm biến được gửi định kỳ mỗi 5 giây dưới dạng JSON đến chủ đề
"home/sensor_data":
{ "temperature": xx.xx, "humidity": xx.xx, "pump_status": 0/1, "temp_status": 0/1/2,
"hum_status": 0/1/2 }
2.3.2.6. Điều khiển từ xa
Người dùng thể ghi đè chế độ tự động thông qua giao diện Node-RED
Lệnh điều khiển được gửi qua MQTT đến chủ đề "home/pump" với giá trị "ON" hoặc
"OFF"
Khi nhận được lệnh điều khiển từ xa, ESP8266 s:
Cập nhật trạng thái máy m
Bật cờ manualControl = true (cho biết hệ thống đang trong chế độ điều khiển thủ
ng)
Phản hồi trạng thái mới qua MQTT
2.4.
Mạch vật
III.
Các ứng dụng cần cài đặt :
3.1. Arduino IDE:
+Bước 1:
+Bước 2:
+Bước 3:
+Bước 4:
+Bước 5:
+Bước 6:
+Bước 7:
+Bước 8:
+Bước 9:
+Bước 10: Download driver CH340 cho ESP8266 link download:
http://www.wch.cn/download/CH341SER_ZIP.html
3.2. HiveMQ
Tạo 1 MQTT broker sử dụng HiveMQ
3.3. Cài broker Mosquitto
-
4. Cài đặt MQTT Explorer tại địa chỉ http://mqtt-explorer.com/.
5. Forwarding port để ESP thể kết nối đến Broker: Chạy các lệnh sau với quyền Admin.
netsh interface portproxy add v4tov4 listenaddress=192.168.1.2 listenport=1883
connectaddress=127.0.0.1 connectport=1883
neth interface portproxy show all
3.4. Node-red
Download và cài đặt Node.js tại địa chỉ: https://nodejs.org/en/download/
Sử dụng npm để cài đặt Node-RED toàn cục:
o Chạy lệnh npm install -g node-red
Khởi động Node-Red:
o Chạy lệnh: node-red
o Khởi động node-red bằng địa chỉ: http://localhost:1880 hoặc qua địa chỉ IP
127.0.0.1 hoặc IP của máy tính đang chạy node-red.
Giao diện chính của node-red:
Cài đặt Dashboard:

Preview text:

BỘ GIÁO DỤC VÀ ĐẠO TẠO
TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ ---------- BÀI TIỂU LUẬN
BÀI THI KẾT THÚC HỌC PHẦN
Tên Học Phần: Phát triển ứng dụng IoT
Sinh viên thực hiện: Nguyễn Thái Tài Nguyễn Minh Quang
Nguyễn Phước Bảo Thắng Nguyễn Lê Xuân Tùng Nguyễn Văn Hưng
Lớp học phần: 24.25.2.S4.N02.IoT MỤC LỤC
I. Đặt vấn đề:.....................................................................................................................................................................
II. Nội dung của đề tài:.......................................................................................................................................................
1. Các nội dung cần thực hiện:..........................................................................................................................................
2. Thiết kế mạch IoT:.........................................................................................................................................................
2.1. Sơ đồ logic của hệ thống:.....................................................................................................................................
2.2. Thiết kế mạch IoT:.................................................................................................................................................
2.2.1. ESP8266.......................................................................................................................................................
2.2.2. Cảm biến nhiệt độ, độ ẩm không khí DHT22...............................................................................................
2.2.3. Relay 12V....................................................................................................................................................
2.2.4. Led:..............................................................................................................................................................
2.3. Nguyên lý hoạt động:............................................................................................................................................
2.3.1. Tổng quan hệ thống.....................................................................................................................................
2.3.2. Chi tiết quá trình hoạt động........................................................................................................................
2.3.2.1. Khởi động và kết nối..........................................................................................................................
2.3.2.2. Thu thập và xử lý dữ liệu...................................................................................................................
2.3.2.3. Quy trình ra quyết định tự động.......................................................................................................
2.3.2.4. Hệ thống cảnh báo trực quan............................................................................................................
2.3.2.5. Truyền dữ liệu và giao tiếp................................................................................................................
2.3.2.6. Điều khiển từ xa................................................................................................................................
2.4. Mạch vật lý............................................................................................................................................................
III. Các ứng dụng cần cài đặt :............................................................................................................................................
3.1. Arduino IDE:................................................................................................................................................................
3.2. HiveMQ.......................................................................................................................................................................
3.3. Cài broker Mosquitto...................................................................................................................................................
3.4. Node-red.....................................................................................................................................................................
IV. Kết quả thực hiện:
Khi nhiệt độ nằm trong khoảng 15-40 độ thì sẽ thông báo nhiệt dộ bình thường
Khi độ ẩm nằm trong khoảng 50%-80% thì sẽ thông báo độ ẩm bình thường...........................................
........................
V. Kết luận và hướng phát triển........................................................................................................................................
5.1. Các công việc đã thực hiện được................................................................................................................................
5.2. Các công việc chưa thực hiện được............................................................................................................................
5.3. Hướng phát triển của đề tài.......................................................................................................................................
5.3.1. Mở rộng hệ thống cảm biến.......................................................................................................................
5.3.2. Cải thiện tính thông minh của hệ thống.....................................................................................................
5.3.3. Mở rộng quy mô ứng dụng......................................................................................................................... LỜI MỞ ĐẦU
Trong những năm gần đây, công nghệ ngày càng phát triển và được ứng dụng rộng rãi
trong nhiều lĩnh vực. Internet of Things (IoT) là một trong những xu hướng quan trọng,
giúp kết nối và điều khiển các thiết bị thông minh thông qua mạng internet. Một trong
những ứng dụng tiêu biểu của IoT trong lĩnh vực nông nghiệp và chăm sóc cây trồng là
hệ thống tưới cây tự động, giúp người dùng quản lý tình trạng cây trồng một cách hiệu
quả và tiết kiệm thời gian.
Hệ thống tưới cây tự động không chỉ mang lại sự thuận tiện cho người sử dụng mà còn
tối ưu hóa việc sử dụng nước, cải thiện sức khỏe cho cây và nâng cao năng suất trồng
trọt. Nhờ các cảm biến độ ẩm và bộ điều khiển thông minh, hệ thống có thể tự động điều
chỉnh lượng nước tưới dựa trên nhu cầu của cây, đồng thời cho phép người dùng điều
khiển và giám sát từ xa qua điện thoại.
Xuất phát từ những lợi ích đó, nhóm chúng tôi quyết định nghiên cứu về "Ứng dụng IoT
trong tưới cây tự động" nhằm tìm hiểu nguyên lý hoạt động, các công nghệ liên quan và
cách xây dựng một hệ thống tưới cây tự động đơn giản. Qua bài báo cáo này, chúng tôi
mong muốn có được cái nhìn tổng quan về lĩnh vực này và góp phần vào sự phát triển
của các giải pháp tự động hóa trong nông nghiệp trong tương lai. I. Đặt vấn đề:
Đất nước Việt Nam là 1 trong những đất nước có truyền thống văn hóa lâu đời về ngành
nông nghiệp , là nước có tỷ trọng ngành nông nghiệp chiếm phần trăm cao so với các ngành
khác, là nước tự sản xuất và xuất khẩu các mặt hàng nông nghiệp lớn ở Đông Nam Á .Nông
nghiệp và công nghiệp là 2 ngành kinh tế quan trọng và có mối quan hệ mật thiết với nhau, nông
nghiệp phát triển tạo cơ hội cho công nghiệp phát triển, ngược lại công nghiệp phát triển và tiến
bộ để đáp ứng yêu cầu gia tăng năng suất và sản lượng để phục vụ lượng hàng tiêu thụ trong
nước và xuất khẩu. Hiện nay với sự phát triển mạnh mẽ của công nghệ, đặc biệt là Internet vạn
vật (IoT), ứng dụng công nghệ vào sản xuất nông nghiệp đã trở thành một xu hướng tất yếu.
Trong đó, hệ thống tưới cây tự động sử dụng IoT đóng vai trò quan trọng trong việc tối ưu hóa
quy trình chăm sóc cây trồng, tiết kiệm tài nguyên và nâng cao hiệu quả sản xuất. Hệ thống tưới
cây tự động sử dụng IoT sẽ đạt tối đa năng suất khắc phục được các mặt hạn chế của hệ thống
tưới cây truyền thống như phụ thuộc vào con người , mất nhiều thời gian và sức người. Hệ thống
tưới cây tự động sử dụng IoT còn giúp dễ quản lí và giám sát lượng nước tưới để có thể tiết
kiệm nước, giảm thiểu chi phí và nguồn nhân lực so với hệ thống tưới cây truyền thống. Hệ
thống này còn có thể tích hợp thêm nhiều chức năng khác như đo độ ẩm, nhiệt độ , lượng ánh
sáng để giúp cây phát triển với điều kiện tốt nhất giúp nâng cao năng suất cây trồng và gia tăng
sản lượng thu hoạch. Với những lợi ích trên, đề tài "Hệ thống tưới cây tự động ứng dụng IoT"
được thực hiện nhằm nghiên cứu và xây dựng một mô hình tưới cây thông minh, giúp tối ưu hóa
quá trình chăm sóc cây trồng, góp phần vào sự phát triển bền vững của ngành nông nghiệp Việt Nam.
II. Nội dung của đề tài:
1. Các nội dung cần thực hiện:
1.1. Tìm hiểu khái niệm IoT và ứng dụng trong tưới cây tự động IoT giúp kết nối các thiết bị
điện tử với nhau qua mạng Internet, giúp giám sát và điều khiển từ xa. Tưới cây tự động là một
ứng dụng của IoT trong nông nghiệp, giúp tự động hóa quá trình tưới nước cho cây trồng. Hệ
thống sẽ giám sát nhiệt độ độ ẩm và tự động bật/tắt hệ thống tưới khi cần thiết.
1.2. Phân tích các công nghệ cốt lõi: Để xây dựng hệ thống tưới cây tự động, cần sử dụng các
công nghệ chính như: Cảm biến DHT để đo nhiệt độ, độ ẩm. Vi điều khiển: ESP8266/ESP32
hoặc Arduino để xử lý dữ liệu từ cảm biến và điều khiển bơm nước. Bơm nước: Được điều khiển
qua module rơ-le để bật/tắt khi cần thiết. Kết nối không dây: Sử dụng Wi-Fi để truyền dữ liệu và
nhận lệnh từ ứng dụng di động hoặc nền tảng IoT. Giao diện điều khiển: Tạo trang web để theo
dõi độ ẩm đất và điều khiển hệ thống tưới từ xa. Thiết kế hệ thống tưới cây tự động Hệ thống
tưới cây tự động sẽ bao gồm các chức năng chính: Giám sát nhiệt độ, độ ẩm và tự động tưới cây
khi độ ẩm giảm xuống dưới mức cài đặt và hiển thị các thông báo nếu nhiệt độ quá thấp hoặc quá
cao. Điều khiển bơm nước từ xa qua ứng dụng di động hoặc trang web.
2. Thiết kế mạch IoT:
2.1. Sơ đồ logic của hệ thống:
Sơ đồ logic của hệ thống trình bày cách các thành phần trong hệ thống IoT giám sát và điều
khiển môi trường trồng cây cảnh phối hợp với nhau. Các luồng dữ liệu chính:
Cảm biến (Sensor): gồm cảm biến nhiệt độ - độ ẩm không khí (DHT22) và cảm biến độ
ẩm đất. Chúng liên tục thu thập dữ liệu môi trường (nhiệt độ, độ ẩm không khí, độ ẩm đất).
Vi điều khiển (ESP8266): đóng vai trò trung tâm xử lý. Nhận dữ liệu từ cảm biến và gửi
đến máy chủ MQTT (HiveMQ) thông qua Wi-Fi.
MQTT Broker (HiveMQ): làm trung gian truyền dữ liệu giữa ESP8266 và các giao diện
giám sát như Node-RED.
Node-RED: xử lý và hiển thị dữ liệu cảm biến lên dashboard trực quan. Đồng thời, người
dùng có thể ra lệnh điều khiển như bật/tắt máy bơm từ đây.
Thiết bị điều khiển (Relay & máy bơm): nhận lệnh từ ESP8266 để kích hoạt hoặc ngắt máy bơm tưới nước.
LED cảnh báo: sẽ sáng nếu môi trường có thông số bất thường (ví dụ: đất quá khô hoặc nhiệt độ quá cao).
Tóm lại, đây là hệ thống phản hồi thời gian thực – tự động giám sát và điều khiển môi trường,
đồng thời cho phép người dùng can thiệp từ xa.
2.2. Thiết kế mạch IoT:
Giải thích chức năng cơ bản của các linh kiện, thiết bị được sử dụng trong mạch 2.2.1. ESP8266
ESP8266 đã tạo ra một cuộc cách mạng trong lĩnh vực IoT (Internet of Things) nhờ khả năng
kết nối WiFi mạnh mẽ, giá thành rẻ và dễ dàng lập trình. Nó được sử dụng rộng rãi trong các ứng
dụng từ điều khiển thiết bị thông minh đến thu thập dữ liệu từ xa.
ESP8266 là một vi điều khiển tích hợp WiFi phổ biến, hỗ trợ lập trình bằng nhiều nền tảng như
Arduino IDE, MicroPython, và Lua. Nhờ vào tính linh hoạt và hiệu suất cao, ESP8266 đã trở
thành một trong những lựa chọn hàng đầu cho các dự án IoT. Thông số kỹ thuật: -Chip Wifi: ESP8266 -USB-to-Serial: CP2102
-Điện Áp Hoạt Động: 3.3V
-Dòng Điện Tiêu Thụ: Tiết kiệm điện với chế độ ngủ sâu, tiêu thụ khoảng 10µA
-Kích Thước: Khoảng 58mm x 31mm x 13mm
-Giao Thức Kết Nối: Hỗ trợ 802.11 b/g/n
-Bộ Nhớ Flash: Thường từ 4MB đến 32MB
-GPIO: 11 chân GPIO có thể lập trình
-Tích Hợp: Hỗ trợ giao thức TCP/IP, UDP, HTTP, MQTT Vi điều khiển
-ESP8266 sử dụng vi điều khiển Tensilica Xtensa LX106 chạy ở xung nhịp lên đến 80 MHz
hoặc 160 MHz, cao hơn nhiều so với ATmega328P của Arduino UNO. ESP8266 không chỉ là
một vi điều khiển mà còn tích hợp WiFi giúp dễ dàng kết nối mạng và điều khiển thiết bị từ xa.
-ESP8266 có 11 chân GPIO (General Purpose Input/Output) có thể lập trình linh hoạt, trong đó
một số chân hỗ trợ PWM, I2C, SPI, UART, và ADC (Analog to Digital Converter). Đặc biệt,
ESP8266 chỉ có 1 chân ADC (ký hiệu A0), khác với Arduino UNO có 6 chân ADC.
-Nguồn cấp cho ESP8266 có thể từ cổng micro USB (đối với các board như NodeMCU, Wemos
D1 Mini) hoặc cấp trực tiếp 3.3V (chú ý không dùng 5V vì ESP8266 không hỗ trợ mức điện áp này). Các chân của ESP8266
Các chân năng lượng: GND (Ground), 3.3V (nguồn cấp chính), Vin (Voltage Input), EN (Enable), RST (Reset). Các cổng ra/vào:
-ESP8266 có ít chân GPIO hơn so với Arduino. Cụ thể, ESP-12E (NodeMCU) có khoảng 11
chân GPIO có thể sử dụng: GPIO0 - GPIO16 (một số chân có chức năng đặc biệt).
-ESP8266 có 1 chân Analog (A0) với độ phân giải 10 bit, đọc giá trị điện áp từ 0V - 1V (có thể
mở rộng lên 3.3V với mạch phân áp).
2.2.2. Cảm biến nhiệt độ, độ ẩm không khí DHT22
Cảm biến DHT22 là một loại cảm biến phổ biến dùng để đo nhiệt độ và độ ẩm không khí. Trong
hệ thống tưới cây tự động, DHT22 đóng vai trò quan trọng trong việc giám sát môi trường, giúp
điều chỉnh chế độ tưới nước phù hợp nhằm đảm bảo sự phát triển tối ưu của cây trồng.
Cảm biến DHT22 đo nhiệt độ (từ -40°C đến 80°C) và độ ẩm không khí (0-100% RH), giúp
theo dõi môi trường một cách chính xác. Thông số kỹ thuật:
Điện áp hoạt động: 3.3V - 5.5V
Dải đo nhiệt độ: -40°C đến 80°C
Sai số nhiệt độ: ±0.5°C
Dải đo độ ẩm: 0% - 100% RH
Sai số độ ẩm: ±2% - 5% RH
Tần số lấy mẫu: 0.5 Hz (mỗi 2 giây đo một lần)
Giao tiếp: Tín hiệu số (Digital Signal) Sơ đồ nối dây DHT22 có 4 chân:
VCC: Kết nối với nguồn 3.3V hoặc 5V
Data: Kết nối với một chân digital của vi điều khiển NC: Không sử dụng
GND: Kết nối với GND của vi điều khiển
Nếu cần, có thể sử dụng điện trở 10kΩ kéo lên giữa chân VCC và Data. 2.2.3. Relay 12V
Module relay là một thiết bị điện tử được sử dụng để điều khiển mạch điện công suất lớn bằng
tín hiệu điện áp thấp. Relay hoạt động như một công tắc điện tử, cho phép đóng ngắt mạch điện
một cách an toàn và hiệu quả.
Cấu tạo và nguyên lý hoạt động:
Cuộn dây (Coil): Khi có dòng điện chạy qua, cuộn dây tạo ra từ trường, hút hoặc đẩy tiếp điểm.
Tiếp điểm (Contacts): Các tiếp điểm cơ khí đóng hoặc mở mạch điện công suất lớn.
Mạch kích: Transistor hoặc IC cách ly quang giúp khuếch đại tín hiệu điều khiển và bảo vệ vi điều khiển.
Điện áp hoạt động: 12VDC. Điều này có nghĩa là relay này cần nguồn điện 12VDC để hoạt
động. Thường được sử dụng với các vi điều khiển như Arduino, vốn hoạt động ở mức điện áp
thấp hơn nên cần mạch chuyển đổi. Tín hiệu kích:
Có thể được kích hoạt bằng tín hiệu mức cao (12V) hoặc mức thấp (0V), lựa chọn thông
qua jumper. Điều này tạo sự linh hoạt trong việc kết nối với các mạch điều khiển khác nhau. Nguồn cấp: 12VDC.
Tiếp điểm đóng ngắt tối đa: 250VAC - 10A hoặc 30VDC - 10A.
Điều này cho thấy khả năng đóng ngắt dòng điện của relay. Nó có thể xử lý dòng điện
xoay chiều lên đến 10A ở điện áp 250VAC hoặc dòng điện một chiều 10A ở điện áp 30VDC.
Kích thước: 52mm × 41mm × 19mm. Ứng dụng:
Thích hợp cho các dự án điện tử sử dụng vi điều khiển 12V.
Điều khiển các thiết bị điện gia dụng như đèn, quạt, động cơ, v.v. Ưu điểm:
Độ bền cao, có thể hoạt động lâu dài mà không bị suy giảm hiệu suất.
Cách ly tốt giữa mạch điều khiển và mạch tải, đảm bảo an toàn cho vi điều khiển.
Dễ dàng sử dụng và tích hợp vào các mạch điện tử.
Tiêu thụ ít điện năng khi điều khiển.
Hoạt động ổn định, có thể đóng ngắt dòng điện lớn một cách đáng tin cậy. 2.2.4. Led:
Báo hiệu hoạt động của hệ thống: LED có thể được sử dụng để báo hiệu rằng hệ thống
tưới cây đang hoạt động, đang tưới nước hoặc cảnh báo.
2.3. Nguyên lý hoạt động:
2.3.1. Tổng quan hệ thống
Hệ thống tưới cây tự động của chúng tôi hoạt động dựa trên nguyên lý thu thập dữ liệu từ môi
trường, xử lý thông tin, và đưa ra quyết định dựa trên các ngưỡng đã được thiết lập sẵn. Hệ thống
bao gồm các thành phần chính: ESP8266 (bộ xử lý trung tâm), cảm biến DHT22 (thu thập thông
số môi trường), module relay (điều khiển máy bơm), LED cảnh báo, và kết nối MQTT (giao tiếp
với giao diện người dùng).
2.3.2. Chi tiết quá trình hoạt động
2.3.2.1. Khởi động và kết nối
● ESP8266 khởi động, thiết lập kết nối với mạng WiFi "O2"
● Sau khi kết nối WiFi thành công, hệ thống thiết lập kết nối bảo mật với MQTT broker HiveMQ qua cổng 8883
● Hệ thống đăng ký (subscribe) các chủ đề MQTT để nhận lệnh điều khiển từ xa: "home/led2", "home/pump"
2.3.2.2. Thu thập và xử lý dữ liệu
● Cảm biến DHT22 thu thập thông tin nhiệt độ và độ ẩm không khí mỗi 5 giây
● Dữ liệu được ESP8266 xử lý để phân loại thành các trạng thái:
Độ ẩm: Thấp (<50%), Bình thường (50-85%), Cao (>85%)
Nhiệt độ: Thấp (<15°C), Bình thường (15-40°C), Cao (>40°C)
2.3.2.3. Quy trình ra quyết định tự động
Điều khiển máy bơm:
○ Khi độ ẩm <50%: Kích hoạt máy bơm (PUMP_PIN = HIGH), cập nhật trạng thái pumpStatus = true
○ Khi độ ẩm >85% hoặc trở về mức bình thường: Tắt máy bơm (PUMP_PIN =
LOW), cập nhật trạng thái pumpStatus = false
○ Gửi thông tin trạng thái qua MQTT đến "home/humidity_status" (0: thấp, 1: bình thường, 2: cao)
Giám sát nhiệt độ:
○ Khi nhiệt độ <15°C: Gửi cảnh báo nhiệt độ thấp qua MQTT đến
"home/temperature_status" (giá trị 0)
○ Khi nhiệt độ >40°C: Gửi cảnh báo nhiệt độ cao qua MQTT đến
"home/temperature_status" (giá trị 2)
○ Khi nhiệt độ trong khoảng 15-40°C: Báo nhiệt độ bình thường qua MQTT (giá trị 1)
2.3.2.4. Hệ thống cảnh báo trực quan LED cảnh báo:
○ Khi máy bơm hoạt động hoặc nhiệt độ bất thường: LED đỏ nhấp nháy với tần số 10Hz (50ms)
○ Khi các thông số bình thường và máy bơm không hoạt động: LED tắt
2.3.2.5. Truyền dữ liệu và giao tiếp
● Toàn bộ dữ liệu cảm biến được gửi định kỳ mỗi 5 giây dưới dạng JSON đến chủ đề "home/sensor_data":
{ "temperature": xx.xx, "humidity": xx.xx, "pump_status": 0/1, "temp_status": 0/1/2, "hum_status": 0/1/2 }
2.3.2.6. Điều khiển từ xa
● Người dùng có thể ghi đè chế độ tự động thông qua giao diện Node-RED
● Lệnh điều khiển được gửi qua MQTT đến chủ đề "home/pump" với giá trị "ON" hoặc "OFF"
● Khi nhận được lệnh điều khiển từ xa, ESP8266 sẽ:
○ Cập nhật trạng thái máy bơm
○ Bật cờ manualControl = true (cho biết hệ thống đang trong chế độ điều khiển thủ công)
○ Phản hồi trạng thái mới qua MQTT 2.4. Mạch vật lý
III. Các ứng dụng cần cài đặt : 3.1. Arduino IDE: +Bước 1: +Bước 2: +Bước 3: +Bước 4: +Bước 5: +Bước 6: +Bước 7: +Bước 8: +Bước 9:
+Bước 10: Download driver CH340 cho ESP8266 link download:
http://www.wch.cn/download/CH341SER_ZIP.html 3.2. HiveMQ
Tạo 1 MQTT broker sử dụng HiveMQ
3.3. Cài broker Mosquitto -
4. Cài đặt MQTT Explorer tại địa chỉ http://mqtt-explorer.com/.
5. Forwarding port để ESP có thể kết nối đến Broker: Chạy các lệnh sau với quyền Admin.
netsh interface portproxy add v4tov4 listenaddress=192.168.1.2 listenport=1883
connectaddress=127.0.0.1 connectport=1883
neth interface portproxy show all 3.4. Node-red
• Download và cài đặt Node.js tại địa chỉ: https://nodejs.org/en/download/
• Sử dụng npm để cài đặt Node-RED toàn cục:
o Chạy lệnh npm install -g node-red • Khởi động Node-Red: o Chạy lệnh: node-red
o Khởi động node-red bằng địa chỉ: http://localhost:1880 hoặc qua địa chỉ IP
127.0.0.1 hoặc IP của máy tính đang chạy node-red.
Giao diện chính của node-red: Cài đặt Dashboard: