You are on page 1of 71

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT

VIỆN KỸ THUẬT CÔNG NGHỆ


***********

TIỂU LUẬN MÔN HỌC


CHUYÊN ĐỀ INTERET OF THINGS (2+0)

ỨNG DỤNG CÔNG NGHỆ LORA TRONG


MÔ HÌNH TƯỚI TIÊU

Nhóm học phần: KTCN.CQ.02


Sinh viên thực hiện: Nhóm 2
Ngô Trường Vũ MSSV 2024801030014
Nguyễn Minh Toàn MSSV 2024801030243
Nguyễn Trọng Tuấn Anh MSSV 2024801030090
GVHD: ThS. Trịnh Quốc Thanh

Bình Dương - 2024

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT


VIỆN KỸ THUẬT CÔNG NGHỆ
***********

TIỂU LUẬN MÔN HỌC


CHUYÊN ĐỀ INTERET OF THINGS (2+0)

ỨNG DỤNG CÔNG NGHỆ LORA TRONG


MÔ HÌNH TƯỚI TIÊU

Nhóm học phần: KTCN.CQ.02


Sinh viên thực hiện: Nhóm 2
Ngô Trường Vũ MSSV 2024801030014
Nguyễn Minh Toàn MSSV 2024801030243
Nguyễn Trọng Tuấn Anh MSSV 2024801030090
GVHD: ThS. Trịnh Quốc Thanh

Bình Dương - 2024


Mục lục

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..........................................................................................................
1.1.Kiến trúc tiêu chuẩn hóa IoT oneM2M.............................................................................................
1.2. Kiến trúc tiêu chuẩn của Diễn đàn Thế giới IoT (IoTWF)...............................................................
1.3. Những mô hình khác........................................................................................................................
1.4. Ngăn xếp chức năng cốt lõi của IoT.................................................................................................
CHƯƠNG 2: ỨNG DỤNG CÔNG NGHỆ LORA TRONG MÔ HÌNH TƯỚI TIÊU
TỰ ĐỘNG....................................................................................................................................................
2.1. Tổng quan đề tài...............................................................................................................................
2.2. Tổng quan về Lora...........................................................................................................................
2.3. Phần mềm xây dựng.........................................................................................................................
2.4. Thiết bị.............................................................................................................................................
2.4.1. Mạch Thu Phát RF Lora SX1278 433Mhz Ra-02...................................................................
2.4.2. Cảm biến độ ẩm đất điện dung................................................................................................
2.4.3. Module Cảm Biến Nhiệt Độ và Độ Ẩm DHT22.....................................................................
2.4.4. Cảm Biến Nhiệt Độ DS18B20................................................................................................
2.4.5. Màn hình OLED 0.96" 128x64 giao tiếp I2C.........................................................................
2.4.6. Mạch NodeMCU ESP8266-12E.............................................................................................
2.4.7. Arduino Nano V3.0.................................................................................................................
2.6.Sơ đồ khối..........................................................................................................................................
2.6.1. Sơ đồ khối Node truyền và chức năng từng khối....................................................................
2.6.2. Sơ đồ khối Node nhận và chức năng từng khối......................................................................
2.7.Sơ đồ nguyên lý.................................................................................................................................
2.7.1. Sơ đồ nguyên lý Node Truyền.................................................................................................
2.7.1.1. Thành phần hệ thống.......................................................................................................
2.7.1.2. Cách hoạt động...............................................................................................................
2.7.2. Sơ đồ nguyên lý Node Nhận...................................................................................................
2.7.2.1. Thành phần hệ thống.......................................................................................................
2.7.2.2. Cách hoạt động...............................................................................................................
2.8.Sơ đồ mạch........................................................................................................................................
2.8.1. Sơ đồ mạch thu LoRa..............................................................................................................
2.8.2. Sơ đồ mạch thu LoRa..............................................................................................................
2.9.Lưu đồ giải thuật...............................................................................................................................
2.9.1. Lưu đồ giải thuật Node Truyền...............................................................................................
2.9.2. Lưu đồ giải thuật Node Nhận..................................................................................................
2.10.Thực nghiệm....................................................................................................................................
2.10.1. Code.......................................................................................................................................
2.10.1.1. Code Lora truyền..........................................................................................................
2.10.1.2. Code Lora nhận.............................................................................................................
2.10.2. Kết nối...................................................................................................................................
2.10.2.1. Upload code và test code..............................................................................................
2.10.2.2. Thiết lập Bảng điều khiển đám mây Blynk 2.0 IoT......................................................
2.10.2.3. Thiết lập ứng dụng di động Blynk IoT 2.0...................................................................
2.10.3. Kết quả..................................................................................................................................
KẾT LUẬN.................................................................................................................................................
TÀI LIỆU THAM KHẢO.........................................................................................................................
MỤC LỤC HÌNH ẢNH
MỤC LỤC BẢNG
LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin phát triển mạnh mẽ như hiện nay, việc áp dụng
các công nghệ mới vào các lĩnh vực truyền thống đang trở thành một xu hướng quan
trọng. Trong lĩnh vực nông nghiệp, việc sử dụng các công nghệ tiên tiến không chỉ giúp
nâng cao hiệu suất sản xuất mà còn giảm thiểu tác động tiêu cực lên môi trường.
Một trong những lĩnh vực đang nhận được sự quan tâm đặc biệt là mô hình tưới tiêu
thông minh. Việc áp dụng công nghệ LoRa (Long Range) trong mô hình này mang lại
nhiều tiềm năng với khả năng truyền dẫn dữ liệu xa và tiết kiệm năng lượng. LoRa là một
công nghệ truyền dẫn không dây cho các ứng dụng IoT (Internet of Things) với khả năng
truyền dẫn dữ liệu trên khoảng cách lớn với tiêu thụ năng lượng thấp, lý tưởng cho các
ứng dụng nông nghiệp.
Báo cáo này tập trung vào việc nghiên cứu và phân tích cách mà công nghệ LoRa có
thể được tích hợp vào mô hình tưới tiêu để tăng cường hiệu quả trong việc quản lý tưới
tiêu và tiết kiệm tài nguyên. Bằng cách kết hợp dữ liệu từ các cảm biến LoRa với phân
tích thông minh, chúng em sẽ đi sâu vào các phương pháp và ứng dụng cụ thể của công
nghệ này trong việc quản lý và điều khiển hệ thống tưới tiêu.
Hy vọng rằng báo cáo này sẽ cung cấp cái nhìn toàn diện và sâu sắc về tiềm năng
của công nghệ LoRa trong mô hình tưới tiêu, đồng thời góp phần vào sự phát triển bền
vững của ngành nông nghiệp thông minh trong thời đại kỹ thuật số.
LỜI CẢM ƠN
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Các thách thức và yêu cầu đã thúc đẩy ra một lĩnh vực kiến trúc mạng hoàn toàn
mới cho hệ thống IoT. Trong vài năm qua, các tiêu chuẩn và khung kiến trúc đã xuất hiện
để giải quyết thách thức của việc thiết kế các mạng IoT quy mô lớn.
Khái niệm cơ bản trong tất cả các kiến trúc này là hỗ trợ dữ liệu, quá trình và các
chức năng mà các thiết bị điểm cuối thực hiện. Hai trong số các kiến trúc được biết đến
nhất là các kiến trúc được hỗ trợ bởi oneM2M và Diễn đàn Thế giới IoT (IoTWF).

1.1.Kiến trúc tiêu chuẩn hóa IoT oneM2M

Hình 1.1: Kiến trúc oneM2M


