THIẾT KẾ TRỢ LÝ ẢO GOOGLE ASSISTANT TRÊN RASPBERRY ĐIỀU KHIẾN CÁC THIẾT BỊ TRONG GIA ĐÌNH BẰNG TRỢ LÝ ẢOTHIẾT KẾ TRỢ LÝ ẢO GOOGLE ASSISTANT TRÊN RASPBERRY ĐIỀU KHIẾN CÁC THIẾT BỊ TRONG GIA ĐÌNH BẰNG TRỢ LÝ ẢO
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA VẬT LÝ – VẬT LÝ KỸ THUẬT
Trang 2-ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA VẬT LÝ – VẬT LÝ KỸ THUẬT
Trang 3Lời cảm ơn
Qua hơn 4 năm học tập và rèn luyện tại Trường Đại học Khoa học Tự nhiên,ĐHQG TP.HCM, được sự chỉ bảo và giảng dạy nhiệt tình của quý Thầy cô Bộ mônVật lý Điện tử, Khoa Vật lý – Vật lý kỹ thuật đã truyền đạt cho em không chỉ kiếnthức lý thuyết và thực hành mà còn kỹ năng sống trong môi trường hội nhập hiện đại.Trong thời gian gần 4 tháng nghiên cứu và học hỏi, cuối cùng em cũng đã hoànthành khoá luận tốt nghiệp của mình Từ những kết quả đạt được này, em xin chânthành cảm ơn quý Thầy cô, giảng viên, trợ giảng thuộc chuyên ngành Vật lý Điện tử,Khoa Vật lý – Vật lý Kỹ thuật đã không những truyền cho em kiến thức khoa học màcòn truyền cảm hứng, sự đam mê, quyết tâm gắn bó với nó
Đặc biệt, em thật sự cảm ơn Thầy TS Nguyễn Chí Nhân, phó bộ môn Vật lýđiện tử, khoa Vật lý – Vật lý kỹ thuật, trường Đại học Khoa học tự nhiên – ĐHQG
Tp HCM đã tận tình hướng dẫn em, giúp em tiếp cận nhanh chóng nội dung đề tàingay từ lúc ban đầu và định kỳ kiểm tra tiến độ cũng như chỉ dẫn em từng giai đoạn,công đoạn của đề tài trong mỗi buổi gặp gỡ định kỳ đó
Ngoài ra, em muốn gửi lời cảm ơn đến bạn Lầm Dân Nguyên trường Đại họcCông nghệ thông tin – ĐHQG Tp HCM đã giúp em làm quen, sử dụng hệ điều hành
mở Linux, qua đó áp dụng lên hệ điều hành của Raspberry Pi – Raspbian OS Cảm ơnbạn Phạm Ngọc Bính trường Đại học Bách Khoa – ĐHQG Tp HCM và bạn LêHoàng Dũng trường Đại học Khoa học Tự nhiên – ĐHQG Tp HCM đã giúp em tiếpcận giao thức UART và module RF trên Arduino, Raspberry Pi Em cũng cảm ơnnhững bạn bè, người thân trong gia đình (đặc biệt là ba mẹ, ông nội) đã luôn bên cạnhđộng viên em hoàn thành đề tài khoá luận tốt nghiệp
Một lần nữa, em xin cảm ơn tất cả mọi người
Trang 4M ục lục
Mục lục i,ii,iii Danh sách các hình iv,v,vi
Danh sách các bảng vii
Lời mở đầu 1,2 Chương 1 Tổng quan 3
1.1 Giới thiệu Trợ lý ảo và Google Assistant 3
1.1.1 Giới thiệu Trợ lý ảo (Virtual Assistant) 3
1.1.2 Trợ lý ảo của Google – Google Assistant 7
1.2 Giới thiệu Raspberry Pi 3 9
Chương 2 Tích hợp Google Assistant lên Raspberry Pi 3 12
2.1 Những bước chuẩn bị đầu tiên trước khi tích hợp Trợ lý ảo của Google 12
2.1.1 Cài đặt Raspbian OS cho Pi 310 12
2.1.1.1 Những thành phần liên quan 12
2.1.1.2 Tiến trình cài đặt Raspbian OS cho Pi 3 12
2.1.2 Kết nối Pi 3 với Laptop để điều khiển 14
2.2 Tích hợp Google Assistant lên Raspberry Pi 3 18
2.2.1 Các thiết bị liên quan 19
2.2.2 Cấu hình hệ thống âm thanh trên Pi 3 19
2.2.2.1 Kiểm tra việc thu âm thanh và phát lại nó 19
2.2.2.2 Tìm kiếm thiết bị thu âm và phát lại 19
2.2.3 Định cấu hình một Dự án dành cho nhà phát triển và cài đặt tài khoản 21 2.2.3.1 Định cấu hình một Dự án dành cho nhà phát triển 21
2.2.3.2 Đặt kiểm soát hoạt động cho tài khoản 24
Trang 52.2.4 Cài đặt SDK và mã lệnh mẫu 24
2.2.4.1 Định hình môi trường ảo Python mới (Python 3) 24
2.2.4.2 Nhận gói cài đặt 25
2.2.4.3 Tạo các chứng chỉ 25
2.2.5 Đăng ký mẫu thiết bị 26
2.2.5.1 Sử dụng công cụ đã được đăng ký 26
2.2.5.2 Liệt kê các mẫu thiết bị 26
2.2.6 Chạy mã lệnh mẫu 27
2.2.6.1 Lấy ID cá thể thiết bị 27
2.2.6.2 Bước tiếp theo 27
Chương 3 Thiết kế chức năng của Trợ lý ảo Google Assistant 28
3.1 Điều khiển thiết bị bằng giọng nói 28
3.1.1 Điều khiển tắt mở đèn bằng giọng nói 28
3.2.2.1 Cấu hình Arduino 28
3.2.2.2 Cấu hình Pi 3 29
3.1.2 Điều khiển Smart Light (Philips Hue) bằng giọng nói 31
3.1.3 Điều khiển tắt mở thiết bị trong nhà gián tiếp qua ổ cắm thông minh bằng giọng nói 37
3.2 Gửi Gmail bằng giọng nói 38
3.3 Đăng bài Facebook bằng giọng nói 40
3.4 Đặt lịch hẹn, sự kiện bằng giọng nói 43
Chương 4 Hoạt động của Trợ lý ảo Google Assistant 45
4.1 Tìm kiếm, giải trí bằng giọng nói 46
4.2 Điều khiển đèn LED RGB bằng giọng nói 46
4.3 Gửi Gmail bằng giọng nói 47
Trang 6Kết luận và hướng phát triển 50
1 Kết luận 50
2 Ưu điểm 50
3 Khuyết điểm 51
4 Hướng phát triển của đề tài 51
Tài liệu tham khảo 52
Phụ lục 53
1 Giới thiệu tổng quan IFTTT 53
2 Phần code nạp cho Arduino Uno R3 điều khiển đèn LED RGB 54
3 Cấu hình Smartphone/Tablet hỗ trợ GA và cài đặt 59
3.1 Phiên bản HĐH Android 59
3.2 iPhone và iPad 59
Trang 7Danh sách các hình
Hình 1.1 Bixby (Samsung) 3
Hình 1.2 Cortana (Microsoft) 3
Hình 1.3 Siri (Apple) 3
Hình 1.4 Trợ lý ảo của Google – Google Assistant 7
Hình 1.5 Google Pixel 7
Hình 1.6 Google Home 7
Hình 1.7 Android Wear 7
Hình 1.8 Các tập đoàn, công ty đăng ký tích hợp dịch vụ GA 8
Hình 1.9 Raspberry Pi 3 Model B 9
Hình 1.10 Các cổng kết nối trên Raspberry Pi 3 11
Hình 1.11 Sơ đồ chân GPIO của Raspberry Pi 3 11
Hình 2.1 Format MicroSD trước khi cài đặt Raspbian OS cho Pi 13
Hình 2.2 Burn File cài đặt Raspbian OS cho Pi 3 13
Hình 2.3 Các phiên bản HĐH Windows hỗ trợ Remote Desktop Connection 14
Hình 2.4 Tạo File ssh và wpa_supplicant.conf trong ổ đĩa boot 15
Hình 2.5 Tìm kiếm địa chỉ IP của Laptop trong mạng LAN qua cửa sổ Cmd 16
Hình 2.6 Tìm kiếm địa chỉ IP của Pi 3 bằng Advanced IP Scanner 17
Hình 2.7 PuTTY Configuration 17
Hình 2.8 Giao diện Remote Desktop Connection 18
Hình 2.9 Dòng lệnh cấu hình Microphone và loa của File asoundrc 20
Hình 2.10 Giao diện Projects Page trên Google Cloud Platform 21
Hình 2.11 Enable GA API 22
Hình 2.12 Tạo tên sản phẩm trên OAuth consent screen tab 22
Trang 8Hình 2.15 Tải về client secret JSON File 24
Hình 2.16 Thông tin mẫu và ID thiết bị trên terminal 27
Hình 3.1 Terminal báo cáo điều khiển tín hiệu xuất 29
Hình 3.2 Cập nhật mã lệnh phân tích và gửi tín hiệu RF 30
Hình 3.3 Đoạn lệnh import thư viện trong File hotword.py 30
Hình 3.4 Cấu hình 2 chân GPIO thu, phát sóng RF 31
Hình 3.5 Mở ứng dụng Google 32
Hình 3.6 Chọn Menu góc phải dưới cùng 32
Hình 3.7 Chọn Settings 32
Hình 3.8 Chọn GA Settings 32
Hình 3.9 Chọn Phone 33
Hình 3.10 Enable chức năng GA 33
Hình 3.11 Chọn Home control 33
Hình 3.12 Nhấn add ở Devices tab 33
Hình 3.13 Chọn Philips Hue 34
Hình 3.14 Đăng nhập tài khoản Google 34
Hình 3.15 Nhấn Yes 34
Hình 3.16 Chọn thiết bị Hue cần kết nối 34
Hình 3.17 Chọn phòng đặt thiết bị 35
Hình 3.18 Gán thiết bị với phòng 35
Hình 3.19 Cài đặt thành công 35
Hình 3.20 List menu quản lý thiết bị 35
Hình 3.20 List menu quản lý thiết bị 36
Hình 3.22 Gán tên thiết bị điều khiển 36
Hình 3.23 Tắt 6 đèn bằng GA 36
Hình 3.24 Các điều khiển khác bằng giọng nói 36
Hình 3.25 Ổ cắm thông minh APOWER 37
Hình 3.26 Ổ cắm thông minh CNCT 37
Trang 9Hình 3.27 Phần Trigger của Applet gửi Email 39
Hình 3.28 Phần điền các địa chỉ Email cần gửi trong phần Action 39
Hình 3.29 Trường điền Subject và Body của Email cần gửi 40
Hình 3.30 Điền công thức nhắc lệnh đăng bài Facebook 41
Hình 3.31 Điền trường phản hồi của GA 41
Hình 3.32 Phần tạo một bài đăng trạng thái Facebook 42
Hình 3.33 Phần công thức nhắc lệnh kích hoạt và nội dung cuộc hẹn 43
Hình 3.34 Phần điền nội dung muốn GA phản hồi xác nhận 43
Hình 3.35 Phần chọn tài khoản Google để đặt cuộc hẹn 44
Hình 4.1 Pi 3 được tích hợp hợp GA của đề tài 45
Hình 4.2 Gửi lệnh chuyển LED RGB sang màu đỏ bằng giọng nói 46
Hình 4.3 Trạng thái của LED RGB nhận lệnh “Set my light to red” 47
Hình 4.4 Nguyên lý điều khiển LED RGB bằng giọng nói 47
Hình 4.5 Demo gửi Gmail bằng giọng nói 48
Hình 4.6 Kết quả gửi Gmail bằng giọng nói 48
Hình 4.7 Demo đăng bài Facebook bằng giọng nói 48
Hình 4.8 Kết quả đăng bài Facebook bằng giọng nói 49
Hình 4.9 Demo đặt lịch hẹn, sự kiện bằng giọng nói 49
Hình 4.10 Kết quả đặt lịch hẹn, sự kiện bằng giọng nói 49
Hình Ứng dụng cơ sở dữ liệu vào dự án IoT 51
Trang 10Danh sách các bảng
Bảng 1.1 So sánh 5 Trợ lý ảo tốt nhất hiện nay 6Bảng 1.2 Thông số kỹ thuật Pi 3 so với đời tiền nhiệm Pi 2 Mode B 10Bảng 3 Nối chân Arduino Uno với RF Module 28
Trang 11Lời mở đầu
Thế giới ngày càng phát triển, xã hội luôn đi lên; tham vọng con người ngàycàng lớn, nhu cầu sống càng cao Khoa học, kỹ thuật, công nghệ của loài người… đãtiến bộ không ngừng để thỏa mãn nhu cầu, tham vọng đó Trong sự tiến bộ đó khôngthể không kể đến lĩnh vực Điện tử và Công nghệ thông tin
Với mục đích muốn kết nối mọi thứ nhờ sự hội tụ của nhiều công nghệ, baogồm truyền tải vô tuyến hiện diện dày đặc: 3G, 4G, WiFi, sắp tới sẽ có thêm 5G…,phân tích dữ liệu thời gian thực (Analytics Real Time), Machine learning, cảm biến,
và hệ thống nhúng; thuật ngữ IoT (Internet of Things) ra đời
Cùng với IoT, trí tuệ nhân tạo (Machine Intelligence hoặc AI) cũng đã định hình
và phát triển nhanh chóng với niềm tin là một công cụ đắc lực, khắc phục được nhữngđiểm yếu, hạn chế của con người: bền bỉ, tính toán… và có thể thay thế con ngườitrong những lĩnh vực nguy hiểm: do thám, khai thác, chiến đấu…
Trợ lý ảo đã ra đời dựa trên sự thành công của trí tuệ nhân tạo Hiện nay cónhiều ông lớn trong ngành công nghệ đã tham gia vào phát triển phần mềm tiềm năngnày như: Google, Apple, Samsung… và Google Assistant của Google là một thànhcông tiêu biểu
Nhận thấy tiềm năng to lớn của trợ lý ảo và công nghệ IoT, em đã chọn đề tài:
“Thiết kế trợ lý ảo Google Assitant trên Raspberry Pi 3” để có cơ hội tìm hiểu, nghiêncứu và tạo ra một mô hình hoàn chỉnh, thực tế dựa trên những kiến thức được học.Mục tiêu nghiên cứu của đề tài là thiết kế được một hệ thống IoT thu nhỏ với sự giúp
đỡ của trí thông minh nhân tạo của trợ lý ảo Google Assistant trên Raspberry Pi 3.Qua đó sau này có thể tiếp tục phát triển dự án hệ thống IoT lớn hơn Phạm vi và tàiliệu nghiên cứu của đề tài chủ yếu là trên mạng, qua những video giới thiệu trợ lý ảo
Trang 12Đề tài khoá luận tốt nghiệp gồm có 4 chương:
Chương 1 Tổng quan đề tài
Chương 2 Tích hợp Google Assistant lên Raspberry Pi
Chương 3 Thiết kế chức năng của Trợ lý ảo Google Assistant
Chương 4 Hoạt động của Trợ lý ảo Google Assistant
Kết luận và hướng phát triển
Vì kiến thức còn hạn chế, trong quá trình làm đề tài khó tránh những thiếu sót,rất mong quý thầy cô, hội động và các bạn góp ý để em hoàn thiện
Trang 13Chương 1: TỔNG QUAN ĐỀ TÀI.
1.1 Giới thiệu trợ lý ảo và Google Assistant.
1.1.1 Giới thiệu Trợ lý ảo (Virtual Assistant).
Trợ lý ảo là một sản phẩm của Trí tuệ nhân tạo (AI), được con người tạo ra vớimục đích ban đầu là tạo nên sự giao tiếp tự nhiên giữa người và thiết bị điện tử bằngcách tương tác trực tiếp với người dùng thông qua giọng nói tự nhiên hoặc qua cácđoạn chat online (chatbox), sau đó xử lý bằng thuật toán thông minh để điều khiển,tìm kiếm… phục vụ các yêu cầu của người sử dụng
Sự kiện ra mắt chiếc điện thoại thông minh đầu tiên – IBM Simon vào năm
1994 đã đặt nền móng cho các trợ lý ảo thông minh mà ta biết tới ngày nay Trợ lý ảo
số hiện đại đầu tiên được cài đặt trên một smartphone là Siri, từng được tập đoànApple giới thiệu là một tính năng trên chiếc iPhone 4S vào ngày 4 tháng 10 năm2011
Tính tới 2018, các tính năng và lượng người sử dụng của các trợ lý ảo đang tănglên nhanh chóng, với các sản phẩm mới tích hợp trợ lý ảo luôn được tung ra thịtrường: Google Home, Google Home mini, Amazon Echo, Google Pixel 2 và GooglePixel XL 2, iPhone X, Dell XPS 2018, Chromebook Pixel 2017… Có rất nhiều trợ lý
ảo trên thị trường Hiện tại, Apple và Google có các trợ lý ảo được cài đặt nhiều nhấttrên các điện thoại thông minh (smart phone) và Microsoft là trên các máy tính cánhân chạy hệ điều hành Windows của hang; trong khi đó, Alexa là sản phẩm đầu tiên
có khả năng đặt hàng trực tuyến từ Amazon.com
Trang 14Các dịch vụ của Trợ lý ảo rất đa dạng, trong đó các dịch vụ trên Amazon Alexa
và Google Assistant đang tăng lên từng ngày, bao gồm:
Cung cấp thông tin thời tiết, thông tin kiến thức lấy từ các nguồn: Wikipedia,IMDB,… đặt báo thức, lập danh sách cần làm và danh sách mua sắm
Phát nhạc từ các dịch vụ streaming: Spotify, Pandora,…; phát các đài radio,đọc sách nói
Phát video, chương trình TV hoặc phim truyền hình, streaming từ các dịchvụ: Netflix, Youtube…
Mua sắm trên các dịch vụ: Amazon.com…
Bổ sung hoặc thay thế dịch vụ chăm sóc khách hàng cho con người (một báocáo ước tính rằng một trợ lý trực tuyến tự động làm giảm 30% khối lượngcông việc so với một trung tâm tổng đài của con người)
Amazon và Google cho ra mắt hai nền tảng là Alexa “Skills” và “GoogleActions”, chủ yếu là các ứng dụng chạy trên nền tảng trợ lý ảo của các hãng
Các thiết bị và sản phẩm được tích hợp trợ lý ảo:
Các thiết bị đa dạng loa thông minh: Amazon Echo, Google Home, AppleHomePod…
Trong các ứng dụng nhắn tin nhanh trên cả smartphone và nền web: trợ lý ảo
M của Facebook hoạt động trên cả ứng dụng Facebook và FacebookMessenger hoặc trên nền web…
Tích hợp vào hệ điều hành (HĐH) di động: Siri của Apple trên các thiết bịiOS, Cortana của Microsoft trên các thiết bị chạy HĐH MicrosoftWindows…
Tích hợp vào Smartphone, tách rời khỏi HĐH: Bixby trên Samsung GalaxyS8 và Note 8…
Trên các ứng dụng di động khác: Google Allo, Google Maps…
Trong các nền tảng nhắn tin nhanh, các hệ thống trợ giúp từ các tổ chức quốctế: Aerobot của Aeromexico, Facebook Messenger của Facebook, WechatSecretary trên Wechat…
Trong các ứng dụng di động của các công ty và tổ chức: Dom của Domino’sPizza…
Trang 15 Trên các Smartwatch: Samsung Gear 3, Apple Watch 2…
Trong các thiết bị gia dụng, xe hơi: Philips Hue…
Trên các hệ thống trả lời giọng nói tương tác (IVR): IVR của AmericanAirlines bởi Nuance…
1.1.2 Trợ lý ảo của Google – Google Assistant.
Bảng 1.1: So sánh 5 Trợ lý ảo tốt nhất hiện nay
Trang 16Hình 1.4 Trợ lý ảo của Google – Google Assistant.
Google Assistant (GA) là một trợ lý ảo được phát triển bởi tập đoàn Google vàđược hãng giới thiệu lần đầu tiên tại hội nghị nhà phát triển của hãng (Google I/O)vào tháng 5/2016 GA có thể tham gia các cuộc trò chuyện hai chiều và hiện tại chỉ hỗtrợ 8 ngôn ngữ: Anh, Pháp, Đức, Italia, Nhật, Hàn, Tây Ban Nha và Bồ Đào Nha.Google bắt đầu triển khai GA trên các thiết bị Android khác vào tháng 2/2017(một số smartphone, smartTV, smartwatch của bên thứ ba) và được phát hành dướidạng ứng dụng riêng biệt trên iOS vào tháng 5 (nghĩa là một số iPhone và iPad đờimới vẫn có thể sử dụng GA) Đến tháng 4/2017, GA đang tiếp tục được mở rộng hỗtrợ cho một lượng lớn thiết bị, bao gồm cả xe hơi và các thiết bị trong nhà thôngminh Các chức năng của GA cũng có thể được bổ sung bởi các nhà phát triển bên thứba
Hình 1.5 Google Pixel Hình 1.6 Google Home Hình 1.7 Android Wear.Người dùng chủ yếu có thể tương tác với GA qua giọng nói tự nhiên, hoặc cóthể nhập từ bàn phím Các chức năng cơ bản: tìm kiếm thông tin trên Internet, đặt sựkiện trên lịch và báo thức, điều chỉnh cài đặt phần cứng trên thiết bị người dùng vàhiển thị thông tin từ tài khoản Google của người dùng Ngoài ra, Google còn bổ sungcác tính năng khác cho GA: khả năng nhận diện vật thể, thu thập thông tin từ vật thểthông qua máy ảnh của thiết bị, hỗ trợ mua sản phẩm và chuyển tiền
Tháng 4 năm 2017, Google phát hành một bộ phát triển phần mềm (SDK) chophép các nhà phát triển bên thứ ba có thể tự xây dựng thiết bị phần cứng tương thíchvới GA Nó cũng được tích hợp vào Raspberry Pi, những chiếc xe Audi và Volvo, các
Trang 17thiết bị nhà thông minh: tủ lạnh, máy giặt, lò nướng… từ các công ty: iRobot, LG,General Electric, D-Link… Kẻ khổng lồ công nghệ sử dụng phần cứng và phần mềmcủa mình để thúc đẩy các hãng khác sử dụng AI của mình.
Cùng với việc ra mắt SDK, Google Actions, và API.ai; GA đã có hệ sinh thái botcủa riêng mình Điều này hứa hẹn GA sẽ có mặt trên mọi thiết bị và phần mềm, khôngchỉ của riêng hàng của Google Hàng chục hãng, công ty đã đăng ký để được tích hợpdịch vụ vào Trợ lý ảo của Google: CNN, SmartThings, Pandora, Philips, Spotify,LinkedIn…
Hình 1.8 Các tập đoàn, công ty đăng ký tích hợp dịch vụ GA
Theo báo cáo từ trang tiếp thị kỹ thuật số Stone Temple, bài kiểm ra mức độthông minh của các trợ lý ảo gồm 5000 câu hỏi thực tế thì Google Assistant có tỷ lệtrả lời chính xác đến 91% (cao nhất trong các trợ lý ảo lớn nhất được kiểm tra)
Để cập nhật tính năng mới và thiết bị mới được tích hợp GA, truy cập vào địachỉ https://assistant.google.com/ để biết thêm thông tin
1.2 Giới thiệu Raspberry Pi 3.
Trang 18Hình 1.9 Raspberry Pi 3 Model B.
Raspberry Pi 3 (Pi 3) là một Broadcom (máy tính chỉ có một board mạch) Phiênbản đầu tiên của (Pi 3) là Raspberry Pi được phát triển tại Anh bởi Raspberry PiFoundation với mục đích ban đầu thúc đẩy việc giảng dạy về khoa học máy tính cơbản trong các trường học và các nước đang phát triển
Tháng 4 năm 2017, Google phát hành một bộ phát triển phần mềm (SDK) chophép các nhà phát triển bên thứ ba có thể tự xây dựng thiết bị phần cứng tương thíchvới GA, và Pi 3 là một trong số những phần cứng có thể tích hợp được GA
Pi 3 là một máy tính nhỏ tiết kiệm điện (sử dụng điện áp 5V – dòng 2.5A), nhỏgọn – di động (có thể nằm dễ dàng trong lòng bàn tay), giá rẻ (khoảng 1 triệu 100ngàn ở Việt Nam) nhưng nên một bộ Pi 3 cơ bản bao gồm case bảo vệ, nguồn sạcchuẩn và thẻ nhớ MicroSD 16GB (khoảng 1 triệu 500 ngàn ở Việt Nam); hỗ trợ hầuhết các kết nối có dây và không dây thông dụng; lại nhiều hệ điều hành miễn phí hỗtrợ, trong đó Raspbian OS dựa trên nền tảng HĐH mã nguồn mở Linux (HĐH củahầu hết các siêu máy tính mạnh nhất thế giới) Với tất cả ưu điểm đó, Pi 3 là phần
Trang 19cứng sáng giá để sử dụng cho việc cài đặt, phát triển Google Assistant và điều khiểncác thiết bị.
Bảng 1.2 Thông số kỹ thuật Pi 3 so với đời tiền nhiệm Pi 2 Mode B
Trang 20Hình 1.10 Các cổng kết nối trên Raspberry Pi 3.
Hình 1.11 Sơ đồ chân GPIO của Raspberry Pi 3
Chương 2: TÍCH HỢP GOOGLE ASSISTANT LÊN
Trang 21 1 Laptop hoặc 1 máy tính để bàn.
1 Thẻ nhớ MicroSD 16GB (khuyên dùng) hoặc dung lượng lớn hơn
1 đầu đọc thẻ nhớ MicroSD qua cổng USB
Ứng dụng Etcher tại https://etcher.io/ (một ứng dụng ghi file hình ảnh ISO,IMG… vào thẻ SD, MicroSD, USB)
Ứng dụng SD Memory Card Formatter tại
https://www.sdcard.org/downloads/formatter_4/
File cài đặt Raspbian Stretch with Desktop tại
https://www.raspberrypi.org/downloads/raspbian/
http://www.advanced-ip-scanner.com/vi/
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
2.1.1.2 Tiến trình cài đặt Raspbian OS cho Pi 3.
Lắp thẻ nhớ MicroSD vào đầu đọc thẻ nhớ, sau đó kết nối chúng với Laptop
Mở ứng dụng SD Memory Card Formatter Ở mục tùy chọn Select card,
chọn ổ đĩa được tạo trong Laptop khi kết nối với thẻ MicroSD (ở hình
này là ổ F:\ ) -> Nhấn Format.
Trang 22Hình 2.1 Format MicroSD trước khi cài đặt Raspbian OS cho Pi.
Mở ứng dụng Etcher, mục Select image chọn File cài đặt Raspbian OS đã tải về trên Laptop (File có đuôi img) Mục Select a Drive chọn ổ đĩa
được tạo trên Laptop khi kết nối với thẻ MicroSD (ở đây là ổ F:\) Cuối
cùng nhấn chữ Flash! để tiến hành burn file img vào thẻ MicroSD.
Hình 2.2 Burn File cài đặt Raspbian OS cho Pi 3
Trang 23Sau khi quá trình burn file img hoàn tất, Raspbian OS đã được cài đặt trong thẻMicroSD, để sử dụng trên Pi 3, chỉ cần gắn thẻ MicroSD đã cài Raspbian OS vào Pi
3, khi được cấp nguồn để hoạt động, Pi 3 sẽ tự động boot hệ điều hành (HĐH)
2.1.2 Kết nối Pi 3 với Laptop để điều khiển.
Cách điều khiển và hiển thị Pi 3 thông dụng nhất: điều khiển và hiển thị mànhình Pi 3 qua Laptop qua giao thức mạng ssh và ứng dụng Remote DesktopConnection có sẵn trên HĐH Microsoft Windows 10 64bit (các phiên bản HĐHWindows khác không có, có thể ghé trang https://www.microsoft.com/en-us/download/details.aspx?id=44989 để tải về)
Hình 2.3 Các phiên bản HĐH Windows hỗ trợ Remote Desktop Connection
Mặc định hầu hết sản phẩm Pi 3 ban đầu ssh sẽ ở chế độ Disable Sau khi càiRaspbian OS lên Pi 3, truy cập vào ổ đĩa boot của nó (ở đây mặc định là ổ F:\) tạo một
File có tên ssh với không nội dung để Enable ssh khi gắn thẻ MicroSD vào Pi 3 khởi
chạy HĐH đầu tiên
Để Pi 3 kết nối với Laptop qua ssh, cần cung cấp 2 máy tính này cùng một mạng(LAN) Để Pi 3 kết nối mạng LAN này có 2 cách: có dây và không dây Vì sự tiệndụng của kết nối không dây, đề tài này sẽ hướng dẫn kết nối Pi 3 với mạng không dâythông qua WiFi
Kết nối Pi 3 với WiFi (WPA hoặc WPA2, không hoạt động với WPA2
Enterprise), ta tạo một File tên wpa_supplicant.conf trong ổ đĩa F:\boot với nội dung
Trang 24tự nếu muốn lưu nhiều WiFi, ta chỉ cần thêm nhiều network commands.
Hình 2.4 Tạo File ssh và wpa_supplicant.conf trong ổ đĩa boot
Trang 25Sau đó gắn thẻ MicroSD vào Pi 3 thông qua cổng nhận thẻ MicroSD và cấpnguồn đợi nó tự boot HĐH Raspbian OS trong vòng 1 đến 2 phút.
Tiếp theo xem địa chỉ IP của Laptop bằng cách nhấn tổ hợp phím cửa sổ + R
trên keyboard, cửa sổ Command Prompt hiện ra, gõ dòng lệnh: ipconfig -> Enter Sau
đó chú ý dòng IPv4 Address sẽ tìm được địa chỉ IP của máy tính trong mạng LAN Ởđây Laptop truy cập mạng bằng WiFi nên địa chỉ IP của Laptop sẽ là 192.168.0.115
Hình 2.5 Tìm kiếm địa chỉ IP của Laptop trong mạng LAN qua cửa sổ Cmd
Kế tiếp, ta mở ứng dụng Advanced IP Scanner để quét địa chỉ IP của Pi 3 trongmạng LAN theo 3 bước: điều chỉnh lại vùng quét địa chỉ IP nằm trong vùng địa chỉ
mà Router WiFi mà Laptop kết nối -> Nhấn Start để bắt đầu quét địa chỉ IP -> Sau khiquá trình quét hoàn tất dò địa chỉ IP của Pi 3 (ở đây là 192.168.0.103)
Trang 26Hình 2.6 Tìm kiếm địa chỉ IP của Pi 3 bằng Advanced IP Scanner.
Mở Putty lên chọn Connection type: SSH và Port: 22 Gõ địa chỉ IP của Pi 3 vàotrường Host name Click Open
Hình 2.7 PuTTY Configuration
Trang 27Một bảng Terminal và một thông báo PuTTY Security Alert xuất hiện, click Yes Đăng nhập vào Pi mặc định với login as: pi và password: raspberry.
Gõ dòng lệnh sau vào Terminal rồi Enter để cài đặt xrdp hỗ trợ Pi 3 kết nối với Laptop thông qua Remote Desktop Connection:
sudo apt-get install xrdp
Chờ vài phút để tiến trình cài đặt hoàn tất
Sau khi cài đặt xong xrdp, mở Remote Desktop Connection, điền địa chỉ IP của
Pi 3 trong mạng LAN vào, sau đó click Connect Nhấn Yes.
Chọn Session: Xorg và điền username và password của Pi 3 vào Nhấn OK.
Tìm hàng dưới cùng bên trái để mở Terminal
Trang 28Hình 2.8 Giao diện Remote Desktop Connection.
2.2 Tích hợp Google Assistant lên Raspberry Pi 3.
Thư viện Google Assistant (GA) dành cho Python là một giải pháp cho bất cứ ai
muốn nhanh chóng tích hợp Trợ lý ảo vào một thiết bị nguyên mẫu Thư viện đượcviết dựa trên Python 3 được hỗ trợ cho một thiết bị nguyên mẫu phổ biến như Pi 3
2.2.1 Các thiết bị, phụ kiện liên quan.
1 Pi 3 Model B
1 thẻ MicroSD được cài sẵn Raspbian OS, bật ssh và đã được lưu WiFi
1 Laptop
1 loa có dây đầu ra âm thanh kết nối được với jack 3.5mm
1 USB 2.0 Mini Microphone
2.2.2 Cấu hình hệ thống âm thanh trên Pi 3.
2.2.2.1 Kiểm tra việc thu âm thanh và phát lại nó.
• Chạy âm thanh kiểm tra Nhấn tổ hợp Ctrl+C khi hoàn tất Nếu không nghe thấy
gì khi chạy dòng lệnh, kiểm tra lại phần kết nối loa
speaker-test -t wav
• Thu lại một đoạn âm thanh ngắn khoảng 5 giây Nếu nhận lỗi, chuyển sang bướctìm kiếm thiết bị thu âm và phát lại của Pi 3
arecord format=S16_LE duration=5 rate=16000 file-type=raw out.raw
• Kiểm tra bản ghi âm bằng cách phát lại nó
aplay format=S16_LE rate=16000 out.raw
• Điều chỉnh âm lượng thu và phát:
alsamixer
Nếu bản thu và bản phát hoạt động bình thường, ta đã hoàn thành cấu hình hệthống âm thanh trên Pi 3 Nếu không hoặc nhận lỗi, chuyển sang mục 2.2.2.2
2.2.2.2 Tìm kiếm thiết bị thu âm và phát lại.
Định vị USB Microphone trong danh sách các thiết bị phần cứng được phát hiện Ghi lại card number và device number
arecord -l
Trang 29 Định vị loa trong danh sách các thiết bị phần cứng được phát hiện Ghi lại card number và device number.
Hình 2.9 Dòng lệnh cấu hình Microphone và loa của File asoundrc
Nếu Pi 3 đang kết nối cùng lúc màn hình HDMI và một jack loa 3.5mm Có thể chọn phát âm thanh cho một trong hai cổng trên bằng dòng lệnh:
sudo raspi-config
Sau đó đi đến Advanced options -> Audio và chọn cổng muốn xuất âm thanh.
Lặp lại mục 2.2.2.1 để kiểm tra lại việc thu âm và phát lại Nếu nó vẫn không
Trang 302.2.3 Định cấu hình một dự án dành cho nhà phát triển và cài đặt tài khoản 2.2.3.1 Định cấu hình một dự án dành cho nhà phát triển.
Google cho phép thiết bị của chúng ta truy cập vào GA API Google theo dõicách sử dụng hạn ngạch và cung cấp các số liệu có giá trị cho các yêu cầu được thựchiện từ thiết bị của ta
Để truy cập vào GA API, làm theo các bước dưới đây:
Trong Google Platform Console: https://console.cloud.google.com/project?hl=vi&pli=1
Tìm đến Projects page Chọn một dự án đã tồn tại hoặc tạo mới một dự án
Hình 2.10 Giao diện Projects Page trên Google Cloud Platform
Trang 31 Bật GA API cho dự án bằng cách truy cập:
https://console.cloud.google.com/apis/library và chọn một dự án ta cần bật GA
API Trong mục tìm kiếm APIs & Services, gõ Google Assistant API và chọn
nó -> nhấn vào Enable để bật GA API
Trang 32Hình 2.12 Tạo tên sản phẩm trên OAuth consent screen tab
Sau đó click Other và cung cấp một tên client ID Click vào Create.
Hình 2.13 Cung cấp một tên cho client ID
Một hộp thoại xuất hiện và cho ta thấy một client ID và secret
Trang 33Hình 2.14 Hộp thoại OAuth client cho biết client ID và client secret.
Tiếp theo ta tải về File client secret JSON (client_secret_<client-id>.json) bằng
cách nhấn vào biểu tượng tải xuống
Hình 2.15 Tải về client secret JSON File
File client_secret_<client-id>.json phải được nằm trên thiết bị để ủy quyền mẫu
Google Assistant SDK để thực hiện các truy vấn GA Cũng phải đảm bảo rằng
tệp trên nằm ở /home/pi Nếu muốn cập nhật tệp tới thiết bị, làm theo các bước:
o Mở một cửa sổ terminal mới và chạy lệnh sau:
scp ~/Downloads/client_secret_client-id.json pi@raspberry-pi-ip-address:/home/pi/
password: password-for-device
o Đóng cửa sổ terminal lại
2.2.3.2 Đặt kiểm soát hoạt động cho tài khoản.
Trang 34Mở Activity Controls page cho tài khoản Google bạn muốn sử dụng với GA bằng
cách truy cập: https://myaccount.google.com/activitycontrols?hl=vi&pli=1 và đảmbảo bật tất cả các công tắc để GA hoạt động trên tài khoản Google của bạn một cách
tốt nhất: hoạt động Web & Ứng dụng, lịch sử vị trí, thông tin thiết bị, hoạt động bằng
giọng nói và âm thanh, lịch sử tìm kiếm trên Youtube, lịch sử xem trên YouTube.
2.2.4 Cài đặt SDK và mã lệnh mẫu.
2.2.4.1 Định hình môi trường ảo Python mới (Python 3).
sudo apt-get update // update Raspbian OS
sudo apt-get install python3-dev python3-venv // cài đặt thư viện Python 3
python3 -m venv env // định hình môi trường Python 3
env/bin/python -m pip install upgrade pip setuptools //cài đặt, update các công cụ.source env/bin/activate // truy cập môi trường ảo
2.2.4.2 Nhận gói cài đặt.
Gói cài đặt GA SDK chứa tất cả mã lệnh được yêu cầu để nhận Trợ lý ảo của Google chạy trên thiết bị, bao gồm mã lệnh mẫu
Cài đặt các hệ thống phụ thuộc của gói:
(env) sudo apt-get install portaudio19-dev libffi-dev libssl-dev
Sử dụng pip để cài đặt phiên bản mới nhất của gói Python trong môi trường ảo:
(env) python -m pip install upgrade google-assistant-library
(env) python -m pip install upgrade google-assistant-sdk[samples]
2.2.4.3 Tạo các chứng chỉ.
Cài đặt hoặc cập nhật công cụ ủy quyền:
(env) python -m pip install upgrade google-auth-oauthlib[tool]
Tạo các chứng chỉ để có thể chạy mã lệnh mẫu và các công cụ Chọn File JSON
đã được tải về ở mục 2.2.3.1 và không được đổi tên File JSON
(env) google-oauthlib-tool scope
https://www.googleapis.com/auth/assistant-sdk-prototype save headless client-secrets /home/pi/client_secret_client-id.json