Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Xây dựng ứng dụng điều khiển nhà thông minh trên thiết bị di động (báo cáo thực ...

Tài liệu Xây dựng ứng dụng điều khiển nhà thông minh trên thiết bị di động (báo cáo thực tập)

.PDF
24
1
83

Mô tả:

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO THỰC TẬP XÂY DỰNG ỨNG DỤNG ĐIỀU KHIỂN NHÀ THÔNG MINH TRÊN THIẾT BỊ DI ĐỘNG Công ty thực tập : Sunshine Tech Người phụ trách : Đặng Quang Trung Thực tập sinh : Phạm Quốc Đạt TP. HỒ CHÍ MINH, 2022 LỜI MỞ ĐẦU Thế giới đã và đang bước vào thời đại của Internet vạn vật (IoT), với sự xuất hiện của các ứng dụng công nghệ IoT hứa hẹn mang đến những giá trị to lớn cho con người. Trong những năm gần đây, chúng ta đã thấy sự xuất hiện của những hệ thống nhà thông minh hay các thiết bị gia dụng thông minh có thể điều khiển bằng giọng nói hoặc thông qua cảm biến. Không chỉ dừng lại ở đó, khi mọi đồ vật được kết nối Internet, chúng sẽ trở nên thông minh hơn nhờ khả năng gửi và/hoặc nhận thông tin và tự động hoạt động dựa trên các thông tin đó, đồng thời có thể ra lệnh cho các thiết bị khác. Công nghệ này còn cho phép người dùng có thể dễ dàng điều khiển các thiết bị trong nhà dù ở bất cứ đâu thông qua điện thoại thông minh. Vì vậy, để có cơ hội tiếp cận sớm hơn với những quy trình tạo ra một ứng dụng điều khiển các thiết bị IoT trên thiết bị di động, cùng với mong muốn có thêm kinh nghiệm thực tế trong môi trường làm việc của ngành Công nghệ Thông tin nói chung và Kỹ thuật Phần mềm nói riêng, nên em đã quyết định ứng tuyển vào Công ty Sunshine Tech – một công ty phần mềm thuộc Sunshine Group là một trong những Tập đoàn bất động sản hàng đầu Việt Nam hiện nay. Vì em có tìm hiểu là nơi đây phát triển rất mạnh về các ứng dụng có liên quan tới IoT nhằm đáp ứng nhu cầu cư dân của Sunshine. Phạm Quốc Đạt LỜI CẢM ƠN Trước hết, em xin gửi lời cảm ơn chân thành tới công ty Sunshine Tech đã tạo điều kiện cho em có cơ hội thực tập tại công ty. Ngay từ những buổi đầu thực tập, dưới sự hướng dẫn nhiệt tình của các anh chị cố vấn, em đã tiếp thu được nhiều kiến thức về quy trình sản xuất phần mềm trong thực tế, cũng như được làm việc trong môi trường chuyên nghiệp. Em được trao cơ hội tham gia vào nhóm lập trình ứng dụng di động. Đây là khoảng thời gian em quý giá để em có thể chuẩn bị tốt hơn cho công việc trong tương lai. Em xin cảm ơn các anh chị và các thành viên trong nhóm đã quan tâm, giúp đỡ và động viên em xuyên suốt quá trình thực tập tại công ty. Mọi người tạo mọi điều kiện để em học tập, làm việc một cách có hiệu quả, giúp em làm quen với quá trình phát triển phần mềm, hiểu được sự phức tạp của lập trình, cung cấp kinh nghiệm thực tiễn phong phú, tạo nền tảng cho sự phát triển của em sau này. Bên cạnh đó, em cũng trân trọng gửi lời cảm ơn tới quý thầy cô khoa Công nghệ Phần mềm đã tận tình dạy dỗ, chỉ bảo, hướng dẫn và tạo điều kiện cho em hoàn thành bài báo cáo này. Sinh viên thực hiện Phạm Quốc Đạt TP.Hồ Chí Minh, ngày 15 tháng 06 năm 2022 NHẬN XÉT CỦA KHOA ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... MỤC LỤC DANH MỤC HÌNH .................................................................................................... i DANH MỤC BẢNG .................................................................................................. ii Chương 1. GIỚI THIỆU CÔNG TY THỰC TẬP ......................................................1 1.1. Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group..............1 1.2. Sản phẩm của công ty ......................................................................................2 Chương 2. Nội dung thực tập ......................................................................................5 2.1. Tìm hiểu công ty và các kỹ năng cơ bản sử dụng trong công việc ..................5 2.2. Tìm hiểu về sản phẩm và các công nghệ liên quan ..........................................5 2.3. Tham gia làm việc cùng Scrum team ...............................................................6 2.4. Lịch làm việc ....................................................................................................6 Chương 3. Chi tiết về project ......................................................................................9 3.1. Giới thiệu về dự án ...........................................................................................9 3.2. Thực hiện........................................................................................................10 Chương 4. Kết quả đạt được .....................................................................................11 4.1. Scrum .............................................................................................................11 4.1.1. Giới thiệu.................................................................................................11 4.1.2. Ba trụ cột chính của Scrum .....................................................................12 4.1.3. Scrum team..............................................................................................12 4.1.4. Scrum Event ............................................................................................12 4.2. Flutter .............................................................................................................12 4.2.1. Flutter là gì? ............................................................................................12 4.2.2. Tính mới của Flutter................................................................................13 4.2.3. Đặc điểm nổi bật .....................................................................................13 4.3. Stoplight .........................................................................................................14 TỔNG KẾT ...............................................................................................................15 TÀI LIỆU THAM KHẢO .........................................................................................16 i DANH MỤC HÌNH Hình 1.1: Logo của công ty Sunshine Tech ................................................................1 Hình 1.2: Logo của Unicloud Group ..........................................................................2 Hình 1.3: Nhà thông minh của Sunshine Tech ...........................................................3 Hình 1.4: Ứng dụng Kienlong Bank Plus [4]..............................................................3 Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App .................................................9 Hình 4.1 Mô tả quy trình Scrum ...............................................................................11 Hình 4.2 Ví dụ minh họa cho Flutter ........................................................................14 ii DANH MỤC BẢNG Bảng 2.1 Lịch làm việc theo sprint .............................................................................8 1 Chương 1. GIỚI THIỆU CÔNG TY THỰC TẬP 1.1. Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group Hình 1.1: Logo của công ty Sunshine Tech Công ty CP Đầu tư Thương mại Sunshine Tech [1] được thành lập ngày 12/06/2016, là công ty công nghệ chuyên về các giải pháp công nghệ IoT liên quan tới tối ưu và nâng cao chất lượng đời sống của cư dân tại các dự án căn hộ hạng sang. Trong những năm qua, Sunshine Tech liên tục đã cho ra đời các giải pháp như giải pháp tổng thể cho smart living, giải pháp nhà thông minh, giải pháp bãi đỗ xe thông minh, giải pháp an ninh thông minh, giải pháp thang máy thông minh và giải pháp kiểm soát ra vào thông minh. Những bước đi đột phá bằng công nghệ thông minh này đã giúp Sunshine Group hoàn thiện “hệ sinh thái Sunshine” với tâm điểm là “cư dân điện tử” bằng các tiện ích công nghệ cùng dịch vụ hoàn hảo nhằm nâng cao chất lượng đời sống của người dân Việt…Đồng thời tạo sự khác biệt cho các sản phẩm bất động sản của Sunshine Group nhờ sự khác biệt về công nghệ hiện đại, vượt trội và thông minh. Những lĩnh vực phát triển của công ty [2]: • Xây dựng các ứng dụng di động (Mobile App) cho việc giám sát, điều khiển. • Thiết kế phần cứng của Sản phẩm. • Xây dựng Firmware, Cloud Server. • Xây dựng Mobile App, Website. • AI, Machine learning, … Đặng Quang Trung Phạm Quốc Đạt 2 Cuối năm 2021, Sunshine Tech đã được đổi tên thành Công ty CP Tập đoàn Công nghệ Unicloud (Unicloud Group), có hơn 300 thành viên tại trụ sở Hà Nội và chi nhánh TP.HCM, cùng 2 công ty con là Unicloud Investment và Nanochip. Hình 1.2: Logo của Unicloud Group 1.2. Sản phẩm của công ty Sunshine Tech là công ty xây dựng những sản phẩm hiện đại và tiện lợi cho những cư dân căn hộ cao cấp, giúp kết nối các đồ vật và thiết bị thông qua cảm biến, phần mềm và các công nghệ khác, cho phép các đồ vật và thiết bị thu thập và trao đổi dữ liệu với nhau để tự hoạt động dựa trên dữ liệu đó. Các giải pháp nhà thông minh nổi bật của Sunshine Tech [3] giúp thay đổi chất lượng cuộc sống: • Hệ thống công tắc cảm ứng. • Rèm cửa thông minh. • Điều hòa thông minh. • Cảm biến chuyển động. • Hệ thống đo lường thông minh (giúp chủ nhà kiểm soát số liệu điện năng và nước tiêu thụ trong gia đình theo thời gian thực tế). Đặng Quang Trung Phạm Quốc Đạt 3 Hình 1.3: Nhà thông minh của Sunshine Tech Hình 1.4: Ứng dụng Kienlong Bank Plus [4] Đặng Quang Trung Phạm Quốc Đạt 4 Bên cạnh những sản phẩm về nhà thông minh, Sunshine Tech còn xây dựng các sản phẩm khác. Một trong những sản phẩm nổi bật là Kienlong Bank Plus, được Ngân hàng TMCP Kiên Long (KienlongBank) và Tập đoàn Sunshine (Sunshine Group) phối hợp hoàn thiện. Đặng Quang Trung Phạm Quốc Đạt 5 Chương 2. Nội dung thực tập Trong thời gian thực tập, em đã tham gia dự án xây dựng ứng dụng dạy điều khiển nhà thông minh thiết bị di động - Sliving App - phục vụ điều khiển các thiết bị IoT trong các căn hộ thông minh. Thực tập sinh tại công ty có cơ hội học hỏi, khám phá và làm việc trong môi trường phát triển ứng dụng chuyên nghiệp. 2.1. Tìm hiểu công ty và các kỹ năng cơ bản sử dụng trong công việc Thời gian: 1 ngày Nội dung: • Giới thiệu tổng quan về công ty (quá trình thành lập và phát triển, quy trình làm việc, cách tổ chức của công ty). • Tìm hiểu các nguyên tắc trong công ty (giờ làm việc, cách theo dõi tiến độ công việc bằng Jira, sử dụng email trong công việc, thái độ làm việc, …). • Giới thiệu về các thành viên nhóm và sản phẩm sẽ thực hiện. • Giới thiệu các công cụ và website hỗ trợ trong quá trình làm việc. Kết quả: • Có kiến thức hiểu biết thêm về công ty Sunshine Tech cũng như văn hóa, giá trị, quá trình thành lập và phát triển của công ty. • Biết cách tự tìm đọc tài liệu hiệu quả liên quan đến việc tải ứng dụng, cài đặt máy. • Có thêm các kỹ năng về việc sử dụng email, Jira trong công việc, tác phong làm việc có kế hoạch, trách nhiệm và kỷ luật. • Có kiến thức định hình về các kiến thức sử dụng trong quá trình thực tập tại công ty. 2.2. Tìm hiểu về sản phẩm và các công nghệ liên quan Thời gian: 1 tuần Nội dung: Đặng Quang Trung Phạm Quốc Đạt 6 • Tìm hiểu và làm quen với sản phẩm, cấu trúc, cách cài đặt, framework liên quan dựa vào document của sản phẩm… • Tìm hiểu về các library của Flutter như: TextField, Image Picker, … • Tìm hiểu các công cụ hỗ trợ như Stoplight, Jira, Gitlab. • Tìm hiểu về Docker, WebSocket. Kết quả: • Tiếp cận với tool làm việc của Scrum team • Hiểu các khái niệm cần thiết, có khả năng sử dụng các thư viện mở rộng. 2.3. Tham gia làm việc cùng Scrum team Thời gian: 10 tuần Nội dung: Làm việc chung và tham gia đầy đủ các event với Scrum team : Sprint Planning Meeting, Daily Scrum, Sprint Review, Sprint Retrospective. Nhận tasks, lên kế hoạch, estimate và hoàn thành: Thiết kế test case, Thực hiện task, sửa lỗi cho các chức năng khác nhau của ứng dụng. 2.4. Lịch làm việc Sprint Công việc Người Mức độ Nhận hướng dẫn hoàn thành xét Tìm hiểu quy trình làm việc Scrum. Học cách trao đổi công việc qua 1 Skype, Email và Google Meet. Tìm hiểu cách quản lý dự án trên Đặng Quang Trung Đạt 100% yêu cầu Jira và cài đặt các công cụ phục vụ cho dự án. Đặng Quang Trung Phạm Quốc Đạt 7 Tìm hiểu cách nắm bắt thông tin UI/UX trên Figma để code đúng tỉ lệ. Xây dựng màn hình Splash, Onboarding và Đăng ký. Tạo các widget cơ bản (TextFormField, LoginWithButton) dùng chung cho các màn hình. Xây dụng màn hình Quản lý nhà. Xây dựng luồng gọi API cho các màn hình. 2 Tạo mock data cho các màn hình. Tìm hiểu BloC pattern để quản lý Đặng Quang Trung Đạt 100% yêu cầu state. Sửa các lỗi do tester phát hiện ra trong những màn hình đã làm. Áp dụng BloC pattern để xử lý logic cho các màn hình Đăng ký và Quản lý nhà. 3 Xây dựng thêm màn hình chính cho Đặng Quang mục Tự động hóa. Trung Đạt 100% yêu cầu Tạo mock data. Sửa các lỗi do tester phát hiện ra trong những màn hình đã làm. Đặng Quang Trung Phạm Quốc Đạt 8 Áp dụng BloC pattern để xử lý logic cho các màn hình Tự động hóa. 4 Tạo mock data. Đặng Quang Trung Đạt 100% yêu cầu Hỗ trợ thành viên khác xây dựng các màn hình chưa hoàn thành. Refactor và clean code. Áp dụng BloC pattern để xử lý logic cho các màn hình thuộc Tự động hóa (Công tắt bắc cầu, Cảm biến và Thiết bị điều khiển). 5 Tạo mock data. Đặng Quang Trung Đạt 100% yêu cầu Refactor và clean code. Sửa các lỗi do tester phát hiện ra trong những màn hình đã làm. Sửa lỗi tất cả lỗi có trong mục Tự động hóa. Tìm hiểu WebSocket. 6 Refactor và clean code. Đặng Quang Trung Đạt 100% yêu cầu Sửa các lỗi do tester phát hiện ra trong những màn hình đã làm. Bảng 2.1 Lịch làm việc theo sprint Đặng Quang Trung Phạm Quốc Đạt 9 Chương 3. Chi tiết về project 3.1. Giới thiệu về dự án Ứng dụng Sliving App là một ứng dụng cho phép người sử dụng có thể điều khiển tất cả các thiết bị thiết yếu trong ngôi nhà thông minh như bóng đèn, rèm cửa, máy lạnh… và lấy thông tin từ các cảm biến ánh sáng, cảm biến nhiệt độ để thông báo cho người dùng. Ứng dụng này được xây dựng chủ yếu nhắm tới nhóm khách hàng sở hữu nhà thông minh được xây dụng bởi tập đoàn Sunshine Group. Vì vậy, các tác vụ xử lý thông tin cho các thiết bị IoT này được chủ động và tối ưu nhất. Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App Đặng Quang Trung Phạm Quốc Đạt 10 Do yêu cầu bảo mật thông tin của doanh nghiệp nên em không thể trình bày chi tiết hơn. 3.2. Thực hiện Bốn thành viên thực hiện team Internship: • Phạm Quốc Đạt. • Trần Tuấn Minh. • Hoàng Công Thắng. • Trần Trung. Và sự giúp đỡ nhiệt tình từ team các anh chị mentors: • Đặng Quang Trung. • Cao Thị Nguyệt. • Trần Thanh Tâm. • Hoàng Tuấn Kiệt. Đặng Quang Trung Phạm Quốc Đạt 11 Chương 4. Kết quả đạt được Trong chương này, em sẽ trình bày những kết quả, những kiến thức cũng như kĩ năng làm việc mà em đã đạt được trong 3 tháng thực tập tại công ty. 4.1. Scrum 4.1.1. Giới thiệu Scrum [5] là một framework giúp mọi người giải quyết và thích nghi với các vấn đề phức tạp một cách hiệu quả, sáng tạo và cung cấp sản phẩm có giá trị cao nhất có thể. • Nhẹ nhàng. • Dễ hiểu. • Khó quản lý và làm chủ. Hình 4.1 Mô tả quy trình Scrum Scrum là một framework được sử dụng để quản lý công việc trên các sản phẩm phức tạp. Scrum không phải là một quá trình, kỹ thuật hay là một định nghĩa nào, Scrum là framework – tức là một phương pháp được nhiều người sử dụng và trở nên Đặng Quang Trung Phạm Quốc Đạt 12 phổ biến giúp làm rõ các hiệu quả tương đối của việc quản lý sản phẩm và kĩ thuật để cải thiện sản ph ẩm, cải thiện mối quan hệ giữa team member và môi trường làm việc. 4.1.2. Ba trụ cột chính của Scrum Scrum nhấn mạnh vào 3 yếu tố chính gồm: • Transparency: Minh bạch. • Inspection: Thanh tra. • Adaptation: Thích nghi. 4.1.3. Scrum team Scrum team gồm có 3 roles chính: • Product Owner. • The Developer Team. • Scrum Master. 4.1.4. Scrum Event Sprint thường kéo dài khoảng 2-3 tuần và gồm các events sau: • Planning Meeting. • Daily Meeting. • Review Meeting. • Retrospective. 4.2. Flutter 4.2.1. Flutter là gì? Flutter [6, 7] là mobile UI framework của Google nhằm tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức. Flutter hoàn toàn miễn phí và cũng là mã nguồn mở. Đặng Quang Trung Phạm Quốc Đạt
- Xem thêm -

Tài liệu liên quan