Tải bản đầy đủ (.doc) (54 trang)

DO AN TOT NGHIEP dieu khien thiet bi qua module wifi esp8266

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 (6.72 MB, 54 trang )

Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

ĐẠI HỌC CƠNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ TDH
---------

Trần Xuân Minh

ĐIỀU KHIỂN THIẾT BỊ QUA MODULE
WIFI ESP8266

KHÓA LUẬN TỐT NGHIỆP

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Lời Cảm Ơn
Trong thời gian làm khóa luận tốt nghiệp, em đã
nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ
bảo tận tình của thầy cơ, gia đình, bạn bè.
Em xin gửi lời cảm ơn chân thành đến Th.S thầy LÊ
VĂN CHUNG, giảng viên KHOA CÔNG NGHỆ TDH–
trường ĐẠI HỌC CÔNG NGHỆ THƠNG TIN VÀ TRUYỀN
THƠNG người đã tận tình hướng dẫn, chỉ bảo em
trong suốt q trình làm khóa luận.


Em cũng chân thành cảm ơn các thầy cô giáo trong
trường ĐẠI HỌC CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN
THƠNG nói chung, các thầy cơ trong KHOA CƠNG
NGHỆ TDH nói riêng đã dạy dỗ em. Đồng thời, các
thầy cô đã truyền cho em kiến thức về các môn đại
cương cũng như các môn chun ngành, giúp em có
được cơ sở lí thuyết vững vàng và tạo điều kiện giúp
đỡ em trong suốt quá trình học tập.
Cuối cùng, em xin chân thành cảm ơn đến gia đình
và bạn bè đã ln tạo điều kiện, quan tâm, giúp đỡ và
động viên em trong suốt quá trình học tập và hồn
thành khóa luận tốt nghiệp.
Mặc dù đã có nhiều cố gắng trong q trình làm
khóa luận tốt nghiệp, nhưng khơng thể tránh khỏi
những thiếu sót. Em mong quý thầy cô cùng các bạn

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

đọc nhận xét, góp ý thêm để bài khóa luận của em
được hồn thiện hơn.
Em xin chân thành cảm ơn!
Bắc Ninh, ngày 4 tháng 4 năm
2019
Sinh viên thực hiện


Trần Xuân Minh

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung
MỤC LỤC

PHẦN I. MỞ ĐẦU...................................................................................................1
1. Lý do chọn đề tài...................................................................................................1
2. Mục tiêu nghiên cứu..............................................................................................2
3. Nhiệm vụ nghiên cứu.............................................................................................2
4. Phương pháp nghiên cứu.......................................................................................2
5. Đối tượng nghiên cứu............................................................................................2
6. Phạm vi nghiên cứu...............................................................................................2
7. Cấu trúc khóa luận.................................................................................................2
PHẦN II. NỘI DUNG.............................................................................................3
CHƯƠNG 1. TỔNG QUAN....................................................................................3
1.1 Giới thiệu vi điều khiển Arduino Uno..................................................................3
1.1.1 Lịch sử hình thành Arduino......................................................................3
1.1.2 Tổng quan về Arduino..............................................................................4
1.1.2.1 Định nghĩa về vi điều khiển Arduino................................................4
1.1.2.2 Một số board Arduino.......................................................................5
1.1.3 Giới thiệu về Board Arduino Uno............................................................5
1.1.3.1 Cấu tạo chung...................................................................................5
1.1.3.2 Các thông số kĩ thuật của Arduino Uno.............................................7
1.1.3.3 Vi điều khiển.....................................................................................7
1.1.3.4 Bộ nhớ...............................................................................................8

1.1.3.5 Đặc điểm và chức năng các chân của Arduino Uno..........................9
1.1.3.6 Ứng dụng của Arduino....................................................................11
1.2 Giới thiệu Module Wifi ESP8266......................................................................13
1.2.1 Giới thiệu về Module Wifi ESP8266 V1................................................13
1.2.2 Thông số kỹ thuật ..................................................................................13
1.2.3 Chân kết nối của Module Wifi Esp8266 V1...........................................14
1.2.4 Giao tiếp của module wifi ESP8266 với Arduino Uno...........................15
1.3 Giới thiệu về Apps Virtuino trên Android..........................................................15
1.4 Cảm biến nhiệt độ và độ ẩm DHT11..................................................................17
1.4.1 Giới thiệu chung.....................................................................................17

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

1.4.2 Thơng số kĩ thuật ...................................................................................17
1.4.3 Giao tiếp giữa DHT11 với Arduino Uno................................................18
CHƯƠNG 2. MƠ PHỎNG VÀ LẬP TRÌNH CHO ARDUINO.........................19
2.1 Phần mềm mơ phỏng Proteus............................................................................19
2.1.1 Tổng quan về phần mềm........................................................................19
2.1.2 Cách sử dụng phần mềm Proteus...........................................................19
2.1.3 Thư viện Arduino trong Proteus.............................................................22
2.2 Giới thiệu về mơi trường tích hợp Arduino IDE................................................22
2.3 Lập trình điều khiển với Arduino.......................................................................25
2.3.1 Cấu trúc của một chương trình...............................................................25
2.3.2 Ngơn ngữ lập trình cho Arduino.............................................................26
2.3.2.1 Giới thiệu ngơn ngữ C.....................................................................26

