TÓM TÁT KHÓA LUẬN“Điều khiển và giám sát thiết bị nhà thông minh thông qua giọng nói, ứng dụng điện thoại và website” là đề tài nghiên cứu và thực hiện hệ thống dùng đề giám sát và điều
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KỸ THUAT MAY TÍNH
NGO QUOC NHU
LE TRONG THUC
KHOA LUAN TOT NGHIEP
DIEU KHIEN VA GIAM SAT THIET BI NHA THONG MINH THONG QUA GIỌNG NÓI, UNG DỤNG ĐIỆN
THOẠI VÀ WEBSITE
CONTROLLING AND MONITORING SMARTHOME DEVICE
USING VOICE, MOBILE APPLICATION AND WEBSITE
KY SU KY THUAT MAY TINH
TP HO CHi MINH, NAM 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGO QUOC NHU - 17520857
LÊ TRONG THUC - 17521115
KHÓA LUẬN TÓT NGHIỆP
DIEU KHIEN VÀ GIÁM SAT THIET BỊ NHÀ THONG MINH THONG QUA GIỌNG NOI, UNG DỤNG ĐIỆN
THOAI VA WEBSITE
CONTROLLING AND MONITORING SMARTHOME DEVICE
USING VOICE, MOBILE APPLICATION AND WEBSITE
KY SƯ KY THUAT MAY TÍNH
GIANG VIEN HUONG DAN THAC SĨ PHAN ĐÌNH DUY
TP HÒ CHÍ MINH, NĂM 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 466/QD-DHCNTT
ngày 23 tháng 07 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LOI CAM ON
Nhân dip báo cáo hoàn thành khóa luận tốt nghiệp, chúng em — Ngô Quốc
Nhu và Lê Trọng Thức xin chân thành cảm ơn Quý thầy cô trường Đại học Công
nghệ Thông tin, Đại học Quốc gia Thành phố Hồ Chí Minh đã truyền đạt cho chúng
em những kiến thức và những kinh nghiệm quý báu trong suốt bốn năm học vừa qua
để có được một kết quả tốt đẹp như ngày hôm nay.
Chúng em xin gửi lời cảm ơn đến Quý thầy cô khoa Kỹ thuật Máy tính,
những người đã truyền dạy cho chúng em những kiến thức và kinh nghiêm sống rất đáng trân trọng từ những ngày đầu được bước vào trường vào học tập tại khoa.
Đặc biệt hơn chúng em xin gửi lời cảm ơn chân thành đến Thầy ThS Phan
Đình Duy — Phó trưởng khoa Kỹ thuật Máy tinh đã hỗ trợ chúng em không chỉ từ
những ngày đầu làm đỗ án 1, đồ án 2 đến khóa luận tốt nghiệp mà từ những đầu học tập tại khoa Chúng em cảm ơn sự hỗ trợ nhiệt tình của thay, điều đó làm chúng em
rất cảm kích.
Va không quên cảm ơn tập thé Câu lạc bộ học thuật CEEC và anh chị trong khoa đã tạo ra một môi trường không chỉ đơn thuần là nghiên cứu mà còn là nơi để sinh viên có thể giao lưu, trao đổi với nhau, tiếp xúc sớm nhất với ngành nghề mình
đang theo học.
Một lần nữa chúng em xin chân thành cảm ơn!
Tp Hồ Chí Minh, ngày 13 tháng 06 năm 2021
Nhóm sinh viên
Ngô Quốc Nhu Lê Trọng Thức
Trang 5MỤC LỤC
Chương 1 TỎNG QUAN DE TÀI 222c22222222222E222213122222112 2222 3
1.1 Tinh hình trong và ngoài RƯỚC ¿- - + es eeneseseseeseeseseseseeneneeeaes 3
1.2 Tổng quan đề tài -: 22+2222+++£22221122211112222111227111222112 1211 §
1.3 Mục tiêu
Chương2 CO SỞ LÝ THUYÉT 222222++++222E222vvrrrrrrrrrrrrer 1
2.1 Tìm hiểu về ESP-WROOMGC32 w.sseesssssssssssssssecsccsssssunsessccsssssnsesesssesssssueeeeees 1
2.1.1 Giới thiệu CHUNG oa aeeescesesecscseccesssssssssnssnsensnnssssesseseeececeeeceeceesnsnnnnantente 1
2.12 PAM CONG ceesececssssesssssssecsssssssccssssecessssssccsssussccssssssssssssccesssuscessseceesssees 1 2.1.2.1 Thông số kỹ thuật - ¿ 722c2cccccccEEcvvverrrrrrrrrvrrercee 1
2.1.2.2 Chuẩn giao tiếp GPIO -¿:-222222222c+tt2EEEEEEvrrrrrrrrrrrrrrrcee 2
2.1.2.3 Bộ định thời Timer/Counter và phương pháp điều xung PWM 12 2.1.2.4 Chuẩn giao tiếp SPl ¿¿-52222222222+tetEEEvrreerrkvrrerrrrrrrrrr 3 2.1.2.5 Chuẩn giao tiếp [2C -222cvcvcctrtrErkrtrrrrrrrrrrrrrrree 4 2.1.2.6 Chuẩn giao tiếp One-Wire 22222cccctcECEErvrrrrrrrrrrrrrerrree 5
2.2 Tìm hiểu về cảm biến nhiệt độ, độ Am DHT22 -©+ 6
2.2.1 Giới thiệu chung ccccccc222222vvvccrttrvcrrveecrrrrrrer 6
Trang 62.4.2 PRAM cứng ccc2222vcccEcvvrirerrtrrrrrrrtrrrrrrrre 7 2.5 Tìm hiểu về NodeJS server csccccssssssessssssesscssssssesssssesssssssecesssusecessseescessseees 8
2.5.1 Chrome”s V8 engine cty 8 2.5.2 S0 8
2.6 Tìm hiểu về React Native framewWOrk -222ccc++ccccvvvvrcrrrrrrrr 9
2.7 Tìm hiểu về Angular framewOrkK -:©z+222+++v22vvvretcvvvrrrrrrer 9
2.7.1 Giới thiệu chung
2.7.1.1 Angular Írame€wWOrK ¿6-5-5 Set Sx+esrttererrrererererrree 9
2.7.1.2 Đặc điểm của Angular -2222c+++22222vvvrrrrrrrrrrrsrrrcee 9
2.7.2 Boostrap và Angular Material framework - 21 2.7.2.1 Boostrap ÍramewOFK - ¿6 - se EtSt‡ketkrrrkekererrree 21 2.7.2.2 Material Írame€WOTK - ¿+ Sex khi 21
2.8 Tìm hiểu về Google AssiStan -.2 ©2222+222Sv2tEEEEEerrrrrktererrrrerrrer 21
2.9 Tìm hiểu về Firebase
2.9.1 Giới thiệu chung -c-cccccccceererererrrrerrsee 22 2.9.2 Build trong Firebase - - S55 Sc+ccxererererereee 23 2.9.2.1 AuthentiCatiOn + Sàn ngư 23
2.9.2.2 Realtime Database ¿5S Street 23 2.9.2.3 S[Orage cnnHHHHHHHHHH Hư 24 2.9.2.4 Hosting ch HH hàn 24 2.9.2.5 Functions.
2.10 Chuẩn bảo mat AES -cccccccccc2222222222EEEEEEtrrrrrrrrrrrie 24
2.11 Chuẩn bảo mật SHA256 -: 25cSvvtctttttttrttrrirtrrrrrrrrrrrrrrer 26
Trang 7Chương 3 | PHAN TÍCH VA THIET KE HE THÓNG - 27 3.1 Phân tích hệ thong ccccsssscsssssssesscssssecsosssssccssssseesssssssesssssscesssueseessseeeeessseeees 27 3.1.1 Mô hình hệ thống -c-+cccccccc+22222222EEEEEEEEEtrrrrrreervee 27 3.1.2 Phân tích mô hình hệ thống -: -: 22222Vvvvvvvvvvvecccce 27
3.2 Thiết kế phần cứng -22¿+2222+++2222122222211212222112 222111 eEE crre 29
3.2.1 _ Thiết kế mạch điều khiển đèn sáng trắng .-: + 29 3.2.2 _ Thiết kế mạch điều khiển đèn màu RGB
3.2.3 Thiết kế mạch điều khiển công tắc - -c-:cc ccc-c 35
3.2.4 Thiết kế mạch cảm biến nhiệt độ, độ ẩm -+cccc 40
3.3 Phân tích và lập trình NodeJS serVer - - + +5++c+csccrsrerxrrererre 42 3.3.1 Function devices sec 42 3.3.2 Function fulfillm€ni( óc x3+ + *‡‡vEsxekseEeereserexerrrerersve 43
3.3.3 Usemiiipccitt 00 TtÀ V 46 3.4 Phân tích và lập trình ứng dụng điện thoại
3.4.1 Trang quản lý tài khoản -¿¿ ccccc+csxsseeerekserkrreree 47
3.4.2 Trang quản lý phòng - 5c <ScS+St+xcxererrrereree 48
3.4.3 Trang quản lý phòng chỉ tiết -ccccc++c2cvvvvecrerrrrrr 48
3.4.4 _ Trang tạo và chỉnh sửa phòng - - «5c St ssvserereeekekrree 49
3.4.5 Trang quản lý thiết bị -ccccccccccccrkverrrerrrrrrrrrrreerrreg 49
3.4.6 Trang chỉnh sửa thiết bị -:-222cc2ccvvzeecrktrretrrkerrrrrrrvee 49 3.4.7 Trang liên kết và thêm thiết bị
3.4.8 _ Trang quản lý ngữ cảnh chư 49 3.4.9 Trang cài đặt bộ hen giỜ - 55 St tre ren 50
Trang 83.5 Phân tích và lập trình Website «+5: tt re 50 3.5.1 Trang quản lý tài khoản ¿++¿¿+222222222222222121221222222Xe2 50
3.5.2 Trang quản lý thiết bị ccccctttrrrrkrtrirrrrrrrrrrrrrrrrer 51
3.5.3 Trang chỉnh sửỬa ¿-¿- + 5c té vn HH it 51
3.5.4 Trang Chi ce ceecescesenesceseseecscseneneessecseseeeeneneeeseseeeeeneneveseeeeeeeees 52 3.5.5 _ Trang mua hàng - +55 tt re 52 3.5.6 _ Trang thông tin liên hệ
“"—ẽẻ — Ô 53 3.6.2 - Query ee eta SMa SE <2 sex 53 3.6.3 - Executef.ốE ì ii 53 3.6.4 Auth a Aer 5 SC co coeeiiieeieree 54
3.6.5 DisocDccI t TÀ SE cc.ceieneeiiiiee 54 3.7 Tạo dựng lớp API.
3.8 Mã hóa đường truyn ¿¿-©222+2222E+++tEEEEEEtEEEEvvrttrrkrrrrrrrrrrrre 54 3.9 Giao tiếp dữ liệu giữa các node với $€TVer -cccc:c222vcvvvccrrrrrrrr 56 3.9.1 Chế độ cài đặt -222tcc2 2122221 1E cerrve 56
3.9.2 Chế độ vận hành cccccvctrtttt2112111111rrree 56
3.10 Lưu trữ va truy vấn dữ liệu trên Firebase : -cccz++cz+ 57
Chương 4 KET QUẢ .¿-7222cc222cvvcrrccrvecrrrrrrvee 59 4.1 Phần cứng
4.1.1 Mạch điều khiển đèn sáng trắng
4.1.2 Mạch điều khiển đèn màu RGB - 22c 22c22 SE Eterrrkrrree 59
Trang 94.1.3 Mạch điều khiển công tắc -c:c222vvccscccvvrrerrvereccrl 61 4.1.4 Mạch cảm biến nhiệt độ, độ ẩm -ccccccccccceeeeerrrrre 62 4.2 Phần mm 2-¿¿222EEEE22++222221111112222221111111 22111111 ve, 63
4.2.1 NodeJS server và database sàng re 63
TT .Ô 64 4.2.2.1 Trang xác thực người dùng ¿ 5c cccsxstseerererkekeree 64
4.2.2.2 Trang giám sát và điều khiến thiết bị trong phòng
4.2.2.3 Trang điều khiển ¿-2222222vcrrttEEErkrrrrrrrrrrrrrrrrreerrr 66
4.2.2.4 Trang chỉnh sửa thiết bị -ccc++22c2cvvcrrrrrrrrrrvrrrrcerrrei 67
4.2.2.5 Trang thêm thiết bị . -522222-2222EEetrEEEkEerrtrrkrrrrrrrreerrkeg 68
4.2.2.6 Trang chia sẻ thiết bị 22cc222v++tvcEvvrertrrvrrrrrrrrrrerrreg 69 4.2.2.7 Trang ngữ cảnh thiết bị -ccccccc+222Ecvxvrrrrrrrrrrrerrrerrrer 70
4.2.3.4 Trang thông tin liên hỆ ¿- cty 74
4.2.3.5 Trang điều khiển thiết bị cc:-2222cvvvcrrrrrrcrrvrrrrrerrrer 75
4.2.3.6 Trang chỉnh sửa thiết bị -¿:22++222vvretvvrvrrerrrrrrrerrkee 76
4.2.4 Tích hợp Google Assistant
4.3 Thông số đo đạc -22-222+22222211212221112227111121211111201112 2.111 cty 80
AA, Tóm tắt kết quả -22222++++22222E2E++rtttEEEEEEEErrrrtttEEEExrrrrrrrrrrrrree 81
Trang 11DANH MỤC HÌNH
Hình 1.2.1 Mô hình tổng quan hệ thống -+z£22222222+z++ttcvvvvecee 8
Hình 2.1.1 ESP-WROOOM-32 module -¿-¿- 55252 S++t+*‡£+£srztzksrerre 1
Hình 2.1.2 Sơ đồ chân ESP32 22-©2+22Ek9E211022112711127111071117111 2.11 re 2 Hình 2.1.3 Điều chỉnh điện áp bằng cách điều xung PWM
Hình 2.1.4 Mô hình SPI “01 master — 01 slave” và “01 master — nhiều slave” 4
Hình 2.1.5 Mô hình I2C “01 master — nhiều sÏave” -: 222sccccz+ccccvvsez 5
Hình 2.1.6 Mô hình One-Wire “01 master — nhiều slave” : -c:+ccsscc+ 5 Hình 2.2.1 Cảm biến nhiệt độ, độ âm không khí DHT22 -¿ + + -<++ 6
Hình 2.3.1 WS2812 Lcd 2 0 (E0 -Q coi 6 Hình 2.4.1 Màn hình LCD TFT-ST7735 -¿- +52 5+ s£xervrterxsrerxerxrrerxrre 7
Hình 2.8.1 Sơ đồ hoạt động cua các dự định
Hình 2.10.1 AddRouteKey — AES -22¿¿+2222222S2ctEEEEEEEAEerrrtrrrkkreerree 25 Hình 2.10.2 Sub bytes — AES ¿-¿¿¿c22c2222222222222213111122222crrrrrrrrrrrrrrrrrrriei 25
Hình 2.10.3 Shift row — AES -2222222222222 2222222222111 trEEEEErrrrrrrrrrrrrree 25 Hình 2.10.4 Mix columns — AES - + tk EsEErrkekEkekekrkrkrkrrkrrevek 26 Hình 2.11.1 Phương thức hoạt động SHA256 -. ¿ - 5c 252 S++c+c£crerrkeree 26
Hình 3.1.1 Mô hình kiến trúc hệ thống ¿¿¿©2++¿222+++z+tvvzvresrrrxererrr 27
Hình 3.2.1 Sơ đồ khối mạch đèn sáng trắng ¿2+2z++22+zerzrrxscee 29
Hình 3.2.2 Khối MCU ESP32 mạch điều khiển đèn sáng trắng 30
Hình 3.2.3 Khối light driver mạch điều khiển đèn sáng trắng 3Í
Hình 3.2.4 Khối user interface mạch đèn sáng trắng - -¿-©c5scczc+ 31 Hình 3.2.5 Khối power supply mạch đèn sáng trắng :+-cccccvcecccee 32
Trang 12Hình 3.2.6 Layout PCB mặt trên mạch điều khiển đèn sáng trắng - 32 Hình 3.2.7 Layout PCB mặt dưới mạch điều khiển đèn sáng trắng 32 Hình 3.2.8 Mơ phỏng 3D mach đẻn sáng trắng - -222ccccccc+cccccvcee 33 Hình 3.2.9 Sơ đồ nguyên lý mạch đèn sáng màu RGB -ccc-++ 33
Hình 3.2.10 Layout PCB mặt trên mạch đèn sáng màu RGB 34 Hình 3.2.11 Layout PCB mặt dưới mạch đèn sáng màu RGB - 34 Hình 3.2.12 Mơ phỏng 3D mạch đèn sáng mau RGB
Hình 3.2.13 Sơ đồ khối mạch điều khiển cơng tắc ‹.-:c 35
Hình 3.2.14 Khối MCU ESP32 mạch điều khiển cơng tắc Ữ
Hình 3.2.15 Khối indicator mạch điều khiển cơng tắc - c - Ữ
Hình 3.2.16 Khối user interface mạch điều khiển cơng tắc - -: - 37 Hình 3.2.17 Layout PCB mặt trên mạch điều khiển cơng tắc - 37 Hình 3.2.18 Layout PCB mặt dưới mạch điều khiển cơng tắc - 37
Hình 3.2.19 Mơ phỏng 3D mạch điều khiển cơng tic
Hình 3.2.20 Sơ đồ khối mạch điều khiển relay : ¿5252225 38 Hình 3.2.21 Layout PCB mặt trên mạch điều khiển relay - 39 Hình 3.2.22 Layout PCB mặt dưới mạch điều khiển relay - 39 Hình 3.2.23 Mơ phỏng 3D mạch điều khiển Relay ¿¿225sc+2 40
Hình 3.2.24 Sơ đồ nguyên lý mạch cảm biến nhiệt độ, độ AM 40
Hình 3.2.25 Layout PCB mặt trên mạch cảm biến nhiệt độ, độ AM 4I Hình 3.2.26 Layout PCB mặt dưới mạch cảm biến nhiệt độ, độ âm
Hình 3.2.27 Mơ phỏng 3D mạch cảm biến nhiệt độ, độ ẩm cccccccecerreerrcee 42
Hình 3.4.1 Mơ hình tổng quát hệ thống ứng dụng điện thoại - 47
Trang 13Hình 3.6.1 Quy trình tiếp nhận và phản hồi dự định Syne - - 53 Hình 3.6.2 Quy trình tiếp nhận và phản hồi dự định Query - 53 Hình 3.6.3 Quy trình tiếp nhận và thực thi dự định Execute - - 53
Hình 3.10.1 Cấu trúc database của hệ thống : 22222vvvccesrrrrrrrrrerree 57
Hình 4.1.1 Mach điều khiển đèn sáng trắng thực 16 cccccccscssesssssssesssssseeessssseseeessees 59
Hình 4.1.2 Mặt trên thực tế mạch điều khiển đèn sáng màu RGB 59 Hình 4.1.3 Mạch và đèn sáng màu RGB thực tế
Hình 4.1.4 Mạch điều khiển đèn sáng màu được đóng gói - 60
Hình 4.1.5 Mặt trên thực tế mạch điều khiển công tắc .- -cc 61
Hình 4.1.6 Mặt dưới thực tế mạch điều khiển công tắc - + 61
Hình 4.1.7 Mach thực tế cảm biến nhiệt độ, độ âm - - c.e 62 Hình 4.1.8 Bộ cảm biến nhiệt độ, độ âm được đóng gói -: :- 62
Hình 4.2.1 Dashboard S€TV€T - ¿52522 S5 S*2E2E#E#EEEEkeEEkerrrkrkrkerrrrrkerrrei 63
Hình 4.2.2 Hiển thị Log trên Functions Firebase.
Hình 4.2.3 Giao diện đăng nhập và đăng ký người dùng của app 64
Hình 4.2.4 Giao diện giám sát và điều khiển thiết bị trong phòng của app 65 Hình 4.2.5 Giao diện trang điều khiển thiết bị của app - -ccccccce 66 Hình 4.2.6 Giao diện trang chỉnh sửa thiết bị của app . :-ccc+ccsscee 67
Hình 4.2.7 Giao diện trang thêm thiết bị của app -ccccccz2cccvvscccce2 68
Hình 4.2.8 Giao diện trang chia sẻ thiết bị của app - -.-:-©cccccc+ccsscceee 69
Hình 4.2.9 Giao diện ngữ cảnh của app.
Hình 4.2.10 Trang chỉnh sửa và hiền thị thông tin cá nhân của app - 71
Hình 4.2.11 Giao diện chủ của Web ccceeccsesessesessesesscseesesecseeeeseeseseeeeesseeeeseseeeees 72
Trang 14Hình 4.2.12 Giao diện trang đăng nhập người dùng của web - 72 Hình 4.2.13 Giao diện trang đăng ký người dùng của web c-cccce+ 73 Hình 4.2.14 Xác nhận đăng ky qua email của web và app -«-+ec+c++ 73 Hình 4.2.15 Giao diện trang thông tin mua hang của web -: 74
Hình 4.2.16 Giao diện trang thông tin liên hệ của Web -¿-+-+<+c+xex+xe+ 74
Hình 4.2.17 Giao diện trang điều khiển thiết bị của web .-:cccssce+ 75 Hình 4.2.18 Giao diện thẻ điều khiển đèn sáng màu của web.
Hình 4.2.19 Giao diện trang chỉnh sửa thiết bị của web -.cccccccccccvcee 76
Hình 4.2.20 Giao diện hiển thị người được chia sẻ khi chia sẻ thành công T1
Hình 4.2.21 Giao diện người thông báo có lời mời nhận thiết bi của website T1
Hình 4.2.22 Giao diện xóa thiết bị của web -ccccccrkkkkkiiirrrrrrrrrrrrrrrree 78 Hình 4.2.23 Giao diện chỉnh sửa thiết Di của W€D án 79 Hình 4.2.24 Liên kết hệ thong với Google Assistant — Google Home 79
Hình 4.2.25 Ứng dụng được tích hợp Google Assistant
Trang 15DANH MỤC BANG
Bang 1.1.1 Bang so sánh với đề tài đã được thực hiện ‹ s-++cx+svcssssesx> 4
Bang 3.3.1 Bảng đường dẫn liên quan xác thực người dùng -. -¿ 42
Bảng 3.3.2 Bang đường dẫn thực hiện yêu cầu người dùng - 43
Bang 3.8.1 Bảng các bước mã hóa dữ liệu và liên kết thiết bị.
Bang 3.9.1 Bảng Stream — Events khi node liên kết với server Firebase 57
Bang 4.3.1 Bảng đo thông số thời gian thực thi -: 2222scccz22cccvvsecccee 80
Trang 16DANH MỤC TU VIET TAT
STT | Cụm từ viết tắt Cụm từ được viết tắt
1 App Ứng dụng điện thoại di động
2 Web Website
3 loT Internet of Things
4 | ESP32 ESP32-WROOM-32
5 LED Light Emitting Diode
6 RGB Red — Green — Blue
7 |IC Integrated Circuit
8 | GPIO General Purpose Input Output
9 PWM Pulse Width Modulation
10 | ADC Analog to Digital Converter
11 |DAC Digital to Analog Converter
12 | UART Universal Asynchronous Receiver Transmitter
13 | 12C Inter Integrated Circuit
13 | SPI Serial Peripheral Interface
15 | SDA Serial Data
16 | SCL Serial Clock
17 | MOSI Master Output Slave Input
18 | MISO Master Input Slave Output
19 | SCK Serial Clock
Trang 1720 |CS Chip Select
21 | UI User Interface
22 |API Application Programming Interface
23 | AES Advanced Encryption Standard
24 | SHA256 Secure Hash Algorithm 256-bit
Trang 18TÓM TÁT KHÓA LUẬN
“Điều khiển và giám sát thiết bị nhà thông minh thông qua giọng nói, ứng
dụng điện thoại và website” là đề tài nghiên cứu và thực hiện hệ thống dùng đề giám
sát và điều khiển thiết bị điện trong gia đình Hệ thống sử dụng ESP32 với chức năng kết nối internet giúp người dùng có thể tương tác với hệ thống ở bat cứ nơi nào mà
người ding có thé truy cập được internet.
Hệ thống trên bao gồm 04 mạch điều khiển (mạch đèn sáng trắng, mạch đèn
màu RGB, mạch điều khiển công tắc và mach cảm biến nhiệt độ, độ 4m không khí),
01 server duy trì sự giao tiếp và thực thi khi có yêu cầu từ phía người dùng hay các
mạch điện, 01 ứng dụng điện thoại di động cho phép người dùng thao tác trên 02 nền tảng Android và IOS, 01 website cung cấp cho người dùng trải nghiệm giám sát, điều khiển thiết bị của mình trên các trình duyệt web Bên cạnh đó, hệ thống còn cung cấp cho người dùng khả năng điều khién thiết bị thông qua giọng nói bằng cách tích hợp
mềm Chức năng đăng ký, đăng nhập và xác thực người dùng Mở rộng khả năng
thêm mới, xóa, chia sẻ thiết bị giữa các người dùng.
Đề tài nhằm hướng đến điều khiển tất cả các thiết bi dan dụng trong gia đình, hướng đến mục tiêu IoT hóa ngôi nhà bình thường trở thành một ngôi nhà thông
minh.
Trang 19MỞ ĐÀU
Cuộc cách mạng công nghiệp 4.0 dang bùng nổ mạnh mẽ trên khắp thế giới
và cả ở Việt Nam Những yếu tố cốt lõi của kỹ thuật số trong cuộc cách mạng cộng
nghệ 4.0 là trí tuệ nhân tạo (AI, IoT và Big Data).
IoT là một hệ thống mạng lưới các thiết bị được kết nối internet, có thé thu thập và trao đổi dữ liệu Hiện nay IoT đã và đang được áp dụng rộng rãi vào mọi lĩnh
vực trên thế giới và cả ở Việt Nam.
Nhằm phục vụ và nâng cao chất lượng cuộc sống, nhóm đã lựa chọn đề tài
“Điều khiển và giám sát thiết bị nhà thông minh thông qua giọng nói, ứng dụng điện thoại và website” Hệ thống trong đề tài này là một mô hình kết hợp giữa phần cứng các mạch điện tử, phần mềm các ứng dung di động, website và điều khiển bằng giọng
nói thông qua việc tích hợp Google Assistant Bên cạnh đó, nhóm còn lập trình các
API cho server giúp giao tiếp giữa các thiết bị với nhau và với app, web và Google
Trang 20Chương 1 TONG QUAN DE TÀI
1.1 Tinh hình trong và ngoài nước
Nhà thông minh có thé nói là ứng dụng của IoT gây được tiếng vang lớn trên toàn cầu và được tìm kiếm nhiều nhất trên Internet với ứng dụng IoT Chi cần tưởng
tượng khi chúng ta không có ở nhà mà vẫn có thé tắt hay bật các thiết bi trong nhà,
mở khóa cho bạn bè vào nhà hay theo dõi các tài sản của bạn từ xa thông qua hệ thông
camera, như vậy phan nào cho ta thấy được những lợi ích đáng ké của những ngôi
nhà thông minh Những ngôi nhà thông minh sẽ giúp chúng ta tiết kiệm được thời
gian và những no lực cũng như luôn tạo ra một sự yên tâm về độ an toàn.
Nhà thông minh đang mang lại những lợi ích đáng kể cho cuộc sống con người tuy nhiên dé sở hữu được một ngôi nhà thông minh lại tốn rất nhiều chi phí Hơn nữa
các thiết bị được sử dụng trong nhà thông minh cũng có giá thành vô cùng đắt đỏ do việc cải tiến công nghệ, tính năng sản phẩm cũng như quá trình sản xuất khá tốn kém.
Nếu vài năm trước đây người dùng còn e dẻ trước những chiếc điện thoại thông minh
hay giá thành của những chiếc điện thoại thông minh cũng không hề nhỏ thì giờ đây điện thoại thông minh lại trở thành một thiết bị vô cùng quen thuộc và không thé thiếu
với mỗi người và chỉ phí cho những chiếc điện thoại thông minh cũng được giảm rất
nhiều phù hợp với nhiều đối tượng người dùng Smart home trong tương lai không
xa chắc chắc cũng sẽ trở nên quen thuộc như những chiếc điện thoại thông minh bây
giờ.
Một số công ty cung cấp mô hình nhà thông minh tại Việt Nam như: Tập đoàn
BKAV, công ty cỗ phần công nghệ Acis, công ty cổ phần Lumi, Onsky
Chúng ta có thé lấy ví dụ về một số sản phẩm trong nhà thông minh do công
ty cổ phần Lumi cung cấp:
¢ Rèm cửa: Có thể được đóng mở bằng cách thao tác trên app điện thoại
di động, có thể hẹn giờ đóng, xem trạng thái rèm đang đóng hay mở và sử
Trang 21điều khiển thông qua giọng nói bằng cách tích hợp Google Assistant, Siri
và Amazone Alexa.
e Đèn chiếu sáng: Có thể được giám sát và điều khiển thông qua app
điện di động và giọng nói thông qua Google Assistant, Siri hay Amazone
Alexa Tương tự như rèm cửa, người dùng cũng có thể hẹn giờ bật và tắt
đèn Đèn sẽ có gắn 01 thiết bị cảm biến và sẽ tự động bật sáng khi có sự chuyển động.
© B6 thiết bị đo nhiệt độ, độ 4m, ánh sáng môi trường dé có thé tự động
bật tắt các thiết bị đèn, máy lạnh, rèm cửa
Nhận định đề tài “Điều khiển và giám sát thiết bị nhà thông minh thông qua
giọng nói, ứng dụng điện thoại và website” với một số đề tài khóa luận tốt nghiệp có
tính chất tương tự đã được thực hiện tại khoa Kỹ thuật Máy tính, trường Đại học Công nghệ Thông tin, Đại học quốc gia thành phố Hồ Chí minh.
(Nhóm xin được sử dụng 02 dé tài sau để tham khảo và so sánh: Điêu khiển các thiết bị trong gia đình bằng tin nhắn điện thoại trên nên Android [năm 2012],
Ung dụng các công nghệ loT dé điều khiển smarthome từ xa [năm 2017)).
Bang 1.1.1 Bảng so sánh với đề tài đã được thực hiện
tiếp và xử lý yêu cầu.
- Database lưu trữ dữ liệu.
- Phát triển app, web
giám sát và điều khiển
Mục tiêu |- Xây dựng hệ thống |- App Android giám |- App Android giám
đề tài server quản lý giao | sát và điều khiển thiết | sát và điều khiển thiết
Trang 22biến nhiệt độ, độ am
không khí.
Công - Kết nối mạng qua |- Sử dụng mạng di | - Kết nối mạng qua
nghệ sử | wifi động GMS (2G) wifi.
dung - Giao tiếp giữa các | - Giao tiếp giữa chip | - Song RF truyền nhận
client với server thông | với module SIM | giữa node với qua giao thức HTTP, | thông qua các lệnh AT | Raspberry Pi3 trong Stream (Attention command) | tòa nha.
- Giao tiếp giữa các
client vs server thông qua giao thức MQTT.
Chip sử | ESP32 PIC16F877A Raspberry Pi3
dung Module SIM300CZ | Arduino
ESP8266
Số lượng | - Số lượng: 04 mạch | - Số lượng: 01 mạch | - Số lượng: 01 mach
mạch - Mạch điều khién đèn | - Mạch điều khiển bật | - Bộ mạch điều khiển
thực hiện sáng trắng: Bét/tat, | tắt thiết bị va đóng mở | bật tat thiết bị, xử lý
điều chinh độ sáng cửa cuốn dimmer, đọc giá trị
cảm biên Bên cạnh
Trang 23Điều Tích hợp Google | Không Không
khiển qua | Assistant.
giọng nói
Chức Có thê mở rộng thêm | Có thé mở rộng thêm | Có thé mở rộng thêm năng mở | nhiều thiết bị bằng | nhiều thiết bị một các | nhiều thiết bị bằng
rộng mô | cách sử dụng app đơn giản bằng cách | cách thực hiện thêm
hình sản thực hiện thêm node |node và quét IP
phẩm camera (nếu muốn
thêm camera).
Bảo mật | - Quan lý và xác thực | - Không đảm bảo tín | - Tính năng bảo mật
người dùng thông qua đăng ký, đăng nhập với tài khoản email.
- Mã hóa đường
truyền dữ liệu khi
thêm thiết bị theo
Trang 24chuân AES, SHA265
- Giao diện web chạy
được trên nhiều trình
duyệt khác nhau như
Assistant điều khiển
thông qua giọng nói.
- Điều khiển, giám sát
nhắn điều khiên.
- Chi phí cao khi thực hiện và duy trì.
- Phí hoạt động phụ thuộc vào server cung
cấp và wifi nhà mạng.
Trang 25- Phí hoạt động phụ thuộc vào server cung câp và wifi nhà mạng.
1.2 Tổng quan đề tài
Theo Công ty cô phần Lumi Việt Nam (chuyên cung cấp các thiết bị cho nhà
thông minh — lumi.vn) — “Nha thông minh là một bộ giải pháp giúp khách hàng điều
khiển các thiết bị điện trong nhà như hệ thống đèn chiếu sáng, điều hòa, bình nóng lạnh, tivi, thông qua phần mềm tích hợp trên điện thoại di động hoặc website hoặc
qua chính giọng nói của gia chủ”.
Hệ thống “Điều khiển và giám sát thiết bị nhà thông minh thông qua giọng
nói, ứng dụng di động và website” là hệ thống điều khiển các thiết bị điện đân dụng
trong gia đình Chúng cho phép người dùng khởi tạo, kết nối các thiết bị vào trong hệ thống quan lý tài khoản, phục vụ nhu cầu công nghệ hóa thiết bị dé có thể điều khiển
từ xa thông qua internet.
Hình 1.2.1 Mô hình tổng quan hệ thống
Hệ thống cho phép điều khiển thông qua app, web, Google Assistant và trực
tiếp trên các mạch điện tử từ đó giúp người dùng có thêm nhiều môi trường trải
nghiệm.
Trang 26Trong hình 1.2.1, đường truyền (1) và (3) cho phép các thiết bị phần cứng, web, app, Google Assistant giao tiếp với server thông qua giao thức HTTP dé gửi dữ liệu lên server và nhận về bằng hình thức stream dữ liệu Đường truyền (2) cho phép server thực hiện truy vấn hay cập nhật dữ liệu vào Realtime Database của firebase.
Tính năng mở rộng hệ thống cũng được nhóm xem xét và chú trọng đến, cụ thể người dùng có thé thêm thiết bị mới vào trong tài khoản của mình hoặc có thé xóa thiết bị đó.
1.3 Mục tiêu
Đề tài “Điều khiển và giám sát thiết bị nhà thông minh thông qua giọng nói, ứng dụng điện thoại và website” hướng đến hoàn thành các chức năng điều khiển và
giám các thiết bị điện thông qua mạch điện, app, website và tích hợp Google Assistant
với các mục tiêu cụ thê như sau:
© Mạch điều khiển: Thiết kế 04 mạch điện tử bao gồm mạc điều khiển
đèn sáng trắng, mạch điều khiển đèn sáng màu RGB, mạch điều khiển công tắc và mạch cảm biến nhiệt độ, độ âm không khí Các mạch điện tử có thé
kết nối được với server thông qua wifi dé nhận và thực thi các yêu cầu từ
phía người dùng.
© App: Thiết kế app với công nghệ React Native có thể chạy trên 02 nền tang Android và IOS Chức năng chính của app có thé giám sát và điều khiển thiết bị, chỉnh sửa, thêm, xóa, sửa, chia sẻ, gom nhóm các thiết bị.
Bên cạnh đó chức năng xác thực người dùng thông qua tài khoản google
hay email cũng được kích hoạt, cho phép người dùng có thể đăng ký tài
khoản thông qua 02 loại tài khoản trên.
© Website: Thiết kế website với công nghệ Angular có thé thao tác được
trên nhiều trình duyệt web khác nhau như Chrome, FireFox, Cốc Cốc,
Microsoft Edge, Internet Explorer Với các chức năng nhằm đáp ứng nhu cầu giám sát và điều khiển thiết bị, chỉnh sửa, xóa, sửa, chia sẻ thiết bị với
người dùng khác của người dùng Ngoài ra, website cũng cung cấp cho
Trang 27người dùng tính bảo mật thông qua việc xác thực người dùng với việc đăng
ký tài khoản bằng email.
e Điều khiển thiết bị bằng giọng nói: Bằng việc tích hợp Google Assistant, hệ thống cho phép người dùng có thể điều khiển trạng thái của các thiết bị thông qua việc giao tiếp giữa người dùng với Google Assistant
trên điện thoại di động.
© Server: Lập trình 01 server giao tiếp chung và duy trì hệ thống với nền
Trang 28Chương2 CƠ SỞ LÝ THUYET
2.1 Tìm hiểu về ESP-WROOM-32
2.1.1 Giới thiệu chung
ESP-WROOM-32 la module đa dụng, mạnh mẽ và được sử dụng rộng rãi trong
thiết kế mach PCB wifi — bluetooth, BLE được sử dụng rất phổ biến cho nhiều ứng dụng về IoT ngày nay.
Việc tích hợp cả Bluetooth, BLE và Wifi đảm bảo cho khả năng ứng đáp ứng
nhiều loại ứng dụng khác nhau và module đó sử dụng với ngoại vi, thiết bị nào: Wifi
cho phép kết nối rộng rãi về mặt vật lý ra Internet qua wifi router, trong khi sử dụng
Bluetooth cho phép người dùng thuận tiện khi kết nói với smartphone.
Hệ điều hành chạy được trên ESP32 là FreeRTOS vơi LwIP, TLS 1.2 Hỗ trợ cập nhật firmware qua OTA mã hóa, điều này cho phép nhà phát triển sản phẩm có thể nâng cấp phần mềm sản phẩm ngay cả khi thiết bị đang được sử dụng một cách
tiết kiệm chỉ phí và nhân lực.
Trang 29Các ngoại vi giao tiếp: 02 bộ DAC, 18 bộ ADC, 02 bộ I2C, 03 bộ UART, 03
bộ SPI (trong đó 01 bộ cho Flash), 16 kênh truyền PWM.
Tổng số lượng chân là 38 chân Trong đó có 03 chân GND, 01 chân 3V3, 01
chân Enable, 01 chân NC, 32 chân GPIO và các chức năng khác.
Wifi được thiết kết với 802.11 b/g/n/e /i, wifi 2.4GHz WPA/WPA2 va WPS 2.1.2.2 Chuan giao tiếp GPIO
Hinh 2.1.2 So dé chan ESP32
GPIO được hiểu là các chân giao tiếp tín hiệu xuất ra hay tín hiệu đi vào chip Một số chân GPIO có chức năng đặt biệt như Interrupt, PWM, ADC, UART, SPI,
T2C, One-wire,
ESP32 có tất cả là 32 chân GPIO Một số chân có trở kéo nội bên trong chip.
2.1.2.3 Bộ định thời Timer/Counter và phương pháp điều xung PWM
Timer/Counter là một bộ đếm xung nhịp (xung clock) N, suỗồn xung nhịp được
chọn đề đếm có thé là nguồn xung nhịp nội (bên trong vi điều khiển) hoặc có thé chọn
nguồn xung nhịp bên ngoài Người dùng có thể lập trình cho Timer/Counter bắt đầu đếm từ 1 giá trị nào đó bằng cách ghi giá trị đó vào thanh ghi chứa giá trị đếm Khi
giá trị đếm vượt quá giá trị tối đa mà thanh ghi chứa giá trị của Timer/Counter thì
xuất hiện hiện tượng gọi là “tràn (overflow)”.
12
Trang 30Period „|
Duty Cycle 30%
Puise Wieth|
Duty Cycle 50%
Duty Cycle = Pulse Width x 100 / Period
Hình 2.1.3 Điều chỉnh điện áp bằng cách điều xung PWM Điều xung PWM là phương pháp điều chỉnh điện áp ra tải, hay nói cách khác,
là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông, dẫn đến
sự thay đổi điện ap ra.
2.1.2.4 Chuẩn giao tiếp SPI
SPI là một chuẩn truyền thông nói tiếp đồng bộ dé truyền dữ liệu ở chế độ
song công toàn phan (full-duplex) nhằm đảm bao sự liên hợp giữa các vi điều khiển
và thiết bị ngoại vi một cách đơn giản.
SPI là giao diện đồng bộ, trong đó bất cứ quá trình truyền nào cũng được đồng
bộ hóa với tín hiệu xung clock, tín hiệu này sinh ra bởi thiết bi master (thiết bị chủ động) Thiết bị ngoại vi bên phía nhận slave (bị động) làm đồng bộ quá trình nhận chuỗi bit với tín hiệu xung clock Thiết bị master chọn thiết bị động dé truyền dữ liệu
bằng cách kích hoạt tín hiệu chọn chip (chip select) Thiết bị ngoại vi nếu không được
chọn bởi bộ vi xử lý sẽ không tham gia vào quá trình truyền nhận.
Trang 31Hình 2.1.4 Mô hình SPI “01 master — 01 slave” và “01 master — nhiều slave”
Trong giao diện SPI có sử dụng 04 đường truyền tín hiệu:
e MOSI: Công ra của bên master, cổng vào của bên salve, đành cho việc
truyền dữ liệu từ thiết bị master đến thiết bị slave.
e MISO: Công vào của bên master, cổng ra của bên slave, đành cho việc
truyền dữ liệu từ thiết bị slave đến thiết bị master.
© SCK: Tín hiệu xung clock nối tiếp, dành cho việc truyền tín hiệu dành
cho thiết bi slave.
e CS: Chon vi mạch, chọn thiết bị slave để truyền tín hiệu.
2.1.2.5 Chuẩn giao tiếp I2C
I2C là một loại giao tiếp với hai dây tín hiệu Truyền thông với bus I2C là quá trình truyền thông đồng bộ nói tiếp, hỗ trợ nhiều master và slave trên đường truyền.
I2C phù hợp với các ngoại vi mà sự ưu tiên về kết nối đơn giản và chỉ phí sản xuất thấp quan trọng hơn là yêu cầu về tốc độ truyền.
14
Trang 32Trong giao diện SPI có sử dụng 02 đường truyền tín hiệu:
¢ SDA: Truyền tín hiệu dữ liệu dữ master và slave.
© SCL: Tín hiệu xung clock nối tiếp, dành cho việc truyền tín hiệu dành
cho thiết bi slave.
2.1.2.6 Chuẩn giao tiếp One-Wire
Chuẩn giao tiếp One-Wire là chuẩn giao tiếp không đồng bộ và bán song công.
Nó cũng tương tự như I2C, nhưng với tốc độ truyền dữ liệu thấp và khoảng cách xa
hon One-Wire chỉ can một dây để có thể truyền và nhận dé liệu.
Một tính năng đặc biệt của bus là khả năng chỉ sử dụng hai dây tín hiệu: Data
va GND Dé thực hiện điều này, các thiết bị One-Wire bao gồm một tụ điện dé trữ
điện và cung cấp nguồn trong quá trình đường data đang hoạt động.
vod
¬ pps poe
Slave 1 Slave 2 Slave 3 Slave n
Hình 2.1.6 Mô hình One-Wire “01 master — nhiều slave”
Trong giao diện SPI có sử dụng 01 đường truyền tín hiệu:
¢ Data: Truyền tín hiệu dữ liệu giữa master và slave.
15
Trang 332.2 Tim hiểu về cảm biến nhiệt độ, độ ẩm DHT22
2.2.1 Giới thiệu chung
=0 MP zŠ tá
Hình 2.2.1 Cảm biến nhiệt độ, độ âm không khí DHT22 Cảm biến độ âm nhiệt độ DHT22 là cảm biến thông dụng tích hợp vừa đo được nhiệt độ và độ âm, độ chính xác khá cao Giao tiếp với vi điều khiển qua chuẩn giao tiếp One-Write.
2.2.2 Phan cứng
Thong số kỹ thuật:
e Diện áp hoạt động: 3 - 5V DC.
© Khoảng đo độ 4m: 0% — 100% RH sai sé 2% RH.
¢ Khoảng do nhiệt độ: -40 ~ 80 độ C sai số 0.5% độ C.
©_ Tần số lấy mẫu tối đa 0.5Hz.
2.3 Tìm hiểu về WS2812 Led
2.3.1 Giới thiệu chung
16
Trang 34WS2812 thực ra là mạch tích hợp 03 bóng Led RGB và 01 IC điều khiển Điều đặc biệt là có thể nối tiếp nhiều bóng với nhau nhưng vẫn có thể điều khiển bởi 01
chân tín hiệu của chip.
Màn hình LCD TFT-ST7735 giao tiếp SPI có độ phân giải 128x128 pixels
(1.44 inch) với khả năng hiển thị lên đến 65K màu.
2.4.2 Phan cứng
Thông số kỹ thuật:
e Điện áp sử dụng: 3.3 - SV DC
e _ Điện áp giao tiếp: TTL 3.3 - 5V DC
© IC Driver hiển thị: ST7735 giao tiếp SPI.
e Độ phân giải: 128x128 pixels (1.44 inch).
17
Trang 352.5 Tim hiểu về NodeJS server
2.5.1 Chrome’s V8 engine
Chrome’s V8 engine là một JavaScript engine mã nguồn mở chạy trên các trình duyệt Chrome, Opera và Vivaldi Nó được thiết kế tập trung vào hiệu năng và chịu trách nhiệm cho việc dich mã Javascript sang mã máy dé máy tính có thé hiểu
và chạy được.
2.5.2 NodeJS
NodeJS là một Javascript runtime được xây dựng dựa trên Chrome’s V8
JavaScript engine, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng
mo rộng.
NodeJS sở hữu những đặc điểm nổi bật dưới day:
e NodeJS là một platform mà không phải là một framework Vì vậy nó cho phép xây dựng website một cách độc lập và nhanh chóng hơn.
© NodeJS thường sẽ chạy trên đa nền tảng phía server nên nó có thé thực
hiện chạy ở bat kỳ các hệ điều hành khác nhau như: Mac, Window, Linux.
© NodeJS được xem là một máy chủ đơn luồng và không có khả năng hỗ trợ đa luồng.
© _ Các ứng dụng NodeJS đều có khả năng đáp ứng được thời gian thực Ứng dụng của NodeJS:
© NodeJS có thể tạo, mở, đọc, ghi, xóa và đóng các tập tin ngay khi dang
truy cập trên máy chủ.
e Tạo ra nội dung cho các trang web động.
e NodeJS thực hiện thu thập các dữ liệu theo yêu cầu.
e NodeJS thực hiện truy vấn, sửa, xóa, thêm các dữ liệu trong các hệ cơ
sở như: Microsoft SQL Server, MySql, MongoDB, PostgreSQL.
18
Trang 362.6 Tìm hiểu về React Native framework
Ngày nay, có hai nền tảng cạnh tranh chính là IOS và Android, từ đó sinh ra các công cụ hỗ trợ nhà phát triển ứng dụng một cách dé dàng chang hạn như Apple
thì có XCode, Android thì có Android Studio Đề thông nhất giữa các ứng dụng phát
triển chung cho cả IOS và Android thì từ đó React Native được ra đời.
React Native là một framework mã nguồn mở do công ty công nghệ nổi tiếng Facebook phát triển.
Các ứng dụng Native được build dựa trên ngôn ngữ của chính hệ điều hành và
sử dụng những tính năng sẵn có của hệ điều hành mà không phải thông qua bất cứ ứng dụng bên thứ ba hay engine nào khác dé vận hành nên tốc độ là nhanh nhất.
Ứng dụng React Native được xây dựng một cách đa nền tang (multi-platform),
không phải là một “mobile web app”, không phải là “HTML5 app”, và cũng không phải là một “Hybrid app” hay cũng không chi build trên iOS hay Android ma chúng
ta build và chạy được cả hai hệ sinh thái.
2.7 Tim hiểu về Angular framework
2.7.1 Giới thiệu chung
2.7.1.1 Angular framework
Angular là một Javascript framework dung dé viết giao điện web (Front-end), được phát triển bởi Google Angular cung cấp các tính năng tích hợp cho animation,
http service va có các tính năng như auto-complete, navigation, toolbar, menu Code
được viết bằng TypeScript (dựa trên Javascript).
2.7.1.2 Đặc điểm của Angular
Cấu trúc phát triển rõ ràng:
e Angular mang đến một kiến trúc rất rõ ràng, dựa trên ba yếu tố chính:
class, các dependency được thêm vào và mô hình MVVM view/model).
(model-view-19
Trang 37e _ Các dependency mạnh mẽ được sử dụng trong ứng dụng khi cần thiết,
và khi cần tích hợp bắt kì đependeney nào chỉ cần thêm nó vào bên trong
constructor của class.
e Phần giao diện (view) được định nghĩa trong một template bao hàm
HTML dành cho một component nhất định Template có thê là toàn bộ layout hoặc bất cứ mảnh ghép nào trong layout đó Model được định nghĩa
như là các thuộc tính của component class Có thể hiểu là dữ liệu, dựa vào
đó dé phần View sử dụng dé thực thi.
e View/model là phần code sẽ xử lý việc truy xuất dữ liệu, đồng thời thực
thi các tương tác của người dùng trên view.
¢ Data binding ràng buộc thành phần HTML trong template với các thuộc
tính trong class và dữ liệu sẽ tự động xuất hiện trên màn hình Với các tương tác của người dùng đòi hỏi thay đổi dữ liệu, Angular sử dụng phương
pháp two-way binding Bat kì thay đổi dữ liệu đến từ view sẽ tự động cập
‘a
nhật thuộc tinh “model” bên trong class.
e Angular hỗ trợ event binding, có nghĩa là chúng ta có thể xử lí bất ki
event nào từ phía view như HTML event.
e Extensive binding giúp quá trình hiển thị dữ liệu, điều khiển DOM,
thực thi các event một cách thuận tiện và dễ dàng.
Hỗ trợ day đủ tính năng điều hướng — Routing:
e Angular cung cấp day đủ tính năng cho việc chuyền đổi view hay các
trang bằng cách định nghĩa các đường dẫn cho mỗi trang.
20
Trang 38e _ Bên cạnh đó có thé truyền dữ liệu vào các route, có thé bảo vệ route dé
người dùng chỉ có thể truy cập sau khi đã đăng nhập hoặc có quyền truy
cập, có thể ngăn chặn việc người dùng ngay lập tức rời một trang khi các thao tác còn dang dở cho đến khi họ thực sự xác nhận việc rời đi hoặc lưu lại tiến trình sử dụng.
Angular giúp giảm tối đa kích thước và tăng tối đa hiệu suất của ứng dụng:
se Angular cho phép chia nhỏ các thành phan ra thành từng component đề giúp nâng cao hiệu suất khởi động, giảm thời gian tải trang cũng như thời
gian compile trên.
© Lazy loading bên trong các route sẽ chỉ tải những module cần thiết cho việc hiền thị nội dung cần thiết tới người dùng.
2.7.2 Boostrap va Angular Material framework
2.7.2.1 Boostrap framework
Bootstrap là một framework bao gồm các HTML, CSS va Javascript template ding dé phat trién website chuan responsive.
Bootstrap cho phép quá trình thiết kế website dựa trên những thành phan co
bản sẵn có như typography, forms, buttons, tables, grids, navigation, image
2.7.2.2 Material framework
Angular Material là một thư viện UI dành cho các nha phát triển Angular Các thành phần Angular Material giúp xây dựng các trang web và ứng dụng web hấp dẫn, nhất quán và chức năng trong khi tuân thủ các nguyên tắc thiết kế web hiện đại như tính di động của trình duyệt, tính độc lập của thiết bị.
2.8 Tìm hiểu về Google Assistant
Google Assistant là một trợ lý ảo của Google giống như Siri của Apple hay Bixby của Samsung Assistant cho phép mở rộng khả năng điều khiển bằng giọng
nói.
21
Trang 39Google Assistant liên kết với hệ thống thông qua các yêu cầu HTTP Có 05 loại yêu cầu đến server của Google Assistant là Sync, Query, Execute, Disconnect và
Auth.
2.9 Tim hiểu về Firebase
2.9.1 Giới thiệu chung
Firebase là một nền tảng dé phát triển app và trang web bao gồm các API đơn
giản mà không cần backend hay server được cung cấp và phát triển bởi Google.
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tang đám mây — cloud.
Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính
giúp người lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
Cụ thể là những giao diện lập trình ứng dụng API đơn giản, dịch vụ đa năng
và bảo mật cực tốt Firebase hỗ trợ cả hai nền tảng Android và IOS.
Ưu điểm của Firebase:
se Tao tài khoản và sử dụng dễ dang: Người dùng có thé đăng nhập nhanh
chóng bằng tài khoản email.
e _ Tốc độ phát triển nhanh: Thông qua việc sử dụng Firestore, người phát triển có thể tạo, quản lý, bảo trì cơ sở dữ liệu và dịch vụ khác.
© _ Nhiều dịch vụ trong một nền tảng: Firebase cung cấp đầy đủ các sản phẩm hỗ trợ người phát triển trong quá trình phát triển Cung cấp 02 tùy
chọn cơ sở dữ liệu là Firestore và Realtime Database.
22
Trang 40e Máy hoc: Firebase đi kèm với API sẵn có cho các tính năng khác nhau
của nền tang di động như nhận dang văn bản, nhận diện khuôn mặt, ghi
nhãn hình ảnh, quét mã vạch
e Theo dõi lỗi: Firebase cung cấp tính năng Crashlytics để tìm và khắc
phục sự cố một cách nhanh chóng Đồng thời, báo cáo được tạo dựa trên mức độ ảnh hưởng của lỗi đến trải nghiệm của người dùng.
Một số hạn chế của Firebase:
e Không phải là mã nguồn mở.
© Nguoi dùng không có quyển truy cập mã nguồn.
©_ Firebase không hoạt động ở nhiều quốc gia.
e Chi hoạt động với cơ sở dữ liệu Non-SQL.
e Chỉ chạy trên Google Cloud.
e Không cung cấp các API GraphQL.
2.9.2 Build trong Firebase
2.9.2.1 Authentication
Firebase xây dựng các bước xác thực người dùng bằng email, facebook,
twitter, github, google Đồng thời cũng xác thực nặc danh cho các ứng dụng Hoạt động xác thực có thé giúp thông tin cá nhân của người sử dụng được an toàn.
Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ
sở dữ liệu Nó được tự động cập nhật dữ liệu mới nhất bất cứ khi nào các lập trình
viên phát triển ứng dụng.