1
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN
NĂM HỌC 2021-2022
NGHIÊN CỨU, ỨNG DỤNG IOT
TRONG NÔNG NGHIỆP
Sinh viên thực hiện:
Lê Tiến Tuấn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử
Đinh Công Văn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử
Nguyễn Văn Minh Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử
Nguyễn Văn Đoàn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử
Ngô Văn Giang Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử
Người hướng dẫn: Ts.Trịnh Thị Hương
HÀ NỘI, 2022
2
MỤC LỤC
LỜI MỞ ĐẦU……………………………………………………………………..3
CHƯƠNG 1: TỔNG QUAN VỀ IOT……………………………………………..4
1. Khái niệm và lịch sử ra đời ………………………………………………….4
2. Nhu cầu xã hội về IOT, ứng dụng trong các ngành nghề y tế, công nghiệp…5
3. IOT trong nông nghiệp……………………………………………………….7
4. Lí do chọn đề tài……………………………………………………………...8
5. Mục tiêu, nội dung, phương pháp nghiên cứu………………………………..8
6. Đối tượng và phạm vi nghiên cứu……………………………………………9
7. Kết luận chương 1…………………………………………………………….9
CHƯƠNG 2: NGHIÊN CỨU HỆ THỐNG IOT TRONG NÔNG NGHIỆP……....10
2.1. Lựa chọn mô hình VƯỜN LAN THÔNG MINH………………………….10
2.2. Đặc tính Địa Lan Vòi (Lược Vàng) ………………………………………..11
2.3.Kết luận chương 2…………………………………………………………..12
CHƯƠNG 3: LỰA CHỌN THIẾT BỊ VÀ XÂY DỰNG MÔ HÌNH …………….13
3.1 Khối xử lí trung tâm…………………………………………………………13
3.2 Khối cảm biến……………………………………………………………….18
3.3.Khối thực thi…………………………………………………………………21
3.4.Khối truyền thông……………………………………………………………27
3.5.Khối nguồn…………………………………………………………………..36
3.6.Kết luận chương 3……………………………………………………………39
CHƯƠNG 4: CODE CHƯƠNG TRÌNH VÀ KẾT LUẬN……………………….40
4.1.Code chương trình…………………………………………………………...43
4.2.Kết luận chương trình và phương hướng phát triển…………………………59
TÀI LIỆU THAM KHẢO…………………………………………………………60
3
LỜI MỞ ĐẦU
Ngày ngay trên thế giới với sự bùng nổ của các ngành công nghệ thông tin,
điện, điện tử v.v… Đã làm cho đời sống của con người ngày càng hoàn thiện. Các
thiết bị tự động hóa đã ngày càng được con người áp dụng vào cuộc sống sinh hoạt
cũng như học tập hàng ngày của mỗi con người. Qua báo chí, các phương tiện truyền
thông, internet chúng ta có thể thấy mô hình ứng dụng IOT trong nông nghiệp đã
được đưa vào sử dụng trong đời sống và ngày càng thông minh hơn. Là sinh viên
khoa Điện-Điện tử, với những kiến thức đã học cùng với mong muốn thiết kế một
mô hình nông nghiệp hiện đại hơn, nhóm chúng em phát triển mô hình VƯỜN LAN
THÔNG MINH để phục vụ cho quá trình học tập và làm việc.
4
CHƯƠNG 1: TỔNG QUAN VỀ IOT
1. Khái niệm và lịch sử ra đời
*IOT là gì ?
Internet of Things (IoT) - là mạng kết nối các đồ vật và thiết bị thông qua cảm biến,
phần mềm và các công nghệ khác, cho phép các đồ vật và thiết bị thu thập và trao đổi
dữ liệu với nhau.
Internet vạn vật lan tỏa lợi ích của mạng internet tới mọi đồ vật được kết nối, chứ
không chỉ dừng lại ở phạm vi một chiếc máy tính. Khi một đồ vật được kết nối với
internet, nó sẽ trở nên thông minh hơn nhờ khả năng gửi và/hoặc nhận thông tin và tự
động hoạt động dựa trên các thông tin đó.
Các thiết bị IoT có thể là đồ vật được gắn thêm cảm biến để thu thập dữ liệu về môi
trường xung quanh (giống như các giác quan), các máy tính/bộ điều khiển tiếp nhận dữ
liệu và ra lệnh cho các thiết bị khác, hoặc cũng có thể là các đồ vật được tích hợp cả
hai tính năng trên.
Tiềm năng ứng dụng của internet vạn vật (IoT) trải rộng trên mọi lĩnh vực. Tuy nhiên,
mọi hệ thống IoT hoàn chỉnh đều có đủ 4 bước: thu thập dữ liệu, chia sẻ dữ liệu, xử lý
dữ liệu, và đưa ra quyết định.
*Lịch sử ra đời
 1968: Kỷ nguyên Internet of Things trong sản xuất bắt đầu được xây dựng vào
năm 1968, khi kỹ sư Dick Morley đã chế tạo ra một trong những đột phá quan
trọng trong lịch sử sản xuất: bộ điều khiển lập trình logic PLC. Cho đến thời
điểm hiện tại, thiết bị này vẫn là bộ phận không thể thay thế trong dây chuyền
tự động hóa và các robot công nghiệp trong nhà máy
 1999: Đây là cột mốc quan trọng trong quá trình phát triển IOT. Kevin Ashton,
Giám đốc Phòng thí nghiệm tự động nhận diện thuộc Đại học Massachusetts –
5
Hoa Kỳ đã đưa khái niệm Internet of things (IoT) vào bài diễn thuyết của mình
để mô tả thế hệ cải tiến tiếp theo của công nghệ theo dõi RFID (bộ thiết bị nhận
dạng đối tượng bằng sóng vô tuyến thường được sử dụng nhiều trong siêu thị để
chống trộm cắp). Đây cũng là lần đầu tiên khái niệm IOT được sử dụng.
 2016: Xuất hiện khái niệm IOT trong sản xuất. Khi khái niệm về IoT được sử
dụng nhiều hơn trong sản xuất, một khái niệm khác liên quan cũng được ra đời
– Industry Internet of things – Internet vạn vật trong công nghiệp
+Những dấu mốc quan trọng khác
 1983: Ethernet được tiêu chuẩn hóa
1989: Tim Berners-Lee tạo ra giao thức giao tiếp chung và không trạng thái Hypertext
Transfer Protocol (HTTP)
 1992: TCP/IP cho phép PLCs kết nối với máy tính
 2002: Amazon Web Services phát hành, và điện toán đám mây bắt đầu được đưa vào
sử dụng;
 2006: OPC Unified Architecture (UA) thúc đẩy các kết nối an toàn giữa các thiết bị,
nguồn dữ liệu và các ứng dụng;
 2006: Các thiết bị chuyên dụng dần dần trở nên phổ biến và có giá trị kinh tế hơn. Các
thiết bị cũng được thiết kế và sản xuất với kích thước nhỏ hơn, sử dụng năng lượng pin
hoặc năng lượng mặt trời;
Từ 2010-nay: Các cảm biến có giả các phải chăng hơn, thúc đẩy việc sử dụng rộng rãi
các thiết bị này trong mọi mặt cuả đời sống.
2.Nhu cầu xã hội về IOT và ứng dụng trong các ngành nghề y tế, công
nghiệp.
* Nhu cầu xã hội về IOT:
Các ứng dụng công nghệ đến từ Internet vạn vật (IoT) hứa hẹn mang đến những giá trị
to lớn cho con người. Trong những năm gần đây, chúng ta đã thấy sự xuất hiện của
những hệ thống nhà thông minh hay các thiết bị gia dụng thông minh có điều khiển
bằng giọng nói. Theo số liệu từ hãng nghiên cứu McKinsey, số lượng nhà thông minh
tại Mỹ đã tăng từ 17 triệu năm 2015 lên 29 triệu năm 2017, còn người tiêu dùng tại các
nước Tây Âu dành khoảng 12 tỷ euro để mua các thiết bị thông minh vào năm 2020.
IoT là công nghệ đóng vai trò quan trọng và bắt đầu tác động đến nhiều lĩnh
vực và ngành công nghiệp, từ sản xuất, y tế, truyền thông, năng lượng cho đến
6
ngành nông nghiệp. IoT bao gồm cơ sở hạ tầng truyền thông cơ bản được sử
dụng để kết nối các đối tượng thông minh từ cảm biến, phương tiện, thiết bị di
động đến việc thu thập dữ liệu từ xa dựa trên phân tích thông minh, giao tiếp
người dùng và cách mạng hóa ngành nông nghiệp…
*Ứng dụng IOT trong các lĩnh vực y tế, công nghiệp…
Quản lý đô thị thông minh: Là một trong những ứng dụng gây tò mò nhiều nhất đối
với đông đảo người dân. bởi vì việc quản lý đô thị thông minh thực hiện được : Việc
giám sát thông minh, quản lý năng lượng mặt trời,giám sát việc môi trường, vận
chuyển tự động. Các giải pháp IOT được cung cấp trong các khu vực Smart City giúp
giải đáp các vấn đề của thành phố như giao thông tiếng ồn cũng như ô nhiễm môi
trường,.. giúp thành phố an toàn, xanh, sạch đẹp, hiện đại hơn
Hệ thống bật tắt, bảng điều khiển thông minh trong các thiết bị trong nhà: Thông
thường mọi người thường tắt/bật điện bằng cách nhấn trực tiếp vào công tắc. còn đối
với các hệ thống thông minh thì người dùng chỉ cần cái smart thông minh có kết nối
internet là bạn có thể điều khiển được hệ thống đèn trong hàm điều hòa, nóng
lạnh,cũng như hệ thống bóng đèn thay đổi các màu sắc khác nhau.
Đồ gia dụng thông minh: Hiện nay có rất nhiều các vật dụng trong nhà tích hợp
công nghệ IOT như: Máy đun nước nóng, máy pha cafe, tivi, điều hòa, tủ lạnh,..,
bạn có thể điều khiển các thiết bị vật dụng trong gia đình bạn từ xa nhờ kết nối
internet.
Cửa hàng bán lẻ thông minh: Công nghệ IOT đã đưa vào các cửa hàng bán lẻ
giúp các nhân viên nhận biết chính xác giá thành của các sản phẩm, mặt hàng này
còn hay hết có thể bổ sung được nhanh chóng, kịp thời. Bên cạnh đó nó còn giúp
các nhân viên tư vấn các mặt hàng một cách chính xác nhất, tạo được hiệu quả cao
trong kinh doanh.
Ứng dụng trong sức khỏe: Ứng dụng của IOT trong việc chăm sóc sức khỏe được
kết nối cung các thiết bị y tế thông minh giúp mang lại tiềm năng vô cùng lớn, nó
giúp chăm sóc sức khỏe của chúng ta khỏe mạnh bằng việc đeo các thiết bị có kết
nối.
7
Ô tô thông minh: Giúp nâng cao những trải nghiệm cho người dùng xe ôtô, 1
chiếc ô tô thông minh có thể tối ưu các hoạt động của nó như thông báo khi hết
nhiên liệu, đưa ra các cảnh báo khi có vật tới gần hoặc mới đây nhất là xe điện tự
lái của hãng Tesla…
Nông nghiệp thông minh : Bằng cách triển khai các công nghệ cảm biến và IoT
trong thực tiễn nông nghiệp đã làm thay đổi mọi khía cạnh của phương pháp canh tác
truyền thống. IoT giúp cải thiện các giải pháp về canh tác truyền thống như ứng phó
với hạn hán, tối ưu hóa năng suất, tính phù hợp đất đai, tưới tiêu và kiểm soát dịch
hại.
3.IOT trong nông nghiệp :
– Áp dụng công nghệ khoa học vào toàn bộ quá trình trong nông nghiệp (khép kín):
Cụ thể là áp dụng công nghệ thông tin, điện tử, viễn thông vào các quá trình từ chuẩn
bị giống, đất,… -> trồng trọt – chăn nuôi -> thu hoạch -> chế biến -> bảo quản ->
phân phối -> đến bàn ăn
– Dữ liệu thu thập được phải tạo thành database ở quy mô lớn, để dần tự động hóa
được cả quá trình ( tức là: loại bỏ dần “kinh nghiệm” của con người, chủ động nhận
biết vấn đề và đề xuất cách giải quyết). Nôm na, có thể gọi là trí tuệ nhân tạo, thay con
người đưa ra quyết định.
– Nhà kính – hiện được sử dụng phổ biến ở nước ta, đặc biệt là ở Đà Lạt – nơi có lợi
thế về khí hậu và thời tiết. Nhà kính ban đầu ra đời với mục đích giúp tách ly cây trồng
với điều kiện thời tiết bên ngoài. Dần dần, được bổ xung thêm các hệ thống kiểm soát
khí hậu bên trong nhà kính ( nhiệt độ, độ ẩm, ánh sáng,…) và hệ thống điều khiển tưới.
Hiểu nôm na hai hệ thống như sau:
– Hệ thống điều khiển tưới: Hệ thống bao gồm các thiết bị: đầu tưới nhỏ giọt hoặc
đầu tưới phun sương/mưa, bộ châm phân, bộ điều khiển tưới….. hệ thống giúp tưới
nước/phân một cách tiết kiệm, hiệu quả và đạt năng suất cao. Giúp người nông dân
giảm giá thành chi phí sản xuất.
– Hệ thống điều khiển vi khí hậu: Hệ thống bao gồm các cảm biến nhận biết nhiệt
độ, độ ẩm bên trong ( và bên ngoài) nhà kính, hệ thống quạt thông gió để đối lưu
không khí, hệ thống đèn chiếu sáng để có thể tăng cường ánh sáng khi cần thiết, trạm
8
đo thời tiết để biết các thông số: cường độ bức xạ mặt trời, cảnh báo mưa, tốc độ gió,
lưu lượng mưa,…. Mục đích giúp nhà kính duy trì ở điều kiện mong muốn.
IoT trong nông nghiệp giúp người nông dân giám sát sản phẩm và các điều
kiện canh tác theo thời gian thực. IoT thu thập các thông tin nhanh chóng; có
thể dự đoán trước các vấn đề trước khi chúng xảy ra; đưa ra các quyết định
sáng suốt về cách tránh chúng.
4.Lí do chọn đề tài :
- Nhận thấy việc canh tác nông nghiệp còn thô sơ và dựa vào sức người là chính
nên năng suất và chất lượng các sản phẩm nông nghiệp chưa cao.Vì vậy, nhóm
chúng em với các kiến thức đã được học và trải nghiệm thực tế mong muốn ứng
dụng các quy trình tự động hóa vào nông nghiệp, cụ thể ở đây là mô hình vườn
lan để việc giúp đỡ những người nông dân làm nông nghiệp tốt hơn.
5.Mục tiêu, nội dung, phương pháp nghiên cứu
Mục tiêu:
- Tự động hóa quy trình chăm sóc cây Lan
Báo cáo đề tài gồm các nội dung sau:
Chương 1: Tổng quan về IOT
Chương 2: Nghiên cứu hệ thống IOT nông nghiệp
Chương 3: Lựa chọn thiết bị và xây dựng mô hình
Chương 4: Code chương trình và kết luận
Phương pháp nghiên cứu: Dựa trên nghiên cứu lý thuyết kết hợp nghiên cứu
xây dựng mô hình vườn lan thông minh thực tế.
9
6.Đối tượng và phạm vi nghiên cứu
Đối tượng:
- Chăm sóc Địa Lan Vòi, họ Thài Lài
Phạm vi nghiên cứu:
- Nghiên cứu, ứng dụng các quá trình tự động trong chăm sóc một chậu
Lan, từ đó hướng đến mô hình Vườn Lan thông minh trong nhà kính.
7.Kết luận chương 1
 Đưa ra lý do, mục tiêu, đối tượng, phương pháp, nôi dụng, phạm vi
