BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỒNG NAI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI
Mã số: TR:2020-29/KCN-SV
Chủ nhiệm đề tài: Võ Minh Hưng
Đồng Nai, tháng 5 năm 2021
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐỒNG NAI
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
ĐIỀU KHIỂN THIẾT BỊ BẰNG GIỌNG NÓI
Mã số: TR:2020-29/KCN-SV
Chủ nhiệm đề tài
Võ Minh Hưng
Đồng Nai, tháng 5 năm 2021
DANH SÁCH THÀNH VIÊN THAM GIA NGHIÊN CỨU ĐỀ TÀI
STT
Họ và tên
Chức vụ
1
Võ Minh Hưng
Sinh viên
2
Võ Thanh Tùng
Giảng viên
3
Nguyễn Thị Hiền
Giảng viên
1
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................................. 3
DANH MỤC HÌNH ẢNH ...............................................................................................4
THÔNG TIN KẾT QUẢ NGHIÊN CỨU .......................................................................5
CHƯƠNG 1: TỔNG QUAN ........................................................................................... 6
1.1 Tổng quan về lĩnh vực nghiên cứu ............................................................................ 6
1.2 Tính cấp thiết ............................................................................................................. 6
1.3 Mục tiêu ..................................................................................................................... 6
1.4 Cách tiếp cận .............................................................................................................. 6
1.5 Phương pháp nghiên cứu ........................................................................................... 6
1.6 Đối tượng và phạm vi nghiên cứu ............................................................................. 6
1.7 Nội dung nghiên cứu ................................................................................................. 7
1.8 Kế hoạch thực hiện đề tài .......................................................................................... 7
CHƯƠNG 2: GIỚI THIỆU CÁC THIẾT BỊ ĐƯỢC LỰA CHỌN ................................8
2.1 Module Node MCU ESP8266 ................................................................................... 8
2.2 App Blynk .................................................................................................................. 9
2.3
Google Assistant..................................................................................................... 9
2.4 Sự kết hợp của Blynk, Google assistant và bo MCU esp8266 ................................ 11
CHƯƠNG 3: THIẾT KẾ LẮP ĐẶT .............................................................................13
3.1
Lắp đặt phần cứng ................................................................................................ 13
3.2 Cài đặt phần mềm .................................................................................................... 13
3.2.1 Hướng dẫn cài đặt ESP8266 và kết nối với Blynk .......................................13
3.2.2 Cài đặt điều khiển thiết bị bằng giọng nói thông qua Google Assistant ...... 17
3.3 Kết quả thực hiện ..................................................................................................... 24
KẾT LUẬN ...................................................................................................................35
TÀI LIỆU THAM KHẢO .............................................................................................36
2
DANH MỤC CÁC TỪ VIẾT TẮT
IFTTT: If This Then That
Nếu việc này xảy ra thì thực hiện việc kia
Applets
HMI: Human Machine Interface
Blynk
Các tác vụ do người dùng tạo ra
Giao diện người - máy
Ứng dụng trên điện thoại thông minh
3
DANH MỤC HÌNH ẢNH
Hình 2.1: Module NodeMCU 0.9
Hình 2.2: Chân chức năng của Node MCU
Hình 2.3: Mô phỏng cách sử dụng Google Assistant
Hình 2.4: Sơ đồ thể hiện sự kết hợp giữa Blynk, Google assistant và bo MCU esp8266
Hình 2.5: Nguyên lý hoạt động của mạch điều khiển thiết bị bằng giọng nói
Hình 3.1: Sơ đồ mạch nguyên lý
Hình 3.2: Thủ tục 1 để cập nhật phần mềm cho Arduino IDE
Hình 3.3: Thủ tục 2 để cập nhật phần mềm cho Arduino IDE
Hình 3.4: Thủ tục 3 để cập nhật phần mềm cho Arduino IDE
Hình 3.5: Thủ tục tạo tài khoản trên Blynk
Hình 3.6: Thủ tục tạo một dự án trên Blynk
Hình 3.7: Thủ tục chèn một nút nhấn vào giao diện
Hinh 3.8: Chọn chân
Hình 3.9: Cấu trúc IFTTT
Hình 3.10: Sự kết nối giữa google assistant và vi xử lý
Hình 3.11: Chọn đăng nhập vào IFTTT
Hình 3.12: Chọn tạo một applets mới
Hình 3.13: Cách chọn thêm một câu lệnh
Hình 3.14: Tìm kiếm và chọn Google assistant
Hình 3.15: Chọn thêm một yêu cầu
Hình 3.16: Tìm kiếm và chọn Webhook
Hình 3.17: Mạch kết nối thực tế
Hình 3.18: Điều khiển đèn dùng Blynk
Hình 3.19: Bật đèn dùng giọng nói
Hình 3.20: Tắt đèn dùng giọng nói
Hình 3.21: Bật đèn dùng remote 4 nút
Hình 3.22: Tắt đèn dùng remote 4 nút
4
THÔNG TIN KẾT QUẢ NGHIÊN CỨU
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CẤP TRƯỜNG
1. Thông tin chung:
- Tên đề tài: Điều khiển thiết bị bằng giọng nói
- Mã số: TR:2020-29/KCN-SV
- Chủ nhiệm đề tài: Võ Minh Hưng
Điện thoại: 0969 297 924
Email:
[email protected]
- Đơn vị quản lý về chuyên môn: Khoa Công nghệ
- Thời gian thực hiện: Từ tháng 9 năm 2020 đến tháng 1 năm 2021
2. Mục tiêu: Tạo ra thiết bị dùng để bật tắt các thiết bị điện trong gia đình bằng giọng
nói.
3. Nội dung chính: Cài đặt ứng dụng Google Assistant lên điện thoại và ứng dụng
dịch vụ web là IFTTT để thực hiện bặt tắt các thiết bị điện bằng giọng nói.
4. Kết quả chính đạt được (khoa học, đào tạo, kinh tế - xã hội, ứng dụng, ...)
- Nghiên cứu thiết kế và thi công thiết bị bật tắt tự động bằng giọng nói để giúp con
người tiết kiệm thời gian và tiện lợi hơn trong việc sử dụng các thiết bị gia đình. Thiết bị
có một số ưu điểm sau:
+ Lắp ráp và bảo dưỡng dễ dàng.
+ Hoạt động êm, tốc độ cao và chính xác.
+ Có thể điều khiển từ xa bằng điện thoại.
+ Có thể di chuyển dễ dàng và điều khiển bất cứ khi nào cần sử dụng.
+ Giá thành thấp
- Tạo môi trường học tập và nghiên cứu cho người học và giảm chi phí cho nhà
trường.
- Truyền cảm hứng cho những giảng viên và sinh viên ham tìm tòi, học hỏi có thể tự
hợp tác để tạo ra sản phẩm của riêng mình.
5
CHƯƠNG 1: TỔNG QUAN
1.1 Tổng quan về lĩnh vực nghiên cứu
Điều khiển thiết bị từ xa bằng RF, bluetooth, hồng ngoại…thì đã có từ trước, với wifi,
smartphone android có khắp nơi thì người dùng đang ưa chuộng điều khiển thiết bị bằng
giọng nói.
Hiện nay đã có điều khiển thiết bị bằng giọng nói tiếng anh và tiếng việt nên rất tiện
lợi cho người sử dụng. Song để thiết lập được việc mã hóa và gửi dữ liệu từ lời thoại
người dùng đến bộ xử lý trung tâm, cần dùng một ứng dụng web trung gian là IFTTT. Do
nhu cầu sử dụng ngày càng cao nên IFTTT hiện nay đã tính phí với phiên bản IFTTT Pro
giá 39,99USD/năm.
1.2 Tính cấp thiết
Qua tìm hiểu, thấy sự vận động và phát triển của con người ngày càng dần tiên
tiến, sử dụng tự động hóa mọi thứ như trong công nghiệp chế biến, sản xuất đều sử dụng
máy móc vận hành để tiết kiệm nhân công và thời gian làm việc. Nên trong sinh hoạt
cũng cần tự động hóa để phục vụ đời sống con người.
1.3 Mục tiêu
Nghiên cứu thiết kế và thi công thiết bị bật tắt tự động để giúp con người trong sinh
hoạt tiết kiệm thời gian và sự tiện lợi của nó. Thiết bị bật tắt ba trong một có một số ưu
điểm sau:
+ Lắp ráp và bảo dưỡng dễ dàng.
+ Hoạt động êm, tốc độ cao và chính xác.
+ Có thể điều khiển từ xa bằng điện thoại.
+ Có thể di chuyển dễ dàng và điều khiển bất cứ khi nào cần sử dụng.
+ Giá thành thấp
1.4 Cách tiếp cận
Nắm bắt được những mong muốn của người dùng về giá thành và chất lượng sản
phẩm của thiết bị bật tắt tự động, nhóm nghiên cứu quyết tâm làm ra sản phẩm là thiết bị
bật tắt bằng giọng nói có những chức năng mong muốn mà giá thành lại giảm đáp ứng thị
hiếu của người dùng.
1.5 Phương pháp nghiên cứu
Giải pháp của nhóm sử dụng vận dụng các vật liệu có trong gia đình như: bóng đèn, dây
điện và các bo mạch cần thiết.
Tra cứu tài liệu, video liên quan đến nội dung đề tài.
Thử nghiệm, sửa sai, hoàn thiện sản phẩm.
1.6 Đối tượng và phạm vi nghiên cứu
- App Google Assistant trên điện thoại thông minh
- Dịch vụ web IFTTT và những vấn đề liên quan.
- NodeMCU ESP8266 và cách viết code cho nó theo yêu cầu của đề tài
6
1.7 Nội dung nghiên cứu
Cài đặt ứng dụng Google Assistant lên điện thoại và ứng dụng dịch vụ web là IFTTT để
thực hiện bặt tắt các thiết bị điện bằng giọng nói.
Viết code cho Node MCU để mạch hoạt động đúng theo yêu cầu.
1.8 Kế hoạch thực hiện đề tài
STT
Nội dung công việc
(1)
(2)
Tìm hiểu cách kết nối giữa
Google Assistant với bo wifi
Node MCU ESP8266
Thực thi trên dịch vụ web
IFTTT để tạo ra các Applet
Viết code cho vi xử lý
Kết nối phần cứng
Cài đặt ứng dụng Google
Assistant lên Smart phone
Hoàn thiện thiết bị
Viết toàn văn đề tài
1
2
3
4
5
6
7
Kết quả đạt được
(3)
Thời gian bắt đầu,
kết thúc
(4)
Sơ đồ và bản nguyên
9/2020 đến 10/2020
lý
Tạo được 8 Applet
10/2020 đến 11/2020
Code đúng
Bo mạch đúng
Có phản hồi về từ
Google Assistant
Thiết bị vận hành tốt
Cuốn báo cáo
11/2020
12/2020
12/2020
12/2021
12/2020 đến 1/2021
7
CHƯƠNG 2: GIỚI THIỆU CÁC THIẾT BỊ ĐƯỢC LỰA CHỌN
2.1 Module Node MCU ESP8266
ESP8266 là một mạch vi điều khiển có thể giúp chúng ta điều khiển các thiết bị điện tử.
Điều đặc biệt của nó, đó là sự kết hợp của module Wifi tích hợp sẵn bên trong con vi điều
khiển chính. Hiện nay, ESP8266 rất được giới nghiên cứu tự động hóa Việt Nam ưa
chuộng vì giá thành cực kỳ rẻ (chỉ bằng một con Arduino Nano), nhưng lại được tích hợp
sẵn Wifi, bộ nhớ flash 8Mb. Hình dạng của Module Node MCU ESP8266 như hình 2.1.
Hình 2.1: Module NodeMCU 0.9
ESP8266 có nhiều phiên bản và được đóng gói theo nhiều cách khác nhau, tuy nhiên nó
lại khá giống nhau về chức năng và khả năng lập trình. Trên thị trường phổ biến nhất hiện
nay là ESP8266v1, ESP8266v7 và ESP8266v12.
Trong giải pháp này, nhóm sẽ sử dụng mạch ESP8266v12 được đóng gói trong mạch
NodeMCU 0.9. Các board khác sử dụng nhân ESP8266v12 hoặc v7 đều có thể chạy
được, ví dụ như WeMos, Olimex, ESPino hay bất kỳ hãng nào sử dụng ESP8266v12 làm
core chính. Mỗi hãng chỉ khác nhau cách đặt board và bố trí thứ tự chân. Sơ đồ các chân
chức năng của Node MCU như hình 2.2
Hình 2.2: Chân chức năng của Node MCU
8
2.2 App Blynk
Đây là một ứng dụng trên điện thoại thông minh, có thể:
Điều khiển các thiết bị phần cứng từ xa
Hiển thị dữ liệu cảm biến
Lưu trữ dữ liệu
Hoạt động của Blynk
Có ba thành phần chính trong nền tảng:
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. Bạn có thể sử dụng Blynk Cloud của Blynk cung cấp hoặc tự tạo máy chủ
Blynk riêng của bạn. 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 bạn.
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. Khi bạn 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 bạn 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.
Tính năng, đặc điểm
- 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: 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.
2.3 Google Assistant
Hiểu một cách đơn giản thì Google Assistant chính là một trợ lý ảo của Google giống
như Siri của Apple hay Bixby của Samsung. Assistant được coi như là phiên bản nâng
cấp của Google Now, cho phép mở rộng khả năng điều khiển bằng giọng nói câu lệnh
"OK Google".
9
Hình 2.3: Mô phỏng cách sử dụng Google Assistant
Những tiện ích của Google Assistant
Nếu như Google Now cho phép bạn thực hiện các lệnh thoại, tìm kiếm, điều khiển thiết
bị cũng như gửi tin nhắn, kiểm tra các cuộc hẹn bằng giọng nói trên thiết bị Android, thì
giờ đây Assistant kết hợp tất cả những điều này kết hợp thêm với công nghệ AI giúp khả
năng tương tác đàm thoại của bạn trở nên tốt hơn.
Với Google Assistant, bạn có thể dễ dàng xác định vị trí của mình khi lạc đường ở một
thành phố xa lạ, hay đơn giản chỉ là tìm kiếm một địa điểm ăn uống vui chơi gần bạn nhất
khi đi du lịch chỉ với một câu lệnh đơn giản như: "OK Google, tôi đang ở vị trí nào?",
“Ok Google, nhà hàng (địa điểm vui chơi) nào gần vị trí tôi nhất?”.
10
Google Assistant thậm chí còn có thể trở thành một phiên dịch mọi lúc mọi nơi cho
chuyến du lịch nước ngoài của bạn.
Cách sử dụng cơ bản của Google Assistant
Để sử dụng Google Assistant trên điện thoại, trước tiên thiết bị của bạn cần được cài đặt
Google Assistant.
Bạn có thể kiểm tra xem điện thoại của mình đã được cài đặt Assistant của Google chưa
bằng cách nói “OK Google”, “Hey, Google” hoặc nhấn giữ nút home. Nếu trợ lý ảo của
Google xuất hiện thì bạn có thể ngay lập tức thực hiện bất kỳ tìm kiếm nào mong muốn.
Các bước thực hiện để sử dụng được Google Assistant
Bước 1: Hãy đảm bảo ứng dụng Google của bạn đang ở phiên bản mới nhất. Sau đó bạn
đăng nhập vào tài khoản Google của mình và chọn mục “Thêm” trong giao diện chính.
Bước 2: Trong menu Cài đặt Google bạn nhấn vào Cài đặt rồi chọn Trợ lý Google. Trong
menu Trợ lý Google, bạn hãy chọn Trợ lý -> Ngôn ngữ rồi chọn Tiếng Việt.
Bước 3: Sau khi đã cài đặt tiếng Việt thành công cho trợ lý ảo bạn hãy bấm và giữ nút
Home để mở hoặc nói OK, Google/Hey, Google để gọi trợ lý ảo Google “sống dậy”. Tiếp
đó trợ lý ảo Google sẽ thay bạn các mở trình duyệt, gọi điện thoại, nhắn tin hoặc phát
nhạc... chỉ bằng những câu lệnh đơn giản mà bạn đưa ra.
2.4 Sự kết hợp của Blynk, Google assistant và bo MCU esp8266
Sơ đồ kết hợp giữa các thành phần trên như hình 2.4.
11
Hình 2.4: Sơ đồ thể hiện sự kết hợp giữa Blynk, Google assistant và bo MCU esp8266
Nguyên lý hoạt động như hình 2.5.
Hình 2.5: Nguyên lý hoạt động của mạch điều khiển thiết bị bằng giọng nói
Khi người dung nói một câu lệnh (từ khóa) vào trợ lý ảo google trên điện thoại thông
minh thì lập tức dữ liệu này được Google assistant xử lý và gửi về một câu phản hồi (lên
điện thoại). Câu lệnh trên cũng được gửi tới webhook để thực thi một yêu cầu và ghi dữ
liệu lên server Blynk. Chíp vi xử lý được kết nối với Server Blynk để lấy dữ liệu về và
thực hiện điều khiển thiết bị.
12
CHƯƠNG 3: THIẾT KẾ LẮP ĐẶT
3.1 Lắp đặt phần cứng
Hình 3.1: Sơ đồ mạch nguyên lý
3.2 Cài đặt phần mềm
3.2.1 Hướng dẫn cài đặt ESP8266 và kết nối với Blynk
Cài đặt NodeMCU ESP8266 WIFI
Khởi động Arduino IDE, click vào File trên thanh công cụ chọn Preferences.
Hình 3.2: Thủ tục 1 để cập nhật phần mềm cho Arduino IDE
Ở đây chúng ta phải chèn một đường Link để Arduino IDE có thể nhận Board.
Copy dòng: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Bỏ đường Link vào ô được tô vàng và nhấn OK.
13
Hình 3.3: Thủ tục 2 để cập nhật phần mềm cho Arduino IDE
Tiếp theo, ta vào Tools > Board > Boards Manager
Cửa sổ mở lên ta Seach Esp8266 để tải danh mục của các Board về. Nhấn Install để tiến
hành cài đặt.
14
Hình 3.4: Thủ tục 3 để cập nhật phần mềm cho Arduino IDE
Tải thư viện Blynk cho Arduino
Để quá trình nạp không bị báo lỗi chúng ta cần phải cài đặt thư viện cho Arduino IDE.
Hướng dẫn Bật / Tắt LED trên App Blynk
Tải App Blynk
Để tải ứng dụng Blynk trên điện thoại, chúng ta vào ChPlay (với điện thoại Androi) và
App Store (đối với điện thoại IOS)
Tạo tài khoản Blynk
Để có thể sử dụng App Blynk chúng ta cần phải đăng ký một tài khoản mới. Ở đây có 2
cách đăng ký bằng Facebook hoặc tạo một tài khoản mới (Create New Account).
Mình sẽ hướng dẫn bằng cách đăng ký bằng Account.
Hình 3.5: Thủ tục tạo tài khoản trên Blynk
15
Nhập thông tin tài khoản Gmail của các bạn. Rồi nhấn Sign Up để tiến hành đăng ký.
Sau khi đăng ký hoàn thành, chúng ta sẽ tiến hành tạo một Project mới. Ví dụ: tạo một dự
án Bật/Tắt LED trên Blynk.
Các bạn Click vào dấu cộng (+) trên thanh công cụ để tiến hành tạo Project mới.
Click vào Create để hoàn tất việc tạo mới.
Hình 3.6: Thủ tục tạo một dự án trên Blynk
Blynk sẽ cấp cho các bạn một mã Token, mã này sẽ gửi trực tiếp vào gmail mà lúc đầu
người dùng đăng ký.
Mã Token này dùng để chèn vào code nạp cho vi xử lý.
Để Bật/Tắt Led chúng ta cần có một nút bấm để điều khiển. Vào Widget Box (+) > Click
vào Button để lấy nút nhấn ra.
Hình 3.7: Thủ tục chèn một nút nhấn vào giao diện
Click vào Button để tiến hành cài đặt thông số.
16
Ở mục Button: Đặt tên cho nút nhấn.
OUTPUT: Cấu hình cho PIN cần kết nối, ở đây mình chọn Digital > gp16 (chân
này có LED được tích hợp trên board mạch sẵn).
MODE: có 2 chế độ PUSH (nhấn thả) và SWITCH (nhấn giữ).
ON/OFF LABELS: Thay đổi chế đọ hiển thị cho nút nhấn (Vd: Các bạn không
thích để ON/OFF có thể thay bằng BẬT/TẮT hoặc một cái tên nào mà bạn muốn).
DESIGN: Ở phần này các bạn có thể điều chỉnh màu sắc của nút nhấn.
Hình 3.8: Chọn chân
Như vậy là đã hoàn thành phần cài đặt và tạo một giao diện trên Blynk.
3.2.2 Cài đặt điều khiển thiết bị bằng giọng nói thông qua Google Assistant
Đăng nhập và kết nối với IFTTT
Việc kết nối và điều khiển các thiết bị từ ESP8266 với Blynk thật sự dễ dàng. Để Blynk
hiểu được những câu lệnh như bật đèn, tắt đèn… để truyền đến NodeMCU ESP8266 và
thực thi hành động thì dùng trang Web làm trung gian là IFTTT.
IFTTT là IF This Then That: Nếu có điều này thì thực thi lệnh kia.
Chẳng hạn: nếu nghe được câu lệnh “Bật thiết bị 1” thì cập nhật trạng thái V1 là mức “0”
để bật thiết bị 1 như hình sau đây.
17
Hình 3.9: Cấu trúc IFTTT
Vậy chúng ta sẽ hiện thực hóa cách điều khiển này.
Hình 3.10: Sự kết nối giữa google assistant và vi xử lý
Bước đầu tiên, chúng ta đăng nhập vào Web IFTTT để đăng ký tài khoản. Có thể đăng ký
bằng một tài khoản bất kỳ hoặc đăng nhập bằng tài khoản Google hoặc tài khoản
Facebook bằng cách chọn vào nút tương ứng như hình 3.11.
Hình 3.11: Chọn đăng nhập vào IFTTT
Sau khi đăng nhập thành công các bạn Click vào Create để tạo một applets (hỗ trợ) mới.
18