Tải bản đầy đủ (.docx) (79 trang)

Đồ án xây dựng hệ thống tưới tiêu điều khiển từ xa qua internet có bảo mật sử dụng arduino

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.32 MB, 79 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG HỆ THỐNG TƯỚI TIÊU ĐIỀU KHIỂN TỪ XA
QUA INTERNET CÓ BẢO MẬT SỬ DỤNG ARDUINO

Giảng viên hướng dẫn

: TS. Phạm Văn Hưởng

Sinh viên thực hiện

: Hà Đức Tâm

Lớp

: 65DCDT21

Mã sinh viên

: 65DCDT21805

Chuyên ngành

: CNKT Điện tử - Truyền thông

Hà Nội, 04-2018



LỜI CẢM ƠN


LỜI CAM ĐOAN
Em xin cam đoan những nội dung trong bản báo cáo này là do em thực hiện
dưới sự hướng dẫn trực tiếp của TS. Phạm Văn Hưởng – Học viện Kỹ thuật mật mã.
Mọi tham khảo dùng trong bài đều được trích dẫn rõ ràng tên tác giả, tên cơng trình,
thời gian, địa điểm cơng bố. Mọi sao chép khơng hợp lệ, vi phạm quy chế đào tạo,
hay gian trá, em xin chịu hoàn toàn trách nhiệm.
Sinh viên

Hà Đức Tâm


MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC CÁC HÌNH VẼ
DANH MỤC CÁC BẢNG BIỂU
BẢNG THUẬT NGỮ VÀ TỪ VIẾT TẮT
TÓM TẮT
MỞ ĐẦU....................................................................................................................1
CHƯƠNG 1. KIẾN THỨC CƠ SỞ.........................................................................3
1.1. Kiến trúc và các thành phần của hệ thống tưới tiêu qua Internet....................3
1.1.1. Đầu vào của hệ thống...............................................................................3
1.1.2. Đầu ra của hệ thống..................................................................................5
1.2. Bo mạch Arduino.............................................................................................5
1.2.1. Tổng quan.................................................................................................5
1.2.2. Chức năng của bo mạch adruino..............................................................6
1.2.3. Một số loại board mạch Arduino..............................................................8

1.2.4. Ứng dụng của Arduino trong đời sống...................................................11
1.3. Bảo mật và bảo vệ mạng Wifi.......................................................................12
1.3.1. Tổng quan về hệ thống bảo mật.............................................................12
1.3.2. Bảo vệ mạng Wifi...................................................................................12
CHƯƠNG 2.GIẢI PHÁP XÂY DỰNG HỆ THỐNG TƯỚI TIÊU ĐIỀU KHIỂN
TỪ XA QUA INTERNET CÓ BẢO MẬT...........................................................15
2.1. Arduino UNO................................................................................................15
2.2. Module cảm biến độ ẩm, nhiệt độ DHT22....................................................20
2.3. Module cảm biến...........................................................................................22
2.4. Module hiển thị - LCD 16x2.........................................................................25
2.5. Module Relay.................................................................................................31
2.6. Module Wifi ESP8266v1...............................................................................34
2.7. Máy bơm mô phỏng 12VDC.........................................................................36
2.8. WPA/WPA2 và giao thức TCP/IP.................................................................37
2.9. Các phần mềm hỗ trợ.....................................................................................40
2.9.1. Altium Designer.....................................................................................40
2.9.2. Arduino IDE...........................................................................................41
2.9.3. Blynk......................................................................................................49


CHƯƠNG 3. THỰC NGHIỆM.............................................................................53
3.1. Mơ hình thực nghiệm.....................................................................................53
3.2. Triển khai thực nghiệm..................................................................................55
3.2.1. Thiết kế thi công phần cứng...................................................................55
3.2.2. Nạp chương trình cho Arduino...............................................................56
3.2.3. Cài đặt sản phẩm với Blynk...................................................................63
3.2.4. Sản phẩm hoàn thiện..............................................................................66
3.3. Đánh giá kết quả............................................................................................66
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.............................................................68
TÀI LIỆU THAM KHẢO......................................................................................69



