Đồ án Điều khiển thiết bị điện qua mạng LAN dùng kit Raspberry Pi (Phần 1)

pdf 23 trang phuongnguyen 3410
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Điều khiển thiết bị điện qua mạng LAN dùng kit Raspberry Pi (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_dieu_khien_thiet_bi_dien_qua_mang_lan_dung_kit_raspber.pdf

Nội dung text: Đồ án Điều khiển thiết bị điện qua mạng LAN dùng kit Raspberry Pi (Phần 1)

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH ĐIỀU KHIỂN THIẾT BỊ DIỆN QUA MẠNG LAN DÙNG KIT RASPBLERRY PI GVHD: LÊ MINH SVTH: BÙI THỊ PHƯƠNG ANH MSSV: 121109034 S K L 0 0 4 6 2 9 Tp. Hồ Chí Minh, tháng 07 năm 2016
  2. CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc Tp.Hồ Chí Minh, ngày tháng năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên:Bùi Thị PhươngAnh MSSV: 12119034 Ngành: CNKT Máy tính Lớp: 12119CLC Giảng viên hướng dẫn: Lê Minh ĐT: 0963231835 Ngày nhận đề tài: 2/2016 Ngày nộp đề tài: 7/2016 1. Tên đề tài: Điều khiển thiết bị điện qua mạng LAN dùng kit Raspberry Pi. 2. Các số liệu, tài liệu ban đầu: Kit nhúng Raspberry Pi, giao tiếp mạng và lập trình mạng, ngôn ngữ lập trình C#. 3. Nội dung thực hiện đề tài: Lập trình kit nhúng chạy hệ điều hành, lập trình thiết kế phần mềm trên máy tính. Điều khiển thiết bị và đo nhiệt độ cùng giao tiếp mạng. 4. Sản phẩm: Hệ thống gồm máy tính và kit Raspberry Pi giao tiếp với nhau qua môi trường mạng LAN, cùng điều khiển thiết bị và hiển thị kết quả đo nhiệt độ. 4 thiết bị điện được đại diện bởi 4 bóng đèn. TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN
  3. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên Giáo viên hướng dẫn: NHẬN XÉT 1. Về nội dung đề tài & khối lượng thực hiện: 2. Ưu điểm: 3. Khuyết điểm: 4. Đề nghị cho bảo vệ hay không? 5. Đánh giá loại: 6. Điểm: .(Bằng chữ: ) Tp. Hồ Chí Minh, ngày tháng năm 2016 Giáo viên hướng dẫn (Ký & ghi rõ họ tên)
  4. CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh Phúc PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ và tên Sinh viên: MSSV: Ngành: Tên đề tài: Họ và tên giảng viên phản biện: NHẬN XÉT 1. Về nội dung đề tài & khối lượng thực hiện: 2. Ưu điểm: 3. Khuyết điểm: 4. Đề nghị cho bảo vệ hay không? 5. Đánh giá loại: 6. Điểm: .(Bằngchữ: ) Tp. Hồ Chí Minh, ngày tháng năm 2016 Giáo viên phản biện (Ký & ghi rõ họ tên)
  5. LỜI CẢM ƠN Trong thời gian thực hiện đồ án tốt nghiệp đến nay, người nghiên cứu đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô. Với lòng biết ơn sâu sắc, kính xin gửi đến quý Thầy Cô ở Khoa Điện – Điện Tử trường Đại học Sư phạm Kỹ Thuật thành phố Hồ Chí Minh đã cùng với tri thức, tâm huyết để truyền đạt vốn kiến thức quý báu cho người nghiên cứu trong suốt thời gian qua. Người nghiên cứu xin chân thành cảm ơn Thầy Lê Minh đã trực tiếp hướng dẫn, tận tâm truyền đạt kiến thức, kinh nghiệm qua từng buổi học cũng như những buổi báo cáo, thảo luận. Hơn hết, Thầy đã hỗ trợ, góp ý, giúp người nghiên cứu hoàn thiện đề tài, đạt được mục tiêu ban đầu đặt ra. Bước đầu đi vào thực tế, tìm hiểu về lĩnh vực sáng tạo trong nghiên cứu khoa học, kiến thức của người nghiên cứu còn nhiều hạn chế và bỡ ngỡ. Do vậy, không thể tránh khỏi những thiếu sót, rất mong nhận được những ý kiến đóng góp quý báu của Thầy Cô để người nghiên cứu có thể tiếp thu, rút kinh nghiệm cho tương lai. Sau cùng, người nghiên cứu xin kính chúc quý Thầy Cô thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. i
  6. LỜI NÓI ĐẦU Trong vài thập niên gần đây nền kinh tế thế giới đã có những dấu hiệu chuyển mình rõ rệt, các ngành kỹ thuật của các nước có những đột phá vô cùng mạnh mẽ, chuyển dần từ lao động máy móc sang trí tuệ nhân tạo. Để bắt kịp xu hướng chung của thế giới, cùng với sự đi lên của nên kinh tế mở, năng động mang tính thị trường của thế giới, nền khoa học kỹ thuật của nước ta cũng có những bước phát triển nhất định. Một trong những xu hướng phát triển của khoa học kỹ thuật mà nước ta đang hướng tới là tự động hóa, hiện đại hóa. Bên cạnh đó, nhân loại có những bước phát triển vượt bậc về khoa học kỹ thuật, một trong số đó là sự ra đời của các thiết bị bán dẫn. Các IC đó đã giải quyết được nhiều khó khăn trong lĩnh vực công nghệ và đã mở ra một kỷ nguyên mới của công nghệ . Kỷ nguyên "kĩ thuật số”. Ứng dụng to lớn của kỹ thuật số đó là chế tạo ra các vi mạch tích hợp trong các IC có mật độ tích hợp cực lớn như vi xử lý, vi điều khiển. Từ đó phát triển lên các kit nhúng có khả năng lập trình theo chức năng người dùng lập trình cho chúng. Đồng thời, gần đây xuất hiện thuật ngữ “IoTs” (internet of things) đó là xu hướng của tương lai, tất cả kết nối qua internet. Từ ý tưởng trên người nghiên cứu đã thực hiện đề tài điều khiển thiết bị qua mạng Lan sử dụng kit nhúng Raspberry Pi. Trong quá trình thực hiện đề tài không tránh khỏi những sai sót do kiến thức có giới hạn, cũng như tham khảo từ nhiều nguồn tài liệu từ internet, sách, báo Rất mong nhận được sự đóng góp của quý thầy cô cũng như các bạn để đề tài thực hiện thành công và phát triển hơn nữa. Người nghiên cứu xin chân thành cảm ơn!!! Người nghiên cứu đề tài Bùi Thị Phương Anh ii
  7. TÓM TẮT Trong tất cả các lĩnh vực đời sống con người hiện nay đều có sự trợ giúp của máy tính, máy tính ngày càng làm cho công việc của con người trở nên nhẹ nhàng hơn không chỉ nhờ vào tốc độ xử lý mà còn ở khả năng linh động trong các ứng dụng. Không những làm giảm nhẹ gánh nặng cho con người, nâng cao hiệu quả lao động mà máy tính còn giúp con người có những phát minh, sáng chế mới trong nhiều lĩnh vực. Máy tính ngày càng được sử dụng rộng rãi trong các cơ quan, xí nghiệp, trường học, trong các ngành kinh tế và ngay cả trong gia đình. Việc ứng dụng máy vi tính vào kỹ thuật điều khiển đã đem lại những kết quả đầy tính ưu việt. Các thiết bị, hệ thống đo lường và điều khiển ghép nối với máy tính có độ chính xác cao, thời gian thu thập dữ liệu ngắn. Ngoài ra, máy tính còn có giao diện trên màn hình, rất thuận tiện cho người sử dụng. Trong các lĩnh vực công nghiệp và điều khiển, việc kết nối máy tính với các thiết bị ngoại vi ngày càng trở nên phổ biến. Máy tính được ứng dụng ở hầu hết trong các lĩnh vực trong đó có điều khiển và đo lường, kết hợp với sự phát triển không ngừng của các hệ thống mạng càng làm tăng tính năng linh động của các ứng dụng đòi hỏi trao đổi thông tin từ xa. Vì mục tiêu hiện đại hóa ngày càng phát triển, người nghiên cứu đã chọn đề tài đồ án về điều khiển thiết bị điện qua mạng Lan dùng kit Raspberry Pi. Hệ thống tổng quan của đề tài gồm hai thành phần chính là máy tính (client) và kit Raspberry Pi(server) trong quá trình giao tiếp, điều khiển qua mạng Lan. Khi hoàn thành có thể điều khiển các thiết bị điện trong nhà thông qua mạng Lan, tương tác bằng tay qua nút nhấn, kiểm soát nhiệt độ phòng; hiển thị trạng thái hoạt động của các thiết bị trên giao diện máy tính. Khi hệ thống thành công và được áp dụng rộng rãi thì sẽ rất hữu ích cho đời sống hằng ngày. Giúp cho đất nước ngày càng phát triển. iii
  8. MỤC LỤC LỜI CẢM ƠN i LỜI NÓI ĐẦU ii TÓM TẮT iii MỤC LỤC vi DANH MỤC HÌNH ẢNH ix DANH MỤC BẢNG xi CÁC TỪ VIẾT TẮT xii Chương 1 TỔNG QUAN 1 1.1.Giới thiệu tình hình nghiên cứu hiện nay 1 1.2.Tính cấp thiết của đề tài 2 1.3.Mục tiêu nghiên cứu 2 1.4.Nhiệm vụ nghiên cứu 3 1.5.Đối tượng và phạm vi nghiên cứu 3 1.6.Phương pháp nghiên cứu 3 1.7.Bố cục của đồ án 4 Chương 2 CƠ SỞ LÝ THUYẾT 5 2.1. Lập trình giao tiếp mạng 5 2.1.1. Giới thiệu về socket 5 2.1.2. Phân loại Socket 7 2.1.3. Lập trình TCP Socket dùng lớp Socket 8 2.1.4. Họ giao thức TCP/IP 10 2.1.4.1. Tầng ứng dụng (Application Layer) 11 2.1.4.2. Tầng Giao Vận (Transport Layer) 11 2.1.4.3. Tầng Internet (Internet Layer) 16 2.1.4.4. Tầng giao tiếp mạng 18 vi
  9. 2.1.5. Phương thức hoạt động của bộ giao thức TCP/IP 18 2.2. Kit Raspberry Pi 20 2.2.1. Sơ lược về kit Rasperry Pi 20 2.2.2. Lý do chọn kit Rasperry Pi 22 2.2.3. Các thành phần chính của kit Raspberry Pi 22 2.2.4. Yêu cầu bộ nguồn dành cho kit Raspberry Pi 25 2.2.5. Hệ điều hành được cài đặt cho kit Raspberry Pi trong đề tài 26 2.3. IC 18B20 26 Chương 3 THIẾT KẾ VÀ THI CÔNG 31 3.1. Mô hình hệ thống 31 3.2. Board điều khiển trung tâm 31 3.3. Sơ đồ khối 32 3.3.1. Thiết kế các khối 33 3.3.2. Chương trình xử lý ở board trung tâm 36 3.4. Phần mềm trên máy tính 41 3.4.1. Nhiệm vụ của phần mềm trên máy tính 41 3.4.2. Lưu đồ giải thuật chương trình trên máy tính 41 Chương 4 KẾT QUẢ 47 4.1. Mô hình toàn hệ thống 47 4.2. Hoạt động của hệ thống 48 CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54 5.1. Kết luận 54 5.2. Hướng phát triển 54 TÀI LIỆU THAM KHẢO 56 PHỤ LỤC 57 vii
  10. DANH MỤC HÌNH ẢNH Hình 2. 1 Hình minh họa socket 5 Hình 2. 2 Các giao thức TCP/IP phổ biến 6 Hình 2. 3 Phân loại socket 7 Hình 2. 4 Các bước bắt tay của giao thức TCP 9 Hình 2. 5 Gửi, nhận dữ liệu với giao thức TCP 9 Hình 2. 6 Cấu trúc họ giao thức TCP/IP 11 Hình 2. 7 Cấu trúc gói TCP 12 Hình 2. 8 Lưu đồ trạng thái kết nối TCP 14 Hình 2. 9 Cấu trúc gói tin IP 16 Hình 2. 10 Quá trình đóng mở dữ liệu trong gói TCP/IP 18 Hình 2. 11 Cấu trúc dữ liệu trong TCP/IP 19 Hình 2. 12 Chi tiết kit nhúng Raspberry Pi trên thực tế 20 Hình 2. 13 Kit nhúng Raspberry Pi Model B 20 Hình 2. 14 Kit Raspberry Pi 23 Hình 2. 15 GPIO Model B+ 25 Hình 2. 16 Cấu trúc của IC DS18B20 27 Hình 2. 17 Nguồn cung cấp theo kiểu Parasite cho DS18B20 29 Hình 2. 18 Nguồn cung cấp cho DS18B20 với nguồn cung cấp ngoài 29 Hình 2. 19 Kết nối IC 18B20 với kit Raspberry Pi 30 Hình 3. 1 Mô hình hệ thống 31 Hình 3. 2 Sơ đồ khối board trung tâm 32 Hình 3. 3 Kết nối kit Raspberry Pi với ngoại vi 33 Hình 3. 4 Sơ đồ nguyên lý hệ thống 34 Hình 3. 5 Khối module 4 relay 35 Hình 3. 6 Sơ đồ chân của khối module 4 relay 35 Hình 3. 7 Lưu đồ chương trình trên kit Raspberry Pi 36 Hình 3. 8 Lưu đồ thread gửi dữ liệu 37 ix
  11. Hình 3. 9 Lưu đồ thread nhận dữ liệu 38 Hình 3. 10 Thread điều khiển bằng tay 39 Hình 3. 11 Lưu đồ thread nhiệt độ 40 Hình 3. 12 Lưu đồ chương trình giải thuật trên máy tính 42 Hình 3. 13 Lưu đồ thread nhận dữ liệu trên máy tính 43 Hình 3. 14 Lưu đồ thread gửi dữ liệu trên máy tính 44 Hình 3. 15 Lưu đồ điều khiển bằng tay 45 Hình 4. 1 Mô hình toàn hệ thống 47 Hình 4. 2 Board trung tâm cùng 2 khối input, output 47 Hình 4. 3 Chương trình đang chạy trên kit Raspberry Pi và máy tính 48 Hình 4. 4 Bắt đầu chạy chương trình trên kit RPi 49 Hình 4. 5 Khi nhấn nút kết nối 49 Hình 4. 6 Trạng thái ban đầu của các thiết bị 50 Hình 4. 7 Click bật thiết bị 1 50 Hình 4. 8 Trạng thái sau khi click BẬT thiết bị 1 51 Hình 4. 9 Bốn thiết bị điện đang bật 51 Hình 4. 10 Bốn thiết bị đang trong trạng thái tắt 52 Hình 4. 11 Điều khiển bật thiết bị 3 từ khối input 53 Hình 4. 12 Điều khiển tắt thiết bị 3 từ khối input 53 x
  12. DANH MỤC BẢNG Bảng 2. 1 Một số port đã được đăng ký trong giao thức TCP 6 Bảng 2. 2 Bảng biểu diễn mối quan hệ giữa nhiệt độ và dữ liệu 28 Bảng 3. 1 So sánh kit Raspberry Pi và Arduino 34 xi
  13. CÁC TỪ VIẾT TẮT ACK Acknowledgment Báo nhận tín hiệu DNS Domain Name System Hệ thống tên miền FTP File Transfer Protocol Giao thức truyền tập tin HDMI High-DefinitionMulthimedia Interface Giao diện đa phương tiện độ phân giải cao HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn bản I2C Inter-Integrated Circuit Mạch tích hợp liên IMAP Internet Message Access Protocol Giao thức truy cập thông báo Internet I-O Input-Output Cổng vào - cổng ra IoT Internet of Things Mạng lưới thiết bị internet IP Internet Protocol Giao thức Liên mạng LAN Local Area Network Mạng máy tính cục bộ POP3 Post Office Protocol Giao thức bưu điện tử RPi Raspberry Pi Kit nhúng raspberry pi SMTP Simple Mail Transfer Protocol Giao thức truyền tải thư tín đơn giản TCP Transmission Control Protocol Giao thức điều khiển truyền vận UDP User Datagram Protocol Giao thức gói dữ liệu người dùng xii
  14. Chương 1 TỔNG QUAN 1.1.Giới thiệu tình hình nghiên cứu hiện nay Tình hình nghiên cứu của đề tài được thể hiện qua việc theo dõi những ảnh hưởng đến từ lĩnh vực khoa học công nghệ tiên tiến trên thế giới và tính ưu việt của mô hình hệ thống được nghiên cứu trong đề tài: Ngày nay cùng với sự tiến bộ của khoa học kỹ thuật, các thiết bị điện tử ra đời ngày càng nhiều về chủng loại cũng như tính năng sử dụng. Bên cạnh đó nhu cầu sử dụng các thiết bị một cách tự động ngày càng cao, con người ngày càng muốn có nhiều thiết bị giải trí cũng như các thiết bị sinh hoạt với kỹ thuật và công nghệ ngày càng cao. Có thể ở Việt nam chưa phát triển mạnh mẽ trong lĩnh này nhưng hiện nay ở trên thế giới, nhất là các quốc gia thuộc Châu Âu hay Mỹ thì mô hình ngôi nhà tự động được điều khiển từ xa đã phát triển rất mạnh mẽ. Cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử mà trong đó là kỹ thuật tự động điều khiển đóng vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp, cung cấp thông tin Như chúng ta cũng đã biết, gần như các thiết bị tự động trong nhà máy, trong đời sống của các gia đình ngày nay đều hoạt động độc lập với nhau, mỗi thiết bị có một quy trình sử dụng khác nhau tuỳ thuộc vào sự thiết lập, cài đặt của người sử dụng. Chúng chưa có một sự liên kết nào với nhau về mặt dữ liệu. Nhưng đối với hệ thống điều khiển thiết bị qua mạng LAN thì lại khác. Ở đây, các thiết bị điều khiển được kết nối với nhau thành một hệ thống hoàn chỉnh qua một một thiết bị trung tâm và có thể giao tiếp với nhau về mặt dữ liệu. Điển hình của một hệ thống điều khiển gồm các thiết bị đơn giản như bóng đèn, quạt máy, lò sưởi đến các thiết bị tinh vi, phức tạp như tivi, máy giặt, hệ thống báo động Nó hoạt động như một hệ thống thông minh. Nghĩa là tất cả các thiết bị này có thể giao tiếp với nhau về mặt dữ liệu thông qua một 1
  15. đầu não trung tâm. Đầu não trung tâm ở đây có thể là một máy vi tính hoàn chỉnh hoặc có thể là một bộ xử lí đã được lập trình sẵn tất cả các chương trình điều khiển. Bình thường, các thiết bị có thể được điều khiển từ xa thông qua mạng LAN. Bên cạnh đó hệ thống cũng gửi thông báo cho người điều khiển biết nhiệt độ trong phòng hiện tại là bao nhiêu. 1.2.Tính cấp thiết của đề tài Sự cấp thiết của đề tài được thể hiện qua lý do chọn đề tài và điểm nổi bật có trong đề tài được chọn theo ý kiến của người nghiên cứu: Công nghệ ngày càng phát triển nhằm phục vụ nhu cầu cuộc sống của con người. Việc phát triển Internet cũng như xu hướng IoT (Internet of Things) nên việc giao tiếp qua mạng Internet đó là xu hướng phổ biến hiện tại cũng như tương lai. Chính vì thế việc phát triển các thiết bị có khả năng giao tiếp qua internet là rất cần thiết. Đề tài có tính ứng dụng thực tế khá tốt, mặc dù còn đơn giản nhưng nó là cơ sở để phát triển lên các ứng dụng khác tốt hơn trong đời sống. Board Raspberry Pi là một máy tính nhỏ gọn với tính ưu việc, cộng đồng hỗ trợ rất lớn nên việc thực hiện đề tài là hoàn toàn khả thi và có tính ứng dụng cao. 1.3.Mục tiêu nghiên cứu Đề tài được thực hiện nhằm mục tiêu thiết kế, thi công hệ thống “điều khiển thiết bị điện qua mạng LAN dùng kit Raspberry Pi”: Điều khiển đóng ngắt 4 thiết bị điện thông qua board điều khiển hoặc chương trình điều khiển trên máy tính. Đo và hiển thị được thông tin nhiệt độ hiện tại ở chương trình trên máy tính và kit Raspberry Pi. Board điều khiển kết nối, giao tiếp với máy tính qua môi trường mạng LAN. 2
  16. Phần mềm trên máy tính có thể thu thập và giám sát trạng thái, điều khiển các thiết bị điện; hiển thị thông số nhiệt độ và thông tin trạng thái(tắt/mở) của các thiết bị. 1.4.Nhiệm vụ nghiên cứu Để thực hiện mục tiêu đặt ra, các nhiệm vụ cụ thể cần được giải quyết trong quá trình thực hiện đề tài như sau: Giao tiếp mạng và lập trình giao tiếp mạng giữa thiết bị phần cứng và máy tính. Lập trình thiết bị phần cứng: kit nhúng Raspberry Pi có chạy hệ điều hành. Lập trình phần mềm trên máy tính bằng ngôn ngữ C#. 1.5.Đối tượng và phạm vi nghiên cứu Từ các nhiệm vụ đã đặt ra, các đối tượng phù hợp cụ thể cần được nghiên cứu trong đề tài này là: Kit nhúng Raspberry Pi: + Cài đặt hệ điều hành cho kit. + Viết code và biên dịch ứng dụng bằng ngôn ngữ Python. + Lập trình giao tiếp mạng. + Lập trình giao tiếp I-O. Các thiết bị ngoại vi: relay, cảm biến nhiệt độ DS18B20,các nút nhấn, Ngôn ngữ C#: lập trình giao tiếp mạng_lập trình TCP socket. 1.6.Phương pháp nghiên cứu Trong quá trình thực hiện đề tài, người nghiên cứu đã thực hiện các phương pháp sau để đạt yêu cầu đề ra: Tham khảo các tài liệu lý thuyết liên quan tới việc thực hiện đề tài. Khảo sát và tìm hiểu các ý tưởng, ứng dụng tương tự . Thử nghiệm thực tế. Tham khảo ý kiến thầy hướng dẫn. 3
  17. Tìm hiểu thêm thông tin cần thiết trên Internet. 1.7.Bố cục của đồ án Đồ án được chia làm 5 chương với nội dung chính của từng chương như sau: Chương 1: Tổng quan. Chương này trình bày sơ lược về tình hình nghiên cứu hiện nay, tính cấp thiết cùng lý do chọn đề tài, phương pháp, mục tiêu , đối thượng và phạm vi nghiên cứu. Chương 2: Cơ sở lý thuyết. Nội dung chủ yếu của chương này là trình bày lý thuyết về lập trình mạng, kit Raspberry Pi và ngôn ngữ lập trình liên quan (Python). Chương 3: Thiết kế và thi công. Trong chương này, người nghiên cứu sẽ trình bày về mô hình của hệ thống; chức năng, sơ đồ khối và các chương trình xử lý trên board trung tâm; nhiệm vụ của phần mềm và lưu giải thuật cùng các phần mềm trên máy tính. Chương 4: Kết quả. Kết quả thực hiện đồ án sẽ được thể hiện trong chương này, bao gồm mô hình và hoạt động của toàn hệ thống. Chương 5: Kết luận và hướng phát triển. Chương này mang tính tổng kết cho toàn bộ quá trình thực hiện đồ án; nhận xét ưu, nhược điểm của hệ thống và đưa ra định hướng mở cho đề tài thực hiện. 4
  18. Chương 2 CƠ SỞ LÝ THUYẾT 2.1. Lập trình giao tiếp mạng 2.1.1. Giới thiệu về socket Góc độ mạng: Socket là 1 trong 2 điểm cuối của đường kết nối 2 chiều giữa 2 chương trình thực thi trên mạng. Hình 2. 1 Hình minh họa socket Góc độ người lập trình: Socket là một giao diện lập trình ứng dụng (API) mạng. Thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa 2 máy sử dụng các giao thức mức thấp là TCP, UDP, Socket là sự trừu tượng hóa ở mức cao, có thể tưởng tượng nó như là thiết bị truyền thông hai chiều gửi-nhận dữ liệu giữa hai máy tính với nhau. Các socket phân biệt với nhau bằng địa chỉ được gọi là địa chỉ cổng (Port Number). Địa chỉ cổng là một con số 16 bit (trong phạm vi 1-65535), trong đó các địa chỉ : Từ 1-1023 là các port đã đăng ký (well-known port). Các địa chỉ còn lại là các port tự do (từ 1024-49151: cổng phải đăng kí (registered port); từ 49152-65535:cổng dùng riêng (private port) ). Một số port đã đăng ký và được liệt kê ở bảng dưới: 5
  19. Port Number Protocol 21 FTP 23 Telnet 25 SMTP (email, outgoing) 53 DNS 80 HTTP(Web) 110 POP3(email, incoming) 143 IMAP (email, incoming) Bảng 2. 1 Một số port đã được đăng ký trong giao thức TCP TCP và UDP là hai giao thức hoạt động ở tầng giao vận trong mô hình TCP/IP, có nhiệm vụ truyền nhận dữ liệu đầu cuối cho ứng dụng. Hình 2. 2 Các giao thức TCP/IP phổ biến TCP cung cấp dịch vụ tin cậy và theo hướng kết nối: + Có thiết lập kết nối giữa bên truyền và bên nhận. + Có kiểm soát tắc nghẽn và điều khiển lưu lượng: có bộ đệm truyền/nhận dữ liệu. + Đảm bảo truyền/nhận đúng dữ liệu. 6
  20. UDP cung cấp dịch vụ không dây tin cậy và không hướng kết nối: + Không thiết lập kết nối. + Không kiểm soát tắc nghẽn. + Không đảm bảo truyền nhận đúng. 2.1.2. Phân loại Socket Socket được phân ra thành các loại như sau: + Socket hướng kết nối (TCP Socket) + Socket không hướng kết nối (UDP Socket) + Raw Socket Hình 2. 3 Phân loại socket Đặc điểm Socket hướng kết nối: + Có một đường kết nối ảo giữa hai tiến trình. + Một trong hai tiến trình phải đợi tiến trình kia yêu cầu kết nối. + Có thể sử dụng để liên lạc theo mô hình Client/server + Trong mô hình Client/Server lắng nghe và chấp nhận một yêu cầu kết nối + Mỗi thông điệp gửi đều có xác nhận trở về. + Các gói tin chuyển đi tuần tự. 7
  21. Đặc điểm của Socket không hướng kết nối: + Hai tiến trình liên lạc với nhau không kết nối trực tiếp. + Thông điệp gửi đi phải kèm theo địa chỉ của người nhận. + Thông điệp có thể gửi nhiều lần. + Người gửi không chắc chắn thông điệp tới tay người nhận. + Thông điệp gửi sau có thể đến đích trước thông điệp gửi trước đó. Số hiệu của Socket: + Để có thể thực hiện các cuộc giao tiếp, một trong hai quá trình phải công bố số hiệu cổng của socket mà mình sử dụng. + Mỗi cổng giao tiếp thể hiện một địa chỉ xác định trong hệ thống. Khi quá trình được gán một số hiệu cổng, nó có thể nhận dữ liệu gửi đến cổng này từ các quá trình khác. + Quá trình còn lại cũng yêu cầu tạo ra một socket. 2.1.3. Lập trình TCP Socket dùng lớp Socket Khi hai ứng dụng khởi tạo một phiên làm việc sử dụng dịch vụ TCP, quá trình làm việc bao gồm ba giai đoạn: Giai đoạn 1: bắt tay kết nối. Giai đoạn 2: truyền, nhận dữ liệu. Giai đoạn 3: đóng kết nối. Mỗi giai đoạn yêu cầu các bit cờ được thiết lập trong một thứ tự nào đó. Quá trình bắt tay kết nối (3 cái bắt tay) yêu cầu 3 bước để thành lập kết nối: Thiết bị gửi gửi cờ SYN cho biết bắt đầu phiên làm việc. Thiết bị nhận gửi cả cờ SYN và ACK trong cùng một gói tin cho biết nó chấp nhận bắt đầu phiên làm việc. Thiết bị gửi gửi cờ ACK cho biết phiên làm việc đã mở và sẵn sàng cho việc gửi và nhận các gói tin. 8
  22. Sau khi phiên làm việc được thành lập, cờ ACK sẽ được thiết lập trong các gói tin. Để đóng phiên làm việc, một quá trình bắt tay khác được thực hiện dùng cờ FIN: Thiết bị khởi đầu đóng kết nối gửi cờ FIN. Thiết bị bên kia gửi cờ FIN và ACK trong cùng một gói tin cho biết nó chấp nhận đóng kết nối. Thiết bị khởi đầu đóng kết nối gửi cờ ACK để đóng kết nối. Hình 2. 4 Các bước bắt tay của giao thức TCP Khi lập trình cho các ứng dụng sử dụng TCP socket, phải thực hiện đầy đủ 3 giai đoạn như trên. Thứ tự gọi các phương thức trong lập trình như sau: Hình 2. 5 Gửi, nhận dữ liệu với giao thức TCP + Phía máy server sẽ tiến hành lần lượt các thao tác: 9