Kiến trúc oneM2M chia các chức năng IoT thành ba lớp chính: lớp ứng dụng, lớp
dịch vụ và lớp mạng. Mặc dù kiến trúc này thoạt nhìn có vẻ đơn giản và hơi chung chung,
nhưng nó rất phong phú và thúc đẩy khả năng tương tác thông qua các API thân thiện với
CNTT và hỗ trợ nhiều công nghệ IoT:

1
Hình 1.2: Lớp ứng dụng của kiến trúc oneM2M
- Lớp ứng dụng: Kiến trúc oneM2M tập trung chủ yếu vào khả năng kết nối giữa các thiết
bị và ứng dụng của chúng. Lớp này bao gồm các giao thức lớp ứng dụng và cố gắng
chuẩn hóa các định nghĩa API để tương tác với các hệ thống thông minh kinh doanh (BI).
Các ứng dụng có xu hướng dành riêng cho ngành và có bộ mô hình dữ liệu riêng và do đó
chúng được hiển thị dưới dạng các thực thể dọc.

Hình 1.3: Lớp dịch vụ của kiến trúc oneM2M

2
- Lớp dịch vụ: Lớp này được hiển thị dưới dạng khung ngang trên nền dọc ứng dụng
công nghiệp. Ở lớp này, các mô-đun ngang bao gồm mạng vật lý mà các ứng dụng IoT
chạy trên đó, các giao thức quản lý cơ bản và phần cứng. Các ví dụ bao gồm truyền thông
backhaul qua mạng di động, mạng MPLS, VPN, v.v. Đứng đầu là lớp dịch vụ chung. Lớp
khái niệm này bổ sung các API và phần mềm trung gian hỗ trợ các dịch vụ và ứng dụng
của bên thứ ba. Một trong những mục tiêu đã nêu của oneM2M là “phát triển các thông
số kỹ thuật nhằm giải quyết nhu cầu về Lớp dịch vụ M2M chung có thể dễ dàng nhúng
vào các nút phần cứng và phần mềm khác nhau và dựa vào việc kết nối vô số thiết bị
trong mạng khu vực hiện trường với M2M máy chủ ứng dụng, thường nằm trong đám
mây hoặc trung tâm dữ liệu.” Mục tiêu quan trọng của oneM2M là thu hút và tích cực thu
hút sự tham gia của các tổ chức từ các lĩnh vực kinh doanh liên quan đến M2M, bao gồm
viễn thông và giao thông thông minh, chăm sóc sức khỏe, tiện ích, tự động hóa công
nghiệp và ứng dụng nhà thông minh, cùng một số ứng dụng khác.

Hình 1.4: Lớp mạng của kiến trúc oneM2M


- Lớp mạng: Đây là miền truyền thông dành cho các thiết bị IoT và thiết bị đầu cuối. Nó
bao gồm chính các thiết bị và mạng truyền thông liên kết chúng. Các phương án của cơ
sở hạ tầng truyền thông này bao gồm các công nghệ lưới không dây, chẳng hạn như IEEE
802.15.4 và các hệ thống điểm-đa điểm không dây, chẳng hạn như IEEE 801.11ah. Cũng

3
bao gồm các kết nối thiết bị có dây, chẳng hạn như thông tin liên lạc qua đường dây điện
IEEE 1901.

1.2. Kiến trúc tiêu chuẩn của Diễn đàn Thế giới IoT (IoTWF)

Hinh 1.5 Kiến trúc IoTWF


Mô hình do Diễn đàn Thế giới IoT đưa ra mang đến một góc nhìn rõ ràng, đơn giản về
IoT và bao gồm tính toán biên, lưu trữ dữ liệu và truy cập. Nó cung cấp một cách ngắn
gọn để hình dung IoT từ góc độ kỹ thuật. Mỗi lớp trong số bảy lớp được chia thành các
chức năng cụ thể và bảo mật bao trùm toàn bộ mô hình.
- Lớp 1: Lớp thiết bị vật lý và bộ điều khiển
+ Lớp đầu tiên của mô hình IoT là lớp thiết bị vật lý và bộ điều khiển. Lớp này là nơi
chứa “mọi thứ” trong Internet of Things, bao gồm các thiết bị đầu cuối và cảm biến khác
nhau gửi và nhận thông tin.
+ Kích thước của những “thứ” này có thể dao động từ những cảm biến gần như cực nhỏ
cho đến những cỗ máy khổng lồ trong nhà máy. Chức năng chính của chúng là tạo ra dữ
liệu và có khả năng được truy vấn và/hoặc kiểm soát qua mạng.

4
Hình 1.6: Lớp kết nối của kiến trúc IoTWF
- Lớp 2: Lớp kết nối
+ Trong lớp thứ hai của mô hình IoT, trọng tâm là khả năng kết nối. Chức năng quan
trọng nhất của lớp IoT này là truyền dữ liệu đáng tin cậy và kịp thời.
+ Cụ thể hơn, điều này bao gồm việc truyền giữa các thiết bị Lớp 1 và mạng cũng như
giữa mạng và quá trình xử lý thông tin xảy ra ở Lớp 3 (lớp điện toán biên).

Hình 1.7: Lớp điện toán biên của kiến trúc IoTWF

5
- Lớp 3: Lớp điện toán biên
+ Điện toán biên là vai trò của Lớp 3. Ở lớp này, điểm nhấn là giảm dữ liệu và chuyển
đổi các luồng dữ liệu mạng thành thông tin sẵn sàng để lưu trữ và xử lý bởi các lớp cao
hơn. Một trong những nguyên tắc cơ bản của mô hình tham chiếu này là việc xử lý thông
tin được bắt đầu càng sớm và càng gần rìa mạng càng tốt.
- Lớp 4: Lớp tích lũy dữ liệu
+ Thu thập dữ liệu và lưu trữ để các ứng dụng có thể sử dụng được khi cần thiết. Chuyển
đổi dữ liệu dựa trên sự kiện sang xử lý dựa trên truy vấn.
- Lớp 5: Lớp trừu tượng hóa dữ liệu
+ Điều chỉnh nhiều định dạng dữ liệu và đảm bảo ngữ nghĩa nhất quán từ nhiều nguồn
khác nhau. Xác nhận rằng tập dữ liệu đã hoàn chỉnh và hợp nhất dữ liệu vào một nơi hoặc
nhiều kho dữ liệu bằng cách sử dụng ảo hóa.
- Lớp 6: Lớp ứng dụng
+ Giải thích dữ liệu bằng cách sử dụng các ứng dụng phần mềm. Các ứng dụng có thể
giám sát, kiểm soát và cung cấp báo cáo dựa trên việc phân tích dữ liệu.
- Lớp 7: Lớp cộng tác và xử lý
+ Tiêu thụ và chia sẻ thông tin ứng dụng.
+ Việc cộng tác và truyền đạt thông tin IoT thường đòi hỏi nhiều bước và đó là điều
khiến IoT trở nên hữu ích.
Lớp này có thể thay đổi quy trình kinh doanh và mang lại lợi ích của IoT.

1.3. Những mô hình khác


Ngoài hai mô hình tham chiếu IoT đã được trình bày trên, còn tồn tại một số mô hình
tham chiếu khác như: mô hình PURDUE, mô hình IIRA,…

6
Hình 1.8: Mô hình PURDUE
Mô hình PURDUE có nguồn gốc là mô hình tham chiếu của thập niên 1990 cho kiến
trúc doanh nghiệp, được phát triển bởi Theodore J. Williams và các thành viên của Hiệp
hội Đại học Công nghiệp-Purdue phục vụ cho sự tích hợp của 2 ngành sản xuất - máy
tính. Mô hình PURDUE được gọi là mô hình tham chiếu Hệ thống điều khiển và tự động
hóa công nghiệp.
Mô hình PURDUE bao gồm ba khu vực: khu sản xuất OT (Cell/Zone Area) bên dưới
và khu IT bên trên cùng, được ngăn cách bởi khu phi quân sự công nghiệp (IDMZ) ở
giữa nhằm hạn chế giao tiếp trực tiếp giữa 2 khu IT và OT. Mục đích đằng sau việc thêm