2.3.2.2 Các lệnh cơ bản trong C..................................................................26
CHƯƠNG 3. THIẾT KẾ, LẬP TRÌNH VÀ LẮP ĐẶT MẠCH ĐIỀU KHIỂN
TỪ XA VỀ NHIỆT ĐỘ, ĐỘ ẨM TRÊN ĐIỆN THOẠI DI ĐỘNG THÔNG
QUA MODULE WIFI ESP8266...........................................................................35
3.1 Phân tích mạch điều khiển.................................................................................35
3.1.1 Sơ đồ khối tổng quát..............................................................................35
3.1.2 Nguyên lý hoạt động của hệ thống.........................................................36
3.1.3 Lưu đồ thuật tốn...................................................................................36
3.1.4 Nạp code và chạy chương trình..............................................................37
3.2 Thiết kế mạch và thi công mạch điều khiển.......................................................40
3.2.1 Xác định mạch điều khiển......................................................................40
3.2.2 Giải pháp công nghệ...............................................................................41
3.2.3 Giải pháp thiết kế...................................................................................41
3.2.4 Yêu cầu của mạch điều khiển.................................................................41
3.2.5 Thi công mạch điều khiển......................................................................41
3.2.5.1 Kết nối phần cứng và nạp chương trình mạch điều khiển...............41
3.2.5.2 Hoạt động của mạch điều khiển......................................................44
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN............................................................46
TÀI LIỆU THAM KHẢO.....................................................................................47

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung
DANH MỤC BẢNG

Bảng 1.1. Các thông số kĩ thuật của board ArduinoUno ...........................................7
Bảng 1.2 Sơ đồ nối dây ...........................................................................................15

Bảng 1.3 Sơ đồ nối chân .........................................................................................18
Bảng 2.1 Thanh công cụ chuẩn ...............................................................................20
Bảng 2.2 Thanh linh kiện ........................................................................................21
Bảng 2.3 các chức năng trong vùng Toolbar ...........................................................23
Bảng 2.4 Các toán tử so sánh ..................................................................................29
Bảng 2.5 Các toán tử logic ......................................................................................29

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung
DANH MỤC HÌNH

Hình 1.1 Mẫu thử nghiệm ban đầu ...........................................................................3
Hình 1.2 Một số board Arduino thơng dụng .............................................................5
Hình 1.3 Board Arduino Uno ....................................................................................6
Hình 1.4 Vi điều khiển ATMega328P của Arduino Uno ...........................................8
Hình 1.5 Sơ đồ chân của vi điều khiển ATMega328P ...............................................8
Hình 1.6 Các chân Digital của Arduino Uno ............................................................9
Hình 1.7 Các chân Analog của Arduino Uno ..........................................................10
Hình 1.8 Các chân năng lượng của Arduino Uno ...................................................10
Hình 1.9 Robot dị line điều khiển qua điện thoại ...................................................12
Hình 1.10 Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng và
hiển thị thông tin tốc độ gió, điện năng trong ắc quy ..............................13
Hình 1.11 Module Wifi ESP8266 V1 ......................................................................13
Hình 1.12 Sơ đồ chân của Module Wifi Esp8266 V1 .............................................14
Hình 1.13 Sơ đồ nối chân của Arduino Uno với Module Wifi ESP8266 V1............15
Hình 1.14 Địa chỉ ID trên Thingspeak.....................................................................16

Hình 1.15 Cài đặt IoT Server trên điện thoại...........................................................16
Hình 1.16 Thiết lập nhiệt độ và độ ẩm trên điện thoại.............................................17
Hình 1.17 Cảm biến nhiệt độ và độ ẩm DHT11 ......................................................17
Hình 1.18 Sơ đồ nối chân giữa Arduino Uno với cảm biến DHT11........................18
Hình 2.1 Khung làm việc chung của phần mềm Proteus.........................................20
Hình 2.2 Giao diện của Arduino IDE.......................................................................22
Hình 2.3 Vùng Toolbar của Arduino IDE................................................................23
Hình 2.4 Minh họa vùng viết chương trình..............................................................24
Hình 2.5 Minh họa các bước thực hiện một chương trình .......................................25
Hình 2.6 Minh họa vùng thơng báo.........................................................................25
Hình 3.1 Sơ đồ khối tổng quát.................................................................................35
Hình 3.3 Kết nối phần cứng của mạch điều khiển...................................................42
Hình 3.4 Đèn trên Arduino mà module wifi Esp8266 sáng khi cấp nguồn..............42
Hình 3.5 Kiểm tra lỗi của chương trình phát tín hiệu...............................................43
Hình 3.6 Nạp chương trình xuống cho mạch điều khiển..........................................43
Hình 3.7 Quá trình nạp thành cơng..........................................................................44
Hình 3.8 Kết quả đo nhiệt độ, độ ẩm hiển thị trên máy tính....................................44
Hình 3.9 Kết quả đo nhiệt độ và độ ẩm được đưa lên thingSpeak...........................45
Hình 3.10 Kết quả nhiệt độ và độ ẩm hiển thị trên Smartphone..............................45

