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

Bài tập lớn điều khiển thiết bị từ xa qua app Blynk

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 (1.26 MB, 30 trang )

Demo báo cáo

Mục lục


Demo báo cáo

DANH MỤC BẢNG BIỂU, HÌNH ẢNH
Hình 1.1: Thiết bị Smart head phone
Hình 1.2: Kiểm sốt lộ trình xe tải qua GPS
Hình 1.3: Ví dụ về nhà thơng minh
Hình 1.4: Sơ đồ hệ sinh thái Blynk
Hình 1.5: Mơ hình nhà thơng minh
Hình 2.1. Module Esp 8266 Esp 12E
Hình 2.2: Module Esp 8266 Esp 01
HÌnh 2.3: Sơ đồ nguyên lý kit NodeMCU
Hình 2.4: Chip Esp 12E
Hình 2.5: NODE MCU ESP8266
Hình 2.6: Sơ đồ chân Module Node MCU
Hình 2.7: Rơ le trung gian
Hình 2.8: Cấu tạo Rơ le trung gian
Hình 2.9: Nguyên lý hoạt động của rơ le trung gian
Hình 2.10: Phần mềm lập trình Arduino IDE
Hình 2.11: Cửa sổ lập trình Arduino IDE
Hình 2.12: Ví dụ lập trình
Hình 2.13: Nạp thư viện Esp 8266
Hình 2.14: Cập nhật Board Esp 8266
Hình 2.15: Cài đặt Board Esp 8266


Demo báo cáo



MỞ ĐẦU

1. Tính cấp thiết
Ngày nay, xã hội càng hiện đại, khoa học kỹ thuật càng phát triển thì cuộc sống của
con người càng có nhu cầu sử dụng đầy đủ các thiết bị thông minh để phục vụ cho sinh
hoạt và cơng việc của mình. Một thực tế rất gần với con người là trong chính căn nhà của
mình, mong muốn được dụng cơng nghệ tự động hóa càng được rộng rãi, tất cả đồ dùng
trong nhà từ phòng ngủ, phòng khách đến toilet đều gắn các bộ điều khiển điện tử có thể
kết nối với Internet và điện thoại di động, cho phép chủ nhân điều khiển vật dụng từ xa
hoặc lập trình cho thiết bị ở nhà hoạt động theo lịch thời gian đúng mong muốn.
Nhu cầu về kiểm soát hệ thống thiết bị điện và điều khiển thiết bị thông minh ngày
càng phổ biến như kiểm tra trạng thái của đèn, quạt, máy lạnh, các thiết bị khác, có thể
mở hay tắt và các thiết bi ̣điện trong nhà từ xa bằng thiết bị điện thoại di động, thiết bị
máy tính thơng qua mạng internet.
Hiện nay với nền khoa học phát triển với các trợ lý ảo thông minh hỗ trợ AI như:
Google Assistant (Google), Alexa (Amazon), Siri (Apple), Cortana (Microsoft), … Các
thiết bị trong ngơi nhà thơng minh ngồi được điều khiển qua các app trên điện thoại,
web,… còn được điều khiển qua trợ lý ảo cũng dần được phát triển. Vì vậy, em đã tìm
hiểu nghiên cứu chọn đề tài: “Nghiên cứu lắp đặt bộ công tắc 3 kênh điều khiển qua điện
thoại”. Điều khiển thiết bị điện thông minh qua wifi sử dụng công tắc Hunonic wifi 3 để
làm báo cáo tốt nghiệp cho 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 ̣với điều kiện sống tại Việt Nam.
2. Mục tiêu, nhiệm vụ
- Tìm hiểu về hệ thống điều khiển thơng minh các thiết bị điện trong gia đình
- Tìm hiểu về Google Assistant (Google Home), IOT.
- Xây dựng mơ hình thông qua project cơ bản nhất.

- Kiểm tra, đánh giá tính ứng dụng của đề tài.
3. 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
• - Nghiên cứu cơ sở lý thuyết để thiết kế mạch điều khiển thiết bị với trợ lý ảo Google
Assistant của Google


Demo báo cáo