7
lớp IDMZ này là để kiểm soát an toàn trong việc truyền thông mạng và đảm bảo việc sản
xuất không bị gián đoạn.

Hình 1.9: Mô hình IIRA


Một kiến trúc được thiết lập ở mức cao nhất, IIRA cung cấp các mô hình, định nghĩa
và một bộ từ vựng được xác định rõ. Tài liệu trình bày một bộ tiêu chuẩn cốt lõi và là
điểm chung cho những người tham gia IoT để phát triển khung, tài liệu, truyền thông và
triển khai. Chúng tôi cho rằng công cụ này sẽ thúc đẩy khả năng tương tác và giúp hướng
dẫn phát triển tiêu chuẩn. Ở đâu có tiêu chuẩn, tất cả chúng ta đều có thể phát triển mạnh.
Các mô hình trên được xác nhận bởi nhiều tổ chức và cơ quan tiêu chuẩn khác nhau
và thường dành riêng cho một số ngành hoặc ứng dụng IoT nhất định.
Mặc dù có sự khác biệt đáng kể giữa các mô hình nói trên, nhưng mỗi mô hình đều
tiếp cận IoT từ góc độ phân lớp, cho phép phát triển công nghệ và tiêu chuẩn một cách
độc lập ở từng cấp độ hoặc lĩnh vực. Điểm chung giữa các mô hình này là chúng đều
nhận biết sự kết nối của các thiết bị điểm cuối IoT với mạng truyền dữ liệu nơi dữ liệu
được các ứng dụng sử dụng cuối cùng, cho dù ở trung tâm dữ liệu, trên đám mây hay tại
các điểm quản lý khác nhau trong khắp ngăn xếp.

8
1.4. Ngăn xếp chức năng cốt lõi của IoT
Mạng IoT được xây dựng dựa trên khái niệm “vạn vật” hoặc các vật thể thông minh
thực hiện các chức năng và cung cấp các dịch vụ được kết nối mới. Những đối tượng này
“thông minh” vì chúng sử dụng kết hợp thông tin theo ngữ cảnh và các mục tiêu được
định cấu hình để thực hiện các hành động.
Những hành động này có thể khép kín (nghĩa là đối tượng thông minh không dựa vào
hệ thống bên ngoài để thực hiện các hành động của nó); tuy nhiên, trong hầu hết các
trường hợp, “vật” tương tác với hệ thống bên ngoài để báo cáo thông tin mà đối tượng
thông minh thu thập, trao đổi với các đối tượng khác hoặc tương tác với nền tảng quản lý.
Trong trường hợp này, nền tảng quản lý có thể được sử dụng để xử lý dữ liệu được thu
thập từ đối tượng thông minh và cũng hướng dẫn hành vi của đối tượng thông minh. Từ
quan điểm kiến trúc, một số thành phần phải phối hợp với nhau để mạng IoT hoạt động:
- Lớp “Things”: Ở lớp này, các thiết bị vật lý cần phải phù hợp với các ràng buộc của môi
trường mà chúng được triển khai trong khi vẫn có thể cung cấp thông tin cần thiết.
- Lớp mạng truyền thông: Khi các đối tượng thông minh không hoạt động độc lập, chúng
cần giao tiếp với hệ thống bên ngoài. Trong nhiều trường hợp, giao tiếp này sử dụng công
nghệ không dây. Lớp này có bốn lớp con:
+ Lớp con mạng truy cập: Điểm cuối cùng của mạng IoT là mạng truy cập. Điều này
thường được tạo thành từ các công nghệ không dây như 802.11ah, 802.15.4g và LoRa.
Các cảm biến được kết nối với mạng truy cập cũng có thể có dây.
+ Cổng và lớp con mạng backhaul: Một hệ thống truyền thông chung tổ chức nhiều đối
tượng thông minh trong một khu vực nhất định xung quanh một cổng chung. Cổng giao
tiếp trực tiếp với các đối tượng thông minh. Vai trò của cổng là chuyển tiếp thông tin
được thu thập thông qua một phương tiện tầm xa hơn (được gọi là đường truyền ngược)
đến trạm trung tâm headend nơi thông tin được xử lý.
+ Lớp con vận chuyển mạng: Để truyền thông thành công, các giao thức lớp mạng và lớp
vận chuyển như IP và UDP phải được triển khai để hỗ trợ nhiều loại thiết bị kết nối và sử
dụng phương tiện truyền thông.
+ Lớp con quản lý mạng IoT: Phải có các giao thức bổ sung để cho phép các ứng dụng
headend trao đổi dữ liệu với các cảm biến.
- Lớp ứng dụng và phân tích: Ở lớp này, ứng dụng cần xử lý dữ liệu được thu thập, không
chỉ để kiểm soát các đối tượng thông minh khi cần thiết mà còn đưa ra quyết định thông
minh dựa trên thông tin được thu thập và từ đó hướng dẫn các “sự vật” hoặc các hệ thống

9
khác để thích ứng với các điều kiện được phân tích và thay đổi hành vi hoặc thông số của
chúng.

10
CHƯƠNG 2: ỨNG DỤNG CÔNG NGHỆ LORA TRONG MÔ HÌNH
TƯỚI TIÊU TỰ ĐỘNG

2.1. Tổng quan đề tài


Tưới tiêu tự động là một trong những ứng dụng quan trọng của IoT trong nông nghiệp
hiện đại. Khi kết hợp với công nghệ LoRa (Long-Range), một công nghệ truyền thông
không dây tiên tiến, mô hình tưới tiêu tự động trở nên hiệu quả và linh hoạt hơn.
Hệ thống tưới tiêu thông minh IoT sử dụng LoRa là giải pháp tự động hóa việc tưới
tiêu cho khu vườn, cây trồng. Hệ thống này giúp người dùng tiết kiệm nước, thời gian và
tăng hiệu quả tưới nước.
Hệ thống bao gồm các thành phần chính: các cảm biến , bộ điều khiển ESP8266,
mạng LoRa và ứng dụng Blynk. Các Cảm biến đo độ ẩm đất và gửi dữ liệu đến bộ điều
khiển. Bộ điều khiển xử lý dữ liệu và điều khiển van nước dựa trên cài đặt. Mạng LoRa
giúp kết nối các thiết bị trong hệ thống. Ứng dụng Blynk cho phép người dùng theo dõi
dữ liệu, điều khiển van nước và thông báo tưới nước.

2.2. Tổng quan về Lora

Hình 2.1: Lora trong nông nghiệp


- LoRa là viết tắt của Long Range, là một công nghệ truyền dẫn không dây được sử dụng
để truyền dẫn dữ liệu từ một thiết bị đến một thiết bị khác trên khoảng cách rất xa. LoRa
được xem là một công nghệ truyền dẫn mới và hiệu quả, đặc biệt là trong việc kết nối với

