Tải bản đầy đủ (.pdf) (51 trang)

do an khoa cua thong minh su dung node mcu esp 8266 va module RFID rc 522

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 (2.56 MB, 51 trang )

GVHD: Th.s Nguyễn Thị Thắm

Nhận xét của giáo viên
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
SVTH: Nguyễn Hữu Nghĩa

1P a g e




GVHD: Th.s Nguyễn Thị Thắm

LỜI CẢM ƠN
……………   ……………
Để đề tài được hồn thiện như ngày hơm nay, em đã nhận được sự giúp
đỡ rất tận tình đến từ các thầy cô, bạn bè, đồng nghiệp. Qua đây em xin gửi
lời cảm ơn đến tất cả các tổ chức, cá nhân đã tạo điều kiện giúp đỡ em hoàn
thành đề tài này.
Em xin chân thành cảm ơn các thầy cô giáo khoa Điện trường Cao Đẳng
Kinh tế - Kỹ thuật, Đại Học Thái Nguyên đã giúp em có cơ sở kiến thức hoàn
thành đề tài này. Em xin gửi lời cảm ơn đến các anh chị phòng Đào tạo SEVT,
các đồng nghiệp đội EQUIPMENT CNC COLOR cùng các bạn bè đã tạo động
lực,sắp xếp thời gian hợp lý để em có thể hồn thành đề tài này.
Đặc biệt, em xin gửi lời cảm ơn chân thành nhất tới cô giáo Th.s Nguyễn
Thị Thắm đã đặc biệt quan tâm, nhiệt tình giúp đỡ em trong thời gian thực
hiện đề tài.
Do đặc thù là sinh viên vừa học vừa làm, quỹ thời gian hạn hẹp, cộng thêm
kiến thức còn hạn chế, trong đề tài chắc chắn cịn nhiều sai sót, mong thầy cơ
cùng các bạn góp ý để đề tài được hoàn thiện nhất.
Em xin chân thành cảm ơn !

Thái Nguyên, tháng 8 năm 2021

SVTH: Nguyễn Hữu Nghĩa

2P a g e



GVHD: Th.s Nguyễn Thị Thắm

LỜI MỞ ĐẦU
Người ta có câu: “ Cẩn tắc vô áy náy”. An ninh của gia đình là điều vơ cùng
quan trọng. Gia đình có được bình n hay khơng. Tài sản có được đảm bảo hay
không? Tất cả đều được quyết định bởi sự lựa chọn phương thức bảo vệ ngơi nhà
của chúng ta. Khóa cửa thông minh ngày nay được xếp ngang hàng với laptop,
smart phone hay những vật dụng cần thiết khác cho con người. Vậy tại sao nó lại
đóng vai trị quan trọng như vậy ?
Nhà là nơi an toàn và riêng tư, khóa cửa thơng minh được sử dụng như một công
cụ đắc lực để tăng cường an ninh cho mỗi gia đình. Mỗi một căn hộ thường có
nhiều loại cửa trong đó cửa chính là nơi ra vào đễ dàng nhất.
Khóa thơng minh cung cấp giải pháp bảo mật cao, giúp kiểm sốt việc ra vào được
tốt hơn, khóa cửa truyền thống rất dễ bị bẻ gãy bởi kết cấu thơ sơ, vì thế khơng
hiếm gặp nhiều vụ trộm xảy ra liên tục. Nhận thấy tầm quan trọng của vấn đề này.
Chúng em đã lựa chọn đề tài: “Khóa cửa thông minh sử dụng Node MCU &
module RFID RC 522” để làm báo cáo tốt nghiệp của mình.
Kết quả nghiên cứu từ đề tài này sẽ giúp em có nhiều kinh nghiệm để sau
khi tốt nghiệp chúng em có đủ khả năng nghiên cứu chế tạo hoàn chỉnh thiết bị
điều khiển hệ thống điện cho ngôi nhà thông minh đáp ứng được sử dụng yêu
cầu trên thi ̣trường với giá thành hợp ̣lý, chất lượng đảm bảo, phù hợp ṿ ới điều
kiện sống tại Việt Nam.

SVTH: Nguyễn Hữu Nghĩa

3P a g e


GVHD: Th.s Nguyễn Thị Thắm