- 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 là cơ sở để chế tạo ra công tắc thông minh Hunonic wifi 3.
4. Đối tượng và phạm vi nghiên cứu
- Điều khiển bóng đèn tuýt, bóng đèn trần và quạt điện bằng cơng tắc Hunonic wifi 3 và
các thiết bị phụ trợ, thiết bị điện ngoại vi.


Demo báo cáo

Chương 1: TỔNG QUẢN LÝ THUYẾT

1.1. ( IOT) là gì?
Internet of Things (IoT) - Mạng lưới vạn vật kết nối Internet là một kịch bản của
thế giới, khi mà mỗi đồ vật, con người được cung cấp một định danh của riêng mình, và
tất cả có khả năng truyền tải, trao đổi thông tin, dữ liệu qua một mạng duy nhất mà
không cần đến sự tương tác trực tiếp giữa người với người, hay người với máy tính. IoT
đã phát triển từ sự hội tụ của công nghệ không dây,công nghệ vi điều khiển, cơ điện tử và
Internet. Nói đơn giản là một tập hợp các thiết bị có khả năng kết nối với nhau, với
Internet và với thế giới bên ngồi để thực hiện một cơng việc nào đó. ( Wikipedia).
Hiểu đơn giản, IoT có thể khiến mọi vật giờ đây có thể giao tiếp với nhau dễ dàng
hơn và ưu điểm lớn nhất của “Thông minh” là khả năng phịng ngừa và cảnh báo tại bất

kì đâu.
1.2. Những ứng dụng thực tế trong cuộc sống
Những ứng dụng của IoT vào các lĩnh vực trong đời sống là vô cùng phong phú và đa
dạng. Chúng ta sẽ cùng điểm qua một số ứng dụng điển hình của IoT:
1.2.1. Vật dụng mang theo trên người
Có thể kể đến một số thiết bị như Dashbon Mask, đây là 1 chiếc smart headphone giúp
bạn vừa có thể nghe nhạc với âm thanh có độ trung thực cao vừa có thể xem phim HD
với máy chiếu ảo, hoặc AMPL SmartBag ba lơ có pin dự phịng có thể sạc điện cho các
thiết bị di động, kể cả máy tính.

Hình
bị

1.1: Thiết
smart headphone


Demo báo cáo

1.2.2. Ứng dụng trong lĩnh vực vận tải.
Ứng dụng điển hình nhất trong lĩnh vực này là gắn chíp lấy tọa độ GPS lên xe chở
hàng, nhằm kiểm sốt lộ trình, tốc độ, thời gian đi đến của các xe chở hàng. Ứng dụng
này giúp quản lý tốt khâu vận chuyển, có những xử lý kịp thời khi xe đi khơng đúng lộ
trình hoặc bị hỏng hóc trên những lộ trình mà ở đó mạng di động khơng phủ sóng tới
được, kiểm sốt được lượng nhiên liệu tiêu hao ứng với lộ trình đã được vạch trước. Theo
dõi lộ trình đi của xe chở hàng.
Hình 1.2: Kiểm sốt lộ
trình xe tải qua GPS
1.2.3. Ứng dụng trong lĩnh
vực sản xuất nơng nghiệp.