DANH MỤC CÁC HÌNH VẼ
Hình 1.1. Cảm biến hồng ngoại....................................................................................4
Hình 1.2. Cảm biến khói...............................................................................................4
Hình 1.3. Arduino board

..........................................................................................6

Hình 1.4. Arduino IDE

..........................................................................................6

Hình 1.5. Arduino Uno..................................................................................................8
Hình 1.6. Arduino micro...............................................................................................8
Hình 1.7. Arduino Pro Micro........................................................................................9
Hình 1.8. Arduino Nano................................................................................................9
Hình 1.9. Arduino Mega

........................................................................................10

Hình 1.10. Arduino Leonardo.....................................................................................10
Hình 1.11. Arduino Due

........................................................................................10

Hình 1.12. Arduino Ethernet.......................................................................................10
Hình 2.1. Borad Arduino Uno R3...............................................................................17
Hình 2.2. Sơ đồ nguyên lý...........................................................................................18
Hình 2.3. Sơ đồ cấu trúc Arduino Uno R3..................................................................19

Hình 2.4. Module DHT22...........................................................................................20
Hình 2.5. Quang trở.....................................................................................................22
Hình 2.6. Module Cảm biến độ ẩm đất.......................................................................24
Hình 2.7. LCD 16x2....................................................................................................26
Hình 2.8. Sơ đồ chân LCD..........................................................................................27
Hình 2.9. Vùng nhớ CGROM.....................................................................................28
Hình 2.10: Vùng nhớ DDRAM...................................................................................29
Hình 2.11. Hoạt động chân RS....................................................................................30
Hình 2.12. Module Relay kích ở mức thấp.................................................................31
Hình 2.13. Thơng số trên relay....................................................................................32
Hình 2.14. Hình ảnh và sơ đồ của module relay 2 kênh 5VDC..................................33
Hình 2.15. Module Wifi ESP8266 v1.........................................................................34
Hình 2.16. Sơ đồ chân.................................................................................................35


Hình 2.17. Máy bơm mini 12V...................................................................................36
Hình 2.18. Các tầng trong Bộ giao thức TCP/IP.........................................................37
Hình 2.19. Q trình đóng mở gói dữ liệu trong TCP/IP............................................39
Hình 2.20. Cấu trúc dữ liệu trong TCP/IP..................................................................39
Hình 2.21. Giao diện làm việc Altium Designer.........................................................41
Hình 2.22. Giao diện làm việc của Arduino................................................................41
Hình 2.23 Giao diện Arduino IDE..............................................................................42
Hình 2.24. Một số kí hiệu và chức năng.....................................................................43
Hình 2.25. Vùng thơng báo trong Arduino IDE..........................................................43
Hình 2.26. Menu File trong Arduino IDE...................................................................44
Hình 2.27. Menu tool trong Arduino IDE...................................................................45
Hình 2.28. Cách chọn cổng COM trong Arduino IDE...............................................46
Hình 2.29. Giao diện làm việc của Blynk...................................................................49
Hình 2.30. Cách hoạt động của Blynk........................................................................50
Hình 2.31. Giao diện Blynk........................................................................................51

Hình 2.32. Chọn Widget và chân PIN.........................................................................52
Hình 3.1. Mơ hình hệ thống........................................................................................53
Hình 3.2. Sơ đồ mạch sơ bộ.......................................................................................54
Hình 3.3. Lưu đồ giải thuật chế độ tự động...............................................................54
Hình 3.4. Sơ đồ sắp xếp linh kiện...............................................................................55
Hình 3.5. Sơ đồ mạch in..............................................................................................55
Hình 3.6. Sơ đồ phân bố linh kiện mạch in.................................................................56
Hình 3.7. Cài đặt cho Gauge.......................................................................................65
Hình 3.8. Sản Phẩm Hồn Thiện.................................................................................66


DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1 Bảng thông số Arduino Uno r3....................................................................18
Bảng 2.2. Chức năng chân của LCD...........................................................................27
Bảng 2.3. Một số câu lệnh, cấu trúc thường gặp.........................................................47


BẢNG THUẬT NGỮ VÀ TỪ VIẾT TẮT
AVR (Automatic Voltage Regulator): Điều chỉnh điện áp tự động
IDE (Intergrated Development Environment): Môi trường phát triển tích hợp
IoT (Internet of Things): Vạn vật kết nối
PWM (Pulse Width Modulation): Điều chỉnh độ rộng xung
UART (Universal Asynchronous Receiver/Transmittler): Truyền thông tin nối
tiếp không đồng bộ


TĨM TẮT
Tóm tắt: Ngày nay, cùng với sự phát triển nhanh chóng của khoa học kỹ thuật
thì các lĩnh vực ứng dụng kỹ thuật công nghệ cao ngày càng phát triển và kỹ thuật
điện tử đã và đang khẳng định vai trị to lớn của mình. Các thiết bị và ứng dụng thông

minh luôn được phát triển để đảm bảo cuộc sống của con người đáp ứng các yếu tố
hiện đại, an tồn và tiện nghi. Đó là lý do tại sao Internet of Things (IoT) hay Internet
vạn vật đang trở thành một xu hướng phát triển mạnh mẽ. Là 1 ứng dụng của IoT
trong cuộc sống hàng ngày, em xin lựa chọn đề tài “Xây dựng hệ thống tưới tiêu điều
khiển từ xa qua Internet có bảo mật”.
Từ khóa: Arduino, ESP8266, DHT22.


MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay sự phát triển khơng ngừng của xã hội kèm theo đó là nhu cầu của con
người về một cuộc sống tiện nghi hiện đại ngày càng cao.Các thiết bị, ứng dụng
thông minh luôn được phát triển để đảm bảo cuộc sống cho con người đáp ứng đủ
các yếu tố hiện đại an tồn và tiện nghi theo đó mà phát triển khơng ngừng. Đó là lý
do tại sao Internet of Things (IoT) hay Internet vạn vật đang trở thành một xu hướng
phát triển mạnh mẽ.
Do đặc tính truyền dữ liệu trong các thiết bị IoT có khả năng xử lý hạn chế nên
vấn đề đảm bảo an tồn, bảo mật thơng tin trong các hệ thống IoT đang là một thách
thức đặt ra. Tuy nhiên, vấn đề bảo mật thông tin truyền thơng trong các hệ thống IoT
cịn ít được quan tâm nghiên cứu. Do đó, với mục tiêu nghiên cứu, xây dựng và triển
khai giải pháp bảo mật thông tin trong các hệ thống IoT,đề tài “Xây dựng hệ thống
tưới tiêu điều khiển từ xa có bảo mật ” mang tính thời sự, có ý nghĩa khoa học và có
khả năng ứng dụng thực tiễn cao.
2. Mục tiêu của đề tài
- Đồ án được nghiên cứu và thực hiện với mục đích áp dụng những kiến thức
- đã được học trong nhà trường để xây dựng tạo ra một hệ thống tưới tiêu điều
khiển từ xa qua Internet có bảo mật sử dụng Arduino
- Tìm hiểu và sử dụng bo mạch Arduino
- Truyền nhận dữ liệu từ cảm biến qua Internet hiển thị qua ứng dụng
- Nghiên cứu và sử dụng DHT22

- Phát triển một hệ thống tưới tiêu thông minh, điều khiển từ xa qua Internet.
3. Giới hạn và phạm vi của đề tài
- Xây dựng hệ thống tưới tiêu điều khiển từ xa
- Thiết lập hệ thống bảo mật
- Thiết lập giao diện ứng dụng để thực hiện điều khiển qua Internet (sử
dụngwifi, 3G..) có hệ thống bảo mật.
4. Phương pháp nghiên cứu
- Khảo sát, tổng hợp, tài liệu hóa, phát triển phương pháp và thực nghiệm