MỤC LỤC
LỜI CẢM ƠN
LỜI MỞ ĐẦU
MỤC LỤC
CHƯƠNG 1 : Mở Đầu .................................................................................. 6
1.1.

Đặt vấn đề ............................................................................................ 6

1.2.

Phương pháp nghiên cứu ................................................................... 7

1.3.

Mục tiêu, nhiệm vụ ............................................................................. 7

CHƯƠNG 2: GIỚI THIỆU LÝ THUYẾT ................................................. 8
2.1. Giới thiệu khóa điện tử .......................................................................... 9
2.2. Lợi ích khi lắp đặt khóa cửa thơng minh cho ngơi nhà ...................... 9
2.3. Blynk ........................................................................................................ 14
2.3.1. Hệ sinh thái Blynk ........................................................................... 14
2.3.2. Tính năng của Blynk ....................................................................... 15
CHƯƠNG 3: THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ ........................ 18
3.1. Kit Node MCU Lua ESP8266 ............................................................... 18
3.2. Module và Board phát triển của ESP8266 .......................................... 20
3.3. Giới thiệu về module ESP 12E (Node MCU V3) ................................. 21
3.4. Sơ đồ chân GPIO và những lưu ý khi sử dụng Node MCU ............... 22
3.5. Phần mềm IDE ....................................................................................... 24
3.5.1. Cấu trúc một chương trình trong phần mềm IDE....................... 24

3.5.2. Hàm nhập xuất Digital I/O ............................................................. 25
3.5.3. Hàm nhập xuất Analog I/O ............................................................ 28
3.5.4. Hàm thời gian (Delay)..................................................................... 29
SVTH: Nguyễn Hữu Nghĩa

4P a g e


GVHD: Th.s Nguyễn Thị Thắm

3.6. Lập trình ESP 12E bằng Arduino IDE ................................................ 31
3.6.1. Gới thiệu ........................................................................................... 31
3.6.2. Chuẩn bị phần cứng ........................................................................ 29
3.6.3. Cài đặt phần mềm arduino IDE và thư viện cho ESP8266......... 30
3.6.4. Hướng dẫn nạp chương trình cho ESP8266 12E ......................... 30
3.7. Giới thiệu Module RFID RC522 13.56MHz ...................................... 31
CHƯƠNG 4: NỘI DUNG THỰC HIỆN VÀ MƠ HÌNH .......................... 32
4.1. Mục tiêu ................................................................................................... 33
4.2. Phần cứng chuẩn bị ................................................................................ 34
4.3. Phần mềm chuẩn bị ................................................................................ 34
4.4. Lắp mạch nguyên lý ............................................................................... 35
4.5. Code chương trình ................................................................................. 37
4.6. Cấu hình Blynk ....................................................................................... 40
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI ..47
5.1. Kết luận...................................................................................................47
5.1.1. Những mặt đã làm được.................................................................47
5.1.2. Những hạn chế tồn đọng.................................................................47
5.2. Hướng phát triển của đề tài ................................................................. 49
TÀI LIỆU THAM KHẢO ........................................................................... 50
PHỤ LỤC ...................................................................................................... 51


SVTH: Nguyễn Hữu Nghĩa

5P a g e


GVHD: Th.s Nguyễn Thị Thắm

CHƯƠNG 1
MỞ ĐẦU

1.1.

Đặt vấn đề

Ngày nay, các loại khóa truyền thống gần như khơng cịn phù hợp với nhịp
sống hiện đại hóa ngày này. Trong quá trình sử dụng khóa truyền thống thường
làm người dùng đối mặt với một số bất cập thường thấy như thất lạc chìa khóa,
phải tạo nhiều chìa khóa cơ cho các thành viên (trong gia đình/ cơng ty/ …).
Từ lâu bộ chìa khóa cơ đã gắn liền với cửa nhà mỗi gia đình. Khóa có nhiệm vụ
bảo vệ khơng cho người lạ cũng như kẻ gian đột nhập vào nhà với những ý đồ
xấu. Chúng ta không thể phủ nhận được rằng bộ khóa cơ thơng thường có tác
dụng ngăn cản hay kéo dài thời gian hành động của kẻ trộm.
Khóa cơ rất dễ mở, đôi khi những kẻ trộm không cần dùng chìa mà bọn chúng chỉ
cần vài thủ thuật thơi là có thể mở được khóa trong ít phút. Đơn giản với 2 thanh
sắt dẹp, một thanh để xoay trục ổ khóa, một thanh để đẩy các chốt lị xo về vị trí
mở. Thế là ai ai cũng có thể vào nhà bạn chỉ trong vài nháy mắt.
Chính vì thế, Khóa cửa thơng minh sẽ thay thế các loại khóa truyền thống. Nó
đang dần khẳng định vị thế của mình vì bốn lý do: Cơng nghệ bảo mật cao; tiện
ích – cho phép chủ động quản lý ra vào; điều khiển khóa từ xa qua ứng dụng điện