nghiên cứu
10
CHƯƠNG 2: NGHIÊN CỨU HỆ THỐNG IOT TRONG
NÔNG NGHIỆP
2.1.Lựa chọn mô hình vườn lan thông minh
Cách chăm sóc cây phong lan:
 Ánh sáng
Tùy theo độ tuổi của cây lan mà chúng ta sẽ có những cách chiếu sáng cho phù hợp.
Một số loại lan điển hình ít chịu nắng như Địa Lan Vòi có thể chịu được 30% nắng
5000 – 14000(lm/m2
) .Lan Cattleya chịu được khoảng 50% nắng và lan Vanda lá hẹp
có thể chịu được khoảng 70% nắng( 15.000 - 30000(lm/m2
)).
Việc chiếu sáng ánh nắng còn tùy thuộc vào giai đoạn phát triển. Lan con từ 0 đến 10
tháng bạn chỉ cần chiếu sáng khoảng 50%, Lan nhỡ hơn từ ngoài 12 tháng đến 18
tháng có thể chịu ánh sáng được đến 70% và thời điểm ra hoa cần chiếu sáng nhiều
hơn.
1 lm/m^2=1 lux
 Nước
– Nước tưới lan không quá mặn, phèn hay clo và có pH dao động 5 – 6
– Phong lan sẽ khô héo, giả hành teo lại và lá rụng khi thiếu nước. Thừa nước phong
lan dễ bị thối đọt gây chết cây, rễ có rong rêu tạo điều kiện thuận lợi cho nấm bệnh
phát triển
– Thời điểm tưới thích hợp cho phong lan vào sáng sớm hay chiều mát. Đặc biệt,
không tưới vào buổi trưa khi trời đang nắng gắt
– Sau những trận mưa bất thường, nhất là mưa đầu mùa cần tưới lại ngay để rửa bớt
các chất cặn đọng lại trên thân lá.
– Tưới phun sương hằng ngày khi độ ẩm dưới 40%, đo độ ẩm bằng dụng cụ đo bán
phổ biến trên thị trường.
 Nhiệt độ
11
Nhiệt độ lý tưởng cho lan sinh trưởng và phát triển là 16-24 độ C. Lan sẽ chết khi thời
tiết quá lạnh. Vì vậy, cần duy trì nhiệt độ cho lan trong mức tối ưu để cây phát triển tốt
Các cảm biến sử dụng trong đề tài :
1. Cảm biến nhiệt độ và độ ẩm không khí DHT11
2. Cảm biến độ ẩm của đất HW103
3. Cảm biến cường độ sáng BH1750
2.2.Đặc tính Địa Lan Vòi ( Lược Vàng ):
*Ánh sáng và nhiệt độ
Địa Lan Vòi phát triển tốt trong điều kiện ánh sáng yếu, hạn chế ánh sáng mặt trời trực
tiếp, vì thế bạn có thể đặt cây ở nơi có ánh sáng trung bình hoặc chiếu đèn cho cây
khoảng từ 12 – 16 giờ hằng ngày.
12
Nhiệt độ thích hợp để cho cây sinh trưởng và phát triển là từ 15 – 30 độ C.
Trong suốt mùa thu bạn nên duy trì nhiệt độ dưới 16 độ liên tục trong khoảng 3 tuần
đến khi cụm hoa xuất hiện, và cũng nên lưu ý nhiệt độ trong suốt quá trình ra hoa.
*Độ ẩm
Khi trồng cây Địa Lan Vòi thì bạn nên duy trì độ ẩm từ 50 – 80% để cho cây phát
triển.
nên tưới nước cho cây khoảng 2 – 3 ngày/lần, nên tưới nước vào buổi trưa. Không nên
tưới lên phần lá hoặc hoa của cây sẽ khiến nó bị thối và hư hỏng.
Độ PH trong nước tưới lan cần duy trì ở mức 5,5 đến 6,8 và độ muối trong nước cần
phải dưới 500 ppm
*Phân bón
bón phân NPK với tỉ lệ 14 : 14 : 14. Lưu ý khi khi bón phân thì nên hòa với nước để
tưới giúp cây dễ hấp thụ hơn.
2.3.Kết luận chương 2
- Tìm hiểu cách chăm sóc cây Phong Lan, đặc biệt là Địa Lan Vòi (Lược
Vàng) về các thông số ánh sáng, nhiệt độ, độ ẩm, nước tưới tiêu, phân
bón để từ đó tiến hành lựa chọn thiết bị, xây dựng mô hình cho đề tài.
13
CHƯƠNG 3: LỰA CHỌN THIẾT BỊ VÀ XÂY DỰNG MÔ HÌNH
*LỰA CHỌN THIẾT BỊ:
3.1.Khối xử lí trung tâm:
*Arduino UNO R3
Vi điều khiển ATmega328 họ 8bit
Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA
Điện áp vào khuyên dùng 7-12V DC
Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash
32 KB (ATmega328) với 0.5KB dùng bởi
bootloader
SRAM 2 KB (ATmega328)
14
EEPROM 1 KB (ATmega328)
*Năng lượng:
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài
với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn
bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB. Nếu cấp
nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO.
*Các chân năng lượng:
 GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng
các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được
nối với nhau.
 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.
 3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.
 Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực
dương của nguồn với chân này và cực âm của nguồn với chân GND.
 IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo
ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn
5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
 RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với
việc chân RESET được nối với GND qua 1 điện trở 10KΩ.
*Lưu ý:
 Arduino UNO không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức
cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino
UNO. Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một
miếng nhựa chặn giấy. vì vậy nên dùng nguồn từ cổng USB nếu có thể.
 Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các
thiết bị khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí
có thể làm hỏng board. Điều này không được nhà sản xuất khuyến khích.
15
 Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V
có thể làm hỏng board.
 Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều
khiển ATmega328.
 Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino
UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.
 Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ
làm hỏng vi điều khiển.
 Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino
UNO vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để
truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng.
* Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ
nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ
được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ
nhớ này đâu.
 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai
báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều
bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở
thành thứ mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.
 1KB cho
EEPROM (Electrically Eraseble Programmable Read Only Memory): đây
giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình
vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
16
*Các cổng vào/ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức
điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có
các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì
các điện trở này không được kết nối).
Một số chân digital có các chức năng đặc biệt như sau:
 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive
– RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông
qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial
không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này
nếu không cần thiết
 Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ
phân giải 8bit (giá trị từ 0 → 28
-1 tương ứng với 0V → 5V) bằng hàm
analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở
chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân
khác.
17
 Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức
SPI với các thiết bị khác.
 LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút
Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13.
Khi chân này được người dùng sử dụng, LED sẽ sáng.
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 →
210
-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn
có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp
điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong
khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với
các thiết bị khác.
18
3.2.Khối cảm biến
1. Cảm biến số nhiệt độ, độ ẩm DHT11
Giá thành: 37.000
Công dụng:
- DHT11 là một cảm biến kỹ thuật để cảm nhận nhiệt độ và độ ẩm. Cảm biến này
có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino,
Raspberry Pi, ... để đo độ ẩm và nhiệt độ ngay lập tức.
- DHT11 là một cảm biến độ ẩm tương đối. Để đo không khí xung quanh, cảm
biến này sử dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung.
- DHT11 Là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu
thông qua giao tiếp 1-wire (giao tiếp digital 1-wire truyền dữ liệu duy nhất).
Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính
xác mà không cần phải qua bất kỳ tính toán nào.
Thông số kỹ thuật
 Điện áp hoạt động: 3V - 5V (DC)
 Dải độ ẩm hoạt động: 20% - 90% RH, sai số ±5%RH
19
 Dải nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C
 Khoảng cách truyển tối đa: 20m
 Dòng điện sử dụng lớn nhất : 2.5mA
 Tần số lấy mẫu tối đa 1HZ
2. Cảm biến cường độ sáng BH1750
Giá thành: 35.000đ
Công dụng:
- Cảm biến cường độ ánh sáng BH1750 được sử dụng để đo cường độ ánh sáng
theo đơn vị lux, càm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là
giá trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính
toán nào thông qua giao tiếp I2C .
Thông số kỹ thuật:
 Nguồn: 3 > 5VDC
 Giao tiếp: I2C
 Khoảng đo: 1 > 65535 lux
 Kích cỡ: 21*16*3.3mm
Một số ví dụ về độ rọi của ánh sáng:
20
- Vào buổi tối : 0.001 0.02 Lux
- Ánh trăng : 0.02 0.3 lux
- Trời nhiều mây trong nhà : 5 50 lux
- Trời nhiều mây ngoài trời : 50 500 lux
- Trời nắng trong nhà : 100 1000 lux
3.Cảm biến độ ẩm đất
Cảm biến độ ẩm đất Soil Moisture Sensor thường được sử dụng trong các mô hình
tưới nước tự động, vườn thông minh,..., cảm biến giúp xác định độ ẩm của đất qua
đầu dò và trả về giá trị Analog, Digital qua 2 chân tương ứng để giao tiếp với Vi điều
khiển để thực hiện vô số các ứng dụng khác nhau.
Thông số kỹ thuật:
 Điện áp hoạt động: 3.3~5VDC
 Tín hiệu đầu ra:
21
o Analog: theo điện áp cấp nguồn tương ứng.
o Digital: High hoặc Low, có thể điều chỉnh độ ẩm mong muốn
bằng biến trở thông qua mạch so sánh LM393 tích hợp.
 Kích thước: 3 x 1.6cm.
Sơ đồ chân:
VCC 3.3V ~ 5V
GND GND của nguồn ngoài
DO Đầu ra tín hiệu số (mức cao hoặc mức thấp)
AO Đầu ra tín hiệu tương tự (Analog)
3.3.Khối thực thi
1. Module thời gian thực RTC DS1302
-Giá thành: 10.000đ
Công dụng:
- Module Thời Gian Thực RTC DS1302 là IC thời gian thực chính xác với
thạch anh tích hợp sẵn có khả năng điều chỉnh nhiệt. IC có đầu vào cho pin
riêng, tách biệt khỏi nguồn chính đảm bảo cho việc giữ thời gian chính xác.
Thạch anh tích hợp sẵn giúp tăng độ chính xác trong thời gian dài hoạt động và
giảm số lượng linh kiện cần thiết khi làm board.
- Thời gian trong IC được giữ ở dạng: giờ, phút, giây, ngày, thứ, tháng, năm. Các
tháng có ít hơn 31 ngày sẽ tự động được điều chỉnh, các năm Nhuận cũng được
chỉnh đúng số ngày. Thời gian có thể hoạt động ở chế độ 24h hoặc 12h AmPM.
IC còn có chức năng báo động, có thể cài đặt 2 thời gian báo và lịch, có tín hiệu
ra là xung vuông. Giao tiếp với IC được thực hiện thông qua I2C bus.
- Trong chip có mạch điện áp chuẩn dùng để theo dõi trạng thái của nguồn VCC,
phát hiện lỗi nguồn, tự động chuyển nguồn khi có vấn đề. Có tín hiệu Reset
22
xuất ra cho mạch ngoài, MCU khi nguồn điện phục hồi trạng thái. Ngoài ra
trong IC còn có sẵn cảm biến nhiệt độ, có độ chính xác là ± 3°C.
THÔNG SỐ MODULE THỜI GIAN THỰC RTC DS1302
 Size: dài 38mm, rộng 22mm, cao 14mm
 Khối lượng 8g
 Điện thế hoạt động 3.3 – 5.5V
 Clock: high-precision clock on chip DS3231
 Thông tin Thời gian: giờ, phút, giây, ngày, thứ, tháng, năm, đến 2100.
 Cảm biến nhiệt trên IC có độ chính xác ± 3 ℃
 I2C bus có tốc độ tối đa 400Khz
2. Máy bơm mini DC 5V
Máy Bơm mini DC 5V có kích thước rất nhỏ gọn, sử dụng điện áp 3~5VDC, vì thuộc
dạng bơm chìm nên động cơ có khả năng chống nước và hoạt động khi ngâm chìm trong
nước, ứng dụng để bơm nước, dung dịch trong các thiết kế nhỏ, mô hình tưới cây, hồ
cá,…
23
THÔNG SỐ KỸ THUẬT
 Điện áp: DC3-5V
 Dòng điện: 100-200mA
 Đường kính ống : 8mm
 Lưu lượng 1.2-1.6L / phút
 Trọng lượng: 28 gram
Đặc điểm của Máy Bơm mini DC 5V
Khác với máy bơm hơi 12V được thiết kế dưới dạng thiết bị có tay quai cầm, trụ đứng
vững thì thiết kế của Máy Bơm mini DC 5V khá khiêm tốn có phần thô sơ. Người dùng
còn tưởng Máy Bơm mini DC 5V là một dạng motor được lấy từ các thiết bị khác trong
nhà. Điều này là hoàn toàn có cơ sở, bởi lẽ, máy bơm hơi mini này sử dụng động cơ
motor từ 5-6V.
Máy Bơm mini DC 5V là loại máy bơm hơi dùng pin nên rất bền, nhẹ, điện êm, không
gây ồn ào, dòng điện trong máy là 0.06A (60mA) ở 12v. Khi sử dụng thiết bị này với
nguồn điện 220V, bạn cần sử dụng một adapter 5V-1A để chuyển đổi dòng điện.
3.Led hắt 3 led 5054 - 7211 samsung màu trắng
24
Đèn LED hắt 3 bóng 5054 loại dài được các nhà Quảng Cáo tin dùng áp dụng rộng
rãi cho các khâu Quảng Cáo như: hắt sáng chữ nổi LED, Chiếu sáng Hộp đèn LED,
Làm đường viền Trang Trí, hắt trần nhà và các chi tiết kiến trúc khác… trang trí nội,
ngoại thất. giúp cho không gian có tính thẩm mỹ cao, sang trọng, bắt mắt.
Thông số kỹ thuật
 LED hắt 3 bóng Samsung
 Chip LED: 5054 mắt LED lớn siêu sáng
 Kích thước Module : 75×12 mm
 Điện áp: 12V-DC
 Chống thấm nước IP 65
 Góc nhìn rộng 120º do vậy độ tỏa lớn
 Ánh sáng tốt, trung thực, độ bền cao
 Mặt sau của LED hắt 3 bóng có băng dính 2 mặt 3M nên dễ dàng cố định
Module LED
 Dây điện dạng tròn đồng mạ niken dẫn diện tốt, phân biệt 2 màu âm (-)
dương (+) rõ ràng ko nhầm lẫn và tuốt dây dễ dàng không bị đứt như dây
dẹp nên việc thi công cực kỳ đơn giản.
25

4. Module Relay 2-Channel 5V
Module Relay 2-Channel 5V được dùng nhiều trong các ứng dụng đóng ngắt các thiết
bị tiêu thụ dòng điện lớn (<10A). Module có thể đóng ngắt cùng lúc hai kênh bằng tín
hiệu điều khiển ( với mức điện áp 3V3 hoặc 5V) từ các vi điều khiển khác nhau như:
Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logic TTL, đồng thời module
được cách ly bằng optocoupler giúp bảo vệ tốt hơn cho các vi điều khiển.
Module được kết nối với các board điều khiển bằng 4 chân header như sau:
 VCC cung cấp nguồn cho các opto.
 GND kết nối với GND của board điều khiển.
 IN1 và IN2 dùng để điều khiển relay 1 và relay 2, tích cực mức thấp