11
các thiết bị địa phương và đảm bảo tính toàn vẹn của dữ liệu. Nó được sử dụng rộng rãi
trong các ứng dụng Internet of Things (IoT), quản lý tài nguyên và các hệ thống kết nối
không dây khác.
- Đặc điểm của công nghệ Lora: Là công nghệ được sử dụng phổ biến hiện nay, LoRa có
những đặc điểm sau:
+ Tầm xa: LoRa có thể truyền dữ liệu trong khoảng cách xa hơn so với các công nghệ
truyền dẫn không dây khác như Wi-Fi hay Bluetooth.
+ Tiết kiệm năng lượng: LoRa tiêu thụ điện năng rất thấp, giúp cho các thiết bị IoT có thể
hoạt động trong thời gian dài mà không cần thay pin.
+ Độ tin cậy cao: LoRa có khả năng chống nhiễu cao, giúp đảm bảo dữ liệu được truyền
tải an toàn và chính xác.
- Một số Model Lora có trên thị trường: Module Lora SX1278 RF-UART, Mô-đun LoRa
Ra-01/Ra-02, Mô-đun LoRa Dragino LoRaWAN Shield,....

2.3. Phần mềm xây dựng


- Phần mềm lập trình ARDUINO IDE

Hình 2.3: Phần mềm lập trình ARDUINO IDE

12
Arduino IDE là một phần mềm soạn thảo văn bản chính hãng, giúp bạn viết code
để nạp vào bo mạch Arduino một cách nhanh chóng, dễ dàng và hoàn toàn miễn phí.
- Phần mềm thiết kế mạch điện FRITZING

Hình 2.4: Phần mềm thiết kế mạch điện FRITZING


Fritzing là phần mềm mã nguồn mở, miễn phí, giúp người dùng dễ dàng thiết kế
mạch điện tử, đặc biệt hữu ích cho các dự án Arduino.Điểm nổi bật của Fritzing là Mô
phỏng trực quan như Hiển thị mạch điện trên bảng mạch, sơ đồ nguyên lý và bản vẽ PCB.

2.4. Thiết bị
Đối với dự án này, chúng em có các thiết bị Arduino Nano, mô-đun thu phát SX1278
LoRa, bo mạch NodeMCU ESP8266, cảm biến độ ẩm đất điện dung, cảm biến nhiệt độ
chống nước DS18B20, cảm biến nhiệt độ và độ ẩm DHT22, màn hình OLED 0,96 inch,
mô-đun rơle kênh đơn 5 Volt và một Động cơ bơm dc 5V. Động cơ dùng để hút nước từ
đầu vào và đẩy nước qua đầu ra. Một đường ống có thể được kết nối với nó. Sau đây
bảng thống kê các thiết bị

13
STT Tên thiết bị Số lượng
1 Mạch Thu Phát RF Lora SX1278 433Mhz 2
Ra-02
2 Module Cảm Biến Nhiệt Độ và Độ Am 1
DHT22
3 Relay KY-019 5VDC 1
4 Cảm Biến Nhiệt Độ DS18B20 1
2.4.1. Mạch
Thu 5 Màn hình OLED 0.96" 128x64 giao tiếp I2C 1 Phát RF
Lora SX1278
6 Mạch NodeMCU ESP8266-12E 1
433Mhz
Ra-02 7 Cảm biến độ ẩm đất điện dung 1
Mạch 8 Arduino Nano 1 thu phát
RF Lora SX1278
433Mhz 9 Dây gắn 30 Ra-02 sử
dụng 10 Máy bơm nước 5V DC 1 chip
SX1278 của nhà
sản xuất SEMTECH chuẩn giao tiếp LORA (Long Range), chuẩn LORA mang đến hai
yếu tố quan trọng là tiết kiệm năng lượng và khoảng cách phát triển siêu xa (Ultimate)
giải pháp không dây tầm xa), ngoài ra nó còn có khả năng cấu hình để tạo ra thành mạng
truyền nhận nên hiện tại được phát triển và sử dụng rất nhiều trong các nghiên cứu về
IoT.

Mô-đun này sử dụng IC SX1278 của SEMTECH và hoạt động ở tần số 433 MHz .
Nhảy tần—mang đến cho bạn sự cân bằng tuyệt vời trong việc truyền tín hiệu chất lượng

14
sẽ bao phủ phạm vi 420-450 MHz. Khả năng không dây tầm xa này được gói gọn trong
một gói nhỏ (17 x 16mm) và được cung cấp mà không cần ăng-ten
+ Thông số kỹ thuật:
- IC chính: SX1278 từ SEMTECH.
- Truyền thông trải phổ LoRaTM
- +20dBm – 10mW. Công suất đầu ra RF ổn định khi điện áp đầu vào thay đổi
- Giao tiếp SPI bán song công
- Tốc độ bit có thể lập trình có thể đạt tới 300kbps
- Hỗ trợ Chế độ điều chế FSK, GFSK, MSK, GMSK, LoRaTM và OOK
- Dải sóng RSSI 127dB.
- Tự động phát hiện tín hiệu RF, chế độ CAD và AFC tốc độ siêu cao
- Với công cụ dữ liệu CRC 256 byte
- Gói SMD nửa lỗ (lỗ đúc)
- Với hộp che chắn kim loại
- Khoảng cách ghim: 2.0mm
- Chứng nhận: FCC/CE
- Chuẩn không dây: 433MHz
- Dải tần: 420 – 450MHz
- Cổng: SPI/GPIO
- Điện áp hoạt động: 1,8 – 3,7V, mặc định 3,3V
- Công việc hiện tại:
- Nhận: ít hơn 10,8mA (LnaBoost đã đóng, Dải 1)
- Truyền: dưới 120mA(+20dBm)
- Mô hình sleep: 0,2uA
- Nhiệt độ làm việc: -40- +85 độ.

15
2.4.2. Cảm biến độ ẩm đất điện dung
Cảm biến độ ẩm đất điện dung này được phân biệt với hầu hết các cảm biến điện trở
trên thị trường và sử dụng cảm biến điện dung để phát hiện độ ẩm của đất.
Cảm biến độ ẩm đất điện dung khó bị ăn mòn, không giống như các loại cảm biến độ
ẩm đất quen thuộc trước đây, giúp tăng tuổi thọ làm việc lên rất nhiều.

+ Thông số kĩ thuật:
- Điện áp làm việc: 3.3 ~ 5.5 VDC
- Điện áp đầu ra: 0 ~ 3.0 VDC
- Giao diện: PH2.54-3P
- Kích thước: 98 x 23mm (LxW)

2.4.3. Module Cảm Biến Nhiệt Độ và Độ Ẩm DHT22


Cảm biến độ ẩm nhiệt độ DHT22 là cảm biến thông dụng tích hợp vừa đo được nhiệt
độ và độ ẩm, độ chính xác khá cao. Giao tiếp với vi điều khiển qua chuẩn giao tiếp 1
dây.
Cảm biến độ ẩm nhiệt độ DHT22 ra chân được tích hợp sẳn điện trở 5.1 KOhm giúp
người dung kết nối và sử dụng đơn giản hơn cảm biến DHT22 chưa ra chân. So với
DHT11 thì DHT22 có độ chính xác cao và khoảng đo hoạt động rộng hơn. Module truyền
dữ liệu thông qua giao tiếp 1 dây nên dễ dàng kết nối và lấy dữ liệu. Module được thiết
kế hoạt động ở mức điện áp 5V.

16
+ Thông số kĩ thuật:
- Điện áp hoạt động: 5V
- Khoảng đo độ ẩm: 0% – 100% RH sai số 2% RH
- Khoảng đo nhiệt độ: -40 ~ 80 độ C sai số 0.5% độ C
- Tần số lấy mẫu tối đa 0.5Hz (2 giây / lần)
- Kích thước: 28mm x 12mm x 10mm

2.4.4. Cảm Biến Nhiệt Độ DS18B20