Q trình sinh trưởng
và phát triển của cây trồng
trải qua nhiều giai đoạn từ
hạt nảy mầm đến ra hoa kết
trái. Ở mỗi giai đoạn cần có
sự chăm sóc khác nhau về
chất dinh dưỡng cũng như chế độ tưới tiêu phù hợp. Những yêu cầu này đòi hỏi sự bền bỉ
và siêng năng của người nông dân từ ngày này sang ngày khác làm cho họ phải vất vả.
Nhưng nhờ vào ứng dụng khoa học kỹ thuật, sử dụng cảm biến để lấy thông số nhiệt độ,
độ ẩm, độ pH của đất trồng, cùng với bảng dữ liệu về quy trình sinh trưởng của loại cây
đó, hệ thống sẽ tự động tưới tiêu bón lót cho cây trồng phù hợp với từng giai đoạn phát
triển của cây trồng. Người nông dân bây giờ chỉ kiểm tra, quan sát sự vận hành của hệ
thống chăm
sóc cây trồng trên một màn hình máy tính có nối mạng. Theo dõi tình
trạng sinh trưởng của cây trồng. Sản phẩm của mỗi loại nông sản sẽ được gắn mã ID, nếu
tủ lạnh nhà chúng ta sắp hết một loại nơng sản nào đó thì ngay lập tức nó sẽ tự động gửi
thơng báo cần mua đến cơ sở dữ liệu của trang trại có trồng loại nơng sản đó, và chỉ sau
một thời gian nông sản mà bạn cần sẽ được nhân viên đem đến tận nhà.
1.2.4. Ứng dụng trong nhà thông minh
Vài năm trở lại đây, khi thế giới đang dần tiến vào kỷ nguyên Internet of Things, kết
nối mọi vật qua Internet, nhà thông minh trở thành một xu hướng công nghệ tất yếu, là
tiêu chuẩn của nhà ở hiện đại. Trong căn hộ thông minh, tất cả các thiết bị từ rèm cửa,
điều hoà, dàn âm thanh, hệ thống ánh sáng, hệ thống an ninh, thiết bị nhà tắm… được kết


Demo báo cáo

nối với nhau và hoạt động hoàn toàn tự động theo kịch bản lập trình sẵn, đáp ứng đúng
nhu cầu sử dụng của khách hàng.
Ví dụ, vào buổi sáng, đèn tắt, rèm cửa tự động chuyển tới vị trí thích hợp để giảm bớt

những tác động náo nhiệt từ đường phố và nhường không gian cho ánh sáng tự nhiên. Tối
đến, hệ thống đèn bật sáng, các rèm cửa kéo lên người dùng có thể thưởng ngoạn từ trên
cao bức tranh thành phố rực rỡ ánh đèn, đồng thời âm nhạc cũng nhẹ nhàng cất lên các
giai điệu u thích của gia đình.

Hình 1.3: Ví dụ về nhà thơng minh
Nếu có việc cả nhà phải đi vắng, chế độ "Ra khỏi nhà" sẽ được kích hoạt, tồn bộ
thiết bị điện tử gia dụng sẽ tự động tắt hoặc đóng lại và khi chủ nhân về, chúng cũng sẽ
khơi phục lại trạng thái trước đó. Thậm chí, nước nóng cũng đã sẵn sàng từ vài phút trước
khi gia chủ về đến cửa. Riêng hệ thống an ninh luôn hoạt động 24/24 và sẽ thông báo đến
chủ nhà mọi thay đổi "đáng ngờ" trong ngôi nhà, dù đang ở bất cứ đâu.


Demo báo cáo

1.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
tồn thể giới.
1.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.
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 1.4: 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.
1.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ợ
- Kết nối với server bằng cách sử dụng:


Demo báo cáo

+
+
+
+
+

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
Gửi email, tweet, thông báo realtime, v.v.
Ứng dụng được cập nhật các tính năng liên tục

1.4. Nhà thơng minh
1.4.1. Khái niệm
Nhà thông minh là kiểu nhà được lắp đặt các thiết bị điện, điện tử có thể được điều
khiển hoặc tự động hoá hoặc bán tự động, thay thế con người trong thực hiện một hoặc
một số thao tác quản lý, điều khiển. Hệ thống điện tử này giao tiếp với người dùng thông
qua bảng điện tử đặt trong nhà, ứng dụng trên điện thoại di động, máy tính bảng hoặc một
giao diện web.

Hình 1.5: Mơ hình nhà thơng minh
Trong căn nhà thơng minh, đồ dùng trong nhà từ phịng ngủ, phòng khách đến toilet
đều gắn các bộ điều khiển điện tử có thể kết nối với Internet và điện thoại di động, cho
phép chủ nhân điều khiển vật dụng từ xa hoặc lập trình cho thiết bị ở nhà hoạt động theo
lịch. Thêm vào đó, các đồ gia dụng có thể hiểu được ngơn ngữ của nhau và có khả năng
tương tác với nhau.


Demo báo cáo

1.4.2. Chức năng
- Điều khiển chiếu sáng (on/off, dimmer, scence, timer, logic,...)
- Điều khiển mành, rèm, cửa cổng
- Hệ thống an ninh, báo động, báo cháy
- Điều khiển điều hòa, máy lạnh