thoại; mẫu mã thiết kế sang trọng, hiện đại.

SVTH: Nguyễn Hữu Nghĩa

6P a g e


GVHD: Th.s Nguyễn Thị Thắm

1.2. Phương pháp nghiên cứu
- Nghiên cứu tài liệu qua sách báo về lĩnh vực IOT
- Tìm hiểu nguyên lý hoạt động của module Node MCU esp 8266 và các
module phụ trợ, thiết bị điện ngoại vi.
1.3. Mục tiêu, nhiệm vụ
- Tìm hiểu về hệ thống khóa cửa thơng minh
- Tìm hiểu về IOT.
- Thiết kế mạch điều khiển thiết bị khóa cửa thơng minh
- Xây dựng mơ hình mẫu
- Kiểm tra, đánh giá tính ứng dụng của đề tài.

SVTH: Nguyễn Hữu Nghĩa

7P a g e


GVHD: Th.s Nguyễn Thị Thắm

CHƯƠNG 2
GIỚI THIỆU LÝ THUYẾT
2.1. Giới thiệu khóa điện tử

Khóa điện tử trở nên quen thuộc với người dùng Việt trong những năm gần đây
bởi sự sang trọng, hiện đại và tiện dụng mà thiết bị này mang lại. Đi kèm với đó
là vơ số các tính năng thơng minh đảm bảo sự an tồn cho ngơi nhà của bạn.

2.2. Lợi ích khi lắp đặt khóa cửa thơng minh cho ngơi nhà của bạn
Khóa cửa điện tử là một thiết bị an toàn tuyệt đối được sử dụng rộng rãi hiện nay
với các kiểu mở khóa đa dạng như khóa thẻ từ, vân tay, mã số, chng cửa có
SVTH: Nguyễn Hữu Nghĩa

8P a g e


GVHD: Th.s Nguyễn Thị Thắm

hình, điều khiển từ xa… Thao tác mở cửa vô cùng đơn giản bạn chỉ cần nhập mã
số, bấm dấu vân tay, quẹt thẻ từ hoặc chỉ cần bấm một nút duy nhất là cửa sẽ tự
động mở ra. Khi ra ngoài bạn cũng chỉ cần bấm một nút exit, khi đóng cửa lại thì
cửa sẽ tự động khóa. Điều này giúp bạn tiết kiệm được rất nhiều thời gian mở
khóa cửa cũng như thời gian tìm chùm chìa khóa trong túi đồ của mình. Khóa cửa
điện tử hiện đại không chỉ giúp bảo vệ, nâng cao sự an tồn, n tâm hơn cho ngơi
nhà của bạn mà còn khiến phần thẩm mỹ được nổi bật hơn hẳn với kiểu dáng đầy
cuốn hút, sang trọng và tinh tế. Các nhà sản xuất không chỉ chú trọng tính năng
mà vẻ ngồi của khóa cũng được đặt lên hàng đầu.

Nếu các ổ khóa cơ truyền thống thường xuyên đối mặt với nguy cơ phá khóa thì
khi sử dụng khóa điện tử cao cấp, bạn có thể an tâm hơn với những tính năng bảo
mật: báo động bằng âm thanh khi khóa bị tác động bởi một lực mạnh bên ngồi;
chống sốc điện phịng trường hợp kẻ xấu muốn phá khóa bằng phương pháp sốc
SVTH: Nguyễn Hữu Nghĩa


9P a g e


GVHD: Th.s Nguyễn Thị Thắm