SVTH: Trần Xuân Minh


Khóa luận tốt nghiệp

SVTH: Trần Xuân Minh

GVHD: Lê Văn Chung



Khóa luận tốt nghiệp

GVHD: Lê Văn Chung
PHẦN I. MỞ ĐẦU

1. Lý do chọn đề tài
Hiện nay cùng với sự phát triển của xã hội, cuộc sống ngày càng được nâng
cao thì việc áp dụng cơng nghệ khoa học kỹ thuật vào đời sống công việc càng cần
thiết hơn. Cùng với sự phát triển của các ngành khoa học kỹ thuật, cơng nghệ kỹ
thuật điện tử mà trong đó đặc biệt là kỹ thuật điều khiển tự động đóng vai trị quan
trọng trong mọi lĩnh vực đời sống như khoa học kỹ thuật, quản lý, công nghiêp,
nông nghiệp, đời sống, quản lý thông tin...
Trong thời kỳ phát triển hiện nay, điện thoại di động là một thiết bị không thể
thiếu trong cuộc sống. Ngoài chức năng nghe và nhận cuộc gọi, nhắn tin, xem phim,
chơi game, chụp ảnh… điện thoại còn có khả năng giám sát và điều khiển thiết bị từ
khoảng cách xa thông qua kết nối Internet/Wifi [13].
Từ nhu cầu thực tế cần có một thiết bị điều khiển, giám sát nhiệt độ độ ẩm
trong gia đình, phịng máy chủ, trung tâm dữ liệu, kho dữ liệu, tủ lạnh vắc xin, tủ
lạnh thực phẩm, trong nhà kính… bằng điện thoại di động, thơng qua Module Wifi
Esp8266. Từ đó, có tính linh động cao, cập nhật các dữ liệu 24/24h nhằm tăng hiệu
quả quản lý [13].
Bên cạnh đó cùng với sự xuất hiện của Arduino vào năm 2005 tại Italia đã góp
phần khơng nhỏ cho nền kinh tế tự động hóa. Sự xuất hiện của Arduino đã hỗ trợ
cho con người rất nhiều trong việc lập trình và thiết kế, nhất là đối với những người
mới bắt đầu tìm tịi về vi điều khiển mà khơng có q nhiều kiến thức, hiểu biết sâu
sắc về vật lý và điện tử. Phần cứng của thiết bị đã được tích hợp nhiều chức năng cơ
bản và mã nguồn mở. Ngôn ngữ lập trình lại vơ cùng dễ sử dụng và được chia sẻ
miễn phí nên Arduino đang ngày càng phổ biến và được phát triển mạnh mẽ trên
toàn thế giới [1].
Xuất phát từ những lý do trên em chọn đề tài: “ĐIỀU KHIỂN THIẾT BỊ QUA

MODULE WIFI ESP8266” làm đề tài khóa luận tốt nghiệp. Trong q trình thực
hiện đề tài khơng tránh khỏi những thiếu sót, em rất mong nhận được sự góp ý của
các thầy cơ và các bạn để đề tài được hoàn thiện hơn.

SVTH: Trần Xuân Minh

1


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

2. Mục tiêu nghiên cứu
Thiết kế mạch điều khiển thiết bị từ xa bằng điện thoại di động về nhiệt độ, độ
ẩm thông qua Module Wifi Essp8266.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu về vi điều khiển Arduino, cảm biến nhiệt độ và độ ẩm DHT11,
phần mềm mô phỏng proteus, ngôn ngữ C và mơi trường phát triển tích hợp
Arduino IDE.
- Nghiên cứu Module Wifi Esp8266, phần mềm Virtuino trên điện thoại.
4. Phương pháp nghiên cứu
Trong đề tài này em đã sử dụng các phương pháp nghiên cứu:
- Phương pháp nghiên cứu lí thuyết: tìm hiểu khái niệm, cấu tạo, các thơng số
kĩ thuật, sơ đồ nối chân giữa Arduino Uno với DHT11 và Esp8266. Tìm hiểu cách
sử dụng Apps Virtuino, proteus, ngơn ngữ C và Arduino IDE.
- Phương pháp nghiên cứu thực nghiệm: thiết kế mạch điều khiển từ xa về
nhiệt độ và độ ẩm trên điện thoại di động thông qua Module Wifi Esp8266.
5. Đối tượng nghiên cứu
Vi điều khiển Arduino Uno, Module Wifi Esp8266 và cảm biến nhiệt độ và độ