1


5. Kết quả dự kiến và hướng phát triển đề tài
- Báo cáo về hệ thống tưới tiêu điều khiển từ xa qua internet có bảo mật sử dụng
arduino
- Hệ thống bảo mật hoạt động tốt
- Mơ hình thử nghiệm

2


CHƯƠNG 1. KIẾN THỨC CƠ SỞ
1.1. Kiến trúc và các thành phần của hệ thống tưới tiêu qua Internet
1.1.1. Đầu vào của hệ thống
Cảm biến là bộ phận hết sức quan trọng, nó quyết định độ nhạy và sự chính xác
của hệ thống. Cảm biến là thiết bị điện tử cảm nhận những trạng thái hay quá trình
vật lý hay hóa học ở mơi trường cần khảo sát, và biến đổi thành tín hiệu điện để thu
thập thơng tin về trạng thái hay q trình đó.
Thơng tin được xử lý để rút ra tham số định tính hoặc định lượng của môi
trường, phục vụ các nhu cầu nghiên cứu khoa học kỹ thuật hay dân sinh và gọi ngắn

gọn là đo đạc, phục vụ trong truyền và xử lý thông tin, hay trong điều khiển các quá
trình khác.
Cảm biến thường được đặt trong các vỏ bảo vệ tạo thành đầu thu hay đầu dị
(Test probe), có thể có kèm các mạch điện hỗ trợ, và nhiều khi trọn bộ đó lại được
gọi luôn là "cảm biến". Tuy nhiên trong nhiều văn liệu thì thuật ngữ cảm biến ít dùng
cho vật có kích thước lớn. Thuật ngữ này cũng khơng dùng cho một số loại chi tiết,
như cái núm của công tắc bật đèn khi mở tủ lạnh, dù rằng về mặt hàn lâm núm này
làm việc như một cảm biến.
Có nhiều loại cảm biến khác nhau và có thể chia ra hai nhóm chính:
● Cảm

biến vật lý: sóng điện từ, ánh sáng, tử ngoại, hồng ngoại, tia X, tia
gamma, hạt bức xạ, nhiệt độ, áp suất, âm thanh, rung động, khoảng cách, chuyển
động, gia tốc, từ trường, trọng trường, v.v.

3


Hình 1.1. Cảm biến hồng ngoại


Cảm biến hóa học: độ ẩm, độ PH, các ion, hợp chất đặc hiệu, khói, v.v.

Hình 1.2. Cảm biến khói
-

Các đặc tính của cảm biến: độ nhạy, độ ổn định, độ tuyến tính.

4



1.1.2. Đầu ra của hệ thống
a. Cơ cấu chấp hành
- Relay điều khiển bơm nước
b. Thông tin phản hồi
- Trạng thái hoạt động của bơm nước
c. Dữ liệu hiển thị
- Thông tin nhiệt độ, độ ẩm, ánh sang, độ ẩm đất, trạng thái theo thời gian.
d. Dữ liệu lưu trữ
- Thông tin nhiệt độ, độ ẩm, ánh sáng, độ ẩm đất, trạng thái các bơm(bật/tắt)
- Đọc dữ liệu và hiển thị và điều khiển tự động và điều khiển bằng tay
- Hiển thị và lưu trữ thông tin trên cloud (chế độ online/ IOT).
- Ứng dụng vào thực tế, thay đổi thông số phù hợp.
- Điều khiển và giám sát qua smartphone.
- Cải tiến và nâng cấp.
1.2. Bo mạch Arduino
1.2.1. Tổng quan
Arduino là một board mạch vi xử lý, nhằm xây dựng các ứng dụng tương tác
với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board
mạch nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM
Atmel 32-bit. Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân
đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác
nhau.
Hình 1.3 và hình 1.4 minh họa cho board mạch Arduino và phần mềm Arduino.
Được giới thiệu vào năm 2005, Những nhà thiết kế của Arduino cố gắng mang đến
một phương thức dễ dàng, khơng tốn kém cho những người u thích, sinh viên và
giới chuyên nghiệp để tạo ra những thiết bị có khả năng tương tác với mơi trường
thơng qua các cảm biến và các cơ cấu chấp hành. Những ví dụ phổ biến cho những
người yêu thích mới bắt đầu bao gồm các robot đơn giản, điều khiển nhiệt độ và phát
hiện chuyển động. Đi cùng với nó là một mơi trường phát triển tích hợp (IDE) chạy