điện; tự động vơ hiệu hóa khi nhập sai mật khẩu nhiều lần liên tiếp; cho phép nhập
một dãy số bất kỳ trước hoặc sau mật khẩu để tránh nguy cơ bị nhìn lén...
Cịn nếu bạn là người hay quên, khóa điện tử sẽ báo động khi chốt chưa vào đúng
vị trí, nhắc nhở bạn khóa cửa trước khi rời nhà.
Khi mức độ bảo mật được tăng lên, các rủi ro về vấn đề an ninh của gia đình được
giảm đáng kể từ đó, các vụ trộm cắp hay xâm nhập cũng được khắc phục. Do đó,
hệ thống khóa cửa thơng minh tại các căn hộ mang lại khơng gian sống an tồn
hơn.
Đối với các thành viên trong gia đình bạn, họ khơng cần phải q lo lắng việc mất
chìa mở cửa nhà vì chỉ cần sử dụng vân tay, thẻ từ hay mật khẩu là đã có thể mở
cửa dễ dàng.
Khóa thơng minh cho phép bạn khóa và mở cửa từ xa. Hệ thống tự động gửi tin
nhắn, báo cáo lịch sử ra vào, giúp bạn dễ dàng theo dõi lịch ra vào của các thành
viên trong gia đình. Khóa thơng minh cung cấp giải pháp ưu việt cho chủ nhà trọ,
homestay để bảo vệ tài sản và quản lý dễ dàng hơn.
2.3 Blynk
Đây là một nền tảng IoT được ưa thích bởi hơn 500.000 kỹ sư trong lĩnh vực
IoT trên toàn thể giới.
2.3.1. Hệ sinh thái Blynk
Có ba thành phần chính trong nền tảng Blynk:
Blynk App - cho phép tạo giao diện cho sản phẩm của bạn bằng cách kéo thả các
widget khác nhau mà nhà cung cấp đã thiết kế sẵn.

SVTH: Nguyễn Hữu Nghĩa
10P a g e



GVHD: Th.s Nguyễn Thị Thắm

Blynk Server - chịu trách nhiệm xử lý dữ liệu trung tâm giữa điện thoại, máy tính
bảng và phần cứng. Chúng ta có thể sử dụng Blynk Cloud của Blynk cung cấp
hoặc tự tạo máy chủ Blynk riêng cho mình. Vì đây là mã nguồn mở, nên bạn có
thể dễ dàng intergrate vào các thiết bị và thậm chí có thể sử dụng Raspberry Pi
làm server của hệ thống.
Library Blynk – support cho hầu hết tất cả các nền tảng phần cứng phổ biến cho
phép giao tiếp với máy chủ và xử lý tất cả các lệnh đến và đi.

Hình 2.13: Sơ đồ hệ sinh thái Blynk
Nguyên lý hoạt động của Blynk: mỗi khi ta nhấn một nút trong ứng dụng
Blynk, yêu cầu sẽ chuyển đến server của Blynk, server sẽ kết nối đến phần cứng
của chúng ta thông qua library . Tương tự thiết bị phần cứng sẽ truyền dữ liệu
ngược lại đến server. Vì thế chúng ta có thể tự mình xây dụng một hệ sinh thâí
nhà thơng minh dựa trên nền tảng của Blynk
2.3.2.Tính năng của Blynk
- Cung cấp API & giao diện người dùng tương tự cho tất cả các thiết bị và
phần cứng được hỗ trợ.
SVTH: Nguyễn Hữu Nghĩa
11P a g e


GVHD: Th.s Nguyễn Thị Thắm

- Kết nối với server bằng cách sử dụng:Wifi, Bluetooth và BLE, Ethernet, USB
(Serial), GSM, …
- Các tiện ích trên giao diện được nhà cung cấp dễ sử dụng

- Thao tác kéo thả trực tiếp giao diện mà khơng cần viết mã
- Dễ dàng tích hợp và thêm chức năng mới bằng cách sử dụng các cổng kết nối
ảo được tích hợp trên blynk app
- Theo dõi lịch sử dữ liệu
- Thông tin liên lạc từ thiết bị đến thiết bị bằng Widget

SVTH: Nguyễn Hữu Nghĩa
12P a g e


GVHD: Th.s Nguyễn Thị Thắm

CHƯƠNG 3
THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ
3.1. Kit NodeMCU Lua ESP8266
Chip ESP8266 được phát triển bởi Espressif để cung cấp giải pháp giao tiếp
Wifi cho các thiết bị IoT. Điểm đặc biệt của dòng ESP8266 là nó được tích hợp
các mạch RF như balun, antenna switches, TX power amplifier và RX filter ngay
bên trong chip với kích thước rất nhỏ chỉ 5x5mm nên các board sử dụng ESP8266
khơng cần kích thước board lớn cũng như khơng cần nhiều linh kiện xung quanh.

