Điều khiển thiết bị điện qua internet thông qua trang web
Trang 1LỜI NÓI ĐẦU
Sự tiến bộ của nền khoa học công nghệ thông tin đã góp phần làm cho đời sống xã hội ngày càng phong phú Nó mang lại siêu lợi nhuận cho nền kinh tế của mỗi quốc gia và toàn cầu, đồng thời mang lại nền văn minh cho nhân loại chưa từng có từ trước đến nay Việt Nam là một nước đang trên đà phát triển và hội nhập, những ảnh hưởng tích cực và hệ quả ưu việt do công nghệ thông tin mang lại cho nền kinh tế và đời sống xã hội khoảng vài chục năm gần đây đã chứng minh điều này Hệ thống mạng internet là một phát triển vượt bậc của ngành công nghệ thông tin Hiện nay nó là hệ thống mạng được liên kết toàn cầu Nhờ đó mà ta có thể tra cứu, cập nhật thông tin, liên lạc, trao đổi dữ liệu bất cứ nơi nào có internet Hệ thống mạng internet hiện nay không chỉ còn bị giới hạn đường truyền nhờ sự phát triển của công nghệ truyền tín hiệu cáp quang và vệ tinh Ngoài ra, hệ thống mạng Internet hiên nay không còn bó hẹp ở những nơi có cáp truyền dẫn, mà mở rộng ra khắp nơi nhờ thông qua dịch vụ 3G Ở Việt Nam liên tục trong những năm qua, internet đã phát triển nhanh chóng với hơn 30 triệu người dùng internet trên tổng số gần 90 triệu người dân Sự phát triển bùng nổ của lĩnh vực viễn thông và CNTT của Việt Nam trong vài năm trở lại đây cũng cho thấy lĩnh vực này là một hướng đi mới, đầy triển vọng tạo nên sự đột phá để đưa nền kinh tế của Việt Nam vươn ra thế giới Lĩnh vực điều khiển từ xa tại Việt Nam tuy đã phát triển mạnh nhưng ít có hệ thống điều khiển qua internet Chủ yếu là điều khiển qua sóng điện từ với tần số thấp, khoảng cách không xa Điều khiển từ xa qua internet cho phép khoảng cách không gian không bị giới hạn Có thể điều khiển thông qua máy tính có kết nối internet hay điện thoại di động kết nối 3G, internet không dây Trong nội dung đề tài nay,
em xin trình bày về điều khiển thiết bị điện qua internet thông qua trang web Như một bài nghiên cứu về hệ thống điều khiển này Em xin chân thành cảm ơn Ths Võ Minh Thông đã giúp đỡ em trong suốt quá trình nghiên cứu và thực hiện
NỘI DUNG BÁO CÁO
Trang 3NỘI DUNG
CHƯƠNG I: TỔNG QUAN ĐỀ TÀI
I.1 Giới thiệu đề tài
Hiện nay các đề tài nghiên cứu khoa học đã được nghiên cứu nhiều đề tài trong nhiều lĩnh vực Tuy nhiên đề tài điều khiển thiết bị điện từ xa qua internet thì chưa được áp dụng thực tế Trong các công ty, xưởng sản xuất Thông thường buổi sáng các nhân viên trước khi vào ngày làm việc mới phải đi bật các thiết bị điện hoặc tắt trước khi ra về vào chiều Đối với các nhà xưởng lớn hơn Việc triển khai một phòng điều khiển bao gồm các tủ điện có nhiều công tắc điều khiển của tất cả các thiết bị Như vậy nhân viên không phải bật hay tắt điện vào buổi sáng hay buổi chiều Tuy nhiên sẽ luôn phải có một người trực liên tục ở phòng điều khiển Việc này làm tốn thêm chi phí cho công ty Đối với ngôi nhà của hộ gia đình Những lúc đi làm hoặc đi ra ngoài mà quên tắt đèn điện, bơm nước hay bếp điện Họ
sẽ phải quay về để tắt các thiết bị này đi Việc này gây tốn thời gian và chi phí đi lại Đôi khi còn gây ra tai nạn đáng tiếc như gây cháy do quên tắt bếp điên Các nhân viên trong trường học phải thường xuyên đi tắt điện của từng phòng học sau giờ tan học của mỗi ngày Đó là những bất cập thường hay gặp phải đối với điều khiển thiết bị điện thủ công như hiện nay Việc đưa đề tài điều khiển thiết bị điện từ xa qua internet vào ứng dụng thực tiễn sẽ giải quyết được các vấn đề trên
I.2 Lí do chọn đề tài
Cùng với niềm đam mê công nghệ và mong muốn làm cho cuộc sống trở nên dể dàng
và thuận tiện hơn Sau khi tìm hiểu, thu thập được một số thông tin về mạng Ethernet em quyết định chọn đề tài “ Điều khiển thiết bị điện qua INTERNET” để xây dựng một mô hình có khả năng thu thập và điều khiển dữ liệu từ xa, đáp ứng nhu cầu ứng dụng hiện nay Điều đó làm cho đề tài càng gần với giá trị thực tiễn
I.3 Mục tiêu đề tài
• Tìm hiểu một cách tổng quan về điều thiết bị điện qua internet
• Phân tích, hiểu được các tính năng và vấn đề kỷ thuật của hệ thống
• Nghiên cứu và chế tạo hoặc đưa ra giải pháp để chế tạo thiết bị của hệ thống
điều khiển thiết bị điện từ xa qua internet
• Nghiên cứu lập trình trên Kit Arduino
• Nghiên cứu và tiềm hiểu Ethernet Shield
Trang 5CHƯƠNG II: CƠ SỞ LÍ THUYẾT
II.1 Giới thiệu chung về Arduino
Hình 1: Những thành viên khởi xướng Arduino
Arduino thực sự đã gây sóng gió trên thị trường người dùng DIY (là những người tự chế ra sản phẩm của mình) trên toàn thế giới trong vài năm gần đây, gần giống với những gì Apple đã làm được trên thị trường thiết bị di động Số lượng người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổ thông lên đến đại học
đã làm cho ngay cả những người tạo ra chúng phải ngạc nhiên về mức độ phổ biến
Arduino là gì mà có thể khiến ngay cả những sinh viên và nhà nghiên cứu tại các trường đại học danh tiếng như MIT, Stanford, Carnegie Mellon phải sử dụng, hoặc ngay cả Google cũng muốn hỗ trợ khi cho ra đời bộ kit Arduino Mega ADK dùng để phát triển các ứng dụng Android tương tác với cảm biến và các thiết bị khác? Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm
Trang 6Hình 2: Sự đa dạng của board mạch Arduino
Hiện nay, với cùng với sự phát triển đó là những mạch Arduino liên tục ra đời: Arduino Uno, Arduino Pro, Arduino Micro, Arduino Pro Mini, Arduino Nano, Arduino Mega 250, Arduino Zero, Arduino Due, Arduino Gemma
II.2 Khái quát về Webserver
Hình 3: Khái quát Webserver
Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name Giả sử khi bạn đánh vào thanh Address trên trình duyệt của bạn một dòng http://www.abc.com sau đó gõ phím Enter bạn sẽ gửi một yêu cầu đến một Server có Domain Name là www.abc.com Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của bạn Web service là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng
Trang 7và đưa ra các thông tin người dùng yêu cầu Trước hết, có thể nói rằng ứng dụng cơ bản của Web service là tích hợp các hệ thống và là một trong những hoạt động chính khi phát triển
hệ thống Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp)
II.3 Tổng quan về Ethernet
II.3.1 Ethernet
Hình 4: Minh hoạt kết nối với Internet bằng Rj45
Ethernet là một họ lớn và đa dạng gồm các công nghệ mạng dựa khung dữ liệu (frame-based) dành cho mạng LAN Tên Ethernet xuất phát từ khái niệm Ête trong ngành vật lý học Ethernet định nghĩa một loạt các chuẩn nối dây và phát tín hiệu cho tầng vật lý, hai phương tiện để truy nhập mạng tại phần MAC (điều khiển truy nhập môi trường truyền dẫn) của tầng liên kết dữ liệu, và một định dạng chung cho việc đánh địa chỉ Ethernet đã được chuẩn hóa thành IEEE 802.3 Cấu trúc mạng hình sao, hình thức nối dây cáp xoắn (twisted pair) của Ethernet đã trở thành công nghệ LAN được sử dụng rộng rãi nhất từ thập
kỷ 1990 cho tới nay Trong những năm gần đây, WiFi, dạng LAN không dây đã được chuẩn hóa bởi IEEE 802.11, đã được sử dụng bên cạnh hoặc thay thế cho Ethernet trong nhiều cấu hình mạng
IEEE đã phát triển chuẩn Ethernet trên nhiều công nghệ truyền dẫn khác nhau vì thế
có nhiều loại mạng Ethernet Mỗi mạng được mô tả dựa vào ba nguyên tố: tốc độ, phương thức tín hiệu sử dụng và đặc tuyến đường truyền vật lý
• Các hệ thống Ethernet 10Mb/s
Trang 8• Các hệ thống Ethernet 100Mb/s – Ethernet tốc độ cao (Fast Ethernet ).
• Các hệ thống Giga Ethernet
II.3.2 Giao thức TCP/IP
TCP/IP là viết tắt của Transmission Control Protocol / Internet Protocol (Giao thức Điều Khiển Truyền Thông /Giao thức Internet).Các tầng trong mô hình này là:
• Lớp ứng dụng (Application Layer)
• Lớp giao vận (Transport Layer)
• Lớp liên mạng (Internet Layer)
Hình 5: Mô hình TCP/IP
• Lớp giao tiếp mạng (Network Interface Layer)
II.3.2.1 Lớp ứng dụng ( Application Layer)
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng Được sử dụng để định dạng và trao đổi thông tin người dùng và hệ thống Một số giao thức thông dụng trong tầng này là: HTTP, FTP, SMTP,…Trong phạm vi đồ án, chúng ta sử dụng giao thức HTTP mà cụ thể là xây dựng một Webserver nhúng vào hệ thống
HTTP là giao thức truyền tải siêu văn bản (HyperText Transfer Protocol) HTTP xác định cách các thông điệp được định dạng và truyền tải ra sao và hoạt động của Webserver và các trình duyệt Web Webserver đồng thời cũng là TCPServer, mở sẵn port mặc định dành cho dịch vụ HTTP là TCP80 (ở chế độ listen), sẵn sàng đợi yêu cầu kết nối từ các client Các client sẽ khởi tạo kết nối TCP thông qua port này, sau khi Webserver chấp nhận kết nối, client sẽ gửi một bản tin HTTP (HTTP message) gọi là HTTP request tới server trên kết nối TCP vừa thiết lập Server sẽ trả lời lại bằng một bản tin HTTP khác là HTTP response Bản tin này sẽ chứa nội dung trang Web yêu cầu (được viết bằng ngôn ngữ HTML).Như vậy
Trang 9giao thức HTTP sẽ dựa cơ bản trên các bản tin HTTP, gồm 2 loại là HTTP request và HTTP response.
Giả sử ta truy nhập vào địa chỉ IP của webserver là 192.168.1.10 qua trình duyệt: • Lúc đó, máy tính của chúng ta sẽ gửi đi một bản tin request của giao thức HTTP là HTTP Get thông qua giao thức TCP (với cổng TCP được qui định cho giao thức HTTP là 80) đến địa chỉ webserver trên • Webserver, ở đây chính là vi điều khiển của chúng ta nhận được bản tin này (khi đã đi qua hết các lớp giao thức ethernet, IP, TCP rồi mới đến HTTP) Tại đây vi điều khiển sẽ đọc và phân tích bản tin HTTP request này để biết máy tính đang yêu cầu tải nội dung trang web nào • Sau đó vi điều khiển sẽ lấy nội dung trang web này (được soạn thảo theo ngôn ngữ HTML) chứa trên trên ROM, nó cũng có thể thêm vào trangweb đó một
số thông tin (ví dụ đọc giá trị từ các sensor cảm biến nhiệt độ và đưa vào trong trang web),
và gửi toàn bộ nội dung trang web thông qua giao thức TCP trở lại cho máy tính Nếu nội dung trang web lớn nó có thể được gửi đi trên rất nhiều gói tin, vì mỗi gói tin chỉ chứa tối đa
1460 byte dữ liệu • Máy tính nhận nội dung trang web và trình duyệt sẽ hiển thị lên cho chúng ta thấy Để điều khiển thiết bị kết tới hệ thống từ xa qua web, trên trang web ta có thể thiết kế một nút nhấn chẳng hạn Khi ta nhấn nút này trên trình duyệt, máy tính sẽ gửi đi một bản tin HTTP nữa là HTTP Get Vi điều khiển sẽ nhận bản tin HTTP post này, phân tích
dữ liệu chứa trong đó để có đáp ứng tương ứng (bật tắt bóng đèn) sau đó nó sẽ gửi trả lại lần nữa nội dung trang web đã cập nhật những thay đổi vừa rồi.Trình duyệt sẽ cập nhật nội
dung này lên và ta
Hình 6: Lớp ứng dụng và các Port tương ứng
sẽ thấy được tác động của thao tác điều khiển
Trang 10II.3.2.2 Lớp giao vận (Transport Layer)
Hình 7: Cấu trúc gói TCP
Nhiệm vụ của tầng là thiết lập phiên truyền thông giữa các máy tính và quy định cách truyền dữ liệu Hai giao thức chính trong tầng này gồm UDP (User Datagram Protocol) và TCP (Transmission Control Protocol) Do UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệu một cách tin cậy nên trong phạm vi đồ án chúng ta sử dụng thức TCP Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận
• Số port đích và số port nguồn: để phân biệt các tiến trình ứng dụng đang xảy ra trong máy tính
• Các số sequence và Acknowledgement: số sequence để phân biệt các segment khác nhau trong một dòng dữ liệu, các số Acknowledgement dùng trong cơ chế xác nhận
• Vùng Data offset: chiều dài của Header tính theo đơn vị 32 bit Một số cờ (flags):
URG (Urgent): thiết lập 1 khi có dữ liệu quan trọng cần truyền ngay
ACK: cho biết có số xác nhận nằm trong vùng acknowledgement
PSH (Push): được thiết lập trong trường hợp dữ liệu nên được giao tức thời
RST (Reset): chỉ thị một lỗi sai và hủy bỏ phiên làm việc
SYN (Synchronize): trong các bản tin khởi tạo khi thiết lập một kết nối truyền
dữ liệu
FIN (Finish): dùng đóng 1 phiên làm việc
• Vùng Window: chỉ ra số lượng không gian bộ đệm khả dụng để nhận dữ liệu
• Vùng Checksum: vùng kiểm tra sai cho cả segment
• Vùng Urgent Pointer: chỉ ra chiều dài của dữ liệu urgent
• Vùng Options: xác định kích thước cực đại của 1 segment
II.3.2.3 Lớp Internet ( Internet Layer)
Nằm bên trên tầng truy nhập mạng Tầng này có chức năng gán địa chỉ, đóng gói và định tuyến (Route) dữ liệu 4 giao thức quan trọng nhất trong tầng này gồm:
Trang 11• IP (Internet Protocol): Có chức năng gán địa chỉ cho dữ liệu trước khi truyền và định tuyến chúng tới đích.
• ARP (Address Resolution Protocol): Có chức năng biên dịch địa chỉ IP của máy đích thành địa chỉ MAC
• ICMP (Internet Control Message Protocol): Có chức năng thông báo lỗi trong trường hợp truyền dữ liệu bị hỏng
• IGMP (Internet Group Management Protocol): Có chức năng điều khiển truyền đa hướng (Multicast)
Hình 8: Datagram trong lớp Internet
II.3.2.4 Lớp Network Interface
Tầng giao tiếp mạng liên quan tới việc trao đổi dữ liệu giữa hai trạm thiết bị trong cùng một mạng Giao thức được sử dụng trong phạm vi đồ án là giao thức Ethernet Phần cứng được sử dụng Shield Ethernet giao tiếp qua chuẩn SPI ( Serial Pheripheral Interface ) Trong chồng giao thức TCP/IP, giao thức Ethernet đóng vai trò lớp truy nhập và truyền dẫn Việc gửi và nhận dữ liệu ở lớp Ethernet được thực hiện dựa vào địa chỉ vật lý hay còn gọi là địa chỉ MAC Trong mỗi khung Ethernet đều chứa 2 địa chỉ MAC: một địa chỉ của host gửi
và một địa chỉ của host nhận Khi lớp Ethernet nhận được một khung dữ liệu, trước hết nó
sẽ kiểm tra địa chỉ host nhận xem có phải là địa chỉ của nó không (tức là gửi cho nó), nếu đúng nó sẽ nhận khung này và chuyển đến lớp IP Ngoài ra còn có 1 trường hợp nữa lớp Ethernet sẽ nhận khung là nếu địa chỉ host nhận là địa chỉ broadcast (tức là gửi cho tất cả mọi máy trong mạng LAN), trong trường hợp này frame sẽ được nhận và xử lý.Ngoài việc kiểm tra địa chỉ, trong khung Ethernet còn có 1 trường chứa mã kiểm tra lỗi giúp phát hiện những lỗi xảy ra trong quá trình truyền, các khung bị xác định là có lỗi sẽ bị bỏ qua
Trang 12Hình 9: Cấu trúc gói dữ liệu các lớp trong TCP/IP
II.3.3 Đóng gói và mở gói trong Ethernet TCP/IP
Hình 10: Cấu trúc Header của lớp vật lí
• Lớp vật lý: Chứa 8 bytes để chuẩn bị truyền dữ liệu , trong đó 7 bytes cho việc đồng
bộ lớp vật lý , byte thứ 8 dùng báo bắt đầu frame SFD ( Start of Frame Delimiter)
• MAC Header: Gồm có 14 bytes :
6 bytes đầu : địa chỉ đích
6 bytes kế : địa chỉ nguồn
2 bytes cuối : độ dài hoặc dạng dịch vụ
Hình 11: Cấu trúc Header của lớp MAC
Trang 13Hình 12: Cấu trúc gói lớp IP
• IP( internet protocol)
II.4 Giao thức HTTP
II.4.1 HTTP
Là giao thức ở tầng ứng dụng dùng để truyền dữ liệu (văn bản, hình ảnh, âm thanh,
…) thông qua kết nối TCP/IP giữa trình duyệt web (Web browser) và máy chủ (Web server) Hoạt động theo mô hình client – server Truyền nhận theo kiểu request/respone Client gửi yêu cầu kết nối đến server với một định dạng header tổng quát như sau: Request = Request-Line *(( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ] Trong đó:
• Request Line: Chứa các thông tin về phương thức kết nối, địa chỉ tài nguyên yêu cầu
và phiên bản HTTP yêu cầu Request-Line = Method RequestURI/HTTP-Version CRLF
• Phương thức kết nối (Method): - GET: Yêu cầu lấy thông tin Đây là phương thức dùng nhiều nhất trong duyệt web - HEAD: Chỉ yêu cầu lấy thông tin kết nối - POST: Chú thích thêm về tài nguyên yêu cầu, gửi thông tin của một biểu mẫu, … -
DELETE: yêu cầu máy chủ xóa nguồn tài nguyên yêu cầu - …
Trang 14• Địa chỉ tài nguyên (Request URI): Request-URI = absoluteURI | abs_path | authority Thường dùng cách truy cập địa chỉ tuyệt đối (đầy đủ thông tin về địa chỉ của nguồn tài nguyên cần yêu cầu) Ví dụ: http://hocvui.net/html/paragraph-tagp.html Hoặc truy cập theo địa chỉ tương đối (chỉ chứa một phần thông tin về nguồn
32 tài nguyên yêu cầu) Ví dụ: http://tanbachkhoa.edu.vn/ Khi đó theo mặc định thì nguồn yêu cầu sẽ bổ sung thêm là index.html
• Thông tin bổ sung header (message body) Phần này sẽ kèm theo các thông tin về client như: trình duyệt đang sử dụng, phiên bản trình duyệt, … Sau khi đã nhận đầy
đủ thông tin về yêu cầu kết nối từ client thì server xử lý thông tin và trả về bản tin (Respone): Response = Status-Line *(( general-header | response-header | entity-header ) CRLF) CRLF [ message-body ]
• Status Line: Chứa các thông tin về phiên bản HTTP, mã trạng thái kết nối và kèm theo cụm từ chú thích
• Mã trạng thái kết nối (Status code): Gồm 3 số để chú thích về trạng thái kết nối
• 1xx: yêu cầu đang được xử lý
• 2xx: yêu cầu thành công
• 3xx: hướng dẫn, thực hiện thao tác khác để tiếp tục
• 4xx: lỗi từ phía client, yêu cầu không đúng hoặc sai cú pháp, …
• 5xx: lỗi từ phía server
Ví dụ:
100: Continue
101: Switching Protocols
200: OK
II.4.2 Cấu trúc tập tin HTTP
Một trang Web luôn bắt đầu bằng thẻ <html> và kết thúc bởi thẻ </html> Các trang Web được chia thành 2 phần: Phần đầu: được đặt giữa hai thẻ <head> và thẻ </head> - định
ra tiêu đề, nội dung của tiêu để Phần thân: đặt giữa 2 thẻ <body> và </body> - chứa nội dung của trang Web
II.4.3 Các thành phần cơ bản của HTML
• Thẻ (tag): là một tập các kí hiệu được định nghĩa trong HTML có nghĩa đặc biệt Thẻ bắt đầu bằng kí hiệu < và kết thức bởi kí hiệu > Cú pháp: <tên thẻ thuộc tính=“giátrị”,…>Nội dung</tên thẻ> Ví dụ: <bg clear = “left”> Nôi dung</bg>
Trang 15• Phần tử (element): có 2 loại phần tử trong HTML - Phần tử chứa nội dung: bao gồm thẻ đóng và thẻ mở Ví dụ: <p>Nội dung </p> - Phần tử rỗng: bao gồm 1 thẻ
36 Ví dụ: </br>
• Thuộc tính(properties): mỗi thẻ bao gồm một hoặc nhiều thuộc tính đi kèm Thuộc tính được nhập vào ngày trước dấu ngoặc đóng(>) của thẻ Có thể sử dụng nhiều thuộc tính trong một thẻ Thuộc tính này kế tiếp thuộc tính khác, phân cách nhau bởi khoảng trắng Ví dụ: <table border=“1”>
• Giá trị: Ngoài các thuộc tính không có giá trị còn có các thuộc tính của tag có giá trị
Ví dụ: thuộc tính clear của thẻ </br> có ba giá trị lựa chọn: left,right, all
• Thẻ lồng nhau: dùng để chỉnh sửa cách trình bày nội dung trong một trang Web Trật
tự sắp xếp của những thẻ lồng nhau đó là thẻ được mở đầu tiên sẽ là thẻ đóng sau cùng Ví dụ: <H1> Phần <I>Nội dung</I><H1>
• Khoảng trắng: Trình duyệt bỏ qua các khoảng trắng
• Tên tệp tin: phải đặt tên tệp tin với phần mở rộng là “.htm” hoặc “.html” điều này giúp trình duyệt định ra loại tài liệu khi duyệt Để tạo một trang Web, chúng ta có thể sử dụng bất kỳ một trình soạn thảo nào để tạo ra một trang Web.
II.5 NAT PORT
II.5.1 Định nghĩa
Hình 13: NAT PORT
NAT giống như một router, nó chuyển tiếp các gói tin giữa những lớp mạng khác nhau trên một mạng lớn NAT dịch hay thay đổi một hoặc cả hai địa chỉ bên trong một gói tin khi gói tin đó đi qua một router, hay một số thiết bị khác Thông thường, NAT thường thay đổi địa chỉ (thường là địa chỉ riêng) được dùng bên trong một mạng sang địa chỉ công cộng
Trang 16NAT cũng có thể coi như một firewall cơ bản Để thực hiện được công việc
đó, NAT duy trì một bảng thông tin về mỗi gói tin được gửi qua Khi một PC trên mạng kết nối đến 1 website trên Internet header của địa chỉ IP nguồn được thay đổi và thay thế bằng địa chỉ Public mà đã được cấu hình sẵn trên NAT server , sau khi có gói tin trở về NAT dựa vào bảng record mà nó đã lưu về các gói tin, thay đổi địa chỉ IP đích thành địa chỉ của PC trong mạng và chuyển tiếp
đi Thông qua cơ chế đó quản trị mạng có khả năng lọc các gói tin được gửi đến hay gửi từ một địa chỉ IP và cho phép hay cấm truy cập đến một port cụ thể
II.5.2 NAT làm việc như thế nào ?
• NAT sử dụng IP của chính nó làm IP công cộng cho mỗi máy con (client) với IP riêng Khi một máy con thực hiện kết nối hoặc gửi dữ liệu tới một máy tính nào
đó trên internet, dữ liệu sẽ được gởi tới NAT, sau đó NAT sẽ thay thế địa chỉ IP gốc của máy con đó rồi gửi gói dữ liệu đi với địa chỉ IP của NAT Máy tính từ xa hoặc máy tính nào đó trên internet khi nhận được tín hiệu sẽ gởi gói tin trở về cho NAT computer bởi vì chúng nghĩ rằng NAT computer là máy đã gởi những gói dữ liệu đi NAT ghi lại bảng thông tin của những máy tính đã gởi những gói tin đi ra ngoài trên mỗi cổng dịch vụ và gởi những gói tin nhận được về đúng máy tính đó (client)
• NAT xử lý một gói tin xuất phát từ bên trong đi ra bên ngoài một mạng theo cách thức sau:
Khi NAT nhận một gói tin từ một cổng bên trong, gói tin này đáp ứng các tiêu chuẩn để NAT, router sẽ tìm kiếm trong bảng NAT địa chỉ bên ngoài (outside address) của gói tin Nói cách khác, tiến trình NAT tìm kiếm một hàng ở trong bảng NAT trong đó địa chỉ outside local address bằng với địa chỉ đích của gói tin Nếu không có phép
so trùng nào tìm thấy, gói tin sẽ bị loại bỏ
Nếu có một hàng trong bảng NAT là tìm thấy (trong hàng này, địa chỉ đích của gói tin bằng với địa chỉ outside local), NAT sẽ thay thế địa chỉ đích trong gói tin bằng địa chỉ outside global theo thông tin trong bảng NAT
Tiến trình NAT tiếp tục tìm kiếm bảng NAT để xem có một địa chỉ inside local nào bằng vớI địa chỉ nguồn của gói tin hay không Nếu
có một hàng là tìm thấy, NAT tiếp tục thay thế địa chỉ nguồn của gói
Trang 17tin bằng địa chỉ inside global Nếu không có một hàng nào được tìm thấy, NAT sẽ tạo ra một hàng mới trong bảng NAT và chèn địa chỉ mới vào trong gói tin
• NAT sẽ xử lý một gói tin xuất phát từ mạng bên ngoài đi vào mạng bên trong theo cách sau:
Khi NAT nhận được một gói tin xuất phát từ một cổng bên ngoài, đáp ứng các tiêu chuẩn để NAT, tiến trình NAT sẽ tìm kiếm trong bảng NAT một hàng trong đó địa chỉ inside global là bằng vớI đia chỉ đích của gói tin
Nếu không có hàng nào trong bảng NAT được tìm thấy, gói tin bị loạI bỏ Nếu có một hàng tìm thấy trong bảng NAT, NAT sẽ thay thế địa chỉ đích bằng địa chỉ inside local từ bảng NAT
Router tìm kiếm bảng NAT để tìm ra địa chỉ outside global bằng với địa chỉ nguồn của gói tin Nếu có một hàng là tìm thấy, NAT sẽ thay thế địa chỉ đích bằng địa chỉ outside local từ bảng NAT
II.5.3 NAT giải quyết những vấn đề gì ?
Ban đầu, NAT được đưa ra nhằm giải quyết vấn đề thiếu hụt địa chỉ của IPv4, nhưng sao này được phát triển nhằm giải quyết:
• NAT giúp chia sẻ kết nối Internet (hay 1 mạng khác) với nhiều máy trong LAN chỉ với 1 IP duy nhất, hay 1 dãy IP cụ thể
• NAT che giấu IP bên trong LAN
• NAT giúp quản trị mạng lọc các gói tin được gửi đến hay gửi
từ một địa chỉ IP và cho phép hay cấm truy cập đến một port
cụ thể
II.5.4 Các kĩ thuật NAT PORT
• NAT Tĩnh (Static NAT)
Với NAT tĩnh, địa chỉ IP thường được ánh xạ tĩnh với nhau thông qua các lệnh cấu hình Trong NAT tĩnh, một địa chỉ Inside Local luôn luôn được ánh xạ vào địa chỉ Inside Global Nếu được sử dụng, mỗi địa chỉ Outside Local luôn luôn ánh xạ vào cùng địa chỉ Outside Global NAT tĩnh không có tiết kiệm địa
Mặc dù NAT tĩnh không giúp tiết kiệm địa chỉ IP, cơ chế NAT tĩnh cho phép một
Trang 18máy chủ bên trong hiện diện ra ngoài Internet, bởi vì máy chủ sẽ luôn dùng cùng một địa chỉ IP thực
Cách thức thực hiện NAT tĩnh thì dễ dàng vì toàn bộ cơ chế dịch địa chỉ được thực hiện bởi một công thức đơn giản:
Địa chỉ đích =Địa chỉ mạng mới OR (địa chỉ nguồn AND ( NOT netmask))
Với NAT tĩnh, khi số IP nguồn không bằng số IP đích Số host chia sẻ nói chung bị giới hạn bởi số IP đích có sẵn NAT động phức tạp hơn NAT tĩnh, vì thế chúng phải lưu giữ lại thông tin kết nối và thậm chí tìm thông tin của TCP trong packet Một số người dùng nó thay cho NAT tĩnh vì mục đích bảo mật Những người từ bên ngoài không thể tìm được IP nào kết nối với host chỉ định vì tại thời điểm tiếp theo host này có thể nhận một IP hoàn toàn khác
Những kết nối từ bên ngoài thì chỉ có thể khi những host này vẫn còn nắm giữ một IP trong bảng NAT động Nơi mà NAT router lưu giữ những thông tin về
IP bên trong (IP nguồn )được liên kết với NAT-IP(IP đích) Cho một ví dụ trong một session của FPT non-passive Nơi mà server cố gắng thiết lập một kênh truyền dữ liệu vì thế khi server cố gắng gửi một IP packet đến FTP client thì phải có một entry cho client trong bảng NAT Nó vẫn phải còn liên kết một IPclient với cùng một NAT-IPs khi client bắt đầu một kênh truyền control trừ khi FTP session rỗi sau một thời gian timeout Xin nói thêm giao thức FTP có 2 cơ chế là passive và non-passive Giao thức FTP luôn dùng 2 port (control và data) Với cơ chế passive (thụ động ) host kết nối sẽ nhận thông tin về data port
từ server và ngược lại non-passive thì host kết nối sẽ chỉ định dataport yêu cầu server lắng nghe kết nối tới
Bất cứ khi nào nếu một người từ bên ngoài muốn kết nối vào một host chỉ định ở bên trong mạng tại một thời điểm tùy ý chỉ có 2 trường hợp:Host bên trong không có một entry trong bảng NAT khi đó sẽ nhận được thông tin “host unreachable” hoặc có một entry nhưng NAT-IPs là không biết Biết được IP của một kết nối bởi vì có một kết nối từ host bên trong ra ngoài mạng Tuy nhiên đó chỉ là NAT-IPs và không phải là IP thật của host Và thông
Trang 19tin này sẽ bị mất sau một thờii gian timeout của entry này trong bảng NAT router
• NAT Overloading (hay PAT)
Dùng để ánh xạ nhiều địa chỉ IP riêng sang một địa chỉ công cộng vì mỗi địa chỉ riêng được phân biệt bằng số port Có tới 65 356 địa chỉ nội bộ có thể chuyển đổi sang 1 địa chỉ công cộng Nhưng thực tế thì khỏang 4000 port PAT hoạt động bằng cách đánh dấu một số dòng lưu lượng TCP hoặc UDP từ nhiều máy cục bộ bên trong xuất hiện như cùng từ một hoặc một vài địa chỉ Inside Global Với PAT, thay vì chỉ dịch địa chỉ IP, NAT cũng dịch các cổng khi
Và bởi vì các trường của cổng có chiều dài 16 bit, mỗi địa chỉ Inside Global có thể hỗ trợ lên đến 65000 kết nối TCP và UDP đồng thời Ví dụ, trong một hệ thống mạng có 1000 máy, một địa chỉ IP thực được dùng như là địa chỉ Inside Global duy nhất có thể quản lý trung bình sáu dòng dữ liệu đến và đi từ các máy trên Internet
Trang 20CHƯƠNG III: GIỚI THIỆU THÔNG SỐ LINH KIỆN
III.1.Mạch điều khiển Arduino UNO
Hình 15: Sơ đồ chân mạch Arduino UNO
Hình 14: Mạch Arduino UNO
Nguồn(Arduino Uno )
Arduino UNO R3 có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V Thường thì cấp nguồn
Trang 21bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO R3.
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO R3 Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
Lưu ý:(Arduino Uno)
Arduino UNO R3 không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO Việc làm chập mạch nguồn vào của Arduino UNO sẽ biến nó thành một miếng nhựa chặn giấy Tôi khuyên bạn nên dùng nguồn từ cổng USB nếu có thể
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết
bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận
dữ liệu, bạn phải mắc một điện trở hạn dòng
Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
Trang 22 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ này đâu.
2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Hình 16: Các cổng vào ra
Các cổng vào ra:
Arduino UNO R3 có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
Một số chân digital có các chức năng đặc biệt như sau:
2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive – RX)
dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân