Mục đích nội dung của ĐATN- Tìm hiểu việc lập trình ứng dụng cho iPhone trên hệ điều hành Mac OS.- Xây dựng một ứng dụng trên iPhone cho phép xem TVtrực tuyến – VietTV.3.. Các nhiệm vụ c
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
ĐỒ ÁN TỐT NGHIỆP
Thiết kế hệ thống tự động điều
chỉnh nhiệt độ trong thiết bị sấy hoa
quả
NGUYỄN VĂN A
nguyenvanabc@sis.hust.edu.vn
Ngành Công nghệ Thông tin
Giảng viên hướng dẫn: ThS Nguyễn Đức Tiến
Bộ môn: Kỹ thuật Máy tính
Viện: Công nghệ Thông tin và Truyền thông
Chữ ký của GVHD
Trang 2HÀ NỘI, 05/2021
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên
Họ và tên sinh viên: NguyễnVăn X
Điện thoại liên lạc: 0945322988 Email:X@gmail.com
Lớp: Kỹ thuật máy tính K53 Hệ đào tạo: Đại học chính quyThời gian làm ĐATN: Từ ngày 20/02/2011 đến 28/05/2012
2 Mục đích nội dung của ĐATN
- Tìm hiểu việc lập trình ứng dụng cho iPhone trên hệ điều hành Mac OS.
- Xây dựng một ứng dụng trên iPhone cho phép xem TVtrực tuyến – VietTV.
3 Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu việc lập trình ứng dụng cho iPhone.
- Tìm hiểu về thư viện mã nguồn mở FFmpeg,
- Kiểm thử chương trình trên thiết bị iPhone có kết nối Internet.
- Tổng kết và đánh giá.
- Nếu 2 SV cùng làm thì phải ghi rõ
+ Nhiệm vụ chung.
+ Nhiệm vụ riêng.
4 Lời cam đoan của sinh viên:
Tôi –Nguyễn Văn X - cam kết ĐATN là công trình nghiên cứu của bản thân tôidưới sự hướng dẫn của ThS Nguyễn Đức Tiến
Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn củabất kỳ công trình nào khác
Nếu 2 SV cùng làm thì phải ghi rõ “Chúng tôi là A và B, cam kết đầy là của chúng tôi.”
Hà Nội, ngày 24 tháng 05 năm 2018
Tác giả ĐATN
Nguyễn Văn Hưng
5 Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ:
2
Trang 3Hà Nội, ngày 24 tháng 05 năm 2018
Giáo viên hướng dẫn
ThS Nguyễn Đức Tiến
Trang 4LỜI CẢM ƠN
Để có thể hoàn thành đồ án tốt nghiệp này, em xin gửi lời cảm ơn chân thànhnhất tới tập thể các thầy giáo, cô giáo trường Đại học Bách Khoa Hà Nội nóichung, viện Công nghệ thông tin và truyền thông, bộ môn Kỹ thuật máy tính, đãđào tạo cho em những kiến thức, những kinh nghiệm quý báu trong suốt thời gianhọc tập và rèn luyện
Em xin gửi lời cảm ơn tới thầy giáo, ThS Nguyễn Đức Tiến - Giảng viên
bộ môn Kỹ thuật máy tính, viện Công nghệ thông tin và truyền thông, trườngĐại học Bách Khoa Hà Nội đã tận tình hướng dẫn em trong quá trình làm đồ ántốt nghiệp
Cuối cùng là lời cảm ơn chân thành nhất tới gia đình, bạn bè đã luôn ở bênđộng viên, góp ý và tạo mọi điều kiện tốt nhất để tôi có thể hoàn thành đồ án tốtnghiệp này
Tuy nhiên, do thời gian và kiến thức có hạn nên đồ án này chắc chắnkhông tránh khỏi những thiếu sót, em rất mong được sự đóng góp ý kiến của cácthầy, các cô và toàn thể các bạn Em xin chân thành cảm ơn
Hà Nội ngày 23 tháng 5 năm 2012
Sinh viên: Nguyễn Văn X
4
Trang 5TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Mục tiêu chính của đồ án là xây dựng một ứng dụng xem TV trực tuyến trên nềntảng iOS Ứng dụng này, giúp cho người dùng, chỉ với chiếc iPhone có kết nốiinternet trên tay là có thể thỏa thích xem TV trực tuyến Đây cũng là một dự ánquan trọng đang triển khai tại công ty Techlink, nơi em đã thực tập trong suốtquá trình làm đồ án
Nội dung chính của đồ án gồm các phần:
Chương I: Nền tảng và công nghệ phát triển ứng dụng
- Chương này tập trung đề cập đến nền tảng và công nghệ phát triển ứng dụng
cho đồ án, gồm các phần chính sau:
- Tìm hiểu công nghệ lập trình ứng dụng cho iPhone
- Tìm hiểu quy trình truyền video trực tuyến
- Tìm hiểu về giao thức RTMP và thư viện RTMP trên iOS
- Tìm hiểu về thư viện mở FFmpeg, việc sử dụng nó trong việc giải mã dữliệu audio và dữ liệu video, các phép biến đổi với dữ liệu video
- Tìm hiểu cơ chế hoạt động của thư viện CoreSurface trong việc hiển thị
dữ liệu ảnh RGB trên thiết bị iPhone
Chương II: Phân tích và thiết kế hệ thống
- Chương này tập trung vào việc khảo sát, phân tích và thiết kế chương trình
xem TV trực tuyến trên iPhone:
- Phần đầu chương là giới thiệu, khảo sát hệ thống.
- Phần giữa chương tập trung vào việc phân tích, đặc tả các chức năng hệ
thống
- Phần cuối chương là việc thiết kế hệ thống bao gồm: kiến trúc hệ thống,thiết kế lớp, thiết kế cơ sở dữ liệu và thiết kế mã nguồn chương trình
Chương III: Xây dựng và triển khai hệ thống
- Phần đầu của chương này sẽ tập trung mô tả việc xây dựng hệ thống trên môitrường nào, bằng công cụ gì…
- Phần tiếp theo của chương sẽ mô tả giao diện của chương trình, kết quả kiểmthử và cách thức triển khai, phân phối ứng dụng đến tay người dùng
Chương IV: Tổng kết và đánh giá
- Chương này tập trung vào việc đánh giá kết quả đạt được, đưa ra phương
hướng phát triển cho hệ thống sau khi kết thúc đồ án và phần kết luận
Trang 6LỜI NÓI ĐẦU
Ngày nay cùng với sự phát triển của ngành CNTT, các thiết bị di động nhưSmartPhone cũng phát triển khá nhanh chóng, đa dạng với sự cạnh tranh củanhiều hãng sản xuất nhằm mang lại những sản phẩm tốt nhất đến tay người tiêudùng Càng ngày càng có nhiều người trên thế giới sở hữu những chiếcSmartPhone để phục vụ cho công việc vàcho giải trí như xem mail, chơi game,nghe nhạc, xem phim, xem TV trực tuyến Và trong số đó, việc dùng nhữngchiếc SmartPhone như vậy để xem TV trực tuyến là một nhu cầu rất lớn củangười dùng
Từ nhu cầu trên, và mong muốn mang lại một sản phẩm có ý nghĩa và cótính ứng dụng cao, đã dẫn em đến ý tưởng xây dựng một chương trình giúp ngườidùng có thể xem TV trực tuyến trên chiếc SmartPhone của mình iPhone, mộtchiếc SmartPhone nổi tiếngđã mang lại những cơn sốt thị trường đã tạo ra sựthành công lớn cho Apple, đã và đang chiếm được sự quan tâm, yêu mến của rấtnhiều người sử dụng, và chắc rằng, trong tương lai thì số lượng người sở hữuchiếc SmartPhone đình đám ấy sẽ còn tăng mạnh
Với những lý do trên, em quyết định chọn đồ án tốt nghiệp của mình là
“Nghiên cứu và phát triển ứng dụng xem truyền hình trực tuyến trên nền
iOS”, ứng dụng được lấy tên là “VietTV” Mỗi người sử dụng, với chiếc iPhonetrên tay, chỉ với yêu cầu có kết nối internet, là có thể xem các kênh TV trực tuyến
để đáp ứng nhu cầu giải trí và cập nhật tin tức của bản thân
6
Trang 7MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 4
LỜI NÓI ĐẦU 5
DANH MỤC BẢNG 8
DANH MỤC HÌNH VẼ 9
DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ 10
PHẦN I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 12
1.1 Tổng quan 12
1.1.1 Các vấn đề, khó khăn hiện tại 12
1.1.2 Mục tiêu cần đạt được 12
1.1.3 Lựa chọn và định hướng thiết kế 13
1.2 Các phần cứng sử dụng trong hệ thống 13
1.2.1 Camera 13
1.2.2 Máy tính trung tâm và hệ điều hành 13
1.3 Các công cụ để tích hợp 14
1.3.1 ssh, công cụ đăng nhập từ xa 14
1.3.2 VLC, phần mềm xem phim và stream 14
1.3.3 iptables, công cụ mạng lọc gói tin và NAT 14
1.3.4 lighttpd, dịch vụ máy chủ web không đồng bộ 14
1.3.5 alsamixer, điều khiển card âm thanh 14
1.3.6 memcachedb, cơ sở dữ liệu NoSQL 14
1.4 Một số giao thức streaming 14
1.4.1 RTSP, Real Time Streaming Protocol 14
1.4.2 HTTP 14
1.4.3 MMSH 14
1.5 Ứng dụng các kỹ thuật vào bài toán đã đề ra 14
PHẦN II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 15
2.1 Các chức năng 15
2.2 Usecase 15
2.3 Thuật toán cốt lõi 15
2.4 Thiết kế cơ sở dữ liệu 15
2.5 Các lớp đối tượng 16
2.6 Thiết kế giao diện/layout 16
2.7 Mô hình tổng thể các thiết bị trong hệ thống 16
Trang 82.8 Các giao thức 17
2.9 Mô hình tích hợp phần cứng/phần mềm trong hệ thống 17
PHẦN III: CÀI ĐẶT VÀ TRIỂN KHAI GIẢI PHÁP 18
3.1 Tính năng 1 18
3.2 Tính năng 2 18
3.3 Giao diện 1 18
3.4 Giao diện 2 18
PHẦN IV: KẾT LUẬN 19
TÀI LIỆU THAM KHẢO 20
PHỤ LỤC 21
PH‚ L‚C 1: Chương trình HelleWord trên Xcode 21
PH‚ L‚C 2: Qui định chi tiết về đồ án tốt nghiệp 21
8
Trang 9DANH MỤC BẢNG
Bảng 1: bảng user 15
Trang 10DANH MỤC HÌNH VẼ
Hình 1: Sơ đồ quan hệ thực thể 15
Hình 1:… 16
Hình 2:… 17
Hình 3:… 17
Hình 4: 18
Hình 5: Tích hợp hệ thống trên thiết bị 19
Hình 6: Tích hợp hệ thống phía người xem để thu âm thanh và gửi tới thiết bị 19
10
Trang 11DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ
Số thứ tự Từ viết tắt Ý nghĩa
2 OS Operating System – Hệ điều hành
3 SDK Software Development Kit – Bộ công cụ
phát triển phần mềm
Trang 12Các lưu ý khác trong quá trình viết đồ án
- Hạn chế dùng đại từ nhân xưng trong quá trình viết Ví dụ:
o Không nên: “em đã viết chương trình trong 15 tuần” “Bạn bấm vào nút Select”
o Nên: “chương trình được phát triển
trong 15 tuần” “Bấm vào nút Select”.
- Nếu muốn đưa một đoạn source code vào trong tài
liệu, hãy sử dụng Style CommandLine (đã đính
kèm trong doc template) để phân tách rõ ràng, đâu
là phần giải thích , đâu là phần source Ví dụ:
Đây là đoạn lệnh để xem thư mục hiện hành
C:\dir
-12
Trang 13PHẦN I: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
- Tối đa 15 trang
- Trình bày chi tiết về nhiệm vụ (đề tài) cần thực hiện trong khuôn khổ ĐATN (mô
tả bài toán, các vấn đề cần giải quyết);
- Trình bày định hướng giải quyết các vấn đề đặt ra;
- Giới thiệu tóm tắt về cơ sở lý thuyết, công nghệ, kỹ thuật, công cụ được lựa chọn
để giải quyết các vấn đề đặt ra;
1.1 Tổng quan
1.1.1 Các vấn đề, khó khăn hiện tại
Nêu nhu cầu, thực tế, bất cập
- Quản lý khó
- Thủ công, giấy tờ
Hãy tưởng tượng rằng, đây chính là các nội dung tóm tắt việc khảo sát số liệu ở khách hàng.Vì vậy, nó mang tín phí kỹ thuật, nặng tính mô tả Bạn sử dụng thông tin này để thuyết phục khách hàng thấy “Ông có rất nhiều vấn đề nguy hiểm đầy, không cải tiến nhanh thì toi chắc”.
1.1.2 Mục tiêu cần đạt được
Nếu mong đợi, mục tiêu thương mại (mang tính phi kỹ thuật) của dự án Đây chính là mục tiêu ứng dụng, giúp ích cho đời của dự án.
- Giảm thời gian xử lý
- An toàn dữ liệu, toàn vẹn thông tin
- Mang phong cách của chủ sở hữu
Hãy tưởng tượng rằng, đây chính là các nội dung sẽ đựơc dùng để làm tờ rơi, brochure cho sản phẩm, là phần thông tin dễ hiểu mà các nhân viên bán hàng sẽ phải học thuộc lòng để giới thiệu với khách hàng Khách hàng không biết C#, không hiểu PHP, càng chẳng hiều gì về SOAP hay DB, vì vậy ở mục này, phải nhìn nhận bài toán dưới góc độ đời thường, phân tích nó trên quan điểm ứng dụng Khách hàng phải thấy được “Nếu tôi mua sản phẩm của anh, tôi sẽ thu đựơc lợi ích gì?”
Trang 141.1.3 Lựa chọn và định hướng thiết kế
Phân tích bài toán thực tế với các yếu tố phi kỹ thuật, đề biến đổi trở thành bài toán kỹ thuật Ví dụ
- Giảm thời gian xử lý sử dụng kết nối mạng, phần mềm tính toán
- An toàn dữ liệu, toàn vẹn thông tin kiểm tra ngay dữ liệu nhập vào có hợp
Người làm kỹ thuật cần có kiến thức rộng (không cần sâu) ở mục này, để có thể nhận thức đươc rằng, vấn đề khó khăn đó thì cần dùng cái gì để xử lý, cái gì đã
có sẵn để sử dụng luôn, cái gì cấn lập trình, cái gì cần cấu hình, cài gì mình có
mà không ai khác có “Biết nhiều để chém gió chính là mục này”.
Thông tin ở mục này giống như thông tin mà các pre sale sử dụng để thuyết minh cho khách hàng thấy câu trả lời thứ 3 “Ông có vấn đề rồi nhé, ông biết mình cần
gì rồi nhé, và chỉ tôi mới có sản phẩm mà ông đang cần.”
1.2 Các phần cứng sử dụng trong hệ thống
1.2.1 Camera
- camera IP
- camera Analog
1.2.2 Máy tính trung tâm và hệ điều hành
- Sử dụng các máy tính nhúng với tốc độ cỡ 1GHz và Ram 500M Tuy nhiêntrong đồ án này, tạm thời sử dụng máy tính đề bàn để thay thế
- Hệ điều hành Ubuntu, có nhiều driver, nhiều công cụ hỗ trợ, tích hợp hệ thốngnhanh và lập trình shell trên linux rất mạnh
14
Trang 151.3 Các công cụ để tích hợp
1.3.1 ssh, công cụ đăng nhập từ xa
1.3.2 VLC, phần mềm xem phim và stream
1.3.3 iptables, công cụ mạng lọc gói tin và NAT
1.3.4 lighttpd, dịch vụ máy chủ web không đồng bộ
1.3.5 alsamixer, điều khiển card âm thanh
1.3.6 memcachedb, cơ sở dữ liệu NoSQL
1.4 Một số giao thức streaming
1.4.1 RTSP, Real Time Streaming Protocol
1.4.2 HTTP
1.4.3 MMSH
1.5 Ứng dụng các kỹ thuật vào bài toán đã đề ra
Trong phần này, cần nêu qua một chút để thấy các phần mềm, opensource trên
sẽ được ứng dụng vào dự án như thế nào, đủ để người đọc hiểu ra vai trò của chúng trong dự án.
Trang 16companies
idnamedescriptiondomain
plants
idnameaddresssdescriptioncompany_id
PHẦN II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
- Tổng của phần 2 (thiết kế) và phần 3(triển khai) từ 15~ 45 trang.
- Trình bày chi tiết kết quả phân tích, thiết kế hệ thống (giải pháp
- - Phần 2 là nội dung quan trọng nhất của ĐATN, là căn cứ chính để đánh giá kết quả khi sinh viên bảo vệ trước Hội đồng chấm ĐATN
- Trong trường hợp sinh viên thực hiện ĐATN dựa trên các hệ thống đã có – bao gồm các phần mềm nguồn mở - cần trình bày rõ ràng những đóng góp mới của sinh viên)
2.1 Các chức năng
Biểu đồ phân rã chức năng
2.2 Usecase
Các Usecase
2.3 Thuật toán cốt lõi
2.4 Thiết kế cơ sở dữ liệu
Sơ đồ quan hệ thực thể - ERD
Hình 1: Sơ đồ quan hệ thực thể
Đặc tả rõ các bảng dữ liệu có trong cơ sở dữ liệu
Bảng users: Danh sách người sử dụng
Tên trường Kiểu dữ liệu Ghi chú
id VARCHAR(28) ID người dùng (lấy từ uid firebase)
fullname VARCHAR(45) Tên đầy đủ
email VARCHAR(45) Mô tả
16
Trang 17- Sử dụng tính nâng Class Diagram tích hợp trong Visual Studio
2.6 Thiết kế giao diện/layout
Trang 18RTP
HTTP
Người xemHTTP/FTP
Người xem
2.8 Các giao thức
Hình 3:…
2.9 Mô hình tích hợp phần cứng/phần mềm trong hệ thống
Hình 4:…
Firmware Arduino Uno
Ngôn ngữ C Lập trình mạng Lập trình web Giao tiếp I2C, SPI WiFi Điều khiển servo
Vi điều khiển Cảm biến / Servo / Nút bấm
18
Trang 19PHẦN III: CÀI ĐẶT VÀ TRIỂN KHAI GIẢI PHÁP
- Tổng của phần 2 (thiết kế) và phần 3(triển khai) từ 15~ 45 trang.
- Trình bày chi tiết kết quả thực hiện, cài đặt và thử nghiệm hệ thống (giải pháp);
- Đánh giá ưu, nhược điểm và khả năng ứng dụng của hệ thống (giải pháp)(thông qua thử nghiệm thực tế hoặc mô phỏng), so sánh với các sản phẩm cùng loại (nếu có).
Trang 21TÀI LIỆU THAM KHẢO
* Danh mục hội thảo:
3 Troxler, W.L Thermal desorption In Kearney, P and Roberts, T (eds),Pesticide remediation in soils and water Chichester, UK: Wiley, 1998, p.105-128
Trang 22PHỤ LỤC
- tối đa 25 trang
- Các bản thiết kế, mô hình, sơ đồ, listing chương trình… liên quan đến hệ thống đã thực hiện trong khuôn khổ ĐATN (nếu có).
PHỤ LỤC 1: Chương trình HelleWord trên Xcode
Bất cứ ai đã từng học lập trình thì đều biết rằng HelloWold là chương trình kinhđiển trong ngành IT, bất cứ ngôn ngữ lập trình nào thì HelloWorld cũng là chươngtrình demo đầu tiên mà mỗi lâ •p trình viên viết Chúng ta cũng sẽ bắt đầu bằngnhững gì được cho là nên phải bắt đầu từ đó Để lập trình iPhone, thì mỗi người họcphải có một số hiểu biết nhất định về ngôn ngữ Objective-C Yêu cầu để lâ •p trìnhđược là phải cài đă •t iPhone SDK và Xcode IDE
PHỤ LỤC 2: Qui định chi tiết về đồ án tốt nghiệp
22