trên các máy tính cá nhân thơng thường và cho phép người dùng viết các chương
trình cho Aduino bằng ngơn ngữ C hoặc C++.[3]

5


Hình 1.3. Arduino board

Hình 1.4. Arduino IDE

1.2.2. Chức năng của bo mạch adruino
a. Đọc tín hiệu cảm biến cổng vào
- Digital
Các bo mạch Arduino đều có các cổng digital có thể cấu hình làm ngõ vào hoặc
ngõ ra bằng phần mềm. Do đó người dùng có thể linh hoạt quyết định số lượng ngõ
vào và ngõ ra. Tổng số lượng cổng digital trên các mạch dùng Atmega328 là 14, và
trên Atmega2560 là 54.
- Analog
Các bo mạch Arduino đều có trang bị các ngõ vào analog với độ phân giải 10bit (1024 phân mức, ví dụ với điện áp chuẩn là 5V thì độ phân giải khoảng 0.5mV).  
Số lượng cổng vào analog là 6 đối với Atmega328, và 16 đối với Atmega2560. Với
tính năng đọc analog, người dùng có thể đọc nhiều loại cảm biến như nhiệt độ, áp
suất, độ ẩm, ánh sáng, gyro, accelerometer…
b. Xuất tín hiệu điều khiển cổng ra
- Digital output
Tương tự như các cổng vào digital, người dùng có thể cấu hình trên phần mềm
để quyết định dùng ngõ digital nào là ngõ ra. Tổng số lượng cổng digital trên các
mạch dùng Atmega328 là 14, và trên Atmega2560 là 54.

6



- PWM output
Trong số các cổng digital, người dùng có thể chọn một số cổng dùng để xuất tín
hiệu điều chế xung PWM. Độ phân giải của các tín hiệu PWM này là 8-bit.  Số lượng
cổng PWM đối với các bo dùng Atmega328 là 6, và đối với các bo dùng
Atmega2560 là 14. PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh hoặc
điều khiển động cơ mà phổ biến nhất là động cơ servos trong các máy bay mơ hình.
c. Chuẩn Giao tiếp
- Serial
Đây là chuẩn giao tiếp nối tiếp được dùng rất phổ biến trên các bo mạch
Arduino. Mỗi bo có trang bị một số cổng Serial cứng (việc giao tiếp do phần cứng
trong chip thực hiện). Bên cạnh đó, tất cả các cổng digital cịn lại đều có thể thực
hiện giao tiếp nối tiếp bằng phần mềm (có thư viện chuẩn, người dùng khơng cần
phải viết code). Mức tín hiệu của các cổng này là TTL 5V. Lưu ý cổng nối tiếp RS232 trên các thiết bị hoặc PC có mức tín hiệu là UART 12V. Để giao tiếp được giữa
hai mức tín hiệu, cần phải có bộ chuyển mức, ví dụ như chip MAX232. Số lượng
cổng Serial cứng của Atmega328 là 1 và của Atmega2560 là 4. Với tính năng giao
tiếp nối tiếp, các bo Arduino có thể giao tiếp được với rất nhiều thiết bị như PC,
touchscreen, các game console…
- USB
Các bo Arduino tiêu chuẩn đều có trang bị một cổng USB để thực hiện kết nối
với máy tính dùng cho việc tải chương trình. Tuy nhiên các chip AVR khơng có cổng
USB, do đó các bo Ardunino phải trang bị thêm phần chuyển đổi từ USB thành tín
hiệu UART. Do đó máy tính nhận diện cổng USB này là cổng COM chứ không phải
là cổng USB tiêu chuẩn.
- SPI
Đây là một chuẩn giao tiếp nối tiếp đồng bộ có bus gồm có 4 dây. Với tính năng
này các bo Arduino có thể kết nối với các thiết bị như LCD, bộ điều khiển video
game, bộ điều khiển cảm biến các loại, đọc thẻ nhớ SD và MMC…
- TWI (I2C)
Đây là một chuẩn giao tiếp đồng bộ khác nhưng bus chỉ có hai dây. Với tính