ẩm DHT11.
6. Phạm vi nghiên cứu
Điều khiển thiết bị nhiệt độ, độ ẩm từ xa bằng điện thoại di dộng thông qua
Module Wifi Esp8266.
7. Cấu trúc khóa luận
Ngồi phần mở đầu, kết luận, hướng phát triển và tài liệu tham khảo. Khóa
luận cịn có phần nội dung được chia làm 3 chương.
Chương 1. Tổng quan.
Chương 2. Mơ phỏng và lập trình cho Arduino.
Chương 3. Thiết kế, lập trình và lắp đặt mạch điều khiển từ xa về nhiệt độ, độ
ẩm trên điện thoại di động thông qua Module Wifi Esp8266.

SVTH: Trần Xuân Minh

2


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung
PHẦN II. NỘI DUNG
CHƯƠNG 1. TỔNG QUAN

1.1 Giới thiệu vi điều khiển Arduino Uno
1.1.1 Lịch sử hình thành Arduino
Arduino có một lịch sử ra đời rất thú vị. Mới đầu Arduino được tạo ra để giải
quyết bài toán: làm thế nào để sinh viên có thể tạo ra được một thiết bị điện tử một
cách nhanh chóng. Vào năm 2002, Massimo Banzi, một giáo sư phần mềm đã được
đưa về IDII (Interaction Design Institute Ivrea – Viện thiết kế tương tác Ivrea) để
thúc đẩy một lĩnh vực cịn non trẻ gọi là “máy tính vật lí” với một ngân sách hạn

hẹp, thời gian hạn chế và rất ít các cơng cụ [1].
Vào thời điểm đó, sinh viên sử dụng Stamp BASIC, một vi điều khiển được
tạo ra bởi công ti California Parallax. Sử dụng ngơn ngữ lập trình BASIC, Stamp
giống như một bo mạch nhỏ gọn gàng, gồm các yếu tố cần thiết như nguồn cung
cấp năng lượng, một vi điều khiển, bộ nhớ và cổng vào – ra để nối với các phần
cứng khác.
Banzi phát hiện ra hai vấn đề ở Stamp BASIC [1]:
 Khơng có đủ khả năng xử lý cho một số dự án của sinh viên.
 Có giá khoảng 100 USD khá cao so với sinh viên.
Mẫu thử nghiệm ban đầu được thực hiện vào năm 2005, là một thiết kế đơn
giản và chưa được gọi Arduino. Massimo Banzi sử dụng cái tên Arduino vào một
năm sau đó.

Hình 1.1 Mẫu thử nghiệm ban đầu [1]

SVTH: Trần Xuân Minh

3


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

1.1.2 Tổng quan về Arduino
1.1.2.1 Định nghĩa về vi điều khiển Arduino
Arduino là một bo mạch vi xử lý được dùng để lập trình tương tác với các
thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác [2].
Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng rất dễ dàng
sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng. Một điều

làm cho Arduino phổ biến nhanh chóng là mức giá rất thấp và tính chất nguồn mở
từ phần cứng tới phần mềm.
Arduino là một nền tảng thiết bị điện tử mã nguồn mở được sử dụng để xây
dựng các ứng dụng điện tử. Arduino gồm có board mạch có thể lập trình được
(thường gọi là vi điều khiển) và các phần mềm hỗ trợ phát triển tích hợp IDE
(Integrated Development Environment) dùng để soạn thảo, biên dịch code và nạp
chương trình cho board [2].
Một hệ thống Arduino có thể có rất nhiều sự tương tác với các thiết bị khác, đó
là các hệ thống cảm biến đa dạng về chủng loại (đo đạc nhiệt độ, độ ẩm, vận tốc,
màu sắc vật thể,...), các thiết bị hiển thị (màn hình LCD, đèn LED,...), các module
chức năng hỗ trợ kết nối có dây với các thiết bị khác hoặc các kết nối không dây
thông dụng (3G, Wifi, Bluetooth,...) và cả định vị GPS, nhắn tin SMS.
Như vậy, tuy chỉ là một board mạch nhỏ nhưng Arduino có thể dùng vào rất
nhiều ứng dụng khác nhau, chỉ cần một phần mềm Arduino IDE, một kết nối USB
và một board mạch Arduino, ta có thể phát triển các ứng dụng trên board.
Về mặt chức năng, các board mạch Arduino được chia làm hai loại: loại board
mạch chính có chip ATMega và loại mở rộng thêm các chức năng cho board mạch
chính (thường được gọi là Shield) [2].
Arduino từ khi ra đời là một thứ cực kì phức tạp gồm rất nhiều linh kiện, bóng
đèn LED, cổng kết nối,… nay đã trở thành một mạch nhỏ gọn trong lòng bàn tay với
các kết nối phổ biến và sự tiện lợi trong việc điều khiển thiết bị. Hiện nay, Arduino
được rất nhiều hãng điện tử trên thế giới nghiên cứu và chế tạo. Arduino cũng có rất
nhiều loại và có nhiều kích thước khác nhau.