Hình 3.1: Module NodeMCU Lua ESP8266

SVTH: Nguyễn Hữu Nghĩa
13P a g e


GVHD: Th.s Nguyễn Thị Thắm

Module thu phát Wifi ESP8266 NodeMCU Lua là kit phát triển dựa trên nền

chip Wifi SoC ESP8266 với 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.
Module thu phát Wifi ESP8266 NodeMCU Lua là kit phát triển dựa trên nền
chip Wifi SoC ESP8266 với 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.

Hình 3.2: Sơ đồ nguyên lý kit NodeMCU

SVTH: Nguyễn Hữu Nghĩa
14P a g e


GVHD: Th.s Nguyễn Thị Thắm

3.2. Module và Board phát triển của ESP8266.
ESP8266 cần một số linh kiện nữa mới có thể hoạt động, trong đó phần khó
nhất là Anten. Địi hỏi phải được sản xuất, kiểm tra với các thiết bị hiện đại. Do
đó, trên thị trường xuất hiện nhiều Module và Board mạch phát triển đảm đương
hết để người dùng đơn giản nhất trong việc phát triển ứng dụng. Một số Module
và Board phát triển phổ biến:

Hiện nay phiên bản sử dụng phổ biến nhất là ESP8266 12E

Hình 3.4: Chip ESP 12E
SVTH: Nguyễn Hữu Nghĩa
15P a g e



GVHD: Th.s Nguyễn Thị Thắm

3.3. Giới thiệu về module ESP 12E( NodeMCU V1).
NodeMCU v1.0 Lua - ESP8266 ESP12E

Hình 3.5 NODE MCU ESP8266

NodeMCU V1.0 được phát triển dựa trên Chip WiFi ESP8266EX bên trong
Module ESP-12E dễ dàng kết nối WiFi với một vài thao tác. Board cịn tích hợp
IC CP2102, giúp dễ dàng giao tiếp với máy tính thơng qua Micro USB để thao tác
với board. Và có sẳn nút nhấn, led để tiện qua q trình học, nghiên cứu.
Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị ngoại vi
để tạo thành project, sản phẩm mẫu một cách nhanh chóng.

SVTH: Nguyễn Hữu Nghĩa
16P a g e


GVHD: Th.s Nguyễn Thị Thắm

Thông số kỹ thuật:
 Chip:

ESP8266EX

 WiFi:

2.4 GHz hỗ trợ chuẩn 802.11 b/g/n

 Điện


áp hoạt động: 3.3V

 Điện

áp vào: 5V thông qua cổng USB



Số chân I/O: 11 (tất cả các chân I/O đều có Interrupt/PWM/I2C/One-wire,

trừ chân D0)
 Số

chân Analog Input: 1 (điện áp vào tối đa 3.3V)

 Bộ

nhớ Flash: 4MB

 Giao
 Hỗ

tiếp: Cable Micro USB

trợ bảo mật: WPA/WPA2

 Tích
 Lập


hợp giao thức TCP/IP

trình trên các ngơn ngữ: C/C++, Micropython, NodeMCU – Lua

3.4. Sơ đồ chân GPIO và những lưu ý khi sử dụng:
NodeMCU:

SVTH: Nguyễn Hữu Nghĩa
17P a g e


GVHD: Th.s Nguyễn Thị Thắm

Hình 3.6 Sơ đồ chân MODULE Node MCU
Chúng ta biết rằng ở mỗi chân trên vi điều khiển có thể thực hiện nhiều chức
năng khác nhau, NodeMCU có tổng cộng 13 chân GPIO tuy nhiên một số chân
được dùng cho những mục đích quan trọng khác vì vậy chúng ta phải lưu ý khi sử
dụng như sau:
Tất cả các GPIO đều có trở kéo lên nguồn bên trong (ngoại trừ GPIO16 có trở
kéo xuống GND). Người dùng có thể cấu hình kích hoạt hoặc khơng kích hoạt trở
kéo này.
GPIO1 và GPIO3: hai GPIO này được nối với TX và RX của bộ UART0,
NodeMCU nạp code thông qua bộ UART này nên tránh sử dụng 2 chân GPIO
này.
GPIO0, GPIO2, GPIO15: đây là các chân có nhiệm vụ cấu hình mode cho
ESP8266 điều khiển quá trình nạp code nên bên trong NodeMCU (có tên gọi là
strapping pins) có các trở kéo để định sẵn mức logic cho chúng như sau: GPIO0:
SVTH: Nguyễn Hữu Nghĩa
18P a g e