- Hệ thống âm thanh đa vùng
- Camera, chng hình
- Hệ thống Bảo vệ nguồn điện
1.4.3. Các hệ sinh thái nhà thông minh trên thế giới
Với nhu cầu ngày càng cao về nhà thông minh trên thế giới. Các hãng công nghệ lớn trên
thế giới đã phát triển các hệ sinh thái SmartHome cho riêng mình. Với trung tâm là trợ lý
ảo tích hợp AI cùng các thiết bị điện thông minh kết nối IoT và các phần mềm hỗ trợ trên
Smart phone. Tiêu biểu trong các hệ sinh thái này phải kể đến: Amazon, Google,
Samsung, Xiaomi, GeekLink, …


Demo báo cáo

Chương 2: THIẾT BỊ VÀ GIẢI PHÁP CÔNG NGHỆ

2.1. Kit NodeMCU Lua ESP8266
2.1.1. Kit NodeMCU Lua ESP8266
ESP8266 là dịng chip tích hợp Wi-Fi 2.4Ghz có thể lập trình được, rẻ tiền được sản
xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems. Được phát hành đầu tiên
vào tháng 8 năm 2014, đóng gói đưa ra thị trường dạng Module ESP-01. Có khả năng kết
nối Internet qua mạng Wi-Fi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm.
Với giá cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được.
ESP8266 có một cộng đồng các nhà phát triển trên thế giới rất lớn, cung cấp nhiều
Module lập trình mã mở giúp nhiều người có thể tiếp cận và xây dựng ứng dụng rất
nhanh. Hiện nay tất cả các dòng chip ESP8266 trên thị trường đều mang nhãn
ESP8266EX, là phiên bản nâng cấp của ESP8266, đã có hơn 14 phiên bản ESP ra đời,
trong đó phổ biến nhất là ESP-12.

Hình 2.1 Module ESP8266 ESP 12E



Demo báo cáo

Hình 2.2 Module ESP8266 ESP 01

Hình 2.3: Sơ đồ nguyên lý kit NodeMCU
2.1.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.Hiện nay phiên bản sử dụng phổ biến nhất
là ESP8266 12E


Demo báo cáo

Hình 2.4: Chip ESP 12E

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

V1

Hình 2.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 quá 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.

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


Demo báo cáo
- 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 tiếp: Cable Micro USB
- Hỗ trợ bảo mật: WPA/WPA2
- Tích hợp giao thức TCP/IP
- Lập trình trên các ngôn ngữ: C/C++, Micropython, NodeMCU – Lua

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

Hình 2.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: 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.


Demo báo cáo

2.2. Relay
2.2.1.Giới thiệu chung

Hình 2.7: Rơle trung gian
Rơ le trung gian ( Relay trung gian ) là một thiết bị điện tử có chức năng
chuyển mạch tín hiệu điều khiển và khuếch đại chúng với kích thước nhỏ. Trong sơ đồ
điện thì rơ le trung gian sẽ được lắp tại vị trí trung gian, cũng vì thế chúng mới có tên gọi
này. Cụ thể hơn thì rơ le trung gian nằm giữa thiết bị điều khiển công suất nhỏ và thiết bị
điều khiển công suất lớn.
Cấu tạo của Rơ le trung gian

Hình 2.8: Cấu tạo của rơ le trung gian.
Relay được cấu tạo từ hai phần chính là cuộn hút và mạch tiếp điểm.


Demo báo cáo
-

-


Cuộn hút ( nam châm điện ): Gồm có lõi thép động, lõi thép tĩnh và cuộn dây.
Cuộn dây được dùng để cuộn cường độ, điện áp hay có thể cuộn cả điện áp lẫn
cường độ. Cịn lõi thép động sẽ được định vị bằng vít điều chỉnh găng bởi lị
xo.
Mạch tiếp điểm: gồm có tiếp điểm thuận và tiếp điểm nghịch. Tiếp điểm nghịch
sẽ đảm nhận vai trị đóng cắt tín hiệu thiết bị tải với dịng nhỏ được cách ly với
cuộn hút.