SVTH: Trần Xn Minh

4


Khóa luận tốt nghiệp


GVHD: Lê Văn Chung

1.1.2.2 Một số board Arduino

Hình 1.2 Một số board Arduino thơng dụng [1]
Các board Arduino và Arduino – compatible sử dụng các shield – các board
mạch in mở rộng được dùng bằng cách cắm vào các chân header của Arduino. Các
shield có thể là module điều khiển động cơ, GPS, Ethernet, LCD hoặc có thể là
breadboard.
1.1.3 Giới thiệu về Board Arduino Uno
Arduino có rất nhiều phiên bản với các chức năng và mục đích khác nhau.
Trong đó, Arduino Uno là một trong những phiên bản được ứng dụng rộng rãi nhất
bởi chi phí và tính linh động của nó. Hiện dịng này đã được phát triển tới thế hệ thứ
3 (R3) [3].
1.1.3.1 Cấu tạo chung
Có rất nhiều thành phần cấu tạo nên một board Arduino Uno, nhưng để dễ
dàng hiểu rõ và sử dụng Arduino Uno đúng cách, đầu tiên ta quan tâm đến các
thành phần được đánh số trên hình 1.3.

SVTH: Trần Xuân Minh

5


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.3 Board Arduino Uno [3]

1. Cổng USB là cổng giao tiếp để nạp chương trình điều khiển từ máy vi tính
lên vi điều khiển. Đồng thời nó cũng là giao tiếp nối tiếp để truyền dữ liệu giữa vi
điều khiển với máy tính [3].
2. Jack nguồn để cung cấp nguồn từ 9V đến 12V lấy năng lượng trực tiếp từ
pin hoặc Ắc – quy trong trường hợp không thể lấy nguồn từ cổng USB như đã nói ở
trên [3].
3. Hàng chân thứ nhất được đánh số từ 0 đến 13 là các chân Digital, nhận
vào hoặc xuất ra các tín hiệu số. Ngồi ra có một chân đất (GND) và chân điện áp
tham chiếu (AREF) [3].
4. Hàng chân thứ hai là các chân năng lượng, chủ yếu liên quan đến điện áp
đất, nguồn [3].
5. Hàng chân thứ ba là các chân Analog được kí hiệu từ A0 đến A5 để nhận
vào hoặc xuất ra các tín hiệu tương tự (ví dụ như đọc thông tin của các thiết bị cảm
biến) [3].
6. Vi điều khiển là bộ xử lí trung tâm của tồn board mạch. Với mỗi mẫu
Arduino khác nhau thì con vi điều khiển này khác nhau. Ở board Arduino Uno này
sử dụng ATMega328P [3].

SVTH: Trần Xuân Minh

6


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Ngồi ra trên board cịn có một nút Reset để đặt lại chương trình đang chạy. Đơi
khi chương trình đang chạy gặp lỗi, người dùng có thể Reset lại chương trình [3].
1.1.3.2 Các thơng số kĩ thuật của Arduino Uno

Bảng 1.1. Các thông số kĩ thuật của board ArduinoUno [3]
Vi điều khiển
Điện áp hoạt động
Điện áp vào khuyên dùng
Điện áp vào giới hạn
Số chân Digital vào/ra
Số chân Analog Input
Dòng ra tối đa trên mỗi chân vào/ra
Dòng ra tối đa (5V)
Dòng ra tối đa (3.3V)
Flash Memory

ATMega328P (họ 8bit)
5V-DC (chỉ được cấp qua cổng USB)
7-12V DC
6-20V DC
14 (có 6 chân điều chế độ xung PWM)
6 (độ phân giải bit)
30mA
500mA
50mA
32 KB (ATMega328P) với 0.5KB được

SRAM
EEPROM
Tần số hoạt động

sử dụng bởi bootloader
2KB (ATMega328P)
1KB (ATMega328P)

16MHz

1.1.3.3 Vi điều khiển
Trong board Arduino, các vi điều khiển được xem như là bộ não của board. Nó có
thể xử lí những tác vụ đơn giản như điều khiển đèn led nhấp nháy, thu thấp các dữ liệu
từ cảm biến, xử lí dữ liệu và xuất ra, xử lí tín hiệu cho đèn điều khiển từ xa,...
Arduino Uno có thể sử dụng 3 vi điều khiển họ 8 bit AVR là ATMega8,
ATMega168, ATMega328. Với vi điều khiển ATMega328 sử dụng thạch anh có chu
kì dao động 16MHz [3].

Hình 1.4 Vi điều khiển ATMega328P của Arduino Uno [3]
Sơ đồ chân của vi điều khiển ATMega328P.

SVTH: Trần Xuân Minh