Là phiên bản chống nước, chống ẩm của Cảm biến nhiệt độ DS18B20. Cảm biến
nhiệt độ DS18B20 là cảm biến ( loại digital ) đo nhiệt độ mới của hãng MAXIM với độ
phân giải cao ( 12bit ). IC sử dụng giao tiếp 1 dây rất gọn gàng, dễ lập trình. IC còn có
chức năng cảnh báo nhiệt độ khi vượt ngưỡng và đặc biệt hơn là có thể cấp nguồn từ chân
data ( parasite power ).
Cảm biến nhiệt độ này có thể hoạt động ở 125 độ C nhưng cáp bọc PVC => nên giữ
nó dưới 100 độ C. Đây là cảm biến kỹ thuật số, nên không bị suy hao tín hiệu đường dây
dài
Ứng dụng: HVAC kiểm soát nhiệt môi trường, đo nhiệt độ bên trong các tòa nhà,
thiết bị, máy móc, và trong hệ thống giám sát.

17
+ Thông số kĩ thuật:
- Nguồn: 3 – 5.5V
- Dải đo nhiệt độ: -55 đến 125 độ C ( -67 đến 257 độ F)
- Sai số: +- 0.5 độ C khi đo ở dải -10 – 85 độ C
- Độ phân giải: người dùng có thể chọn từ 9 – 12 bits
- Chuẩn giao tiếp: 1-Wire ( 1 dây ).
- Có cảnh báo nhiệt khi vượt ngưỡng cho phép và cấp nguồn từ chân data.
- Thời gian chuyển đổi nhiệt độ tối đa : 750ms ( khi chọn độ phân giải 12bit ).
- Mỗi IC có một mã riêng (lưu trên EEPROM của IC) nên có thể giao tiếp nhiều
DS18B20 trên cùng 1 dây
- Ống thép không gỉ (chống ẩm , nước) đường kính 6mm, dài 50mm
- Đường kính đầu dò: 6mm
- Chiều dài dây: 1m

2.4.5. Màn hình OLED 0.96" 128x64 giao tiếp I2C


Màn hình OLED 0.96 là một loại màn hình công nghiệp sử dụng công nghệ OLED
(Organic Light Emitting Diode) để tạo ra hình ảnh. Đây là một loại màn hình nhỏ với
kích thước chỉ 0.96 inch, vì vậy được sử dụng rộng rãi trong các thiết bị di động, thiết bị
đeo, máy tính bảng và các thiết bị điện tử khác.
Màn hình OLED 0.96 có độ sáng cao, tỷ lệ tương phản cao và màu sắc trung thực,
cung cấp hình ảnh sắc nét và đẹp mắt. Nó cũng có thể hiển thị đủ màu sắc và có thể tạo ra
hình ảnh độc đáo với các góc nhìn rộng và trung thực.

18
Màn hình OLED 0.96 còn có thể tiết kiệm điện năng vì nó chỉ tạo ra ánh sáng khi cần
thiết, giúp cho các thiết bị sử dụng nó có thể hoạt động lâu hơn với một pin.

+ Thông số kĩ thuật:
- Chip điều khiển: SSD1306
- Góc nhìn: >160° (gần như ở một mặt phẳng)
- Hỗ trợ điện áp: 3V ~ 5V DC
- Kích thước: 0.96 inch
- Độ phân giải: 128x64
- Giao tiếp: IIC (PIN: GND, VDD, SCK, SDA)

2.4.6. Mạch NodeMCU ESP8266-12E


Kit RF thu phát Wifi ESP8266 NodeMCU Lua V3 CH340 là phiên bản NodeMCU sử
dụng IC nạp giá rẻ CH340 từ Lolin với bộ xử lý trung tâm là module Wifi SoC ESP8266,
kit có thiết kế dễ sử dụng và đặc biệt là có thể sử dụng trực tiếp trình biên dịch của
Arduino để lập trình và nạp code, điều này khiến việc sử dụng và lập trình các ứng dụng
trên ESP8266 trở nên rất đơn giản.
Kit RF thu phát Wifi ESP8266 NodeMCU Lua V3 CH340 được dùng cho các ứng
dụng cần kết nối, thu thập dữ liệu và điều khiển qua sóng Wifi, đặc biệt là các ứng dụng
liên quan đến IoT.

19
+ Thông số kỹ thuật:
- IC chính: ESP8266 Wifi SoC.
- Phiên bản firmware: NodeMCU Lua
- Chip nạp và giao tiếp UART: CH340
- GPIO tương thích hoàn toàn với firmware Node MCU.
- Cấp nguồn: 5VDC MicroUSB hoặc Vin.
- GIPO giao tiếp mức 3.3VDC
- Tích hợp Led báo trạng thái, nút Reset, Flash.
- Tương thích hoàn toàn với trình biên dịch Arduino.
- Kích thước: 59 x 32mm

2.4.7. Arduino Nano V3.0


Arduino Nano là phiên bản nhỏ gọn của Arduino Uno với cùng chip điều khiển
ATmega328P, vì cùng chip điều khiển nên mọi tính năng hay chương trình có trên
Arduino Uno hoàn toàn tương thích với Arduino Nano. Một ưu điểm của Arduino Nano
là sử dụng chip ATmega328P loại dán nên sẽ có thêm 2 chân Analog và giá thành rẻ hơn
so với phiên bản IC chân cắm Arduino Uno.
Arduino Nano có thiết kế đơn giản, sử dụng IC nạp CH340 cho chi phí tối ưu nhưng vẫn
có được toàn bộ các tính năng so với phiên bản gốc của hãng, cách sử dụng cũng hoàn
toàn tương đương.

20
Thông số kỹ thuật:
Thiết kế chuẩn kích thước, chân Arduino Nano.
Firmware: Arduino Nano.
IC chính: ATmega328P-AU.
IC nạp và giao tiếp UART: CH340.
Điện áp cấp: 5VDC cổng USB hoặc 6-9VDC chân Raw.
Mức điện áp giao tiếp GPIO: TTL 5VDC.
Dòng GPIO: 40mA.
Số chân Digital: 14 chân, trong đó có 6 chân PWM.
Số chân Analog: 8 chân (hơn Arduino Uno 2 chân).
Flash Memory: 32KB (2KB Bootloader).
SRAM: 2KB
EEPROM: 1KB
Clock Speed: 16Mhz.
Tích hợp Led báo nguồn, led chân D13, LED RX, TX.
Tích hợp IC chuyển điện áp 5V LM1117.
Kích thước: 18.542 x 43.18mm
2.5.Mô hình OSI
Phần này trình bày kiến trúc dựa trên IoT hoàn chỉnh cho nông nghiệp thông minh. Kiến
trúc được đề xuất bao gồm bốn lớp: lớp Physical, lớp Presentation, lớp Network, lớp
Application như trong Hình 1 .

21
+ Lớp Physical: Lớp này bao gồm các thông số giám sát khác nhau như điều kiện thời
tiết, độ ẩm và độ ẩm của đất, nhiệt độ. Hệ thống này bao gồm nhiều cảm biến sử dụng
như: Cảm Biến Nhiệt Độ DS18B20, Cảm Biến Nhiệt Độ và Độ Ẩm DHT22, Cảm biến
độ ẩm đất điện dung và các bộ truyền động như: Máy bơm nước 5V DC, Relay KY-019
5VDC. Dữ liệu được thu thập sẽ được truyền đến các cổng hoặc điểm thu thập dữ liệu
thông qua giao tiếp có dây/không dây. Dữ liệu giám sát từ lớp này được sử dụng để theo
dõi sự phát triển của cây trồng, trong đó các thông số khác nhau có thể được điều chỉnh
từ phía trung tâm điều khiển, chẳng hạn như tưới tiêu
+ Lớp Presentation: Lớp này bao gồm các vi điều khiển và màn hình hiển thị như: Vi
điểu khiển Arduino Nano, Màn hình OLED 0.96". Lớp này có nhiệm vụ Thu thập dữ
liệu, Điều khiển hệ thống, Hiển thị thông tin.
+ Lớp Network: Chức năng chính của lớp Network là cho phép truyền dữ liệu từ lớp
Physical đến lớp Application dựa trên các công nghệ truyền thông tầm xa và tầm ngắn
khác nhau. Hiện tại trong đề tài này đang được sử dụng giải pháp truyền không dây Lora
(Lora SX1278) và Wifi (NodeMCU ESP8266-12E) dùng để trao đổi dữ liệu với sự trợ
giúp của các cổng trường.