GVHD: Th.s Nguyễn Thị Thắm

HIGH, GPIO2: HIGH, GPIO15: LOW. Vì vậy khi muốn sử dụng các chân này ở
vai trò GPIO cần phải thiết kế một nguyên lý riêng để tránh xung đột đến quá trình
nạp code.
GPIO9, GPIO10: hai chân này được dùng để giao tiếp với External Flash của
ESP8266 vì vậy cũng khơng thể dùng được (đã test thực nghiệm).
Như vậy, các GPIO còn lại: GPIO 4, 5, 12, 13, 14, 16 có thể sử dụng bình thường.

SVTH: Nguyễn Hữu Nghĩa
19P a g e


GVHD: Th.s Nguyễn Thị Thắm

3.5. Phần mềm IDE
Đây là phần mềm dùng để lập trình nạp code vơ kit NodeMCU Lua ESP8266
3.5.1. Cấu trúc một chương trình trong phần mềm IDE:
Phần 1: Khai báo biến
Đây là phần khai báo kiểu biến, tên các biến, định nghĩa các chân trên board một
số kiểu khai báo biến thông dụng:
* #define
Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn
gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên. Ví dụ #define led
13
Chú ý: sau #define thì khơng có dấu “,” (dấy phẩy)
*Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…
Các chúng ta có thể tham khảo thêm các kiểu biến cũng như công dụng tại
arduino.cc

Phần 2: Thiết lập (void setup())
Phần này dùng để thiết lập cho chương trình, cần nhớ rõ cấu trúc của nó:
void setup()
{
…..
}
SVTH: Nguyễn Hữu Nghĩa
20P a g e


GVHD: Th.s Nguyễn Thị Thắm

Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi
kiểm tra chương trình thì chương trình sẽ báo lỗi. Phần này dùng để thiết lập các
tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào. Trong đó:
Serial.begin(9600); Dùng để truyền dữ liệu từ board Arduino lên máy tính
pinMode(biến, kiểu vào hoặc ra); Dùng để xác định kiểu chân là vào hay ra
Ví dụ: pinMode(ChanDO, INPUT);

Phần 3: Vịng lặp
Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các
nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng: void loop()
{
…………….
}
Một số câu lệnh, cấu trúc thường gặp:
// : Dấu // dùng để giải thích, khi nội dung giải thích nằm trên 1 dịng, khi kiểm
tra chương trình thì phần mềm kiểm tra sẽ bỏ qua phần này, không kiêm tra hay
biên dịch.
#define: Dùng để định nghĩa một chân nào đó, hay gán biến tới 1 chân, địa chỉ ghi

đọc tín hiệu. Ví dụ: #define LED, 13
3.5.2. Hàm nhập xuất Digital I/O:

a. digitalWrite():Miêu tả: Viết một giá trị HIGH hoặc một LOW cho một chân số
của arduino.
SVTH: Nguyễn Hữu Nghĩa
21P a g e


GVHD: Th.s Nguyễn Thị Thắm

Nếu chân đã được cấu hình như một OUTPUT với pinMode(), điện áp của nó
sẽ được thiết lập với giá trị tương ứng: 5V (hoặc 3.3V trên 3.3V)
cho HIGH, 0V cho LOW.
Nếu chân được cấu hình như là một INPUT, digitalWrite()sẽ cho phép
( HIGH) hoặc vô hiệu hóa ( LOW) pullup nội bộ trên chân đầu vào. Nên thiết
lập pinMode() để INPUT_PULLUP cho phép các điện trở kéo lên bên trong.
Cú pháp:
digitalWrite(pin, value);
Thông số:
pin: Số của chân digital mà bạn muốn thiết đặt.
value: HIGH hoặc LOW.
Trả về:
Khơng có.
Ví dụ:
Mã làm cho pin kỹ thuật số 13 OUTPUTvà chuyển đổi nó bằng cách luân
phiên giữa HIGHvà LOWở tốc độ một giây.
Ví dụ:
int led =13;
void setup()