7


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.5 Sơ đồ chân của vi điều khiển ATMega328P [3]
1.1.3.4 Bộ nhớ
Vi điều khiển ATMega328P tiêu chuẩn có ba loại bộ nhớ với dung lượng
tương ứng là 32KB cho bộ nhớ Flash, 2KB cho SRAM và 1KB cho EEPROM.
* Flash Memory là bộ nhớ có thể ghi được, dữ liệu khơng bị mất ngay cả khi
ngắt điện. Về vai trị, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu
trên board. Chương trình viết cho Arduino sẽ được lưu ở đây. Kích thước của vùng
nhớ này thơng thường dựa vào vi điều khiển được sử dụng. Loại bộ nhớ này có thể

chịu được khoảng 10.000 lần ghi/xóa [3].
* SRAM (Static Random Access Memory) tương tự như RAM của máy tính,
bộ nhớ này sẽ bị mất dữ liệu khi ngắt điện nhưng bù lại tốc độ đọc ghi/xóa rất
nhanh. Kích thưởng nhỏ hơn Flash Memory nhiều lần [3].
* EEPROM (Electrically Eraseble Programmable Read Only Memory) là một
dạng bộ nhớ như Flash Memory nhưng có chu kì ghi/xóa cao hơn (khoảng 100.000
lần) và có kích thước rất nhỏ. Để đọc/ghi dữ liệu, ta có thể dùng thư viện EEPROM
của Arduino [3].

SVTH: Trần Xuân Minh

8


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

1.1.3.5 Đặc điểm và chức năng các chân của Arduino Uno
1.1.3.5.1 Các cổng vào và ra
Arduino Uno có tổng cộng 14 chân (pin) Digital dùng để đọc hoặc xuất tín
hiệu số được đánh số từ 0 đến 13 như trên hình 1.6. Chúng chỉ có hai mức điện áp
là 0V và 5V với dịng điện vào/ra tối đa trên mỗi chân là 40mA [3].

Hình 1.6 Các chân Digital của Arduino Uno [3]
Các chức năng đặc biệt của một số chân Digital [3]:
+ 2 chân nối tiếp 0 (RX) và 1 (TX) dùng để gửi (transmit – TX) và để nhận
(receive – RX) dữ liệu. Arduino Uno có thể giao tiếp với các thiết bị khác thông qua
hai chân này. Kết nối Bluetooth thường thấy chính là kết nối nối tiếp khơng dây.
Nếu khơng sử dụng giao thức này, không nên sử dụng hai chân RX và TX nếu

không cần thiết.
+ 6 chân PWM (Pulse Width Modulation) hay chân có khả năng điều chế độ
rộng xung, gồm có 3, 5, 6, 9, 10 và 11 được đánh dấu ~ trước mã số chân, cho phép
xuất ra xung PWM với độ phân giải 8 bit bằng hàm analogWrite ( ). Một cách đơn
giản, ta có thể điều chỉnh chế độ điện áp đầu ra ở các chân này từ mức 0V đến 5V
thay vì cố định ở mức 0V và 5V như các chân khác.
+ Chân giao tiếp SPI là 10 (SS), 11 (MOSI), 12 (MOSI), 13 (SCK). Ngồi các
chưc năng thơng thường, 4 chân này còn được 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 có màu da cam được kí hiệu bằng chữ L trên Arduino Uno. Khi
bấm nút Reset, đèn này sẽ nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi
chân này được sử dụng thì đèn LED sẽ sáng.
Arduino Uno cịn có thêm 6 chân Analog nhận kí hiệu tương tự được kí hiệu
từ A0 đến A5 như trên hình 1.7. Các chân này cung cấp độ phân giải 10 bit để đọc

SVTH: Trần Xuân Minh

9


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

giá trị điện áp trong khoảng 0V đến 5V. Với chân AREF trên board, 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 ta cấp điện áp 2.5V
vào các chân này thì có thể dùng các chân Analog để đo điện áp trong khoảng từ 0V
đến 5V với độ phân giải là 10 bit.

Hình 1.7 Các chân Analog của Arduino Uno [3]

1.1.3.5.2 Các chân cấp nguồn
Các chân này dùng để cấp nguồn cho các thiết bị bên ngồi như Relay, cảm
biến, động cơ,... gồm có các chân GND (chân nối đất, chân âm), chân 5V, chân 3.3V
như được thể hiện trên hình 1.8. Nhờ những chân này mà người dùng không cần
thiết bị biến đổi điện khi cấp nguồn cho thiết bị. Ngồi ra cịn có các chân Vin, chân
Reset và chân IOREF nhưng các chân này ít khi được sử dụng.

Hình 1.8 Các chân năng lượng của Arduino Uno [3]
Arduino sử dụng cáp USB để giao tiếp với máy tính. Thơng qua cáp USB
chúng ta có thể Upload chương trình cho Arduino hoạt động, ngồi ra USB cịn là
nguồn cho Arduino.
Khi khơng sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngồi
thơng qua jack cắm 2.1 mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin và
GND để cấp nguồn cho Arduino.
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5V đến 20V. Ta có thể cấp
một áp lớn hơn, tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5V và nếu sử dụng