22
+ Lớp Application: Lớp Application xử lý tất cả dữ liệu nhận được từ các nút cảm biến
và thiết bị đo lường thông qua lớp Network. Tại đây nhóm sử dụng lưu trữ, phân tích và
trực quan hóa dữ liệu và điều chỉnh các thông số hiển thị qua Ứng dụng và web Blynk.

2.6.Sơ đồ khối
2.6.1. Sơ đồ khối Node truyền và chức năng từng khối

- Chức năng khối Node Truyền


+ Khối xử lý trung tâm: Sử dụng Board mạch Arduino Nano để làm khối điều khiển
chính của hệ thống để thực hiện quá trình xử lý tín hiệu từ khối cảm biến đồng thời
đưa dữ liệu thu thập lên kênh truyền dẫn LoRa, thực hiện điều khiển khối thiết bị
ngoại vi và khối hiển thị.

23
+ Khối cảm biến: Có nhiệm vụ thu thập thông số từ môi trường bao gồm nhiệt độ, độ
ẩm, độ ẩm đất và gửi đến khối xử lý trung tâm.

+ Khối điều khiển thiết bị ngoại vi: Là các thiết bị tải như relay,máy bơm chịu sự điều
khiển từ nút điều khiển hoạt động trên Gateway và Websever.

+ Khối nguồn: Sử dụng Adapter 5V - 2A để cung cấp nguồn điện cho hệ thống Node.

+ Module thu phát LoRa Truyền: Truyền dữ liệu cho Lora nhận

24
2.6.2. Sơ đồ khối Node nhận và chức năng từng khối

- Chức năng khối Node Nhận


+ Khối xử lý trung tâm: Sử dụng Board mạch Module NodeMCU ESP8266-12E để làm
khối điều khiển chính của hệ thống. Khối có nhiệm vụ nhận dữ liệu gửi đến từ Node
truyền để xử lý đồng thời đưa dữ liệu thu thập được lên trên Web Server, thực hiện điều
khiển khối hiển thị.

25
+ Khối hiển thị: Có chức năng hiển thị số gói tin được nhận, các thông số môi trường đo
được từ các LoRa Sensor Node gửi đến Gateway

+ Khối nguồn: Sử dụng Adapter 5V - 2A để cung cấp nguồn điện cho hệ thống Gateway

+ Web Server: Có chức năng nhận các gói tin chứa dữ liệu được thu thập từ Gateway
truyền lên và lưu trữ trên Cloud Server. Thông qua một ứng dụng Blynk có thể giám sát
những dữ liệu đã lưu trữ trên Server đồng thời giúp người dùng có thể quan sát, theo dõi
các thông tin gửi về và ra lệnh điều khiển các thiết bị

26
+ Module thu phát LoRa Nhận: Nhận dữ liệu từ Lora truyền

27
2.7.Sơ đồ nguyên lý
2.7.1. Sơ đồ nguyên lý Node Truyền

2.7.1.1. Thành phần hệ thống


+ Arduino Nano: Vi điều khiển trung tâm của hệ thống, có nhiệm vụ thu thập dữ
liệu từ các cảm biến, xử lý dữ liệu và điều khiển các thiết bị đầu ra.
+ Cảm biến độ ẩm đất điện dung: Đo độ ẩm của đất.
+ Cảm biến nhiệt độ và độ ẩm DHT22: Đo nhiệt độ và độ ẩm của môi trường xung
quanh.
+ Cảm biến nhiệt độ chống nước DS18B20: Đo nhiệt độ của môi trường xung
quanh.
+ Điện trở 4,7k ohm: Giới hạn dòng điện cho chân dữ liệu của cảm biến DHT22.
+ Máy bơm nước 5V DC: Bơm nước tưới cho cây trồng.
+ 5V Relay: Dùng để điều khiển máy bơm nước.
+ Mô-đun Lora: Truyền dữ liệu thu thập được từ các cảm biến đến Lora Nhận.

28
2.7.1.2. Cách hoạt động
+ Các cảm biến độ ẩm đất điện dung, DHT22 và DS18B20 thu thập dữ liệu về độ
ẩm và nhiệt độ của đất và môi trường xung quanh.
+ Dữ liệu thu thập được được gửi đến Arduino Nano.
+ Arduino Nano xử lý dữ liệu và đưa ra quyết định điều khiển máy bơm nước.
+ Nếu độ ẩm đất thấp hơn mức cài đặt, Arduino Nano sẽ kích hoạt mô-đun relay
để bật máy bơm nước.
+ Máy bơm nước sẽ bơm nước tưới cho cây trồng.
+ Arduino Nano xử lý dữ liệu thu thập được và định dạng dữ liệu để truyền qua
mạng LoRa.
+ Module LoRa truyền dữ liệu đã định dạng đến Lora Nhận.

2.7.2. Sơ đồ nguyên lý Node Nhận

2.7.2.1. Thành phần hệ thống


+ Mô-đun LoRa: Mô-đun LoRa được sử dụng để truyền và nhận dữ liệu qua mạng LoRa.
Nó được kết nối với bảng mạch NodeMCU ESP8266-12E bằng các chân DIO0 đến
DIO5.

29
+ Bảng mạch NodeMCU ESP8266-12E: Bảng mạch NodeMCU ESP8266-12E là một vi
điều khiển có thể lập trình được dựa trên ESP8266. Nó được sử dụng để điều khiển mô-
đun LoRa và màn hình OLED.
+ Màn hình OLED I2C 0,96": Màn hình OLED I2C 0,96" được sử dụng để hiển thị thông
tin. Nó được kết nối với bảng mạch NodeMCU ESP8266-12E bằng các chân SDA và
SCL.

2.7.2.2. Cách hoạt động


+ Mô-đun LoRa được sử dụng để nhận dữ liệu qua mạng LoRa Từ Lora truyền
+ Bảng mạch NodeMCU ESP8266-12E được sử dụng để điều khiển mô-đun LoRa và
giao tiếp với màn hình OLED I2C 0,96".
+ Màn hình OLED I2C 0,96" được sử dụng để hiển thị thông số của các cảm biến cho
người dùng

2.8.Sơ đồ mạch
2.8.1. Sơ đồ mạch thu LoRa
- Đây là Sơ đồ mạch phát LoRa.

- Sau đây là lắp ráp các thành phần bằng bảng kết nối sau
SX1278 LoRa Arduino Nano
GND GND

30
3,3V 3,3V
NSS D10
MOSI D11
MISO D12
SCK D13
RST D9
DIO0 D2
Capacitive Soil Moisture Arduino Nano
VCC 3,3V
GND GND
Analog A0
DHT11/22 Arduino Nano
VCC 3,3V
GND GND
Signal D5
DS18B20 Arduino Nano
VCC 5V
GND GND
Data D6
4.7k ohm resistor VCC & Data pin
5V Relay Module Arduino Nano
VCC 5V
GND GND
IN1 D7

31
2.8.2. Sơ đồ mạch thu LoRa
- Đây là Sơ đồ mạch thu LoRa.