Ngoài ra còn một 3 chân header được dùng để cấp nguồn cho relay, header này sẽ có
một jumper dùng để kết nối chân VCC với chân RY_VCC mục đích dùng chung
nguồn VCC (5V) từ header 4 chân cho relay, thông thường jumper được nối lại với
nhau. Nếu như muốn cách ly tín hiệu điều khiển với nguồn cấp cho relay thì có thể bỏ
jumper này ra và cấp nguồn riêng 5V cho chân RY_VCC.
Thông số kỹ thuật
 Đóng ngắt được dòng điện cao: AC250V 10A, DC30V 10A
 2 led báo trạng thái relay
 Điện áp điều khiển: 5V
26
 Mạch cách ly bằng opto
 Kích thước: 50x45 mm
5.QUẠT TẢN NHIỆT 12V (40X40X10MM)
• Quạt mini DC 40mm mới 100%, chất lượng cao.
• Nó có thể sử dụng cho nhiều sản phẩm hơn để làm mát.
Ưu việt:
1. chất lượng cao.
2. Thương hiệu mới.
3. Lưu lượng gió lớn.
4. Độ ồn thấp.
5. Tuổi thọ cao.
Riêng:
• Kích thước: 40X40X10mm
27
• Đầu nối: 2pin (2.0)
• Điện áp định mức (Tùy chọn): DC 12V
3.4.Khối truyền thông
1.Board mạch thu phát wifi ESP8266 NodeMCU V1.0 CP2102
Thông số kỹ thuật
Chip: ESP8266EX SoC Wifi
Băng tần WiFi: 2.4 GHz chuẩn 802.11 b/g/n
Phiên bản firmware: NodeMCU V1.0
Điện áp hoạt động: 3.3V
Điện áp vào: 5V
28
Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân
D0)
Số chân Analog Input: 1 (điện áp vào tối đa 3.3V)
Bộ nhớ Flash: 4MB
Chip giao tiếp UART: CP2102
Giao tiếp: Cable Micro USB
Hỗ trợ bảo mật: WPA/WPA2
Tích hợp giao thức TCP/IP
Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua
NodeMCU V1.0 được phát triển dựa trên module wifi ESP-12F dễ dàng kết nối WiFi
với một vài thao tác đơn giản. Tích hợp IC giao tiếp CP2102, giúp dễ dàngkết nối với
máy tính thông qua Micro USB để nạp chương trình và debug. Trên mạch có sẳn nút
nhấn, đèn led để tiện cho việc lập trình và theo dõi board mạch.
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để
tạo thành project, sản phẩm mẫu một cách nhanh chóng.
Sơ đồ chân :
29
2.Kết nối ESP8266 và App Blynk
*Giới thiệu về blynk
Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép bạn có thể dễ
dàng tương tác với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberry
qua Internet.
Blynk App là một bảng điều khiển kỹ thuật số cho phép bạn có thể xây dựng giao diện
đồ họa cho dự án của mình bằng cách kéo và thả các widget khác nhau mà nhà cung
cấp thiết kế sẵn.
Blynk không bị ràng buộc với một số bo hoặc shield cụ thể. Thay vào đó, nó hỗ trợ
phần cứng mà bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết
với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn kết nối và sẵn
sàng cho các dự án IoT.
Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh và
phần cứng. Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng
của mình. Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có
thể được khởi chạy trên Raspberry Pi.
30
Thư viện Blynk – dành 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à lệnh đi.
Mỗi khi bạn nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian
của đám mây Blynk, và tìm đường đến phần cứng của bạn.
Mọi thứ bạn cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị,
hiển thị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật
chương trình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy
cập, cảnh báo, tự động hóa và nhiều thứ khác hơn…
*Đặc tính:
 API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị
được hỗ trợ
 Kết nối với đám mây bằng cách sử dụng:
o Wifi
o Bluetooth và BLE
o Ethernet
o USB (Nối tiếp)
o GSM
o …
 Bộ Widget dễ sử dụng
 Thao tác ghim trực tiếp mà không cần viết mã
 Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo
 Theo dõi dữ liệu lịch sử qua tiện ích SuperChart
 Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget
 Gửi email, tweet, push notification…