SVTH: Trần Xuân Minh

10


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

nguồn lớn hơn 12V thì dễ gây ra hiện tượng nóng và làm hỏng bo mạch. Vì vậy, nên
dùng nguồn ổn định từ 5V đến 12V.
Chân 5V và chân 3.3V (output voltage): các chân này dùng để lấy nguồn ra từ
nguồn mà chúng ta đã cấp cho Arduino. Đặc biệt không được cấp vào các chân này

vì sẽ làm hỏng Arduino [3].
+ Vin (Voltage Input) để cấp nguồn ngoài cho Arduino Uno, 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 [3].
+ Chân GND (Ground) là chân nối đất, sử dụng với mục đích tạo mạch kín khi
cấp nguồn cho ngoại vi. Khi 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 đưuọc nối với nhau [3].
+ IOREF là chân có thể dùng để đo điện áp hoạt động của vi điều khiển trên
Arduino Uno (luôn là 5V). Mặc dù vậy, 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 [3].
+ 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 một điện trở 10k  [3].
1.1.3.6 Ứng dụng của Arduino
Arduino ra đời nhằm phục vụ mục đích cho điều khiển điện tử nói chung.
Trong đó mảng điều khiển cơ điện tử cũng khá thông dụng với Arduino.
* Ứng dụng nền tảng của Arduino trong đồ án tốt nghiệp của sinh viên trường
Đại học Bà Rịa Vũng Tàu – Viện CNTT – điện – điện tử. Đề tài: “Robot dò line
điều khiển qua điện thoại” [4].
Robot dò line với những kết cấu cơ khí đơn giản nhưng lại có thể kết hợp
được với khá nhiều thành phần điện tử (encoder, sensor xác định đường line, sensor
đo khoảng cách...).
Nguyên lí tổng quát của toàn mạch bao gồm các bộ phận kết nối với nhau gồm
có: Module L298N, Module bluetooth HC05, Arduino Nano, màn hình LCD 16x2,
cảm biến sensor của mạch. Mạch cảm biến dị line gồm có 6 led để soi đường và 6
cảm biến quang dùng để cảm biến và phát tính hiệu đến Arduino Nano điều khiển
Robot. Đây là một phần quan trọng của Robot, nhờ có nó mà Robot có thẻ di
chuyển theo đường line và có thể hoạt động một cách ổn định nhất. Những Robot
này rất phù hợp với sinh viên học tập và nghiên cứu về ngành tự động hóa cũng u
thích kĩ thuật điện tử một cách cụ thể.

SVTH: Trần Xuân Minh


11


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.9 Robot dị line điều khiển qua điện thoại [4]
* Đồ án “Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng
và hiển thị thơng tin tốc độ gió, điện năng trong ắc quy” của sinh viên khoa Công
nghệ Cơ khí – Đại học Điện lực [5].
Sử dụng bo mạch Arduino Mega 2560 để điều khiển toàn bộ phần điện tử. Tín
hiệu từ cảm biến ánh sáng được truyền vào bo mạch Arduino. Thơng qua thuật tốn
xử lí chống nhiễu, hệ thống biết được thời điểm nào là phù hợp để quyết định bật
đèn và tắt đèn, giúp tiết kiệm năng lượng một cách thơng minh. Ngồi ra, bo mạch
Arduino cịn nhận các điện áp từ ắc quy, các tín hiệu về vận tốc gió từ encoder gắn
trên trục turbine và xuất tín hiệu ra bảng led 7 thanh để hiển thị tức thời vận tốc gió
cũng như điện năng dự trữ còn trong ắc quy.

SVTH: Trần Xuân Minh

12


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.10 Sử dụng bo mạch Arduino điều khiển bật đèn tiết kiệm năng lượng

và hiển thị thơng tin tốc độ gió, điện năng trong ắc quy [5]
Việc sử dụng bo mạch sẵn Arduino trong đồ án này đảm bảo phần vi điều
khiển hoạt động ổn định, không bị ảnh hưởng bởi sự chấn động rung lắc cơ học do
gió gây nên.
1.2 Giới thiệu Module Wifi ESP8266
1.2.1 Giới thiệu về Module Wifi ESP8266 V1
Mạch thu phát wifi ESP8266 V1 sử dụng IC wifi SoC ESP8266 của hãng
Espressif, được sử dụng để kết nối với vi điều khiển thực hiện chức năng truyền dữ
liệu qua Wifi, mạch có thiết kế nhỏ gọn, sử dụng giao tiếp UART với bộ thư viện và
code mẫu rất nhiều từ cộng đồng. Module Wifi Esp8266 V1 được sử dụng trong các
ứng dụng IoT và điều khiển thiết bị qua wifi,...[6]