- Sau đây là lắp ráp các thành phần bằng bảng kết nối sau.
SX1278 LoRa NodeMCU ESP8266
GND GND
3,3V 3,3V
NSS D8
MOSI D7
MISO D6
SCK D5
RST D0
OLED DISPLAY NodeMCU ESP8266
GND GND
VDD 3,3V
SCK D1
SDA D12

32
2.9.Lưu đồ giải thuật
2.9.1. Lưu đồ giải thuật Node Truyền

- Thuật toán:

33
+ Bước 1: Khởi tạo các chân chuẩn SPI, khởi tạo LoRa, khởi tạo các biến, khởi tạo cảm
biến và kết nối LoRa với các thông số băng tầng 433Mhz.
+ Bước 2: Node sẽ kiểm tra xem có giá trị được đọc về từ cảm biến hay không, nếu có sẽ
đọc và lưu giá trị cảm biến.
+ Bước 3: Xây dựng chương trình lưu chuỗi dữ liệu với định dạng gồm: [địa chỉ của
node, dữ liệu cảm biến, trạng thái thiết bị tải, …]
+ Bước 4: Xây dựng hàm đọc địa chỉ và chuỗi dữ liệu của Node truyền sau đó truyền
chuỗi dữ liệu đến Node nhận. Nếu địa chỉ Node truyền không hợp lệ thì sẽ bỏ qua gói tin
đó.
+ Bước 5: Xây dựng hàm nhận lệnh từ Node nhận khi Node nhận gửi tín hiệu phản hồi về
Node thông báo trạng thái gói tin và tín hiệu điều khiển thiết bị.

2.9.2. Lưu đồ giải thuật Node Nhận

34
- Thuật toán:
+ Bước 1: Khởi tạo các chân chuẩn giao tiếp SPI, khởi tạo LoRa và các châ tín hiệu,
Wifi, biến dữ liệu, Blynk, kết nối LoRa với các thông số băng tầng 433Mhz.
+ Bước 2: Xây dựng hàm gửi dữ liệu để truyền lên Cloud Server ( Blynk) các giá trị của
cảm biến từ Node truyền gửi đến Node Nhận.
+ Bước 3: Xây dựng chương trình để nhận các gói tin từ Node truyền gửi đến, tiến hành
phân tích gói tin và khôi phục các giá trị trong gói tin.
+ Bước 4: Kiểm tra địa chỉ của Node truyền hợp lệ hay không, nếu địa chỉ hợp lệ thì lưu
dữ liệu vào cấu trúc của LoRa Node đã xây dựng trước đó sau đó truyền dữ liệu lên
Cloud Server Blynk. Nếu không hợp lệ sẽ bỏ qua gói tin có địa chỉ không hợp lệ.
+ Bước 5: Hiển thị các dữ liệu thu thập từ Node Truyền trên Cloud Server lên
Application

2.10.Thực nghiệm
2.10.1. Code

2.10.1.1. Code Lora truyền


* Chức năng chính:
+ Đọc dữ liệu từ cảm biến độ ẩm đất, nhiệt độ và độ ẩm không khí.
+ Gửi dữ liệu cảm biến qua mạng LoRa đến một thiết bị khác.
+ Điều khiển rơ-le để bật/tắt bơm nước tưới cây dựa trên độ ẩm đất.
* Phân tích code:
- Thư viện:

35
⇨ Cài đặt các thư viện cần thiết cho giao tiếp với cảm biến và module LoRa

- Định nghĩa chân cảm biến:

⇨ DHTPIN: Chân được kết nối với cảm biến DHT22 (pin 5 ).

relay: Chân được kết nối với rơ le điều khiển bơm (pin 7).
ss, rst, dio0: Chân giao tiếp LoRa (chức năng chính xác phụ thuộc vào mô-đun LoRa
được sử dụng).
ONE_WIRE_BUS: Chân được kết nối với bus cảm biến nhiệt độ Dallas (pin 6).

- Biến:

⇨ LoRaMessage: Chuỗi chứa dữ liệu sẽ được gửi qua LoRa.

36
counter: Theo dõi số lượng gói dữ liệu được gửi.
AirValue và WaterValue: Ngưỡng để tính toán tỷ lệ độ ẩm đất (có thể cần hiệu
chỉnh).
SensorPin: Chân analog được kết nối với cảm biến độ ẩm đất (A0).
soilMoistureValue: Lưu trữ giá trị đọc analog thô từ cảm biến độ ẩm đất.
soilmoisturepercent: Lưu trữ tỷ lệ độ ẩm đất được tính toán.

- Hàm Void Setup;

⇨ Khởi tạo giao tiếp nối tiếp, cảm biến DHT22, cảm biến Dallas Semiconductor và
chân điều khiển rơ-le.

- Hàm Loop:

37
⇨ Đọc giá trị cảm biến độ ẩm đất dạng thô và tính toán độ ẩm dạng phần trăm.

Đọc giá trị nhiệt độ và độ ẩm từ cảm biến DHT22.


Đọc giá trị nhiệt độ từ cảm biến Dallas Semiconductor.
Kiểm tra tính hợp lệ của dữ liệu đọc được.
In dữ liệu cảm biến ra màn hình.
Kiểm tra độ ẩm đất:

● Nếu độ ẩm thấp, bật rơ-le để tưới nước.

38
● Nếu độ ẩm cao, tắt rơ-le.

Tạo chuỗi dữ liệu để gửi qua LoRa.


Gửi chuỗi dữ liệu qua module LoRa.
Cập nhật biến đếm.
Chờ 1.5 giây trước khi thực hiện vòng lặp tiếp theo.

2.10.1.2. Code Lora nhận


* Chức năng chính:
+ Nhận dữ liệu cảm biến được gửi qua mạng LoRa từ một thiết bị khác.
+ Hiển thị dữ liệu cảm biến trên màn hình OLED và gửi lên Blynk
+ Điều khiển rơ-le để bật/tắt bơm nước tưới cây dựa trên độ ẩm đất.
+ Gửi thông báo qua Blynk nếu cần tưới nước.
* Phân tích code:
- Thư viện:

⇨ Cài đặt các thư viện cần thiết cho giao tiếp với cảm biến và module LoRa.

- Biến:

39
-

⇨ Khai báo các biến để lưu trữ thông tin Blynk, tên thiết bị, kích thước màn hình
OLED, các biến String để lưu trữ dữ liệu cảm biến.

- Hàm Void Setup:

40
⇨ Khởi tạo giao tiếp nối tiếp, Blynk, màn hình OLED và module LoRa.

- Hàm Loop:

41
⇨ Kiểm tra xem có gói dữ liệu nào được gửi qua LoRa không.

Nếu có dữ liệu, tách riêng các giá trị cảm biến từ gói tin.
Gửi các giá trị cảm biến lên Blynk (độ ẩm đất, nhiệt độ đất, nhiệt độ không khí, độ ẩm
không khí).
In dữ liệu cảm biến ra màn hình nối tiếp.
Hiển thị dữ liệu cảm biến lên màn hình OLED (độ ẩm đất, nhiệt độ đất, nhiệt độ không
khí, độ ẩm không khí).
Kiểm tra độ ẩm đất:

42
Nếu độ ẩm đất dưới 30% thì thông báo cần tưới nước, gửi thông báo qua Blynk và bật rơ-
le để tưới cây.
Ngược lại, nếu độ ẩm đất trên 30% thì thông báo độ ẩm đất ổn và tắt rơ-le.

2.10.2. Kết nối

2.10.2.1. Upload code và test code

Bước 1: Đầu tiên sau khi bỏ code vào trong phần mềm Arduino IDE, chúng ta tiến thành
Cấu hình Board và Cổng Port
- Đối với Code ESP8266 chúng ta cần tiến hành cài đặt như sau:
+ Trong Arduino IDE của bạn, đi tới File> Preferences