Nguyên lý hoạt động:

Hình 2.9: Nguyên lý hoạt động của rơ le trung gian.
Khi dòng điện chạy qua relay trung gian sẽ đi qua cuộn dây bên trong và tạo ra
một từ trường hút. Từ trường hút tác động lên một đòn bẩy bên trong làm cho các tiếp
điểm điện thay đổi trạng thái đóng, mở. Từ đó trạng thái của relay sẽ thay đổi theo. Tùy
vào thiết kế của mỗi relay thì số tiếp điểm điện sẽ thay đổi theo, có thể là 1 chiều hoặc
nhiều hơn.


Demo báo cáo

Relay trung gian có 2 mạch hoạt động độc lập. Một mạch sẽ điều khiển cuộn dây
relay để dịng chảy có thể đi qua cuộn dây hoặc khơng đi qua. Mạch còn lại sẽ điều khiển
dòng điện để xem xét dịng điện có thể đi qua relay được hay không.
Module 1 Relay với opto cách ly nhỏ gọn, có opto và transistor cách ly giúp cho
việc sử dụng trở nên an tồn với board mạch chính, module 1 Relay với opto cách ly hl
5v được sử dụng để đóng ngắt nguồn điện cơng suất cao AC hoặc DC, có thể chọn đóng
khi kích mức cao hoặc mức thấp bằng Jumper.
Tiếp điểm đóng ngắt gồm 3 tiếp điểm NC (thường đóng), NO(thường mở) và
COM(chân chung) được cách ly hồn tồn với board mạch chính, ở trạng thái bình

thường chưa kích NC sẽ nối với COM, khi có trạng thái kích COM sẽ chuyển sang nối
với NO và mất kết nối với NC.
2.2.2. Thông số kỹ thuật

+
+
+
+
+
+
+

Sử dụng điện áp ni DC 5V.
Relay mỗi Relay tiêu thụ dịng khoảng 80mA.
Điện thế đóng ngắt tối đa: AC250V ~ 10A hoặc DC30V ~ 10A.
Có đèn báo đóng ngắt trên mỗi Relay.
Có thể chọn mức tín hiệu kích 0 hoặc 1 qua jumper.
Kích thước: 1.97 in x 1.02 in x 0.75 in (5.0 cm x 2.6 cm x 1.9 cm)
Weight: 0.60oz (17g)
2.3. Phần mềm IDE
2.3.1. Giới thiệu phần mềm Arduino IDE
Arduino IDE là mơi trường phát triển tích hợp mã nguồn mở, cho phép người
dùng dễ dàng viết code và tải nó lên bo mạch. Môi trường phát triển được viếtbằng Java
dựa trên ngơn ngữ lập trình xử lý và phần mềm mã nguồn mở khác. Phần mềm này có
thể được sử dụng với bất kỳ bo mạch Arduino nào.
Arduino IDE là một mơi trường phát triển tích hợp đa nền tảng, làm việc cùng với
một bộ điều khiển Arduino để viết, biên dịch và tải code lên bo mạch. Phần mềm này
cung cấp sự hỗ trợ cho một loạt các bo mạch Arduino như Arduino Uno, Nano, Mega,
Pro hay Pro Mini, .... Ngôn ngữ tổng quát cho Arduino C và C++, do đó phần mềm phù
hợp cho những lập trình viên đã quen thuộc với cả 2 ngơn ngữ này. Các tính năng như

làm nổi bật cú pháp, thụt đầu dòng tự động, ... làm cho nó trở thành một sự thay thế hiện
đại cho các IDE khác. Arduino IDE có thư viện code mẫu quá phong phú, viết chương


Demo báo cáo

trình trên Arduino IDE khá dễ dàng cộng thêm OpenSource viết riêng cho Arduino thì
ngày càng nhiều.

Hình 2.10: Phần mềm lập trình Arduino IDE

Hình 2.11: Cửa sở lập trình Arduino IDE
Giao diện của phần mềm Arduino IDE có nhiều phần, tuy nhiên chúng ta chú ý
đến những phần quan trọng như được nêu ra trong hình trên. Chức năng của từng phần
như sau:


Demo báo cáo

Nút kiểm tra chương trình.
Dùng để kiểm tra xem chương trình được viết có lỗi khơng. Nếu chương trình bị lỗi thì
phần mềm Arduino IDE sẽ hiển thị thông tin lỗi ở vùng thông báo thông tin.
- Nút nạp chương trình xuống bo Arduino
Dùng để nạp chương trình được viết xuống mạch Arduino. Trong quá trình nạp, chương
trình sẽ được kiểm tra lỗi trước sau đó mới thực hiện nạp xuống mạch Arduino.
- Hiển thị màn hình giao tiếp với máy tính
Khi nhấp vào biểu tượng cái kính lúp thì phần giao tiếp với máy tính sẽ được mở ra.
Phần này sẽ hiển thị các thông số mà người dùng muốn đưa lên màn hình. Muốn đưa lên
màn hình phải có lệnh Serial.print() mới có thể đưa thơng số cần hiển thị lên màn hình
- Vùng lập trình

Vùng này để người lập trình thực hiện việc lập trình cho chương trình của mình.
- Vùng thơng báo thơng tin
Có chức năng thông báo các thông tin lỗi của chương trình hoặc các vấn đề liên quan
đến chương trình được lập.
- Sử dụng một số menu thông dụng trên phần mềm Arduino IDE
Có vài menu trong phần mềm IDE, tuy nhiên thơng dụng nhất vẫn là menu File,
ngồi những tính năng như mở một file mới hay lưu một file, phần menu này có một mục
đáng chú ý là Example. Phần Example (ví dụ) đưa ra các ví dụ sẵn để người lập trình có
thể tham khảo, giảm bớt thời gian lập trình. Hình bên dưới thể hiện việc chọn một ví dụ
cho led chớp tắt (blink) để nạp cho mạch Arduino. Ví dụ về led chớp tắt này thường được
dùng để kiểm tra bo khi mới mua về
-


Demo báo cáo

Hình 2.12: Ví dụ lập trình.

Đây là cơng cụ hổ trợ viết code và nạp code cho các bo mạch Arduino cũng như
các mạch NodeMCU. Truy cập vào trang chủ Arduino để download
phần mềm và cài đặt. Phần mềm được hổ trợ miễn phí cho người dùng, với bản cập nhật
mới nhất là Arduino 1.8.5. Sau khi tải về thì cần thêm thư viện để có thể sử dụng với
module NodeMCU ESP8266. Vào File → Preferences, vào textbox Additional Board
Manage URL thêm đường link sau vào:
Sau đó click OK để
chấp nhận.

Hình 2.13: Nạp thư viện Esp 8266

Tiếp theo vào Tool→Board→Boards Manager



Demo báo cáo

Hình 2.14: Cập nhật Board Esp8266

Đợi một lát để chương trình tìm kiếm. Ta kéo xuống và click vào ESP8266 by
ESP8266 Community, click vào Install. Chờ phần mềm tự động download và cài đặt.

Hình 2.15: Cài đặt Board Esp8266
Kết nối mudule USB-to-UART vào máy tính. Vào Tool→Board→Generic
ESP8266 Module, chọn cổng COM tương ứng với module USB-to-UART tương ứng.
2.3.2. Cấu trúc một chương trình trong phần mềm IDE:
Phần 1: Khai báo biến


Demo báo cáo

Đâ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()
{

…..
}
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
2.3.3. 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.


Demo báo cáo

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()
{
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.


Demo báo cáo

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()
{
pinMode (12, OUTPUT); // chân số 12 là đầu ra
}
void loop ()
{
digitalWrite (12, HIGH);
delay(1000);
digitalWrite (12, LOW);
delay(1000);
}

2.3.4. 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.


Demo báo cáo

Cú pháp: analogRead (pin) ;
b. AnalogWrite()
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() {}

2.3.5. 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ụ:
int ledPin = 13; // LED pin 13
void setup()
{pinMode(ledPin, OUTPUT);
}
void loop()
{digitalWrite(ledPin, HIGH);
delay(1000);digitalWrite(ledPin, LOW);
delay(1000);


×