năng này, các bo Arduino có thể giao tiếp với một số loại cảm biến như thermostat
của CPU, tốc độ quạt, một số màn hình OLED/LCD, đọc real-time clock, chỉnh âm

7


lượng cho một số loại loa…
1.2.3. Một số loại board mạch Arduino
a. Arduino Uno

Hình 1.5. Arduino Uno
Arduino Uno minh hoạ qua Hình 1.5. Đây là board cơ bản nhất cho người mới
bắt đầu. Nó có 14 chân dữ liệu số, có thế cấu hình làm chân lấy tín hiệu vào hoặc
xuất tín hiệu ra. 6 chân tương tự đầu vào 5V, độ phân giải 1024 mức. Tốc độ 16MHz,
điện áp vào từ 7~12V, chân số có thể cấp điện áp ra 5V và 1A,nếu điều khiển chân số
ra tiêu tốn quá 1A thì Board sẽ bị hỏng. Kích thước board khoảng 5,5x7cm. Hình 1.5
minh họa borad mạch Arduino Uno.

b. Arduino Micro

Hình 1.6. Arduino micro
Board Arduino micro được minh họa qua hình 1.6, có thiết kế nhỏ, dành cho
các khơng gian lắp đặt nhỏ, nhẹ. kích thước khoảng 5x2cm. Board này giống

8


với  Arduino Uno. Có 20 chân số, trong đó có 7 chân có thể phát xung PWM. 12
chân tương tự. Board mạch Arduino micro được minh họa qua hình 1.6


c. Arduino Pro/Pro Micro

Hình 1.7. Arduino Pro Micro
Arduino Pro Micro minh họa qua hình 1.7, dựa trên vi điều khiển Atmega32U4.
Nó giống với Arduino Pro Mini nhưng ở đây nó sử dụng chip Atmega32U4 có hỗ trợ
giao tiếp USB giúp nó linh hoạt hơn hẳn so với Pro Mini.
Nó có 4 kênh ADC 10 bit, 5 kênh PWM, 12 chân IO và ngõ giao tiếp Tx Rx.
Board chạy ở 5V với tần số 16MHz, board này giống với loại Uno phổ biến. Có hỗ
trợ điện áp tham chiếu trên board vì vậy có thể chấp nhận điện áp 12V cấp vào ADC.
Chú ý: Nếu nguồn cấp lớn hơn 5V thì nên cấp vào chân Raw của board chứ
khơng phải chân VCC. Hình 1.7 minh họa board mạch Arduino Pro Micro.

d. Arduino Nano

Hình 1.8. Arduino Nano

9


Board Arduino Nano được mình họa qua hình 1.8, có kích thước nhỏ nhất, gồm
14 chân số (6 chân PWM) và 8 chân tương tự. Kích thước khoảng 2x4cm. Nhỏ gọn,
dễ lắp đặt ở bất kỳ đâu.
* Một số board có thiết kế cao cấp hơn, được minh họa qua các hình 1.9, hình
1.10, hình 1.11 và hình 1.12.

Hình 1.9. Arduino Mega

Hình 1.10. Arduino Leonardo

Hình 1.11. Arduino Due


Hình 1.12. Arduino Ethernet

10



×