{
pinMode(led, OUTPUT); // led được nối với chân số 13.
}
void loop()
{
SVTH: Nguyễn Hữu Nghĩa
22P a g e


GVHD: Th.s Nguyễn Thị Thắm

digitalWrite(led, HIGH); // bật led
delay(1000); // dừng chương trình 1 giây
digitalWrite(led, LOW); // tắt led
delay(1000); // dừng chương trình 1 giây
}
b. digitalRead():
Miêu tả:
Đọc giá trị từ một Chân số đã được chỉ định, hoặc là HIGH hoặc LOW.
Cú pháp:
digitalRead(pin)
Thông số:
pin: số chân digital bạn muốn đọc.
Trả về:
HIGH hoặc là LOW
c. pinMode():
Miêu tả:
Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT) hoặc đầu ra
(OUTPUT).
Cú pháp:

pinMode(pin, mode)
Thơng số:
pin: số chân có chế độ bạn muốn thiết lập.
mode: INPUT, OUTPUT, Hoặc INPUT_PULLUP.
Trả về:
Khơng có.
Ví dụ:
void setup()
SVTH: Nguyễn Hữu Nghĩa
23P a g e


GVHD: Th.s Nguyễn Thị Thắm

{
pinMode (12, OUTPUT); // chân số 12 là đầu ra
}
void loop ()
{
digitalWrite (12, HIGH);
delay(1000);
digitalWrite (12, LOW);
delay(1000);
}
3.5.3. Hàm nhập xuất Analog I/O:
a. analogRead()
Giới thiệu:
Nhiệm vụ của analogRead() là đọc giá trị điện áp từ một chân Analog (ADC).
Board Node MCU có 1 pin A0 (5pin trên UNO R3, 8 pin trên Mini và Nano, 16
pin trên Mega), bộ chuyển đổi tương tự 10-bit sang số.

Điều này có nghĩa là nó sẽ lập bản đồ điện áp đầu vào từ 0 đến 5 volts thành
các số nguyên từ 0 đến 1023. Điều này tạo ra độ phân giải giữa các lần đọc: 5
volts / 1024 đơn vị hoặc, 0,0049 volt (4,9 mV) trên một đơn vị. Dải đầu vào và độ
phân giải có thể được thay đổi bằng cách sử dụng.
Hàm analogRead() cần 100 micro giây để thực hiện. Khi người ta nói "đọc tín
hiệu analog", bạn có thể hiểu đó chính là việc đọc giá trị điện áp.
Cú pháp: analogRead (pin) ;
b. analogWrite()
SVTH: Nguyễn Hữu Nghĩa
24P a g e


GVHD: Th.s Nguyễn Thị Thắm

Miêu tả analogWrite() là lệnh xuất ra từ một chân trên mạch Arduino một mức
tín hiệu analog (phát xung PWM). Người ta thƣờng điều khiển mức sáng tối của
đèn LED hay điều chỉnh tốc độ động cơ.Tần số của tín hiệu PWM trên hầu hết
các chân khoảng 490 Hz. Trên board Node MCU và các board tương tự, chân
PWM có tần số khoảng 980Hz.
Bạn khơng cần gọi hàm pinMode() để đặt chế độ OUTPUT cho chân sẽ
dùng để phát xung PWM trên mạch Arduino. Cú pháp: analogWrite([chân phát
xung PWM], [giá trị xung PWM]); Giá trị mức xung PWM nằm trong khoảng từ
0 đến 255, tương ứng với mức duty cycle từ 0% đến 100%
Trả về
Khơng có.
Ví dụ:
Đoạn code dưới có chức năng làm sáng dần một đèn LED được kết nối vào chân
số 2 trên mạch Arduino.
int led = 2;
void setup() {}

3.5.4. Hàm thời gian:
Hàm delay()
Tạm dừng chương trình cho khoảng thời gian (tính bằng mili giây) được chỉ
định là tham số. (Có 1000 mili giây = 1 giây.)
Cú pháp: delay(ms)
Thông số
ms: số mili giây để tạm dừng ( unsigned long)
Trả về: Khơng có
ví dụ:
SVTH: Nguyễn Hữu Nghĩa
25P a g e


×