43
+ Nhập http://arduino.esp8266.com/stable/package_esp8266com_index.json vào
trường “URL Trình quản lý bảng bổ sung” như trong hình bên dưới. Sau đó, nhấp vào
nút “OK”:

+ Mở Boards Manager. Vào Tools > Board > Boards Manager…

+ Tìm kiếm ESP8266 và nhấn nút cài đặt cho “ESP8266 by ESP8266 Community“:

44
+ Kiểm tra Board sau khi cài đặt

45
Bước 2: Bấm Verity code và Upload code vô vi điều khiển

- Đầu tiên ta Check Verity của 2 code lên để xem có lỗi không, nếu không lỗi ta bắt
đầu Upload code, đây là kết quả khi Upload code thành công

Bước 3: Sau đó ta Tools -> Serial Monitor để mở giao tiếp truyền và nhận dữ liệu của 2
thiết bị Lora

46
- Và đây là kết quả của việc truyền nhận Lora. Màn hình bên trái là Lora truyền thông
tin dữ liệu và Màn hình bên phải Lora nhận dữ liệu. Tại đây Cấu hình Tốc độ baudrate
115200 giúp truyền dữ liệu nhanh hơn so với các tốc độ baudrate thấp hơn, như 9600,
2400

2.10.2.2. Thiết lập Bảng điều khiển đám mây Blynk 2.0 IoT

- Vào web https://blynk.io/ , Nếu chưa có tài khoản chúng ta đăng ký tài khoản

47
- Nếu có tài khoản rồi, chúng ta tiến hành đăng nhập vào Blynk

- Sau đó ta tới phần Deloper Zone -> My Templates -> New Teamplate: để tạo Mẫu
Teamplate mới

48
- Nhập tên mẫu. Tôi đang tặng nó “Nông nghiệp thông minh” .
- Chọn bo mạch phần cứng (ESP8266) .
- Loại kết nối sẽ là Wifi .
- Bạn có thể thêm mô tả về dự án của mình nếu cần.
- Bấm vào Xong .

49
- Bây giờ mẫu đã được tạo.

Tạo luồng dữ liệu Blynk mới (DataStreams)


DataStreams giống như một đường ống hoặc kênh. Dữ liệu sẽ được gửi hoặc nhận
thông qua các kênh dữ liệu này.
Trong một dự án hoặc mẫu, có thể có nhiều DataStreams. Trong dự án của chúng em
chúng em nhận được năm dữ liệu về độ ẩm của đất, nhiệt độ của đất, độ ẩm và nhiệt
độ của môi trường xung quanh cũng như máy bơm nước. Vì vậy, trong dự án này,
chúng em đã tạo ra 5 DataStreams.

- Nhấp vào DataStream mới . Ở đây có ba tùy chọn Pin, Enumerable hoặc bất kỳ vị
trí nào. Trong trường hợp của chúng em, đó là một mã Pin. Bây giờ bạn phải đặt
tên cho mỗi luồng dữ liệu. Sau đó, bạn phải chọn Pin cho DataStream.

50
- Đối với Độ ẩm của đất, Nhiệt độ đất, Nhiệt độ, Độ ẩm và Máy bơm nước, chúng
em chọn các Pin lần lượt là V1, V2, V3, V4 và V5.
- Chúng em chọn kiểu dữ liệu là Double cho Độ ẩm đất và Nhiệt độ đất nhưng là
loại Integer cho nhiệt độ, độ ẩm và máy bơm nước vì chúng không có độ chính
xác của dấu phẩy động.Chọn độ C cho nhiệt độ đất và nhiệt độ không khí. Sau đó
là % cho Độ ẩm và Độ ẩm của đất. Ngoài ra, hãy đặt giá trị tối thiểu và tối đa cho
luồng dữ liệu.
Tạo sự kiện trên Blynk để nhận thông báo
Sự kiện được sử dụng cho hệ thống cảnh báo thông báo. Vì vậy, ở đây chúng em đang
tạo sự kiện để theo dõi giá trị độ ẩm của đất. Nếu độ ẩm tương đối của đất đạt đến
dưới giá trị ngưỡng thì một sự kiện sẽ được kích hoạt và thông báo sẽ được gửi đến
điện thoại di động.

- Đầu tiên chọn Events &Notifications -> Add New Event (Tạo sự kiện)

51
- Nhập tên sự kiện. Đối với tôi đó là “ Tưới cây ”
- Chọn màu sự kiện của bạn. Tôi đang chọn màu Đỏ .
- Chọn loại sự kiện. Tôi đang chọn Quan trọng .
- Nhập mô tả sự kiện của bạn.

52
- Bây giờ hãy chuyển đến tab thông báo rồi bật thông báo.
- Sau đó chọn thông báo đẩy tới chủ sở hữu thiết bị cứ sau 1 phút .
- Bấm vào lưu.
Thiết kế Bảng điều khiển web Blynk 2.0

53
- Để hiển thị giá trị Độ ẩm đất, Nhiệt độ đất, Nhiệt độ và độ ẩm của môi trường
xung quanh. Chúng em sẽ chọn 4 Gauge. Đối với Chỉ báo Máy bơm Nước, chúng
em sẽ sử dụng Widget LED

54
- Bây giờ thay đổi cài đặt của Label. Trong cài đặt, bạn phải đặt tên cho tiện ích và
bạn phải chọn Datasteam mà tiện ích sẽ được kết nối.
- Sau khi thiết lập các widget, nhấp vào nút lưu để lưu toàn bộ dự án. Đó là tất cả
để thiết lập bảng điều khiển Blynk 2.0 IoT.

2.10.2.3. Thiết lập ứng dụng di động Blynk IoT 2.0

- Sau khi cài đặt ứng dụng đăng nhập vào tài khoản của bạn. Bật chế độ nhà phát
triển nếu nó chưa được bật bằng cách vào hồ sơ của bạn.

55
- Bấm vào Thêm thiết bị mới
- Bấm vào Sẵn sàng
- Chọn wifi được tạo bởi NodeMCU
- Cung cấp thông tin xác thực wifi của bộ định tuyến mà bạn muốn kết nối
NodeMCU
- Bấm vào Tiếp tục
- Bây giờ bo mạch sẽ kết nối với bộ định tuyến nếu thông tin xác thực wifi đã cho là
đúng
- Bấm vào -> Tiếp tục
- Cung cấp Tên thiết bị của bạn và nhấp vào Tiếp tục
- Chọn Mẫu của bạn sau đó nhấp vào Xong

56
- Vậy là xong tất cả việc thiết lập bảng điều khiển dành cho thiết bị di động. Giờ
đây, bạn có thể xem dữ liệu của thiết bị blynk trong ứng dụng di động cũng như
trong bảng điều khiển web.

57
- Tiếp theo, chúng em sẽ vô phần đã tạo và Setup 4 Gauge. Đối với Chỉ báo Máy
bơm Nước, chúng em sẽ sử dụng Widget LED

58
- Đây là kết quả sau khi Setup xong.

2.10.3. Kết quả

59
- Đây là Kết quả hiển thị thông số của các cảm biến lên Web và App Blynk và cả
trên màn hình Oled đều hiển thị thông số giống nhau.

60
- Nếu mức độ độ ẩm có nằm trong khoảng từ 0 đến 40 lúc này Khi độ ẩm của đất
giảm còn 18% , rơle sẽ tự động BẬT . Chúng ta cũng có thể thấy đèn LED của
máy bơm nước phát sáng trên ứng dụng blynk. Đồng thời, chúng ta cũng sẽ nhận
được thông báo tưới nước trên điện thoại di động.

61
KẾT LUẬN

62
TÀI LIỆU THAM KHẢO

63

You might also like