3.Giao tiếp nối tiếp UART giữa ESP8266 và Arduino Uno/Mega
*Nhược điểm của ESP8266 là khá ít chân, do đó để mở rộng chân ra kết nối nhiều cảm
biến hơn thì chúng ta cần phải kết nối thêm với chip ADC hoặc là giao tiếp qua
Master-Slave của các chuẩn UART, SPI, I2C. Hôm nay mình sẽ hướng dẫn cho các
31
bạn cách để gửi dữ liệu từ Arduino Uno/Mega sang ESP8266 thông qua những chuẩn
giao tiếp kể trên.
32
*UART
Có 2 cách để giao tiếp UART giữa ESP8266/NodeMCU: 1 là giao tiếp bằng cách code
trên cả Uno/Mega và ESP8266/NodeMCU, 2 là chỉ code trên Uno/Mega, trên
ESP8266/NodeMCU flash thẳng firmware AT Command.
*Sơ đồ kết nối:
4.Phương thức truyền dữ liệu không dây
1.Wifi
Wifi là hệ thống mạng không dây sử dụng sóng vô tuyến, cũng giống như
điện thoại di đông, truyền hình và radio. Với Wi-Fi, mạng cục bộ (LAN) được sử
33
dụng để cung cấp truy cập internet trong một phạm vi giới hạn nhất định(phạm vi
ngắn) nhưng Wifi có thể gửi thông tin tới Internet thông qua kết nối hữu tuyến
ethernet. Băng thôngcủa nó có tốc độ cao(2Mhz) nhưng tốn năng lượng.
-Một số thông tin kỹ thuật về wifi:
+Tần số: 2.5GHz or 5 GHz
+Phạm vi: ~100 m
+Dữ liệu truyền được: 11~150 Mbps
2.Cellular
Cellular lựa chọn đường truyền dữ liệu thông qua mạng điện thoại
di động GPRS/3G/LTE là một lựa chọn sáng suốt nếu yêu cầu khoảng cách truyền
thông dài, hoặc không bị giới hạn bởi khoảng cách địa lý.Do truyền dữ liệu đi xa
nên tốn năng
lương là điều tất yếu. Hiện nay, các thiết bị/các điểm đầu cuối trong công nghiệp đều
được hỗ trợ tích hợp các cổng giao tiếp vật lý theo chuẩn như: RS232 , RS485, RS422
hay Ethernet. Các phương tiện truyền thông qua mạng di động đều hỗ trợ đầu vào là các
cổng Serial hay Ethernet nên việc tích hợp giải pháp truyền thông không dây không còn
khó khăn hay bị giới hạn bởi yếu tố khách quan nào khác.
*Một số thông tin kỹ thuật về Cellular:
+Tần số: 900/1800/1900/2100MHz
+Phạm vi: 35km max for GSM; 200km max for HSPA
34
+Dữ liệu truyền được:(typical download): 35-170kps (GPRS), 120-
384kbps(EDGE), 384Kbps- 2Mbps (UMTS), 600kbps-10Mbps (HSPA), 3-
10Mbps (LTE) .
*Giao thức truyền thông (MQTT)
MQTT là một giao thức nhắn tin gọn nhẹ được thiết kế để liên lạc nhẹ giữa
các thiết bị và hệ thống máy tính. MQTT được thiết kế ban đầu cho các mạng
SCADA, cáckịch bản sản xuất và băng thông thấp, MQTT đã trở nên phổ biến gần
đây do sự phát triển của Internet-of-Things (IoT).
Đây là một giao thức truyền thông điệp (message) theo mô hình
publish/subscribe (publish – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và
có khả năng hoạt động
trong điều kiện đường truyền không ổn định. Kiến trúc mức cao (high-level) của
MQTTgồm 2 phần chính là: Broker và Clients.
Broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến
từ client. Nhiệm vụ chính của broker là nhận mesage từ publisher, xếp các message
theo hàng đợi rồi chuyển chúng tới một địa chỉ cụ thể. Nhiệm vụ phụ của broker
là nó có thểđảm nhận thêm một vài tính năng liên quan tới quá trình truyền thông
như: bảo mật message, lưu trữ message, …
Client thì được chia thành 2 nhóm là publisher và subscriber. Client là các
software components hoạt động tại edge device nên chúng được thiết kế để có thể
hoạtđộng một cách linh hoạt (lightweight). Client chỉ làm ít nhất một trong 2 việc
là publishcác message lên một topic cụ thể hoặc subscribe một topic nào đó để
nhận message từ topic này.
35
MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có: MAC
OS, Windows, LInux, Androids, iOS…
Chúng ta có thể tưởng tượng broker giống như một sạp báo. Publisher là
các tòasoạn báo. Tòa soạn in báo và chuyển cho sạp báo. Người đọc báo đến sạp
báo, chọn tờ báo mình cần đọc (subscriber).
Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có
độ trễ cao nên nó làmột giao thức lý tưởng cho các ứng dụng M2M (Machine to
machine)
*Ưu điểm của MQTT:
 Chuyển thông tin hiệu quả hơn
 Tăng khả năng mở rộng
 Giảm đáng kể tiêu thụ băng thông mạng
 Giảm tốc độ cập nhật xuống giây
 Rất phù hợp cho điều khiển và do thám
36
 Tối đa hóa băng thông có sẵn
 Chi phí cực nhẹ
 Rất an toàn với bảo mật dựa trên sự cho phép
 Được sử dụng bởi ngành công nghiệp dầu khí, Amazon, Facebook và các
doanhnghiệp lớn khác
 Tiết kiệm thời gian phát triển
3.5.Khối nguồn
1. Nguồn Dc 12v - 2a
Sản phẩm nguồn 1 chiều Dc 12v-2a Dùng để cấp nguồn cho thiết bị chạy điện 12v.
Nguồn vào : 220v Nguồn ra: 12v-2a SẢN PHẨM CÓ THIẾT KẾ ĐÈN BÁO TÍN
HIỆU NGUỒN VÀ KHUYÊN TREO CHỐNG NƯỚC.
37
2. Module chuyển đổi nguồn dự phòng 5-48VDC YX850
Thông số kỹ thuật:
 Model: YX850
 Điện áp hoạt động: 5 – 48VDC
 Dòng max ra tải: 10A
 Kích thước sản phẩm: 61 x 30 x 18mm (dài x rộng x cao)
 Trọng lượng sản phẩm: 24g
3. Mạch giảm áp đầu ra 5V
Thông số kỹ thuật:
 Điện áp làm việc: DC 9V – 36V ;
 Điện áp đầu ra: 5.2V / 5A / 25W
 Công suất đầu ra:
o Đầu vào 9 ~ 24V : Đầu ra 5.2V / 6A / 30W
o Đầu vào 24 ~ 32V : đầu ra 5.2V / 5A / 25W
38
o Đầu vào 32 ~ 36V : đầu ra 5,2V / 3,5A / 18W
*XÂY DỰNG MÔ HÌNH :
- Sơ đồ đấu nối phần cứng các thiết bị trong Vườn Lan Thông Minh
39
*Kết luận chương 3
-Nắm được lí thuyết 1 số phương thức, giao thức truyền thông cơ bản.
-Nắm rõ được các thiết bị sử dụng trong mô hình vườn Lan thông minh và các
thông số kĩ thuật, ứng dụng.
-Sơ đồ đấu nối phần cứng các thiết bị
40
CHƯƠNG 4: Code chương trình và kết luận
*Giao diện trên Web Blynk.Console
41
*Giao diện trên App Blynk chế độ MAN(điều khiển bằng tay)
42
*Giao diện trên App Blynk chế độ AUTO(tự động)
43
4.1.Code chương trình:
*Code nodemcu esp8266
#include <ArduinoJson.h>
#include <SoftwareSerial.h>
#define BLYNK_TEMPLATE_ID "TMPLCKaGjlz5"
#define BLYNK_DEVICE_NAME "IOT"
#define BLYNK_FIRMWARE_VERSION "0.1.0"
#define BLYNK_PRINT Serial
//#define BLYNK_DEBUG
#define APP_DEBUG
#include "BlynkEdgent.h"
const byte Rx= 12;
const byte Tx =14;
SoftwareSerial myserial=SoftwareSerial(Rx,Tx); //Rx-Tx
void sendata(String(thamso1),String(thamso2),String(thamso3));
void control_pump(void);
void read_esp(void);
void xulyjson(String Data);
void send_lenh(void);
String nhiet_do_nhan="";
String do_am_nhan="";
String cd_sang_nhan="";
String do_am_dat_nhan="";
String DataUart="";
String DataSend= "";
String Datapump="";
String Dataled= "";
String Dataquat= "";
int trang_thai_bom;
int trang_thai_led;
int trang_thai_quat;
int led;
int pump1;
44
int quat;
int nhiet_do_set;
int do_am_dat_set;
long t = 0;
int che_do;
/////////////////////////////////////////
void setup()
{
myserial.begin(9600);// 8-8,7-9
Serial.begin(9600);
delay(100);
BlynkEdgent.begin();
t= millis();
Blynk.syncAll();
BLYNK_CONNECTED ();
}
BLYNK_WRITE(V4)
{
pump1 = param.asInt();
if(che_do==0)
{
if(pump1==1 && trang_thai_bom==0)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"pump":"1"}");
Serial.println("{"pump":"1"}");
myserial.flush();
delay(100);
}
else if(pump1==0 && trang_thai_bom==1)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"pump":"0"}");
Serial.println("{"pump":"0"}");
45
myserial.flush();
delay(100);
}
}
}
BLYNK_WRITE(V5)
{
nhiet_do_set = param.asInt();
delay(100);
if(che_do==1)
{
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
}
BLYNK_WRITE(V6)
{
led = param.asInt();
if(che_do==0)
{
if(led==1 && trang_thai_led==0)
{
myserial.println("{"led":"1"}");
Serial.println("{"led":"1"}");
myserial.flush();
delay(100);
}
else if(led==0 && trang_thai_led==1)
{
myserial.println("{"led":"0"}");
Serial.println("{"led":"0"}");
myserial.flush();
delay(100);
}
}
}
BLYNK_WRITE(V7)
{
46
che_do= param.asInt();
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
BLYNK_WRITE(V8)
{
do_am_dat_set = param.asInt();
delay(100);
if(che_do==1)
{
sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set));
}
}
BLYNK_WRITE(V9)
{
quat = param.asInt();
if(che_do==0)
{
if(quat==1 && trang_thai_quat==0)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"quat":"1"}");
Serial.println("{"quat":"1"}");
myserial.flush();
delay(100);
}
else if(quat==0 && trang_thai_quat==1)
{
myserial.println("{"chedo":"0"}");
Serial.println("{"chedo":"0"}");
myserial.println("{"quat":"0"}");
Serial.println("{"quat":"0"}");
myserial.flush();
delay(100);
47
}
}
}
//////////////////////////////////////////
void loop() {
read_esp();
}
///////////////////////////////////////////////////
void read_esp(void)
{
// kiểm tra cổng RX có tín hiệu hay ko
while (myserial.available())
{
//đọc
char InChar = (char)myserial.read();
if(InChar !='n')
{
DataUart += InChar;
}
else
{
// xử lí Json
Serial.println(DataUart);
xulyjson(String(DataUart));
DataUart = "";
}
}
}
//////////////////////////////////////
void xulyjson(String Data)
{
const size_t capacity = JSON_OBJECT_SIZE(2) + 256;
DynamicJsonDocument JSON(capacity);
DeserializationError error = deserializeJson( JSON, Data);
48
if(error)
{
Serial.println("json loi");
return;
}
else
{
nhiet_do_nhan= (String)JSON["b"];
do_am_nhan= (String)JSON["a"];
cd_sang_nhan=(String)JSON["d"];
do_am_dat_nhan=(String)JSON["c"];
Datapump= (String)JSON["e"];
Dataled= (String)JSON["f"];
Dataquat= (String)JSON["g"];
BlynkEdgent.run();
float vau3,vau1,vau2,vau0;
vau3=cd_sang_nhan.toFloat();
vau1=nhiet_do_nhan.toFloat();
vau2= do_am_dat_nhan.toFloat();
vau0=do_am_nhan.toFloat();
trang_thai_bom= Datapump.toInt();
trang_thai_led= Dataled.toInt();
trang_thai_quat= Dataquat.toInt();
Blynk.virtualWrite(V4,trang_thai_bom);
Blynk.virtualWrite(V9,trang_thai_quat);
Blynk.virtualWrite(V6,trang_thai_led);
Blynk.virtualWrite(V3,vau3);
Blynk.virtualWrite(V2,vau2);
Blynk.virtualWrite(V1,vau1);
Blynk.virtualWrite(V0,vau0);
JSON.clear();
}
}
/////////////////////////////////////
void sendata(String(thamso1),String(thamso2),String(thamso3))
{
49
//
myserial.print("{"chedo":"");
myserial.print(thamso1);
myserial.print("", "T":"");
myserial.print(thamso2);
myserial.print("", "H":"");
myserial.print(thamso3);
myserial.println(""}");
}
50
*Code Arduino UNO R3
#include <ArduinoJson.h>
#include <ThreeWire.h>
#include <RtcDS1302.h>
#include<DHT.h>
#include <SoftwareSerial.h>
#include <BH1750.h>
#include <Wire.h>
#define sensor A3
const byte Rx= 8;
const byte Tx =9;
SoftwareSerial myserial=SoftwareSerial(Rx,Tx); //Rx-Tx
ThreeWire myWire(13, 12, 3); // IO, SCLK, CE
RtcDS1302<ThreeWire> Rtc(myWire);
const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino
const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và
DHT2
DHT dht(DHTPIN, DHTTYPE);
BH1750 lightMeter; // cường độ sáng
int bom = 7;
int led = 6;
int quat= 5;
int trang_thai_bom;
int trang_thai_led;
int trang_thai_quat;
int pump_nhan;
int led_nhan;
int quat_nhan;
int che_do;
51
int nhiet_do_dat;
int do_am_dat_dat;
float do_am_thuc; //a
float nhiet_do_thuc; //b
float lux_thuc; //c
float do_am_dat_thuc;//d
String DataSend= "";
String Dataesp = "";
void Json(String thamso1, String thamso2, String thamso3, String thamso4 , String
thamso5,String thamso6);
void xulyjson(String Data);
void chuongtrinhcambien(void);
void read_uno(void);
long t = 0;
// ham khoi tao
void setup() {
// khởi tạo cổng uart chính thống
myserial.begin(9600);// khởi tạo cổng uart => tx,rx(0,1) tốc độ truyền 9600
Serial.begin(9600);
Wire.begin(); // cường độ sáng SCL and SDA pins using a5 ,a4
dht.begin(); // Khởi động cảm biến
lightMeter.begin();
t= millis();
pinMode(bom, OUTPUT);
pinMode(led, OUTPUT);
pinMode(sensor, INPUT);
pinMode(quat, OUTPUT);
Serial.print("compiled: ");
Serial.print(__DATE__);
Serial.println(__TIME__);
Rtc.Begin();
RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
printDateTime(compiled);
Serial.println();
}
//////////////////////ham chinh
void loop() {
52
//
RtcDateTime now = Rtc.GetDateTime();
int gio = now.Hour();
//Serial.println(gio);
// truyền dữ liệu
if(che_do==0)
{
if( pump_nhan == 1)
{
digitalWrite(bom, LOW);
trang_thai_bom=1;
}
if( pump_nhan == 0 )
{
digitalWrite(bom, HIGH);
trang_thai_bom=0;
}
if( led_nhan==0)
{
digitalWrite(led, HIGH);
trang_thai_led=0;
}
if(led_nhan==1 )
{
digitalWrite(led, LOW);
trang_thai_led=1;
}
if( quat_nhan==1)
{
53
// bật quat
digitalWrite(quat, HIGH);
trang_thai_quat=1;
}
if( quat_nhan==0 )
{
// tắt quat
digitalWrite(quat, LOW);
trang_thai_quat=0;
}
///////////
}
if(che_do==1)
{
digitalWrite(led,HIGH);
trang_thai_led=0;
if( lux_thuc >= 5000 && gio >=5 && gio <=18 )
{
digitalWrite(led,HIGH);
trang_thai_led=0;
}
if( lux_thuc <= 5000&& gio >=5 && gio <=18 )
{
digitalWrite(led, LOW);
trang_thai_led=1;
}
///////////
if( do_am_dat_thuc <= do_am_dat_dat)
{
// bật bơm
digitalWrite(bom, LOW);
54
trang_thai_bom=1;
}
if( do_am_dat_thuc >= do_am_dat_dat )
{
// tắt bơm
digitalWrite(bom, HIGH);
trang_thai_bom=0;
}
if( nhiet_do_thuc>= nhiet_do_dat)
{
// bật quat
digitalWrite(quat, HIGH);
trang_thai_quat=1;
}
if( nhiet_do_thuc<= nhiet_do_dat )
{
// tắt quat
digitalWrite(quat, LOW );
trang_thai_quat=0;
}
}
if(millis()-t >= 1500)
{
sendata();
t= millis();
}
read_uno();
}
/////////////////////////////
void sendata(void)
{
55
chuongtrinhcambien();
Json(String(do_am_thuc) , String(nhiet_do_thuc) , String(lux_thuc) , String
(do_am_dat_thuc) , String(trang_thai_bom), String(trang_thai_led), String
(trang_thai_quat));
//myserial.flush();
}
/////////////////hàm gửi dữ liệu
void Json(String thamso1, String thamso2, String thamso3, String thamso4 , String
thamso5, String thamso6, String thamso7)
{
DataSend = "";
// cấu trúc của json {"A":""gia tri cua A"", "B":"gia tri cua B", ...................}
DataSend = "{"a":"" + String(thamso1) + "", " +
""b":"" + String(thamso2) + "", " +
""d":"" + String(thamso3) + "", " +
""e":"" + String(thamso5) + "", " +
""f":"" + String(thamso6) + "", " +
""g":"" + String(thamso7) + "", " +
""c":"" + String(thamso4) + ""} " ;
// gửi dữ liệu về phần mềm
myserial.println(DataSend);
Serial.println(DataSend);
myserial.flush();
}
/////////////// ngat uart
void read_uno(void)
{
// kiểm tra cổng RX có tín hiệu hay ko
while (myserial.available())
{
//đọc
char InChar = (char)myserial.read();
if(InChar !='n')
{
Dataesp += InChar;
56
}
else
{
// xử lí Json
xulyjson(String(Dataesp));
myserial.println(Dataesp);
Serial.println(Dataesp);
myserial.flush();
Dataesp = "";
}
}
}
void xulyjson(String Data)
{
const size_t capacity = JSON_OBJECT_SIZE(2) + 256;
DynamicJsonDocument JSON(capacity);
DeserializationError error = deserializeJson( JSON, Data);
if(error)
{
Serial.println("json loi");
return;
}
else
{
String t= JSON["T"];
nhiet_do_dat=t.toInt();
String cd= JSON["chedo"];
che_do=cd.toInt();
String h= JSON["H"];
do_am_dat_dat=h.toInt();
sendata();
if(JSON["pump"] == "0")
{
pump_nhan=0;
trang_thai_bom=0;
sendata();
57
}
if(JSON["pump"] == "1")
{
pump_nhan=1;
trang_thai_bom=1;
sendata();
}
if(JSON["led"] == "0")
{
led_nhan=0;
trang_thai_led=0;
sendata();
}
if(JSON["led"] == "1")
{
led_nhan=1;
trang_thai_led=1;
sendata();
}
if(JSON["quat"] == "0")
{
quat_nhan=0;
trang_thai_quat=0;
sendata();
}
if(JSON["quat"] == "1")
{
quat_nhan=1;
trang_thai_quat=1;
sendata();
}
JSON.clear();
}
}
/////////////////////////////////////
void chuongtrinhcambien(void)
{
58
do_am_thuc = dht.readHumidity(); //Đọc độ ẩm
nhiet_do_thuc = dht.readTemperature(); //Đọc nhiệt độ
do_am_dat_thuc = analogRead(sensor); // độ ẩm đất
do_am_dat_thuc = map(do_am_dat_thuc, 0, 1023, 100, 0);
lux_thuc = lightMeter.readLightLevel(); // cường độ sáng
}
////////////////////////////////////
#define countof(a) (sizeof(a) / sizeof(a[0]))
void printDateTime(const RtcDateTime& dt)
{
char datestring[50];
snprintf_P(datestring,
countof(datestring),
PSTR("%02u %02u/%02u/%04u %02u:%02u:%02u"),
dt.DayOfWeek(),
dt.Day(),
dt.Month(),
dt.Year(),
dt.Hour(),
dt.Minute(),
dt.Second() );
Serial.println(datestring);
}
59
4.2.Kết luận và hướng phát triển
*Kết luận:
- Đề tài NCKH SV “Nghiên cứu,ứng dụng Iot trong nông nghiệp ” đã hoàn thành nhiệm
vụ thiết kế hệ thống IoT trong hỗ trợ việc chăm sóc Lan Lược Vàng (Địa Lan Vòi) bằng
hệ thống tự động tưới nước cho lan theo nhiệt độ, độ ẩm,ánh sáng môi trường ,đồng thời
tổng hợp và xử lý các thông tin để vận hành hệ thống qua App Blynk.
- Thực hiện lắp đặt thành công mô hình phần cứng và chạy thử thành công.
- Thử nghiệm thu thập thông tin môi trường từ cảm biến, và vận hành hệ thống hoạt
động với độ tin cậy và chính xác cao.
- Nhóm đã cố gắng hoàn thiện mô hình một cách tốt nhất, nhưng kiến thức và trình độ
hạn chế và chưa vận hành hệ thống ngoài môi trường thực tế nên còn nhiều thiếu sót.
* Phương hướng phát triển đề tài:
Hệ thống hiện tại đã đáp ứng được việc điều khiển và giám sát các thiết bị. Trong quá
trình thực hiện, nhóm em thấy rằng đề tài có tính ứng dụng rất cao trong nhiều dự án
thực tế. Vì vậy nhóm em đưa ra một số đề xuất nhằm cải tiến và nâng cấp hệ thống:
- Mở rộng số lượng cũng như công suất của thiết bị điều khiển.
- Điều chỉnh độ sáng đèn, tốc độ quạt, tốc độ máy bơm, nhiệt độ môi trường,
độ ẩm một cách hợp lí nhất ,…
- Giám sát nơi điều khiển và hệ thống chấp hành bằng camera.
- Kiểm soát và xử lí được chất lượng nước dinh dưỡng cung cấp cho hệ thống
- Ứng dụng đề tài vào hệ thống thực tế.
- Xây dựng Web, App điều khiển hệ thống tự động và thiết kế mạch phần cứng.
TÀI LIỆU THAM KHẢO
60
1.ARDUINO.VN
2.YOUTUBE.COM
3.BLYNK.CLOUD
…

More Related Content

DOCX
NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx
DOCX
Vườn-Lan-Thông-Minh-IOT.docx
PDF
Tổng quan về Intenet of Thing
DOCX
Cơ Sở Lý Luận Đồ Án Thiết Kế Chế Tạo Mô Hình Nhà Thông Minh Sử Dụng Ardu...
DOCX
Cơ Sở Lý Luận Đồ Án Thiết Kế Chế Tạo Mô Hình Nhà Thông Minh Sử Dụng Ardu...
PPTX
Internet of Things.pptx
PDF
Topic 2 Anh huong kinh tế so den nen kinh te toan cau.pdf
PPTX
BAI123 NGUYENVANDAT.pptxáafsfafsafssafasfsaf
NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx
Vườn-Lan-Thông-Minh-IOT.docx
Tổng quan về Intenet of Thing
Cơ Sở Lý Luận Đồ Án Thiết Kế Chế Tạo Mô Hình Nhà Thông Minh Sử Dụng Ardu...
Cơ Sở Lý Luận Đồ Án Thiết Kế Chế Tạo Mô Hình Nhà Thông Minh Sử Dụng Ardu...
Internet of Things.pptx
Topic 2 Anh huong kinh tế so den nen kinh te toan cau.pdf
BAI123 NGUYENVANDAT.pptxáafsfafsafssafasfsaf

Similar to FILE_20220615_220619_NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx (20)

PDF
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
PPTX
Ứng dụng AI trong hệ thống cơ điện của nhóm 3.pptx
PDF
Acis smarthome profile
PDF
THAM LUẬN ỨNG DỤNG INTERNET CỦA VẠN VẬT TRONG SẢN XUẤT NÔNG NGHIỆP.pdf
PDF
VAI TRÒ CỦA CÔNG NGHỆ THÔNG TIN TRONG PHÁT TRIỂN NÔNG NGHIỆP
PDF
Giao trinh mang may tinh (Toan tap)
DOC
It24h.org giaotrinhtoantapmangmaytinh
DOC
Giao Trinh Toan Tap Mang May Tinh
PPTX
Hanh-Trinh-Kham-Pha-Ky-Nguyen-So-va-Cong-Nghe-So.pptx
PPT
Bai 1 Gioi Thieu Cntt
DOC
Giáo trình mạng máy tính
PDF
Giao trinh mang
DOC
Giaotrinhtoantapmangmaytinh 100118061813-phpapp01
PPTX
office-ergonomics-training-business-meeting.pptx
PDF
Hệ thống giám sát báo trộm cho xe máy.pdf
DOCX
hoc bai tu soan mon quan tri van hanh nha may
PPTX
Su phat trien IOT tai Viet Nam
PDF
Tai lieu cua GS Ho Tu Bao ve AI va Kinh te so
PDF
Giáo trình mạng máy tính[bookbooming.com]
PPTX
Ứng dụng của Trí tuệ nhân tạo trong NHÓM 3.pptx
[Report] Cửa thông minh dựa trên công nghệ RFID và giao tiếp WiFi
Ứng dụng AI trong hệ thống cơ điện của nhóm 3.pptx
Acis smarthome profile
THAM LUẬN ỨNG DỤNG INTERNET CỦA VẠN VẬT TRONG SẢN XUẤT NÔNG NGHIỆP.pdf
VAI TRÒ CỦA CÔNG NGHỆ THÔNG TIN TRONG PHÁT TRIỂN NÔNG NGHIỆP
Giao trinh mang may tinh (Toan tap)
It24h.org giaotrinhtoantapmangmaytinh
Giao Trinh Toan Tap Mang May Tinh
Hanh-Trinh-Kham-Pha-Ky-Nguyen-So-va-Cong-Nghe-So.pptx
Bai 1 Gioi Thieu Cntt
Giáo trình mạng máy tính
Giao trinh mang
Giaotrinhtoantapmangmaytinh 100118061813-phpapp01
office-ergonomics-training-business-meeting.pptx
Hệ thống giám sát báo trộm cho xe máy.pdf
hoc bai tu soan mon quan tri van hanh nha may
Su phat trien IOT tai Viet Nam
Tai lieu cua GS Ho Tu Bao ve AI va Kinh te so
Giáo trình mạng máy tính[bookbooming.com]
Ứng dụng của Trí tuệ nhân tạo trong NHÓM 3.pptx
Ad

Recently uploaded (20)

PDF
Suy tim y khoa, dược, y học cổ truyền mới
PPTX
CHƯƠNG MỞ ĐẦU Lịch sử đảng cộng sản Việt Nam
PDF
dfmnghjkdh hỳh fhtrydr. ỷey rỷtu dfyy ỳy rt y y ytyr t rty rt
PPTX
bai thuyet trinh Presentation-PPNCKH.pptx
PDF
10 phương pháp rèn luyên tâm trí vững vàng • Sống Vững Vàng #1
PDF
DANH SACH TRUNG TUYEN DHCQ_DOT 1_2025_TUNG NGANH.pdf
PPTX
Chương 4: Vận dụng tư tưởng HCM Vào công tác xây dựng Đảng và Nhà nước
PDF
chuyen de 4 tai lieu on thi ke toan cpa do bo tai chinh ban hanh
PDF
VIOLYMPIC TOÁN LỚP 2 NĂM 2025 - 2026 TỪ VÒNG 1 ĐẾN VÒNG 10
PPTX
843357982-Nhom-8-Điển-Cố-Trong-Thơ-Chữ-Han-Của-Nguyễn-Khuyến.pptx
PDF
VIOLYMPIC TOÁN LỚP 3 NĂM 2025 - 2026 TỪ VÒNG 1 ĐẾN VÒNG 10
PPTX
Bài 01. cấu trúc da và sang thương cơ bản.pptx
PDF
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
PPTX
Hóa-polyme cao su dại học bách khoa hà nội
PPT
QH. PHÂN TíhjjjjjjjjjjjjCH CHíNH Sá CH.ppt
PDF
CHƯƠNG 2 ĐẠI CƯƠNG VỀ TIỀN TẸEEEEEEEEEEE
PPTX
Báo cáo Brucella sữa - trọng nghĩa..pptx
PDF
Slide bài giảng môn Tâm lý Học Giao tiếp - Chủ đề Phong Cách Giao Tiếp
PDF
Trạng nguyên Tiếng Việt lớp 5 năm 2025 - 2026 theo 10 chủ điểm
PDF
Sang thương cơ bản do nhiem ký sinh trung STCB-2025.pdf
Suy tim y khoa, dược, y học cổ truyền mới
CHƯƠNG MỞ ĐẦU Lịch sử đảng cộng sản Việt Nam
dfmnghjkdh hỳh fhtrydr. ỷey rỷtu dfyy ỳy rt y y ytyr t rty rt
bai thuyet trinh Presentation-PPNCKH.pptx
10 phương pháp rèn luyên tâm trí vững vàng • Sống Vững Vàng #1
DANH SACH TRUNG TUYEN DHCQ_DOT 1_2025_TUNG NGANH.pdf
Chương 4: Vận dụng tư tưởng HCM Vào công tác xây dựng Đảng và Nhà nước
chuyen de 4 tai lieu on thi ke toan cpa do bo tai chinh ban hanh
VIOLYMPIC TOÁN LỚP 2 NĂM 2025 - 2026 TỪ VÒNG 1 ĐẾN VÒNG 10
843357982-Nhom-8-Điển-Cố-Trong-Thơ-Chữ-Han-Của-Nguyễn-Khuyến.pptx
VIOLYMPIC TOÁN LỚP 3 NĂM 2025 - 2026 TỪ VÒNG 1 ĐẾN VÒNG 10
Bài 01. cấu trúc da và sang thương cơ bản.pptx
NGÂN HÀNG CÂU HỎI TÁCH CHỌN LỌC THEO CHUYÊN ĐỀ TỪ ĐỀ THI THỬ TN THPT 2025 TIẾ...
Hóa-polyme cao su dại học bách khoa hà nội
QH. PHÂN TíhjjjjjjjjjjjjCH CHíNH Sá CH.ppt
CHƯƠNG 2 ĐẠI CƯƠNG VỀ TIỀN TẸEEEEEEEEEEE
Báo cáo Brucella sữa - trọng nghĩa..pptx
Slide bài giảng môn Tâm lý Học Giao tiếp - Chủ đề Phong Cách Giao Tiếp
Trạng nguyên Tiếng Việt lớp 5 năm 2025 - 2026 theo 10 chủ điểm
Sang thương cơ bản do nhiem ký sinh trung STCB-2025.pdf
Ad

FILE_20220615_220619_NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP.docx

  • 1. 1 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC SINH VIÊN NĂM HỌC 2021-2022 NGHIÊN CỨU, ỨNG DỤNG IOT TRONG NÔNG NGHIỆP Sinh viên thực hiện: Lê Tiến Tuấn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử Đinh Công Văn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử Nguyễn Văn Minh Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử Nguyễn Văn Đoàn Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử Ngô Văn Giang Lớp: Tự động hóa 1- K60 Khoa: Điện-Điện tử Người hướng dẫn: Ts.Trịnh Thị Hương HÀ NỘI, 2022
  • 2. 2 MỤC LỤC LỜI MỞ ĐẦU……………………………………………………………………..3 CHƯƠNG 1: TỔNG QUAN VỀ IOT……………………………………………..4 1. Khái niệm và lịch sử ra đời ………………………………………………….4 2. Nhu cầu xã hội về IOT, ứng dụng trong các ngành nghề y tế, công nghiệp…5 3. IOT trong nông nghiệp……………………………………………………….7 4. Lí do chọn đề tài……………………………………………………………...8 5. Mục tiêu, nội dung, phương pháp nghiên cứu………………………………..8 6. Đối tượng và phạm vi nghiên cứu……………………………………………9 7. Kết luận chương 1…………………………………………………………….9 CHƯƠNG 2: NGHIÊN CỨU HỆ THỐNG IOT TRONG NÔNG NGHIỆP……....10 2.1. Lựa chọn mô hình VƯỜN LAN THÔNG MINH………………………….10 2.2. Đặc tính Địa Lan Vòi (Lược Vàng) ………………………………………..11 2.3.Kết luận chương 2…………………………………………………………..12 CHƯƠNG 3: LỰA CHỌN THIẾT BỊ VÀ XÂY DỰNG MÔ HÌNH …………….13 3.1 Khối xử lí trung tâm…………………………………………………………13 3.2 Khối cảm biến……………………………………………………………….18 3.3.Khối thực thi…………………………………………………………………21 3.4.Khối truyền thông……………………………………………………………27 3.5.Khối nguồn…………………………………………………………………..36 3.6.Kết luận chương 3……………………………………………………………39 CHƯƠNG 4: CODE CHƯƠNG TRÌNH VÀ KẾT LUẬN……………………….40 4.1.Code chương trình…………………………………………………………...43 4.2.Kết luận chương trình và phương hướng phát triển…………………………59 TÀI LIỆU THAM KHẢO…………………………………………………………60
  • 3. 3 LỜI MỞ ĐẦU Ngày ngay trên thế giới với sự bùng nổ của các ngành công nghệ thông tin, điện, điện tử v.v… Đã làm cho đời sống của con người ngày càng hoàn thiện. Các thiết bị tự động hóa đã ngày càng được con người áp dụng vào cuộc sống sinh hoạt cũng như học tập hàng ngày của mỗi con người. Qua báo chí, các phương tiện truyền thông, internet chúng ta có thể thấy mô hình ứng dụng IOT trong nông nghiệp đã được đưa vào sử dụng trong đời sống và ngày càng thông minh hơn. Là sinh viên khoa Điện-Điện tử, với những kiến thức đã học cùng với mong muốn thiết kế một mô hình nông nghiệp hiện đại hơn, nhóm chúng em phát triển mô hình VƯỜN LAN THÔNG MINH để phục vụ cho quá trình học tập và làm việc.
  • 4. 4 CHƯƠNG 1: TỔNG QUAN VỀ IOT 1. Khái niệm và lịch sử ra đời *IOT là gì ? Internet of Things (IoT) - là mạng kết nối các đồ vật và thiết bị thông qua cảm biến, phần mềm và các công nghệ khác, cho phép các đồ vật và thiết bị thu thập và trao đổi dữ liệu với nhau. Internet vạn vật lan tỏa lợi ích của mạng internet tới mọi đồ vật được kết nối, chứ không chỉ dừng lại ở phạm vi một chiếc máy tính. Khi một đồ vật được kết nối với internet, nó sẽ trở nên thông minh hơn nhờ khả năng gửi và/hoặc nhận thông tin và tự động hoạt động dựa trên các thông tin đó. Các thiết bị IoT có thể là đồ vật được gắn thêm cảm biến để thu thập dữ liệu về môi trường xung quanh (giống như các giác quan), các máy tính/bộ điều khiển tiếp nhận dữ liệu và ra lệnh cho các thiết bị khác, hoặc cũng có thể là các đồ vật được tích hợp cả hai tính năng trên. Tiềm năng ứng dụng của internet vạn vật (IoT) trải rộng trên mọi lĩnh vực. Tuy nhiên, mọi hệ thống IoT hoàn chỉnh đều có đủ 4 bước: thu thập dữ liệu, chia sẻ dữ liệu, xử lý dữ liệu, và đưa ra quyết định. *Lịch sử ra đời  1968: Kỷ nguyên Internet of Things trong sản xuất bắt đầu được xây dựng vào năm 1968, khi kỹ sư Dick Morley đã chế tạo ra một trong những đột phá quan trọng trong lịch sử sản xuất: bộ điều khiển lập trình logic PLC. Cho đến thời điểm hiện tại, thiết bị này vẫn là bộ phận không thể thay thế trong dây chuyền tự động hóa và các robot công nghiệp trong nhà máy  1999: Đây là cột mốc quan trọng trong quá trình phát triển IOT. Kevin Ashton, Giám đốc Phòng thí nghiệm tự động nhận diện thuộc Đại học Massachusetts –
  • 5. 5 Hoa Kỳ đã đưa khái niệm Internet of things (IoT) vào bài diễn thuyết của mình để mô tả thế hệ cải tiến tiếp theo của công nghệ theo dõi RFID (bộ thiết bị nhận dạng đối tượng bằng sóng vô tuyến thường được sử dụng nhiều trong siêu thị để chống trộm cắp). Đây cũng là lần đầu tiên khái niệm IOT được sử dụng.  2016: Xuất hiện khái niệm IOT trong sản xuất. Khi khái niệm về IoT được sử dụng nhiều hơn trong sản xuất, một khái niệm khác liên quan cũng được ra đời – Industry Internet of things – Internet vạn vật trong công nghiệp +Những dấu mốc quan trọng khác  1983: Ethernet được tiêu chuẩn hóa 1989: Tim Berners-Lee tạo ra giao thức giao tiếp chung và không trạng thái Hypertext Transfer Protocol (HTTP)  1992: TCP/IP cho phép PLCs kết nối với máy tính  2002: Amazon Web Services phát hành, và điện toán đám mây bắt đầu được đưa vào sử dụng;  2006: OPC Unified Architecture (UA) thúc đẩy các kết nối an toàn giữa các thiết bị, nguồn dữ liệu và các ứng dụng;  2006: Các thiết bị chuyên dụng dần dần trở nên phổ biến và có giá trị kinh tế hơn. Các thiết bị cũng được thiết kế và sản xuất với kích thước nhỏ hơn, sử dụng năng lượng pin hoặc năng lượng mặt trời; Từ 2010-nay: Các cảm biến có giả các phải chăng hơn, thúc đẩy việc sử dụng rộng rãi các thiết bị này trong mọi mặt cuả đời sống. 2.Nhu cầu xã hội về IOT và ứng dụng trong các ngành nghề y tế, công nghiệp. * Nhu cầu xã hội về IOT: Các ứng dụng công nghệ đến từ Internet vạn vật (IoT) hứa hẹn mang đến những giá trị to lớn cho con người. Trong những năm gần đây, chúng ta đã thấy sự xuất hiện của những hệ thống nhà thông minh hay các thiết bị gia dụng thông minh có điều khiển bằng giọng nói. Theo số liệu từ hãng nghiên cứu McKinsey, số lượng nhà thông minh tại Mỹ đã tăng từ 17 triệu năm 2015 lên 29 triệu năm 2017, còn người tiêu dùng tại các nước Tây Âu dành khoảng 12 tỷ euro để mua các thiết bị thông minh vào năm 2020. IoT là công nghệ đóng vai trò quan trọng và bắt đầu tác động đến nhiều lĩnh vực và ngành công nghiệp, từ sản xuất, y tế, truyền thông, năng lượng cho đến
  • 6. 6 ngành nông nghiệp. IoT bao gồm cơ sở hạ tầng truyền thông cơ bản được sử dụng để kết nối các đối tượng thông minh từ cảm biến, phương tiện, thiết bị di động đến việc thu thập dữ liệu từ xa dựa trên phân tích thông minh, giao tiếp người dùng và cách mạng hóa ngành nông nghiệp… *Ứng dụng IOT trong các lĩnh vực y tế, công nghiệp… Quản lý đô thị thông minh: Là một trong những ứng dụng gây tò mò nhiều nhất đối với đông đảo người dân. bởi vì việc quản lý đô thị thông minh thực hiện được : Việc giám sát thông minh, quản lý năng lượng mặt trời,giám sát việc môi trường, vận chuyển tự động. Các giải pháp IOT được cung cấp trong các khu vực Smart City giúp giải đáp các vấn đề của thành phố như giao thông tiếng ồn cũng như ô nhiễm môi trường,.. giúp thành phố an toàn, xanh, sạch đẹp, hiện đại hơn Hệ thống bật tắt, bảng điều khiển thông minh trong các thiết bị trong nhà: Thông thường mọi người thường tắt/bật điện bằng cách nhấn trực tiếp vào công tắc. còn đối với các hệ thống thông minh thì người dùng chỉ cần cái smart thông minh có kết nối internet là bạn có thể điều khiển được hệ thống đèn trong hàm điều hòa, nóng lạnh,cũng như hệ thống bóng đèn thay đổi các màu sắc khác nhau. Đồ gia dụng thông minh: Hiện nay có rất nhiều các vật dụng trong nhà tích hợp công nghệ IOT như: Máy đun nước nóng, máy pha cafe, tivi, điều hòa, tủ lạnh,.., bạn có thể điều khiển các thiết bị vật dụng trong gia đình bạn từ xa nhờ kết nối internet. Cửa hàng bán lẻ thông minh: Công nghệ IOT đã đưa vào các cửa hàng bán lẻ giúp các nhân viên nhận biết chính xác giá thành của các sản phẩm, mặt hàng này còn hay hết có thể bổ sung được nhanh chóng, kịp thời. Bên cạnh đó nó còn giúp các nhân viên tư vấn các mặt hàng một cách chính xác nhất, tạo được hiệu quả cao trong kinh doanh. Ứng dụng trong sức khỏe: Ứng dụng của IOT trong việc chăm sóc sức khỏe được kết nối cung các thiết bị y tế thông minh giúp mang lại tiềm năng vô cùng lớn, nó giúp chăm sóc sức khỏe của chúng ta khỏe mạnh bằng việc đeo các thiết bị có kết nối.
  • 7. 7 Ô tô thông minh: Giúp nâng cao những trải nghiệm cho người dùng xe ôtô, 1 chiếc ô tô thông minh có thể tối ưu các hoạt động của nó như thông báo khi hết nhiên liệu, đưa ra các cảnh báo khi có vật tới gần hoặc mới đây nhất là xe điện tự lái của hãng Tesla… Nông nghiệp thông minh : Bằng cách triển khai các công nghệ cảm biến và IoT trong thực tiễn nông nghiệp đã làm thay đổi mọi khía cạnh của phương pháp canh tác truyền thống. IoT giúp cải thiện các giải pháp về canh tác truyền thống như ứng phó với hạn hán, tối ưu hóa năng suất, tính phù hợp đất đai, tưới tiêu và kiểm soát dịch hại. 3.IOT trong nông nghiệp : – Áp dụng công nghệ khoa học vào toàn bộ quá trình trong nông nghiệp (khép kín): Cụ thể là áp dụng công nghệ thông tin, điện tử, viễn thông vào các quá trình từ chuẩn bị giống, đất,… -> trồng trọt – chăn nuôi -> thu hoạch -> chế biến -> bảo quản -> phân phối -> đến bàn ăn – Dữ liệu thu thập được phải tạo thành database ở quy mô lớn, để dần tự động hóa được cả quá trình ( tức là: loại bỏ dần “kinh nghiệm” của con người, chủ động nhận biết vấn đề và đề xuất cách giải quyết). Nôm na, có thể gọi là trí tuệ nhân tạo, thay con người đưa ra quyết định. – Nhà kính – hiện được sử dụng phổ biến ở nước ta, đặc biệt là ở Đà Lạt – nơi có lợi thế về khí hậu và thời tiết. Nhà kính ban đầu ra đời với mục đích giúp tách ly cây trồng với điều kiện thời tiết bên ngoài. Dần dần, được bổ xung thêm các hệ thống kiểm soát khí hậu bên trong nhà kính ( nhiệt độ, độ ẩm, ánh sáng,…) và hệ thống điều khiển tưới. Hiểu nôm na hai hệ thống như sau: – Hệ thống điều khiển tưới: Hệ thống bao gồm các thiết bị: đầu tưới nhỏ giọt hoặc đầu tưới phun sương/mưa, bộ châm phân, bộ điều khiển tưới….. hệ thống giúp tưới nước/phân một cách tiết kiệm, hiệu quả và đạt năng suất cao. Giúp người nông dân giảm giá thành chi phí sản xuất. – Hệ thống điều khiển vi khí hậu: Hệ thống bao gồm các cảm biến nhận biết nhiệt độ, độ ẩm bên trong ( và bên ngoài) nhà kính, hệ thống quạt thông gió để đối lưu không khí, hệ thống đèn chiếu sáng để có thể tăng cường ánh sáng khi cần thiết, trạm
  • 8. 8 đo thời tiết để biết các thông số: cường độ bức xạ mặt trời, cảnh báo mưa, tốc độ gió, lưu lượng mưa,…. Mục đích giúp nhà kính duy trì ở điều kiện mong muốn. IoT trong nông nghiệp giúp người nông dân giám sát sản phẩm và các điều kiện canh tác theo thời gian thực. IoT thu thập các thông tin nhanh chóng; có thể dự đoán trước các vấn đề trước khi chúng xảy ra; đưa ra các quyết định sáng suốt về cách tránh chúng. 4.Lí do chọn đề tài : - Nhận thấy việc canh tác nông nghiệp còn thô sơ và dựa vào sức người là chính nên năng suất và chất lượng các sản phẩm nông nghiệp chưa cao.Vì vậy, nhóm chúng em với các kiến thức đã được học và trải nghiệm thực tế mong muốn ứng dụng các quy trình tự động hóa vào nông nghiệp, cụ thể ở đây là mô hình vườn lan để việc giúp đỡ những người nông dân làm nông nghiệp tốt hơn. 5.Mục tiêu, nội dung, phương pháp nghiên cứu Mục tiêu: - Tự động hóa quy trình chăm sóc cây Lan Báo cáo đề tài gồm các nội dung sau: Chương 1: Tổng quan về IOT Chương 2: Nghiên cứu hệ thống IOT nông nghiệp Chương 3: Lựa chọn thiết bị và xây dựng mô hình Chương 4: Code chương trình và kết luận Phương pháp nghiên cứu: Dựa trên nghiên cứu lý thuyết kết hợp nghiên cứu xây dựng mô hình vườn lan thông minh thực tế.
  • 9. 9 6.Đối tượng và phạm vi nghiên cứu Đối tượng: - Chăm sóc Địa Lan Vòi, họ Thài Lài Phạm vi nghiên cứu: - Nghiên cứu, ứng dụng các quá trình tự động trong chăm sóc một chậu Lan, từ đó hướng đến mô hình Vườn Lan thông minh trong nhà kính. 7.Kết luận chương 1  Đưa ra lý do, mục tiêu, đối tượng, phương pháp, nôi dụng, phạm vi nghiên cứu
  • 10. 10 CHƯƠNG 2: NGHIÊN CỨU HỆ THỐNG IOT TRONG NÔNG NGHIỆP 2.1.Lựa chọn mô hình vườn lan thông minh Cách chăm sóc cây phong lan:  Ánh sáng Tùy theo độ tuổi của cây lan mà chúng ta sẽ có những cách chiếu sáng cho phù hợp. Một số loại lan điển hình ít chịu nắng như Địa Lan Vòi có thể chịu được 30% nắng 5000 – 14000(lm/m2 ) .Lan Cattleya chịu được khoảng 50% nắng và lan Vanda lá hẹp có thể chịu được khoảng 70% nắng( 15.000 - 30000(lm/m2 )). Việc chiếu sáng ánh nắng còn tùy thuộc vào giai đoạn phát triển. Lan con từ 0 đến 10 tháng bạn chỉ cần chiếu sáng khoảng 50%, Lan nhỡ hơn từ ngoài 12 tháng đến 18 tháng có thể chịu ánh sáng được đến 70% và thời điểm ra hoa cần chiếu sáng nhiều hơn. 1 lm/m^2=1 lux  Nước – Nước tưới lan không quá mặn, phèn hay clo và có pH dao động 5 – 6 – Phong lan sẽ khô héo, giả hành teo lại và lá rụng khi thiếu nước. Thừa nước phong lan dễ bị thối đọt gây chết cây, rễ có rong rêu tạo điều kiện thuận lợi cho nấm bệnh phát triển – Thời điểm tưới thích hợp cho phong lan vào sáng sớm hay chiều mát. Đặc biệt, không tưới vào buổi trưa khi trời đang nắng gắt – Sau những trận mưa bất thường, nhất là mưa đầu mùa cần tưới lại ngay để rửa bớt các chất cặn đọng lại trên thân lá. – Tưới phun sương hằng ngày khi độ ẩm dưới 40%, đo độ ẩm bằng dụng cụ đo bán phổ biến trên thị trường.  Nhiệt độ
  • 11. 11 Nhiệt độ lý tưởng cho lan sinh trưởng và phát triển là 16-24 độ C. Lan sẽ chết khi thời tiết quá lạnh. Vì vậy, cần duy trì nhiệt độ cho lan trong mức tối ưu để cây phát triển tốt Các cảm biến sử dụng trong đề tài : 1. Cảm biến nhiệt độ và độ ẩm không khí DHT11 2. Cảm biến độ ẩm của đất HW103 3. Cảm biến cường độ sáng BH1750 2.2.Đặc tính Địa Lan Vòi ( Lược Vàng ): *Ánh sáng và nhiệt độ Địa Lan Vòi phát triển tốt trong điều kiện ánh sáng yếu, hạn chế ánh sáng mặt trời trực tiếp, vì thế bạn có thể đặt cây ở nơi có ánh sáng trung bình hoặc chiếu đèn cho cây khoảng từ 12 – 16 giờ hằng ngày.
  • 12. 12 Nhiệt độ thích hợp để cho cây sinh trưởng và phát triển là từ 15 – 30 độ C. Trong suốt mùa thu bạn nên duy trì nhiệt độ dưới 16 độ liên tục trong khoảng 3 tuần đến khi cụm hoa xuất hiện, và cũng nên lưu ý nhiệt độ trong suốt quá trình ra hoa. *Độ ẩm Khi trồng cây Địa Lan Vòi thì bạn nên duy trì độ ẩm từ 50 – 80% để cho cây phát triển. nên tưới nước cho cây khoảng 2 – 3 ngày/lần, nên tưới nước vào buổi trưa. Không nên tưới lên phần lá hoặc hoa của cây sẽ khiến nó bị thối và hư hỏng. Độ PH trong nước tưới lan cần duy trì ở mức 5,5 đến 6,8 và độ muối trong nước cần phải dưới 500 ppm *Phân bón bón phân NPK với tỉ lệ 14 : 14 : 14. Lưu ý khi khi bón phân thì nên hòa với nước để tưới giúp cây dễ hấp thụ hơn. 2.3.Kết luận chương 2 - Tìm hiểu cách chăm sóc cây Phong Lan, đặc biệt là Địa Lan Vòi (Lược Vàng) về các thông số ánh sáng, nhiệt độ, độ ẩm, nước tưới tiêu, phân bón để từ đó tiến hành lựa chọn thiết bị, xây dựng mô hình cho đề tài.
  • 13. 13 CHƯƠNG 3: LỰA CHỌN THIẾT BỊ VÀ XÂY DỰNG MÔ HÌNH *LỰA CHỌN THIẾT BỊ: 3.1.Khối xử lí trung tâm: *Arduino UNO R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân I/O 30 mA Dòng ra tối đa (5V) 500 mA Dòng ra tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader SRAM 2 KB (ATmega328)
  • 14. 14 EEPROM 1 KB (ATmega328) *Năng lượng: Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO. *Các chân năng lượng:  GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO. Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.  5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.  3.3V: cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA.  Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.  IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Và dĩ nhiên nó luôn là 5V. Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.  RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ. *Lưu ý:  Arduino UNO không có bảo vệ cắm ngược nguồn vào. Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO. Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy. vì vậy nên dùng nguồn từ cổng USB nếu có thể.  Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào. Việc cấp nguồn sai vị trí có thể làm hỏng board. Điều này không được nhà sản xuất khuyến khích.
  • 15. 15  Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.  Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328.  Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.  Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.  Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển. Do đó nếu không dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạn dòng. * Bộ nhớ Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:  32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu.  2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây. Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM. Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.  1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.
  • 16. 16 *Các cổng vào/ra Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối). Một số chân digital có các chức năng đặc biệt như sau:  2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này. Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây. Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết  Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28 -1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
  • 17. 17  Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.  LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng. Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210 -1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit. Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.
  • 18. 18 3.2.Khối cảm biến 1. Cảm biến số nhiệt độ, độ ẩm DHT11 Giá thành: 37.000 Công dụng: - DHT11 là một cảm biến kỹ thuật để cảm nhận nhiệt độ và độ ẩm. Cảm biến này có thể dễ dàng giao tiếp với bất kỳ bộ vi điều khiển vi nào như Arduino, Raspberry Pi, ... để đo độ ẩm và nhiệt độ ngay lập tức. - DHT11 là một cảm biến độ ẩm tương đối. Để đo không khí xung quanh, cảm biến này sử dụng một điện trở nhiệt và một cảm biến độ ẩm điện dung. - DHT11 Là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1-wire (giao tiếp digital 1-wire truyền dữ liệu duy nhất). Cảm biến được tích hợp bộ tiền xử lý tín hiệu giúp dữ liệu nhận về được chính xác mà không cần phải qua bất kỳ tính toán nào. Thông số kỹ thuật  Điện áp hoạt động: 3V - 5V (DC)  Dải độ ẩm hoạt động: 20% - 90% RH, sai số ±5%RH
  • 19. 19  Dải nhiệt độ hoạt động: 0°C ~ 50°C, sai số ±2°C  Khoảng cách truyển tối đa: 20m  Dòng điện sử dụng lớn nhất : 2.5mA  Tần số lấy mẫu tối đa 1HZ 2. Cảm biến cường độ sáng BH1750 Giá thành: 35.000đ Công dụng: - Cảm biến cường độ ánh sáng BH1750 được sử dụng để đo cường độ ánh sáng theo đơn vị lux, càm biến có ADC nội và bộ tiền xử lý nên giá trị được trả ra là giá trị trực tiếp cường độ ánh sáng lux mà không phải qua bất kỳ xử lý hay tính toán nào thông qua giao tiếp I2C . Thông số kỹ thuật:  Nguồn: 3 > 5VDC  Giao tiếp: I2C  Khoảng đo: 1 > 65535 lux  Kích cỡ: 21*16*3.3mm Một số ví dụ về độ rọi của ánh sáng:
  • 20. 20 - Vào buổi tối : 0.001 0.02 Lux - Ánh trăng : 0.02 0.3 lux - Trời nhiều mây trong nhà : 5 50 lux - Trời nhiều mây ngoài trời : 50 500 lux - Trời nắng trong nhà : 100 1000 lux 3.Cảm biến độ ẩm đất Cảm biến độ ẩm đất Soil Moisture Sensor thường được sử dụng trong các mô hình tưới nước tự động, vườn thông minh,..., cảm biến giúp xác định độ ẩm của đất qua đầu dò và trả về giá trị Analog, Digital qua 2 chân tương ứng để giao tiếp với Vi điều khiển để thực hiện vô số các ứng dụng khác nhau. Thông số kỹ thuật:  Điện áp hoạt động: 3.3~5VDC  Tín hiệu đầu ra:
  • 21. 21 o Analog: theo điện áp cấp nguồn tương ứng. o Digital: High hoặc Low, có thể điều chỉnh độ ẩm mong muốn bằng biến trở thông qua mạch so sánh LM393 tích hợp.  Kích thước: 3 x 1.6cm. Sơ đồ chân: VCC 3.3V ~ 5V GND GND của nguồn ngoài DO Đầu ra tín hiệu số (mức cao hoặc mức thấp) AO Đầu ra tín hiệu tương tự (Analog) 3.3.Khối thực thi 1. Module thời gian thực RTC DS1302 -Giá thành: 10.000đ Công dụng: - Module Thời Gian Thực RTC DS1302 là IC thời gian thực chính xác với thạch anh tích hợp sẵn có khả năng điều chỉnh nhiệt. IC có đầu vào cho pin riêng, tách biệt khỏi nguồn chính đảm bảo cho việc giữ thời gian chính xác. Thạch anh tích hợp sẵn giúp tăng độ chính xác trong thời gian dài hoạt động và giảm số lượng linh kiện cần thiết khi làm board. - Thời gian trong IC được giữ ở dạng: giờ, phút, giây, ngày, thứ, tháng, năm. Các tháng có ít hơn 31 ngày sẽ tự động được điều chỉnh, các năm Nhuận cũng được chỉnh đúng số ngày. Thời gian có thể hoạt động ở chế độ 24h hoặc 12h AmPM. IC còn có chức năng báo động, có thể cài đặt 2 thời gian báo và lịch, có tín hiệu ra là xung vuông. Giao tiếp với IC được thực hiện thông qua I2C bus. - Trong chip có mạch điện áp chuẩn dùng để theo dõi trạng thái của nguồn VCC, phát hiện lỗi nguồn, tự động chuyển nguồn khi có vấn đề. Có tín hiệu Reset
  • 22. 22 xuất ra cho mạch ngoài, MCU khi nguồn điện phục hồi trạng thái. Ngoài ra trong IC còn có sẵn cảm biến nhiệt độ, có độ chính xác là ± 3°C. THÔNG SỐ MODULE THỜI GIAN THỰC RTC DS1302  Size: dài 38mm, rộng 22mm, cao 14mm  Khối lượng 8g  Điện thế hoạt động 3.3 – 5.5V  Clock: high-precision clock on chip DS3231  Thông tin Thời gian: giờ, phút, giây, ngày, thứ, tháng, năm, đến 2100.  Cảm biến nhiệt trên IC có độ chính xác ± 3 ℃  I2C bus có tốc độ tối đa 400Khz 2. Máy bơm mini DC 5V Máy Bơm mini DC 5V có kích thước rất nhỏ gọn, sử dụng điện áp 3~5VDC, vì thuộc dạng bơm chìm nên động cơ có khả năng chống nước và hoạt động khi ngâm chìm trong nước, ứng dụng để bơm nước, dung dịch trong các thiết kế nhỏ, mô hình tưới cây, hồ cá,…
  • 23. 23 THÔNG SỐ KỸ THUẬT  Điện áp: DC3-5V  Dòng điện: 100-200mA  Đường kính ống : 8mm  Lưu lượng 1.2-1.6L / phút  Trọng lượng: 28 gram Đặc điểm của Máy Bơm mini DC 5V Khác với máy bơm hơi 12V được thiết kế dưới dạng thiết bị có tay quai cầm, trụ đứng vững thì thiết kế của Máy Bơm mini DC 5V khá khiêm tốn có phần thô sơ. Người dùng còn tưởng Máy Bơm mini DC 5V là một dạng motor được lấy từ các thiết bị khác trong nhà. Điều này là hoàn toàn có cơ sở, bởi lẽ, máy bơm hơi mini này sử dụng động cơ motor từ 5-6V. Máy Bơm mini DC 5V là loại máy bơm hơi dùng pin nên rất bền, nhẹ, điện êm, không gây ồn ào, dòng điện trong máy là 0.06A (60mA) ở 12v. Khi sử dụng thiết bị này với nguồn điện 220V, bạn cần sử dụng một adapter 5V-1A để chuyển đổi dòng điện. 3.Led hắt 3 led 5054 - 7211 samsung màu trắng
  • 24. 24 Đèn LED hắt 3 bóng 5054 loại dài được các nhà Quảng Cáo tin dùng áp dụng rộng rãi cho các khâu Quảng Cáo như: hắt sáng chữ nổi LED, Chiếu sáng Hộp đèn LED, Làm đường viền Trang Trí, hắt trần nhà và các chi tiết kiến trúc khác… trang trí nội, ngoại thất. giúp cho không gian có tính thẩm mỹ cao, sang trọng, bắt mắt. Thông số kỹ thuật  LED hắt 3 bóng Samsung  Chip LED: 5054 mắt LED lớn siêu sáng  Kích thước Module : 75×12 mm  Điện áp: 12V-DC  Chống thấm nước IP 65  Góc nhìn rộng 120º do vậy độ tỏa lớn  Ánh sáng tốt, trung thực, độ bền cao  Mặt sau của LED hắt 3 bóng có băng dính 2 mặt 3M nên dễ dàng cố định Module LED  Dây điện dạng tròn đồng mạ niken dẫn diện tốt, phân biệt 2 màu âm (-) dương (+) rõ ràng ko nhầm lẫn và tuốt dây dễ dàng không bị đứt như dây dẹp nên việc thi công cực kỳ đơn giản.
  • 25. 25  4. Module Relay 2-Channel 5V Module Relay 2-Channel 5V được dùng nhiều trong các ứng dụng đóng ngắt các thiết bị tiêu thụ dòng điện lớn (<10A). Module có thể đóng ngắt cùng lúc hai kênh bằng tín hiệu điều khiển ( với mức điện áp 3V3 hoặc 5V) từ các vi điều khiển khác nhau như: Arduino, 8051, AVR, PIC, DSP, ARM, ARM, MSP430, logic TTL, đồng thời module được cách ly bằng optocoupler giúp bảo vệ tốt hơn cho các vi điều khiển. Module được kết nối với các board điều khiển bằng 4 chân header như sau:  VCC cung cấp nguồn cho các opto.  GND kết nối với GND của board điều khiển.  IN1 và IN2 dùng để điều khiển relay 1 và relay 2, tích cực mức thấp Ngoài ra còn một 3 chân header được dùng để cấp nguồn cho relay, header này sẽ có một jumper dùng để kết nối chân VCC với chân RY_VCC mục đích dùng chung nguồn VCC (5V) từ header 4 chân cho relay, thông thường jumper được nối lại với nhau. Nếu như muốn cách ly tín hiệu điều khiển với nguồn cấp cho relay thì có thể bỏ jumper này ra và cấp nguồn riêng 5V cho chân RY_VCC. Thông số kỹ thuật  Đóng ngắt được dòng điện cao: AC250V 10A, DC30V 10A  2 led báo trạng thái relay  Điện áp điều khiển: 5V
  • 26. 26  Mạch cách ly bằng opto  Kích thước: 50x45 mm 5.QUẠT TẢN NHIỆT 12V (40X40X10MM) • Quạt mini DC 40mm mới 100%, chất lượng cao. • Nó có thể sử dụng cho nhiều sản phẩm hơn để làm mát. Ưu việt: 1. chất lượng cao. 2. Thương hiệu mới. 3. Lưu lượng gió lớn. 4. Độ ồn thấp. 5. Tuổi thọ cao. Riêng: • Kích thước: 40X40X10mm
  • 27. 27 • Đầu nối: 2pin (2.0) • Điện áp định mức (Tùy chọn): DC 12V 3.4.Khối truyền thông 1.Board mạch thu phát wifi ESP8266 NodeMCU V1.0 CP2102 Thông số kỹ thuật Chip: ESP8266EX SoC Wifi Băng tần WiFi: 2.4 GHz chuẩn 802.11 b/g/n Phiên bản firmware: NodeMCU V1.0 Điện áp hoạt động: 3.3V Điện áp vào: 5V
  • 28. 28 Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire, trừ chân D0) Số chân Analog Input: 1 (điện áp vào tối đa 3.3V) Bộ nhớ Flash: 4MB Chip giao tiếp UART: CP2102 Giao tiếp: Cable Micro USB Hỗ trợ bảo mật: WPA/WPA2 Tích hợp giao thức TCP/IP Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua NodeMCU V1.0 được phát triển dựa trên module wifi ESP-12F dễ dàng kết nối WiFi với một vài thao tác đơn giản. Tích hợp IC giao tiếp CP2102, giúp dễ dàngkết nối với máy tính thông qua Micro USB để nạp chương trình và debug. Trên mạch có sẳn nút nhấn, đèn led để tiện cho việc lập trình và theo dõi board mạch. Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi để tạo thành project, sản phẩm mẫu một cách nhanh chóng. Sơ đồ chân :
  • 29. 29 2.Kết nối ESP8266 và App Blynk *Giới thiệu về blynk Blynk là một nền tảng với các ứng dụng điện thoại thông minh cho phép bạn có thể dễ dàng tương tác với bộ vi điều khiển như: Arduino, Esp8266, Esp32 hoặc Raspberry qua Internet. Blynk App là một bảng điều khiển kỹ thuật số cho phép bạn có thể xây dựng giao diện đồ họa cho dự án của mình bằng cách kéo và thả các widget khác nhau mà nhà cung cấp thiết kế sẵn. Blynk không bị ràng buộc với một số bo hoặc shield cụ thể. Thay vào đó, nó hỗ trợ phần cứng mà bạn lựa chọn. Cho dù Arduino hoặc Raspberry Pi của bạn được liên kết với Internet qua Wi-Fi, Ethernet hoặc chip ESP8266, Blynk sẽ giúp bạn kết nối và sẵn sàng cho các dự án IoT. Blynk Server – chịu trách nhiệm về tất cả các giao tiếp giữa điện thoại thông minh và phần cứng. Bạn có thể sử dụng Blynk Cloud hoặc chạy cục bộ máy chủ Blynk riêng của mình. Nó là mã nguồn mở, có thể dễ dàng xử lý hàng nghìn thiết bị và thậm chí có thể được khởi chạy trên Raspberry Pi.
  • 30. 30 Thư viện Blynk – dành 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à lệnh đi. Mỗi khi bạn nhấn một nút trong ứng dụng Blynk, thông điệp sẽ truyền đến không gian của đám mây Blynk, và tìm đường đến phần cứng của bạn. Mọi thứ bạn cần để xây dựng và quản lý phần cứng được kết nối: cung cấp thiết bị, hiển thị dữ liệu cảm biến, điều khiển từ xa với các ứng dụng web và di động, cập nhật chương trình cơ sở qua mạng, bảo mật, phân tích dữ liệu, quản lý người dùng và truy cập, cảnh báo, tự động hóa và nhiều thứ khác hơn… *Đặc tính:  API và giao diện người dùng tương tự cho tất cả phần cứng và thiết bị được hỗ trợ  Kết nối với đám mây bằng cách sử dụng: o Wifi o Bluetooth và BLE o Ethernet o USB (Nối tiếp) o GSM o …  Bộ Widget dễ sử dụng  Thao tác ghim trực tiếp mà không cần viết mã  Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng ghim ảo  Theo dõi dữ liệu lịch sử qua tiện ích SuperChart  Giao tiếp giữa thiết bị với thiết bị sử dụng Bridge Widget  Gửi email, tweet, push notification… 3.Giao tiếp nối tiếp UART giữa ESP8266 và Arduino Uno/Mega *Nhược điểm của ESP8266 là khá ít chân, do đó để mở rộng chân ra kết nối nhiều cảm biến hơn thì chúng ta cần phải kết nối thêm với chip ADC hoặc là giao tiếp qua Master-Slave của các chuẩn UART, SPI, I2C. Hôm nay mình sẽ hướng dẫn cho các
  • 31. 31 bạn cách để gửi dữ liệu từ Arduino Uno/Mega sang ESP8266 thông qua những chuẩn giao tiếp kể trên.
  • 32. 32 *UART Có 2 cách để giao tiếp UART giữa ESP8266/NodeMCU: 1 là giao tiếp bằng cách code trên cả Uno/Mega và ESP8266/NodeMCU, 2 là chỉ code trên Uno/Mega, trên ESP8266/NodeMCU flash thẳng firmware AT Command. *Sơ đồ kết nối: 4.Phương thức truyền dữ liệu không dây 1.Wifi Wifi là hệ thống mạng không dây sử dụng sóng vô tuyến, cũng giống như điện thoại di đông, truyền hình và radio. Với Wi-Fi, mạng cục bộ (LAN) được sử
  • 33. 33 dụng để cung cấp truy cập internet trong một phạm vi giới hạn nhất định(phạm vi ngắn) nhưng Wifi có thể gửi thông tin tới Internet thông qua kết nối hữu tuyến ethernet. Băng thôngcủa nó có tốc độ cao(2Mhz) nhưng tốn năng lượng. -Một số thông tin kỹ thuật về wifi: +Tần số: 2.5GHz or 5 GHz +Phạm vi: ~100 m +Dữ liệu truyền được: 11~150 Mbps 2.Cellular Cellular lựa chọn đường truyền dữ liệu thông qua mạng điện thoại di động GPRS/3G/LTE là một lựa chọn sáng suốt nếu yêu cầu khoảng cách truyền thông dài, hoặc không bị giới hạn bởi khoảng cách địa lý.Do truyền dữ liệu đi xa nên tốn năng lương là điều tất yếu. Hiện nay, các thiết bị/các điểm đầu cuối trong công nghiệp đều được hỗ trợ tích hợp các cổng giao tiếp vật lý theo chuẩn như: RS232 , RS485, RS422 hay Ethernet. Các phương tiện truyền thông qua mạng di động đều hỗ trợ đầu vào là các cổng Serial hay Ethernet nên việc tích hợp giải pháp truyền thông không dây không còn khó khăn hay bị giới hạn bởi yếu tố khách quan nào khác. *Một số thông tin kỹ thuật về Cellular: +Tần số: 900/1800/1900/2100MHz +Phạm vi: 35km max for GSM; 200km max for HSPA
  • 34. 34 +Dữ liệu truyền được:(typical download): 35-170kps (GPRS), 120- 384kbps(EDGE), 384Kbps- 2Mbps (UMTS), 600kbps-10Mbps (HSPA), 3- 10Mbps (LTE) . *Giao thức truyền thông (MQTT) MQTT là một giao thức nhắn tin gọn nhẹ được thiết kế để liên lạc nhẹ giữa các thiết bị và hệ thống máy tính. MQTT được thiết kế ban đầu cho các mạng SCADA, cáckịch bản sản xuất và băng thông thấp, MQTT đã trở nên phổ biến gần đây do sự phát triển của Internet-of-Things (IoT). Đây là một giao thức truyền thông điệp (message) theo mô hình publish/subscribe (publish – theo dõi), sử dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định. Kiến trúc mức cao (high-level) của MQTTgồm 2 phần chính là: Broker và Clients. Broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến từ client. Nhiệm vụ chính của broker là nhận mesage từ publisher, xếp các message theo hàng đợi rồi chuyển chúng tới một địa chỉ cụ thể. Nhiệm vụ phụ của broker là nó có thểđảm nhận thêm một vài tính năng liên quan tới quá trình truyền thông như: bảo mật message, lưu trữ message, … Client thì được chia thành 2 nhóm là publisher và subscriber. Client là các software components hoạt động tại edge device nên chúng được thiết kế để có thể hoạtđộng một cách linh hoạt (lightweight). Client chỉ làm ít nhất một trong 2 việc là publishcác message lên một topic cụ thể hoặc subscribe một topic nào đó để nhận message từ topic này.
  • 35. 35 MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có: MAC OS, Windows, LInux, Androids, iOS… Chúng ta có thể tưởng tượng broker giống như một sạp báo. Publisher là các tòasoạn báo. Tòa soạn in báo và chuyển cho sạp báo. Người đọc báo đến sạp báo, chọn tờ báo mình cần đọc (subscriber). Bởi vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao nên nó làmột giao thức lý tưởng cho các ứng dụng M2M (Machine to machine) *Ưu điểm của MQTT:  Chuyển thông tin hiệu quả hơn  Tăng khả năng mở rộng  Giảm đáng kể tiêu thụ băng thông mạng  Giảm tốc độ cập nhật xuống giây  Rất phù hợp cho điều khiển và do thám
  • 36. 36  Tối đa hóa băng thông có sẵn  Chi phí cực nhẹ  Rất an toàn với bảo mật dựa trên sự cho phép  Được sử dụng bởi ngành công nghiệp dầu khí, Amazon, Facebook và các doanhnghiệp lớn khác  Tiết kiệm thời gian phát triển 3.5.Khối nguồn 1. Nguồn Dc 12v - 2a Sản phẩm nguồn 1 chiều Dc 12v-2a Dùng để cấp nguồn cho thiết bị chạy điện 12v. Nguồn vào : 220v Nguồn ra: 12v-2a SẢN PHẨM CÓ THIẾT KẾ ĐÈN BÁO TÍN HIỆU NGUỒN VÀ KHUYÊN TREO CHỐNG NƯỚC.
  • 37. 37 2. Module chuyển đổi nguồn dự phòng 5-48VDC YX850 Thông số kỹ thuật:  Model: YX850  Điện áp hoạt động: 5 – 48VDC  Dòng max ra tải: 10A  Kích thước sản phẩm: 61 x 30 x 18mm (dài x rộng x cao)  Trọng lượng sản phẩm: 24g 3. Mạch giảm áp đầu ra 5V Thông số kỹ thuật:  Điện áp làm việc: DC 9V – 36V ;  Điện áp đầu ra: 5.2V / 5A / 25W  Công suất đầu ra: o Đầu vào 9 ~ 24V : Đầu ra 5.2V / 6A / 30W o Đầu vào 24 ~ 32V : đầu ra 5.2V / 5A / 25W
  • 38. 38 o Đầu vào 32 ~ 36V : đầu ra 5,2V / 3,5A / 18W *XÂY DỰNG MÔ HÌNH : - Sơ đồ đấu nối phần cứng các thiết bị trong Vườn Lan Thông Minh
  • 39. 39 *Kết luận chương 3 -Nắm được lí thuyết 1 số phương thức, giao thức truyền thông cơ bản. -Nắm rõ được các thiết bị sử dụng trong mô hình vườn Lan thông minh và các thông số kĩ thuật, ứng dụng. -Sơ đồ đấu nối phần cứng các thiết bị
  • 40. 40 CHƯƠNG 4: Code chương trình và kết luận *Giao diện trên Web Blynk.Console
  • 41. 41 *Giao diện trên App Blynk chế độ MAN(điều khiển bằng tay)
  • 42. 42 *Giao diện trên App Blynk chế độ AUTO(tự động)
  • 43. 43 4.1.Code chương trình: *Code nodemcu esp8266 #include <ArduinoJson.h> #include <SoftwareSerial.h> #define BLYNK_TEMPLATE_ID "TMPLCKaGjlz5" #define BLYNK_DEVICE_NAME "IOT" #define BLYNK_FIRMWARE_VERSION "0.1.0" #define BLYNK_PRINT Serial //#define BLYNK_DEBUG #define APP_DEBUG #include "BlynkEdgent.h" const byte Rx= 12; const byte Tx =14; SoftwareSerial myserial=SoftwareSerial(Rx,Tx); //Rx-Tx void sendata(String(thamso1),String(thamso2),String(thamso3)); void control_pump(void); void read_esp(void); void xulyjson(String Data); void send_lenh(void); String nhiet_do_nhan=""; String do_am_nhan=""; String cd_sang_nhan=""; String do_am_dat_nhan=""; String DataUart=""; String DataSend= ""; String Datapump=""; String Dataled= ""; String Dataquat= ""; int trang_thai_bom; int trang_thai_led; int trang_thai_quat; int led; int pump1;
  • 44. 44 int quat; int nhiet_do_set; int do_am_dat_set; long t = 0; int che_do; ///////////////////////////////////////// void setup() { myserial.begin(9600);// 8-8,7-9 Serial.begin(9600); delay(100); BlynkEdgent.begin(); t= millis(); Blynk.syncAll(); BLYNK_CONNECTED (); } BLYNK_WRITE(V4) { pump1 = param.asInt(); if(che_do==0) { if(pump1==1 && trang_thai_bom==0) { myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"pump":"1"}"); Serial.println("{"pump":"1"}"); myserial.flush(); delay(100); } else if(pump1==0 && trang_thai_bom==1) { myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"pump":"0"}"); Serial.println("{"pump":"0"}");
  • 45. 45 myserial.flush(); delay(100); } } } BLYNK_WRITE(V5) { nhiet_do_set = param.asInt(); delay(100); if(che_do==1) { sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } } BLYNK_WRITE(V6) { led = param.asInt(); if(che_do==0) { if(led==1 && trang_thai_led==0) { myserial.println("{"led":"1"}"); Serial.println("{"led":"1"}"); myserial.flush(); delay(100); } else if(led==0 && trang_thai_led==1) { myserial.println("{"led":"0"}"); Serial.println("{"led":"0"}"); myserial.flush(); delay(100); } } } BLYNK_WRITE(V7) {
  • 46. 46 che_do= param.asInt(); sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } BLYNK_WRITE(V8) { do_am_dat_set = param.asInt(); delay(100); if(che_do==1) { sendata(String (che_do), String(nhiet_do_set),String (do_am_dat_set)); } } BLYNK_WRITE(V9) { quat = param.asInt(); if(che_do==0) { if(quat==1 && trang_thai_quat==0) { myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"quat":"1"}"); Serial.println("{"quat":"1"}"); myserial.flush(); delay(100); } else if(quat==0 && trang_thai_quat==1) { myserial.println("{"chedo":"0"}"); Serial.println("{"chedo":"0"}"); myserial.println("{"quat":"0"}"); Serial.println("{"quat":"0"}"); myserial.flush(); delay(100);
  • 47. 47 } } } ////////////////////////////////////////// void loop() { read_esp(); } /////////////////////////////////////////////////// void read_esp(void) { // kiểm tra cổng RX có tín hiệu hay ko while (myserial.available()) { //đọc char InChar = (char)myserial.read(); if(InChar !='n') { DataUart += InChar; } else { // xử lí Json Serial.println(DataUart); xulyjson(String(DataUart)); DataUart = ""; } } } ////////////////////////////////////// void xulyjson(String Data) { const size_t capacity = JSON_OBJECT_SIZE(2) + 256; DynamicJsonDocument JSON(capacity); DeserializationError error = deserializeJson( JSON, Data);
  • 48. 48 if(error) { Serial.println("json loi"); return; } else { nhiet_do_nhan= (String)JSON["b"]; do_am_nhan= (String)JSON["a"]; cd_sang_nhan=(String)JSON["d"]; do_am_dat_nhan=(String)JSON["c"]; Datapump= (String)JSON["e"]; Dataled= (String)JSON["f"]; Dataquat= (String)JSON["g"]; BlynkEdgent.run(); float vau3,vau1,vau2,vau0; vau3=cd_sang_nhan.toFloat(); vau1=nhiet_do_nhan.toFloat(); vau2= do_am_dat_nhan.toFloat(); vau0=do_am_nhan.toFloat(); trang_thai_bom= Datapump.toInt(); trang_thai_led= Dataled.toInt(); trang_thai_quat= Dataquat.toInt(); Blynk.virtualWrite(V4,trang_thai_bom); Blynk.virtualWrite(V9,trang_thai_quat); Blynk.virtualWrite(V6,trang_thai_led); Blynk.virtualWrite(V3,vau3); Blynk.virtualWrite(V2,vau2); Blynk.virtualWrite(V1,vau1); Blynk.virtualWrite(V0,vau0); JSON.clear(); } } ///////////////////////////////////// void sendata(String(thamso1),String(thamso2),String(thamso3)) {
  • 50. 50 *Code Arduino UNO R3 #include <ArduinoJson.h> #include <ThreeWire.h> #include <RtcDS1302.h> #include<DHT.h> #include <SoftwareSerial.h> #include <BH1750.h> #include <Wire.h> #define sensor A3 const byte Rx= 8; const byte Tx =9; SoftwareSerial myserial=SoftwareSerial(Rx,Tx); //Rx-Tx ThreeWire myWire(13, 12, 3); // IO, SCLK, CE RtcDS1302<ThreeWire> Rtc(myWire); const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT2 DHT dht(DHTPIN, DHTTYPE); BH1750 lightMeter; // cường độ sáng int bom = 7; int led = 6; int quat= 5; int trang_thai_bom; int trang_thai_led; int trang_thai_quat; int pump_nhan; int led_nhan; int quat_nhan; int che_do;
  • 51. 51 int nhiet_do_dat; int do_am_dat_dat; float do_am_thuc; //a float nhiet_do_thuc; //b float lux_thuc; //c float do_am_dat_thuc;//d String DataSend= ""; String Dataesp = ""; void Json(String thamso1, String thamso2, String thamso3, String thamso4 , String thamso5,String thamso6); void xulyjson(String Data); void chuongtrinhcambien(void); void read_uno(void); long t = 0; // ham khoi tao void setup() { // khởi tạo cổng uart chính thống myserial.begin(9600);// khởi tạo cổng uart => tx,rx(0,1) tốc độ truyền 9600 Serial.begin(9600); Wire.begin(); // cường độ sáng SCL and SDA pins using a5 ,a4 dht.begin(); // Khởi động cảm biến lightMeter.begin(); t= millis(); pinMode(bom, OUTPUT); pinMode(led, OUTPUT); pinMode(sensor, INPUT); pinMode(quat, OUTPUT); Serial.print("compiled: "); Serial.print(__DATE__); Serial.println(__TIME__); Rtc.Begin(); RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__); printDateTime(compiled); Serial.println(); } //////////////////////ham chinh void loop() {
  • 52. 52 // RtcDateTime now = Rtc.GetDateTime(); int gio = now.Hour(); //Serial.println(gio); // truyền dữ liệu if(che_do==0) { if( pump_nhan == 1) { digitalWrite(bom, LOW); trang_thai_bom=1; } if( pump_nhan == 0 ) { digitalWrite(bom, HIGH); trang_thai_bom=0; } if( led_nhan==0) { digitalWrite(led, HIGH); trang_thai_led=0; } if(led_nhan==1 ) { digitalWrite(led, LOW); trang_thai_led=1; } if( quat_nhan==1) {
  • 53. 53 // bật quat digitalWrite(quat, HIGH); trang_thai_quat=1; } if( quat_nhan==0 ) { // tắt quat digitalWrite(quat, LOW); trang_thai_quat=0; } /////////// } if(che_do==1) { digitalWrite(led,HIGH); trang_thai_led=0; if( lux_thuc >= 5000 && gio >=5 && gio <=18 ) { digitalWrite(led,HIGH); trang_thai_led=0; } if( lux_thuc <= 5000&& gio >=5 && gio <=18 ) { digitalWrite(led, LOW); trang_thai_led=1; } /////////// if( do_am_dat_thuc <= do_am_dat_dat) { // bật bơm digitalWrite(bom, LOW);
  • 54. 54 trang_thai_bom=1; } if( do_am_dat_thuc >= do_am_dat_dat ) { // tắt bơm digitalWrite(bom, HIGH); trang_thai_bom=0; } if( nhiet_do_thuc>= nhiet_do_dat) { // bật quat digitalWrite(quat, HIGH); trang_thai_quat=1; } if( nhiet_do_thuc<= nhiet_do_dat ) { // tắt quat digitalWrite(quat, LOW ); trang_thai_quat=0; } } if(millis()-t >= 1500) { sendata(); t= millis(); } read_uno(); } ///////////////////////////// void sendata(void) {
  • 55. 55 chuongtrinhcambien(); Json(String(do_am_thuc) , String(nhiet_do_thuc) , String(lux_thuc) , String (do_am_dat_thuc) , String(trang_thai_bom), String(trang_thai_led), String (trang_thai_quat)); //myserial.flush(); } /////////////////hàm gửi dữ liệu void Json(String thamso1, String thamso2, String thamso3, String thamso4 , String thamso5, String thamso6, String thamso7) { DataSend = ""; // cấu trúc của json {"A":""gia tri cua A"", "B":"gia tri cua B", ...................} DataSend = "{"a":"" + String(thamso1) + "", " + ""b":"" + String(thamso2) + "", " + ""d":"" + String(thamso3) + "", " + ""e":"" + String(thamso5) + "", " + ""f":"" + String(thamso6) + "", " + ""g":"" + String(thamso7) + "", " + ""c":"" + String(thamso4) + ""} " ; // gửi dữ liệu về phần mềm myserial.println(DataSend); Serial.println(DataSend); myserial.flush(); } /////////////// ngat uart void read_uno(void) { // kiểm tra cổng RX có tín hiệu hay ko while (myserial.available()) { //đọc char InChar = (char)myserial.read(); if(InChar !='n') { Dataesp += InChar;
  • 56. 56 } else { // xử lí Json xulyjson(String(Dataesp)); myserial.println(Dataesp); Serial.println(Dataesp); myserial.flush(); Dataesp = ""; } } } void xulyjson(String Data) { const size_t capacity = JSON_OBJECT_SIZE(2) + 256; DynamicJsonDocument JSON(capacity); DeserializationError error = deserializeJson( JSON, Data); if(error) { Serial.println("json loi"); return; } else { String t= JSON["T"]; nhiet_do_dat=t.toInt(); String cd= JSON["chedo"]; che_do=cd.toInt(); String h= JSON["H"]; do_am_dat_dat=h.toInt(); sendata(); if(JSON["pump"] == "0") { pump_nhan=0; trang_thai_bom=0; sendata();
  • 57. 57 } if(JSON["pump"] == "1") { pump_nhan=1; trang_thai_bom=1; sendata(); } if(JSON["led"] == "0") { led_nhan=0; trang_thai_led=0; sendata(); } if(JSON["led"] == "1") { led_nhan=1; trang_thai_led=1; sendata(); } if(JSON["quat"] == "0") { quat_nhan=0; trang_thai_quat=0; sendata(); } if(JSON["quat"] == "1") { quat_nhan=1; trang_thai_quat=1; sendata(); } JSON.clear(); } } ///////////////////////////////////// void chuongtrinhcambien(void) {
  • 58. 58 do_am_thuc = dht.readHumidity(); //Đọc độ ẩm nhiet_do_thuc = dht.readTemperature(); //Đọc nhiệt độ do_am_dat_thuc = analogRead(sensor); // độ ẩm đất do_am_dat_thuc = map(do_am_dat_thuc, 0, 1023, 100, 0); lux_thuc = lightMeter.readLightLevel(); // cường độ sáng } //////////////////////////////////// #define countof(a) (sizeof(a) / sizeof(a[0])) void printDateTime(const RtcDateTime& dt) { char datestring[50]; snprintf_P(datestring, countof(datestring), PSTR("%02u %02u/%02u/%04u %02u:%02u:%02u"), dt.DayOfWeek(), dt.Day(), dt.Month(), dt.Year(), dt.Hour(), dt.Minute(), dt.Second() ); Serial.println(datestring); }
  • 59. 59 4.2.Kết luận và hướng phát triển *Kết luận: - Đề tài NCKH SV “Nghiên cứu,ứng dụng Iot trong nông nghiệp ” đã hoàn thành nhiệm vụ thiết kế hệ thống IoT trong hỗ trợ việc chăm sóc Lan Lược Vàng (Địa Lan Vòi) bằng hệ thống tự động tưới nước cho lan theo nhiệt độ, độ ẩm,ánh sáng môi trường ,đồng thời tổng hợp và xử lý các thông tin để vận hành hệ thống qua App Blynk. - Thực hiện lắp đặt thành công mô hình phần cứng và chạy thử thành công. - Thử nghiệm thu thập thông tin môi trường từ cảm biến, và vận hành hệ thống hoạt động với độ tin cậy và chính xác cao. - Nhóm đã cố gắng hoàn thiện mô hình một cách tốt nhất, nhưng kiến thức và trình độ hạn chế và chưa vận hành hệ thống ngoài môi trường thực tế nên còn nhiều thiếu sót. * Phương hướng phát triển đề tài: Hệ thống hiện tại đã đáp ứng được việc điều khiển và giám sát các thiết bị. Trong quá trình thực hiện, nhóm em thấy rằng đề tài có tính ứng dụng rất cao trong nhiều dự án thực tế. Vì vậy nhóm em đưa ra một số đề xuất nhằm cải tiến và nâng cấp hệ thống: - Mở rộng số lượng cũng như công suất của thiết bị điều khiển. - Điều chỉnh độ sáng đèn, tốc độ quạt, tốc độ máy bơm, nhiệt độ môi trường, độ ẩm một cách hợp lí nhất ,… - Giám sát nơi điều khiển và hệ thống chấp hành bằng camera. - Kiểm soát và xử lí được chất lượng nước dinh dưỡng cung cấp cho hệ thống - Ứng dụng đề tài vào hệ thống thực tế. - Xây dựng Web, App điều khiển hệ thống tự động và thiết kế mạch phần cứng. TÀI LIỆU THAM KHẢO