Hình 1.11 Module Wifi ESP8266 V1 [6]
1.2.2 Thơng số kỹ thuật [6]
 Điện áp sử dụng: 3.3VDC
 Điện áp giao tiếp: 3.3VDC
 Dòng tiêu thụ: Max 320mA (nên sử dụng module cấp nguồn riêng cho mạch).
 Hỗ trợ chuẩn 802.11 b/g/n.
 Wifi 2.4 GHz, hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK,
WPA2_PSK, WPA_WPA2_PSK.
 Hỗ trợ cả hai giao tiếp TCP và UDP.
 Chuẩn giao tiếp UART với Firmware hỗ trợ bộ tập lệnh AT Command, tốc
độ Baudrate mặc định 9600 hoặc 115200.
 Kích thước: 24.8 x 14.3 mm

SVTH: Trần Xuân Minh

13



Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

1.2.3 Chân kết nối của Module Wifi Esp8266 V1

Hình 1.12 Sơ đồ chân của Module Wifi Esp8266 V1 [6]
 Chức năng các chân của Module Wifi Esp8266 V1 [6]
1. VCC: 3.3V, dịng có thể lên 300mA vì thế cần mạch nguồn riêng ams1117
5V -> 3.3V.
2. GND: 0V.
3. Tx: chân Tx của giao thức UART, kết nối đến chân Rx của vi điều khiển.
4. Rx: chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển.
5. RST: chân reset, kéo xuống mass để reset.
6. CH_PD: chân này nếu được kéo lên mức cao module sẽ bắt đầu thu phát
wifi, kéo xuống mức thấp module dừng phát wifi. Vì ESP8266 khởi động hút dòng
lớn nên chúng ta giữ chân này ở mức 0V khi khởi động hệ thống của mình, sau 2s
hãy kéo chân CH_PD lên 3.3V, để đảm bảo module hoạt động ổn định.
7. GPIO0: kéo xuống thấp cho chế độ upgrade firmware.
8. GPIO2: không sử dụng
1.2.4 Giao tiếp của module wifi ESP8266 với Arduino Uno
Sơ đồ nối dây giữa Arduino với Module Wifi Esp8266 V1 như sau.
Bảng 1.2 Sơ đồ nối dây [8]
Arduino Uno
Pin 2
Pin 3
3.3V
GND

SVTH: Trần Xuân Minh


ESP8266
TX
RX
Vcc và CH_PD
GND

14


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.13 Sơ đồ nối chân của Arduino Uno với Module Wifi ESP8266 V1
1.3 Giới thiệu về Apps Virtuino trên Android
- Download phần mềm Virtuino trên trang CH Play.
- Tiếp theo, bạn cần đăng kí Channel ID trên Thingspeak để lấy địa chỉ ID.

Hình 1.14 Địa chỉ ID trên Thingspeak
- Mở phần mềm Virtuino trên điện thoại và tiến hành cài đặt IoT Server theo
các bước nhập địa chỉ Channels ID, Read Key và Write Key như hình sau:

SVTH: Trần Xuân Minh

15


Khóa luận tốt nghiệp


GVHD: Lê Văn Chung

Hình 1.15 Cài đặt IoT Server trên điện thoại
Tiếp theo, tiến hành lấy ra các thiết bị cần thiết để tiến hành đo nhiệt độ và độ
ẩm như hình 1.16:

SVTH: Trần Xuân Minh

16


Khóa luận tốt nghiệp

GVHD: Lê Văn Chung

Hình 1.16 Thiết lập nhiệt độ và độ ẩm trên điện thoại
1.4 Cảm biến nhiệt độ và độ ẩm DHT11
1.4.1 Giới thiệu chung

Hình 1.17 Cảm biến nhiệt độ và độ ẩm DHT11 [7]
Cảm biến nhiệt độ và độ ẩm 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 dây
truyền dữ liệu duy nhất). Bộ tiền xử lí tín hiệu tích hợp trong cảm biến giúp bạn có
được dữ liệu chính xác mà khơng phải qua bất kì tính tốn nào [7].
Tuy nhiên, sư dụng cảm biến trong môi trường độ ẩm thuần là hơi nước, các
mơi trường đặc biệt ủ kín như ủ tỏi đen, ủ yếm khí... sẽ sinh ra nấm và vi khuẩn
bám lên bề mặt cảm biến làm hư hỏng cảm biến.
1.4.2 Thông số kĩ thuật [7]
 Nguồn: 3V đến 5V DC.
 Dòng sử dụng: 2.5 mA max (khi truyền dữ liệu).

 Đo tốt ở độ ẩm 2080 %RH với sai số 5%.
 Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần).
 Kích thước 15mm x 12mm x 5.5mm.
 3 chân, khoảng cách chân 0.1”.
1.4.3 Giao tiếp giữa DHT11 với Arduino Uno
Bảng 1.3 Sơ đồ nối chân [7]
STT
1
2
3

SVTH: Trần Xuân Minh

Arduino Uno
+5 V
Pin 6
GND

DHT11
VCC
DATA
GND

17


×