Thiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internetThiết kế mạch điều khiển thiết bị và giám sát qua internet
Trang 1LỜI CẢM ƠN Lời đầu tiên, cho em xin gửi lời cảm ơn sâu sắc đến cô giáo TS Nguyễn Thị Thanh Bình đã tận tình hướng dẫn, chỉ bảo, cung cấp các tài liệu cần thiết, giúp đỡ và
động viên để em có thể hoàn thành đồ án này
Em xin gửi lời cảm ơn chân thành tới các thầy cô trong khoa Công nghệ Tựđộng hóa nói riêng và Trường Đại học Công nghệ thông tin và Truyền thông nói chung
đã tận tình giảng dạy, giúp đỡ và truyền đạt những kiến thức quý báu cho em trongsuốt thời gian em học tập và rèn luyện tại trường
Và cuối cùng, em xin gửi lời cảm ơn chân thành đến gia đình, người thân và tất
cả các bạn bè, đặc biệt là các bạn trong lớp ĐKTĐK9A, những người đã hỗ trợ, chia
sẻ, động viên tinh thần cho em trong suốt quá trình học tập và thực hiện đồ án này
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 05 năm 2015 Sinh viên thực hiện
Trần Lai Thành
Trang 2LỜI CAM ĐOAN
Em xin cam đoan về nội dung của đồ án “ Nghiên cứu thiết kế mạch điều khiển
thiết bị và giám sát nhiệt độ trong nhà qua internet.” là do em tự tìm hiểu, nghiên cứu dưới
sự hướng dẫn của cô giáo TS Nguyễn Thị Thanh Bình Mọi trích dẫn và tài liệu mà emtham khảo đều được ghi rõ nguồn gốc
Nếu sai em xin chịu mọi hình thức kỷ luật của trường Đại học Công nghệ thôngtin và Truyền thông
Thái Nguyên, tháng 05 năm 2015
Sinh viên thực hiện
Trần Lai Thành
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI NÓI ĐẦU 2
MỤC LỤC 2
Chương 1 5
CƠ SỞ LÝ THUYẾT 5
1.1 Tổng quan về Arduino 5
1.1.1 Giới thiệu chung 5
1.1.2 Cấu trúc phần cứng 6
1.1.3 Cấu trúc phần mềm và lập trình Arduino 10
1.2 Cơ sở lý thuyết về Module Wifi ESP8266 13
1.2.1 Giới thiệu về ESP8266 13
1.2.2 Cấu tạo của ESP8266 14
1.2.3 Tính năng của ESP8266 15
1.2.4 Quản lý năng lượng ESP8266 16
Chương 2 18
TÌM HIỂU VÀ XÂY DỰNG WEB SERVER 18
2.1 Lịch sử của World Wide Web 18
2.2 Web Server 18
2.3 Mô hình tham chiếu OSI 19
2.3.1 Mục đích mô hình tham chiếu OSI 19
2.3.2 Tên của 7 lớp trong mô hình tham chiếu OSI 20
2.3.3 Mô tả 7 lớp của mô hình tham chiếu OSI 20
2.3.4 Sự đóng gói 22
2.3.5 Tên của dữ liệu tại mỗi lớp của mô hình OSI 23
2.4 Giao thức TCP/IP 24
2.4.1 các giao thức TCP/IP của Internet và mô hình OSI 24
2.5 Ngôn ngữ lập trình PHP 25
2.5.1 Giới thiệu 26
2.5.2 Sử dụng PHP 27
2.6 Hệ quản trị cơ sở dữ liệu MySQL 32
2.6.1 MySQL là gì? 32
Trang 42.6.2 Nơi cung cấp MySQL 32
2.6.3 Các câu lệnh cơ bản của MySQL 32
2.7 Giới thiệu vềApache Webserver 34
Chương 3 35
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 35
3.1 Yêu cầu hệ thống 35
3.1.1 Mô tả hoạt động của hệ 35
3.1.2 Yêu cầu của hệ thống 36
3.2 Thiết kế hệ thống 37
3.2.1 Thiết kế mạch đo nhiệt độ 37
3.3.2 Thiết kế phần mềm 41
3.3.3 Thiết kế phần cứng 45
3.4 Hình ảnh thực tế 49
KẾT LUẬN 50
TÀI LIỆU THAM KHẢO 52
Trang 5LỜI NÓI ĐẦU
Trong xu thế phát triển hiện nay, với sự bùng nổ của các ngành côngnghệ thông tin, điện tử, tự động hóa,… Đã làm cho đời sống của con người ngày cànghoàn thiện Các thiết bị tự động hóa đã ngày càng xâm lấn vào trong sản xuất và thậmchí là vào cuộc sống sinh hoạt hàng ngày của mỗi con người Do đó một ngôi nhàthông minh có thể giám sát và điều khiển từ xa đã trở thành hiện thực Là một sinhviên khoa Công nghệ tự động hóa trường Đại học công nghệ thông tin và truyền thông,bằng những kiến thức đã học và mong muốn thiết kế được một mô hình nhà tự độnghóa đáp ứng được nhu cầu sinh hoạt hàng ngày Em đã mạnh dạn chọn “Thiết kế mạchđiều khiển thiết bị và giám sát qua internet” làm đề tài cho đồ án tốt nghiệp của mình
Trong quá trình thực hiện đồ án của mình, em đã cố gắng hết sức đểhoàn thiện một cách tốt nhất Nhưng với kiến thức và sự hiểu biết có hạn nên sẽ khôngtránh khỏi những thiếu sót mong thầy cô và các bạn đóng góp ý kiến đề tài của em cóthể hoàn thiện hơn
Trang 6Chương 1
CƠ SỞ LÝ THUYẾT 1.1 Tổng quan về Arduino
1.1.1 Giới thiệu chung
Arduino cơ bản là một mã nguồn mở về điện tử được tạo thành từ phần cứng vàphần mềm.Về mặt kĩ thuật có thể coi Arduino là một bộ điều khiển logic có thể lậptrình được Đơn giản hơn, Arduino là thiết bị có thể tương tác với ngoại cảnh thôngqua các cảm biến và hành vi được lập trình sẵn Với thiết bị này việc lắp ráp và điềukhiển các thiết bị điện tử sẽ dễ dàng hơn bao giờ hết
Hiện tại có rất nhiều loại vi điều khiển và đa số được lập trình bằng ngôn ngữC/C++ hoặc Assembly nên rất khó khăn cho những người có ít kiến thức sâu về điện
tử và lập trình Nó là trở ngại cho mọi người muốn tạo riêng cho mình một món đồmang tính công nghệ Song Arduino đã giải quyết được vấn đề này, Arduino được pháttriển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện điện tử cũng như lập trình trên
vi điều khiển và mọi người có thể tiếp cận dễ dàng hơn với thiết bị điện tử mà khôngcần nhiều về kiến thức điện tử và thời gian
Những thế mạnh của Arduino so với các nền tảng vi điều khiển khác:
- Chạy trên đa nền tảng: Việc lập trình Arduino có thể thực hiện trên các hệ điều
hành khác nhau như Windows, Mac Os, Linux trên Desktop, Android trên diđộng
- Ngôn ngữ lập trình đơn giản dễ hiểu.
- Mã nguồn mở: Arduino được phát triển dựa trên nguồn mở nên phần mềm chạy trên
Arduino được chia sẻ dễ dàng và tích hợp vào các nền tảng khác nhau
- Mở rộng phần cứng: Arduino được thiết kế và sử dụng theo dạng modul nên
việc mở rộng phần cứng cũng dễ dàng hơn
- Đơn giản và nhanh: Rất dễ dàng lắp ráp, lập trình và sử dụng thiết bị.
- Dễ dàng chia sẻ: Mọi người dễ dàng chia sẻ mã nguồn với nhau mà không lo
lắng về ngôn ngữ hay hệ điều hành mình đang sử dụng
Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phứctạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino
do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp
Trang 7Arduino được biết đến nhiều nhất là phần cứng của nó, nhưng phải có phầnmềm để lập trình phần cứng Cả phần cứng và phần mềm gọi chung là Arduino.
♦ Phần mềm Arduino:
Phần mềm Arduino được gọi là sketches, được tạo ra trên máy tính có tích hợpmôi trường phát triển (IDE) IDE cho phép viết, chỉnh sửa code và chuyển đổi sao chophần cứng có thể hiểu IDE dùng để biên dịch và nạp vào Arduino (quá trinh xử lý nàygọi là UPLOAD)
♦ Phần cứng Arduino:
Phần cứng Arduino là các board Arduino, nơi thực thi các chương trình lậptrình Các board này có thể điều khiển hoặc đáp trả các tín hiệu điện, vì vậy các thànhphần được ghép trực tiếp vào nó nhằm tương tác với thế giới thực để cảm nhận vàtruyền thông Ví dụ các cảm biến bao gồm các thiết bị chuyển mạch, cảm biến siêu
âm, gia tốc Các thiết bị truyền động bao gồm đèn, motor, loa và các thiết bị hiển thị
Có rất nhiều ứng dụng sử dụng Arduino để điều khiển Arduino có rất nhiềumodule, mỗi module được phát triển cho một ứng dụng.Về mặt chức năng, các bomạch Arduino được chia thành hai loại: loại bo mạch chính có chip Atmega và loại mởrộng thêm chức năng cho bo mạch chính Các bo mạch chính về cơ bản là giống nhau
về chức năng, tuy nhiên về mặt cấu hình như số lượng I/O, dung lượng bộ nhớ, haykích thước có sự khác nhau Một số bo mạch có trang bị thêm các tính năng kết nốinhư Ethernet và Bluetooth Các bo mở rộng chủ yếu mở rộng thêm một số tính năngcho bo mạch chính ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ
- Sử dụng một dao động thạch anh tần số dao động 16MHz
- Có một cổng kết nối bằng chuẩn USB để chúng ta nạp chương trình vào bomạch và một chân cấp nguồn cho mạch, một nút reset
Trang 8- Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển, nguồn cung cấpcho Arduino có thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồnchuyên dụng được biến đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từpin.
Hình 1.1 Cấu trúc phần cứng của Arduino Uno
Thông số kỹ thuật của Uno:
Khối xử lý trung tâm là vi điều khiển Atmega328
Điện áp hoạt động 5V
Điện áp đầu vào khuyến nghị là 5-12V
Điện áp đầu vào giới hạn 6-20V
Dòng điện một chiều trên các chân vào ra là 40mA
Dòng điện một chiều cho chân 3.3V là 50mA
Clock Speed 16 MHz
Flash Memory 16 Kb (ATmega 168) hoặc 32 Kb (ATmega 328), SRAM 1 Kb(ATmega 168) hoặc 2 Kb (ATmega 328), EEPROM 512 bytes (ATmega 168)hoặc 1 Kb (AT mega 328)
♦ Khối xử lý trung tâm
Trong bo mạch Arduino IC đóng vai trò xử lý trung tâm là Atmega328 cấu trúc
sơ đồ chân của nó như sau:
Trang 9Hình 1.2 Sơ đồ chân trong ATmega 328
Chân VCC (chân số 7): Chân cung cấp điện áp dương nguồn 5V.
Chân GND (chân số 8): Chân đất chung
Chân AREF (chân 21): Là chân tham chiếu để chuyển đổi tín hiệu tương tự
Trang 10Hình 1.3.Sơ đồ khối cấu trúc bên trong ATmega 328
● Khối xử lý trung tâm trong IC ATmega 328 như sau:
Đây là kiến trúc chung trong lõi AVR nói chung Chức năng chính của lõi CPU
là để đảm bảo thực hiện chương trình chính xác CPU do đó phải có khả năng truy cậpnhanh, thực hiện các tính toán, thiết bị ngoại vi điều khiển và xử lý ngắt Để tối đa hóahiệu suất, AVR sử dụng một kiến trúc Harvard và đường bus riêng biệt cho chươngtrình và dữ liệu Hướng truyền dữ liệu trong bộ nhớ chương trình thực hiện với một tốc
độ nhất định
Trang 11Hình 1.4 Sơ đồ cấu trúc CPU trong ATmega 328
Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điện bênngoài Chúng ta có thể cung cấp nguồn thông qua chân này
Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mạch
và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch
Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến
Chân GND : Chân nối đất
1.1.3 Cấu trúc phần mềm và lập trình Arduino
♦ Cấu trúc phần mềm các hàm cơ bản
Cấu trúc chương trình viết cho Arduino gồm hai phần đầu tiên là hàm khởi tạo setup()
và vòng lặp loop()
Trang 12Hình 1.5 Mô hình cấu trúc của chương trình Arduino
Hàm setup() được gọi khi bắt đầu một bản thiết kế Trong hàm sẽ khai báo các biếnkhởi tạo, các chế độ của chân, bắt đầu sử dụng các thư viện Hàm setup chỉ chạy mộtlần sau mỗi lần bật nguồn hoặc reset mạch Arduino
Ví dụ 1:
int buttonPin = 3;
void setup(){
serial.begin(9600); // cấu hình cổng nối tiếp có tốc độ dữ liệu là
9600 bpspinMode(buttonPin, INPUT); // đặt chân 3 là chân input}
void loop(){
//…
}Vòng lặp loop() sử dụng để lặp và những vòng lặp liên tiếp, chương trình có thể thayđổi và đáp ứng Sử dụng để điều khiển mạch Arduino
Trang 13void loop() {
if(digitalRead(buttonPin) == HIGH)serialWrite(‘H’);
elseserialWrite(‘L’);
void loop(){
digitalWrite(ledPin, HIGH); // den led sangdelay(1000); // doi trong 1s
digitalWrite(ledPin, LOW); //den led tatdelay(1000); //doi trong 1s
}
serial.println (giá trị): In giá trị để Monitor Serial trên máy tính
pinMode (pin, chế độ): Cấu hình cho một pin kỹ thuật số để đọc (đầu vào)
hoặc viết (đầu ra) một giá trị kỹ thuật số
digitalRead (pin): Đọc một giá trị kỹ thuật số (HIGH hoặc LOW) trên một bộ
pin cho đầu vào
digitalWrite (pin, giá trị): Ghi giá trị kỹ thuật số (HIGH hoặc LOW) với một
bộ pin cho đầu ra
Trang 14● Ví dụ 4:
int ledPin = 13;//ket noi den led voi chan so 13int inPin = 7; //ket noi chan so 7 voi nut nhanint val = 0;// bien doc cac gia tri cua nut nhanvoid setup()
{pinMode(ledPin, OUTPUT);// dat chan so 13 lam chan xuatpinMode(inPin, INPUT);//dat chan so 7 lam chan nhap}
void loop() {
val = digitalRead(inPin); //doc du lieu tu chan so 7digitalWrite(ledPin, val); //den led se sang hoac tat theo nut nhan}
1.2 Cơ sở lý thuyết về Module Wifi ESP8266
1.2.1 Giới thiệu về ESP8266
♦ Khái niệm:Module ESP8266 là module wifi được đánh giá rất cao cho
các ứng dụng liên quan đến Internet và Wifi cũng như các ứng dụng truyền nhận sửdụng thay thế cho các module RF khác với khoảng cách truyền lên tới 100 mét( Môitrường không có vật cản) Trên 400m với anten và router thích hợp
ESP8266 cung cấp một giải pháp kết nối mạng Wi-Fi hoàn chỉnh và khépkín, cho phép nó có thể lưu trữ các ứng dụng hoặc để giảm tải tất cả các chức năng kếtnối mạng Wi-Fi từ một bộ xử lý ứng dụng
Khi ESP8266 là máy chủ các ứng dụng hay khi nó chỉ là bộ vi xử lý ứngdụng có trong thiết bị, nó có thể khởi động trực tiếp từ một flash ngoài Nó có tích hợp
bộ nhớ cache để cải thiện hiệu suất của hệ thống trong các ứng dụng này, và để giảmthiểu các yêu cầu bộ nhớ
Luôn phiên, phục vụ như một bộ chuyển đổi Wi-Fi, truy cập internetkhông dây có thể được thêm vào bất kỳ thiết kế vi điều khiển nào dựa trên kết nối đơngiản qua giao diện UART hoặc giao diện cầu CPU AHB
Khả năng lưu trữ và xử lý mạnh mẽ cho phép nó được tích hợp với các bộcảm biến, vi điều khiển và các thiết bị ứng dụng cụ thể khác thông qua GPIOs với chi
Trang 15phí tối thiểu và một PCB tối thiểu Với mức độ tích hợp cao trên chip, trong đó baogồm các anten chuyển đổi balun, bộ chuyển đổi quản lý điện năng…
Hình 1.6: Hình ảnh thực tế của Chip ESP8266
1.2.2 Cấu tạo của ESP8266
Module ESP8266 có 10 chân dùng để cấp nguồn và thực hiện kết nối Chức năngcủa các chân như sau:
+ VCC: 3.3V lên đến 300Ma
+ GND: Mass
+ Tx: Chân Tx của giao thức UART, kết nối đến chân Rx của vi điều khiển
+ Rx: Chân Rx của giao thức UART, kết nối đến chân Tx của vi điều khiển
+ RST: chân reset, kéo xuống mass để reset
+ CH_PD: Kích hoạt chip, sử dụng cho Flash Boot và updating lại module
+ GPIO0: kéo xuống thấp cho chế độ update
+ GPIO2: không sử dụng
Trang 16Hình 1.7 Hình ảnh sơ đồ chân kết nối ESP8266
1.2.3 Tính năng của ESP8266
- Hỗ trợ chuẩn 802.11 b/g/n
- Wi-Fi 2.4 GHz, hỗ trợ WPA/WPA2
- Chuẩn điện áp hoạt động: 3.3V
- Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến115200
- Tích hợp ngăn xếp giao thứcTCP / IP
- Tích hợp chuyển đổi TR, balun, LNA, bộ khuếch đại công suất và phù hợp với mạng
- Tích hợp PLL, bộ quản lý, và các đơn vị quản lý điện năng
- Công suất đầu ra +19.5dBm trong chế độ 802.11b
- Tích hợp cảm biến nhiệt độ
- Hỗ trợ nhiều loại anten
- Wake up và truyền các gói dữ liệu trong <2ms
Trang 17- Chế độ chờ tiêu thụ điện năng<1.0mW (DTIM3).
- Hỗ trợ cả 2 giao tiếp TCP và UDP
- Làm việc như các máy chủ có thể kết nối với 5 máy con
- Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK,
WPA_WPA2_PSK
- Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point
1.2.4 Quản lý năng lượng ESP8266
- ESP8266 được thiết kế cho điện thoại di động, điện tử lắp ráp và ứng dụngInternetofThings với mục đích đạt được mức tiêu thụ điện năng thấp nhất với sự kếthợp của nhiềukỹ thuật độc quyền Kiến trúc tiết kiệm năng lượng hoạt động trong 3chế độ: chế độ hoạt động, chế độ ngủ và chế độ ngủ sâu
- Bằng cách sử dụng các kỹ thuật quản lý nguồn điện và kiểm soát chuyểnđổi giữa chế độ ngủ ESP8266 tiêu thụ chưa đầy 12uA ở chế độ ngủ nhỏ hơn 1.0mW sovới (DTIM = 3)hoặc ít hơn 0.5mW (DTIM = 10) để giữ kết nối với các điểm truy cập
- Khi ở chế độ ngủ, chỉ có bộ phận hiệu chỉnh đồng hồ thời gian thực và cơquan giám sát vẫn hoạt động Đồng hồ thời gian thực có thể được lập trình để đánhthức ESP8266 ở bất kỳ khoảng thời gian cần thiết nào
- ESP8266 có thể được lập trình để thức dậy khi một điều kiện chỉ định đượcphát hiện Tính năng tối thiểu thời gian báo thức này của ESP8266 có thể được sửdụng bởi Tính năng tối thiểu thời gian báo thức của ESP8266 có thể được sử dụng bởithiết bị di động SOC Cho phép chúng vẫn ở chế độ chờ, điện năng thấp cho đến khiWifi là cần thiết
- Để đáp ứng nhu cầu điện năng của thiết bị di động và điện tử lắp giáp,ESP8266 có thể được lập trình để giảm công suất đầu ra của PA phù hợp với các ứngdụng khác nhau Bằng việc tắt khoảng tiêu thụ năng lượng
Các chip có thể được thiết lập ở các trạng thái sau:
- OFF: chân CHIP_PD ở mức thấp Các RTC(đồng hồ thời gian)bị vô hiệu
hóa và mọi thanh ghi sẽ bị xóa
Trang 18- SLEEP DEEP: Các RTC được kích hoạt, khi đó các phần còn lại của chip
sẽ ở trạng thái off RTC phục hồi bộ nhớ nội bộ để lưu trữ các thông tin kết nối WiFi
cơ bản
- SLEEP:Chỉ RTC hoạt động Các dao động tinh thể được vô hiệu hóa Bất
kỳ sự kiện wakeup(MAC, host, RTC hẹn giờ, ngắt ngoài) sẽ đưa chip vào trạng tháiwakeup
- Wakeup: Trong trạng thái này, hệ thống đitừ trạng thái ngủ sang trạng thái
PWR Các dao động tinh thể và PLLs được kích hoạt
- Trạng thái ON: Xung clock tốc độ cao hoạt động và gửi đến mỗi khối được
kích hoạtbằng cách đăng ký kiểm soát xung clock Mức độ thấp hơnclockgating được thực hiện ở cấp khối, bao gồm cả CPU, có thể đạt được bằng cách
sử dụng lệnh WAIT, trong khi hệ thống trên off
Trang 19Chương 2 TÌM HIỂU VÀ XÂY DỰNG WEB SERVER 2.1 Lịch sử của World Wide Web
Web được sinh ra bởi Internet, và nó cho thấy khả năng tự trị và giới hạn củakiến trúc Internet Ngày nay, các trình duyệt Web có khả năng truy cập vào công nghệInternet khác nhau như: Email, www Nhưng Web và Internet không chỉ là một ngành
kỹ thuật mà đó là môi trường để con người liên lạc, buôn bán và tác động qua lại nhautrong cùng một môi trường văn hóa
Năm 1926, Paul Baran, mô tả trên giáy lời giải một vấn đề đau đầu các nhàquân sự lúc bấy giờ, tựa:”Liên lạc phân tán qua mạng” Anh ta đưa ra một hệ thốngmáy tính rộng khắp đất nước kết nối lại với nhau sử dụng hệ thống mạng không tậptrung (dêcntralized) do đó nếu một hay nhiều node mạng chính bị phá hủy thì các nodecòn lại vẫn tự động điều chỉnh các kết nối để duy trì việc liên lạc
Do mạng là không tập trung, nên ta có thể thêm vào một máy tính thông quađường dây điện thoại, một thiết bị phần cứng, và một số phần mềm NCP (NetwordControl Protocol), ví dụ như ARPAnet
Một số ứng dụng chính được phát triển đầu tiên trên ARPAnet là thư điện tử(Electronic mail) Ngày nay, email là một phần không thể thiếu được của Net và nóđược thiết kế sãn bên trong các trình duyệt Web (ví dụ netscape) do đó một chươngtrình đơn lẻ để xem email là không cần thiết
2.2 Web Server
Web Server là một hay nhiều máy tính mà tại đó chứa đựng nguồn của trangweb, máy tính đó còn phải được cài các chương trình phục vụ web Chính nhữngchương trình này sẽ thiết lập các kết nối để người trình duyệt web có thể truy cập đượcvào trang web (ví dụ như IIS của Microsoft)
Để một tình duyệt web có thể truy cập vào tài nguyên của web server thì chúngphải dùng chung một giao thức Có nhiều loại giao thức cho phép hai máy tính liên lạcvới nhau, tuy nhiên giao thức TCP/IP là giao thưc phổ biến nhất, được sử dụng hầu hết
Trang 20trong các mạng máy tính LAN, WAN, và ngay cả mạng toàn cầu Internet cũng sửdụng giao thức này.
TCP/IP được phát triển là một dạng rút gọn của mô hình OSI
2.3 Mô hình tham chiếu OSI
Khi mạng ra đời thì nó nhanh chóng phát triển Kích thước và số lượng khôngngừng gia tăng Tuy nhiên vào thời gian đầu mỗi mạng được xây dựng từ các thiết bịphần cứng và phần mềm khác biệt nhau Điều này dẫn đến tình trạng không tươngthích và khó khăn trong việc thông tin giữa các mạng với nhau, Để giải quyết điều này
tổ chức tiêu chuẩn hóa quốc tế gọi là ISO đã tiến hành nghiên cứu trên nhiều lược đồmạng hữu hiệu và ISO thừa nhận cần tạo ra một mô hình mạng giúp thiết lập các mạng
có thể thông tin với nhau Từ đó, ISO công bố mô hình tham chiếu OSI vào năm 1984
2.3.1 Mục đích mô hình tham chiếu OSI
Mô hình tham chiếu OSI là mô hình chủ yếu cho các hoạt động thông tin trênmạng Mặc dù đã có các mô hình khác, nhưng hầu hết các nhà chế tạo ngày nay đềutạo ra sản phẩm của họ trên cơ sở tham chiếu đến mô hình OSI, đặc biệt khi họ muốnphổ biến sản phẩm của mình cho số đông khách hàng Họ xem mô hình là công cụ tốtnhất có sẵn để huấn luyện mọi người xung quanh về việc truyền và nhận dữ liệu trênmạng
Mô hình tham chiếu cho phép nhận ra được các chức năng mạng diễn ra tại mỗilớp Quan trọng hơn, mô hình OSI là một khuôn mẫu giúp mọi người hiểu thông tin dichuyển xuyên qua một mạng như thế nào Ngoài ra có thể dùng mô hình tham chiếuOSI để quan sát cách thức mà thông tin hay các gói dữ liệu di chuyển từ một chươngtrình ứng dụng này xuyên qua môi trường mạng sang một chương trình ứng dụng nằmtrên một máy tính khác trên mạng, ngay cả nếu người gửi và người nhận ở hai môitrường mạng khác nhau
Mô hình tham chiếu OSI có 7 lớp, mỗi lớp mô tả một phần chức năng mạng Sựtách biệt các chức năng lập mạng được gọi là sự phân lớp (layering) Chia mạng thành
7 lớp đem đến các ưu điểm sau:
+ Tách hoạt động thông tin mạng thành những phần nhỏ hơn, đơn giảnhơn
Trang 21+ Nó chuẩn hóa các thành phần mạng để cho phép phát triển một mạng từnhiều nhà cung cấp sản phẩm.
+ Cho phép các loại phần cứng và phần mềm mạng khác nhau thông tinđược với nhau
+ Ngăn chặn tình trạng sự thay đổi của một lớp làm ảnh hưởng đến các lớpkhác, như vậy chúng có thể phát triển nhanh chóng hơn
+ Nó chia hoạt động thông tin mạng thành các phần nhỏ hơn làm cho việchọc trở nên dễ hiểu hơn
2.3.2 Tên của 7 lớp trong mô hình tham chiếu OSI
Vấn đề di chuyển thông tin giữa các máy tính được chia thành 7 vấn đề nhỏ hơn
và dễ quản lý hơn trong mô hình tham chiếu OSI Mỗi vấn đề nhỏ được đại diện bởimột lớp riêng trong mô hình 7 lớp của mô hình tham chiếu OSI là:
Lớp 7: Lớp ứng dụng (the application layer)
Lớp 6: Lớp trình bày (the presentaiton layer)
Lớp 5: Lớp phiên (the session layer)
Lớp 4: Lớp vận chuyển (the transport layer)
Lớp 3: Lớp mạng (the network layer)
Lớp 2: Lớp liên kết dữ liệu (the data link layer)
Lớp 1: Lớp vật lý (the physical layer)
Hình 2.1 mô hình OSI
2.3.3 Mô tả 7 lớp của mô hình tham chiếu OSI
Trang 22 Lớp 7: Lớp ứng dụng (the application layer)
Lớp ứng dụng là lớp gần gũi nhất với người dùng hơn hết, nó cung cấp các dịch
vụ mạng cho các ứng dụng của người dùng Nó khác với các lớp khác ở chỗ khôngcung cấp dịch vụ cho bất kỳ lớp nào, thay vào đó nó chỉ cung cấp các dịch vụ cho cácứng dụng nằm bên ngoài mô hình OSI Các chưng trình ứng dụng như chương trìnhWork, IE, lớp ứng dụng thiết đặt tính sẵn sàng cho các đối tác thông tin, đồng bộhóa và thiết đặt tính nhất quán trên các thủ tục khắc phục lỗi và kiểm soát tính toànvẹn dữ liệu
Lớp 6: Lớp trình bày (the presentaiton layer)
Lớp trình bày đảm bảo thông tin mà các lớp ứng dụng của một hệ thống đầucuối gửi đi, lớp ứng dụng của một hệ thống khác có thể đọc được Nếu cần, lớp trìnhbày thông dịch giữa nhiều dạng dữ liệu khác nhau thông qua một dạng chung
Lớp 5: Lớp phiên (the session layer)
Như bao hàm trong tên của lớp, lớp phiên thiết lập, quản lý, và kết thúc cácphiên thông tin giữa hai chủ thể truyền nhận Lớp phiên cung cấp các dịch vụ của nócho lớp trình bày Nó cũng đồng bộ hội thoại giữa hai lớp trình bày của hai host vàquản lý các cuộc trao đổi dữ liệu giữa chúng Bên cạnh sự điều khiển các phiên làmviệc, lớp phiên còn chuẩn bị những thứ cần thiết cho truyền nhận dữ liệu hiệu quả,phân lớp dịch vụ và thông báo mở rộng các sự cố của lớp phiên, lớp trình bày và lớpứng dụng
Lớp 4: Lớp vận chuyển (the transport layer)
Lớp vận chuyển phân đoạn dữ liệu từ hệ thống host truyền và tái thiết lập dữliệu vào một luồng dữ liệu tại hệ thống host nhận Ranh giới giữa lớp vận chuyển vàlớp phiên có thể được xem như ranh giới giữa các giao thức ứng dụng (applicationprotocol) và giao thức luồng dữ liệu (data flow protocol) Trong khi các lớp ứng dụng,lớp trình bày và lớp phiên liên quan mật thiết đến ứng dụng, thì ba lớp dưới lại liên hệđến việc truyền dữ liệu Lớp vận chuyển cố gắng cung cấp một dịch vụ vận chuyển dữliệu, tạo nên một dải ngăn cách bảo vệ các lớp trên tránh các chi tiết hiện thực vậnchuyển bên dưới Đặc biệt, các vấn đề như làm thế nào vận chuyển giữa hai host thực
sự tin cậy là trách nhiệm liên quan đến lớp vận chuyển Trong việc cung cấp dịch vụtruyền tin, lớp vận chuyển thiết lập, duy trì, và kết thúc tốt đẹp các mạch ảo Trong
Trang 23việc cung cấp các dịch vụ vận chuyển tin cậy, sự phát hiện lỗi, khắc phục lỗi cũng nhưđiều khiển luồng thông tin đều được sử dụng triệt để
Lớp 3: Lớp mạng (the network layer)
Lớp mạng là lớp phức tạp, nó cung cấp kết nối và chọn lựa đường dẫn giữa hai
hệ thống host tọa lạc trên các mạng tách biệt về mặt địa lý
Lớp 2: Lớp liên kết dữ liệu (the data link layer)
Lớp liên kết dữ liệu cung cấp khả năng truyền dữ liệu tin cậy xuyên qua mộtliên kết vật lý Trong khi làm công việc này, lớp liên kết dữ liệu gắn liền vớilược đồ đánh địa chỉ vật lý (đối nghịch với địa chỉ luận lý), cấu hình mạng, truyxuất mạng, thông báo lỗi, thứ tự phân phối frame, và điều khiển luồng
Lớp 1: Lớp vật lý (the physical layer)
Lớp vật lý định nghĩa các quy cách về điện, cơ, thủ tục và các đặc tả chức năng
để kích hoạt, duy trì và dừng một liên kết vật lý giữa các hệ thống đầu cuối Cácđặc trưng như các mức điện áp, định thời thay đổi điện áp, tốc độ truyền dữ liệuvậy lý cự ly truyền tối đa, các đầu nối vật lý và các thuộc tính tương tự khác đềuđược định nghĩa bởi các đặc tả lớp vật lý
2.3.4 Sự đóng gói
Tất cả các hoạt động thông tin trên mạng đều bắt đầu từ một nguồn và nhắmđến một đích, thông tin được gửi lên mạng được tham khảo đến như là dữ liệu hay làcác gói dữ liệu Nếu một máy tính A (host A) muốn gửi dữ liệu đến một máy tính B(host B), trước hết dữ liệu phải được đóng gói bởi một quá trình gọi là đóng gói(encapsulation) Hoạt động đóng gói sẽ gói dữ liệu cùng với các thông tin giao thứccần thiết trước khi chuyển đi Do đó, khi dữ liệu được chuyển xuyên qua các lớp của
mô hình OSI, nó tiếp nhận các header, các trainer, và các thông tin khác (header làthông tin địa chỉ được thêm vào
Trang 24Hình 2.2 Sự đóng gói dữ liệu
2.3.5 Tên của dữ liệu tại mỗi lớp của mô hình OSI
Để các gói dữ liệu di chuyển từ nguồn đến đích, mỗi lớp của mô hình OSI tạinguồn phải thông tin với lớp ngang cấp với nó tại đích Dạng này thường dược thamkhaorddeesn như là hoạt động thông tin ngang hàng (peer-to-peer) Trong tiến trìnhnày, mỗi giao thức của lớp trao đổi các đơn vị thông tin, được gọi là các đơn vị dữ liệugiao thức PDU (protocol Data Unit), giữa các lớp ngang hàng Mỗi lớp trong hoạtđộng truyền, tại máy tính nguồn thông tin bằng một PDU đặc biệt, và với lớp nganghàng với nó với máy đích
Các gói dữ liệu trên một mạng khởi đầu tại một nguồn và sau đso di chuyển đếnmột đích Mỗi lớp phụ thuộc vào chức năng dịch vụ của lớp bên dưới nó trong môhình OSI Để cung cấp dịch vụ này, lớp dưới đặt PDU từ lớp trên vào field dữ liệu củanó; sau đó thêm những gì gọi là header và trailer mà lớp cần để thực hiện trức năngcủa mình Kế đến, khi dữ liệu di chuyển đến các lớp dưới của mô hình OSI, các header
và trailer khác được thêm vào Sau khi các lớp 7, 6 và 5 đã đặt thông tin của chúng vàolớp 4 thêm nhiều thông tin hơn Nhóm dữ liệu này, PDU của lớp 4, được gọi làsegment
Ví dụ lớp mạng cung cấp một dịch vụ cho lớp vận chuyển, và lớp vận chuyểntrao dữ liệu cho hệ thống liên mạng con này Tại đây lớp mạng có nhiệm vụ di chuyển
dữ liệu xuyên qua liên mạng Nó hoàn tất nhiệm vụ bằng cách gói dữ liệu và gắn thêm
Trang 25một header để tạo ra một gói (PDU của lớp 3) Header chứa những thông tin cần thiết
để hoàn thành việc truyền, chẳng hạng như các địa chỉ nguồn và địa chỉ đích
Lớp liên kết dữ liệu cung cấp một dịch vu cho lớp mạng Nó gồm thông tin lớp mạngdưới dạng một frame (PDU của lớp 2) Header của frame chứa thông tin (ví dụ địa chỉvật lý) được yêu cầu để hoàn tất các chức năng liên kết dữ liệu Lớp liên kết dữ liệucung cấp một dịch vụ cho lớp mạng bằng cách gói thông tin của lớp mạng trong mộtframe
Lớp vật lý cũng cung cấp một dịch vụ cho lớp liên kết dữ liệu Lớp vật lý mã hóaframe của lớp liên kết dữ liệu thành các mẫu bít 1 và bít 0 để truyền trên môi trườngtại lớp 1
Hình 2.3 Tên dữ liệu tại mỗi lớp
2.4 Giao thức TCP/IP
2.4.1 các giao thức TCP/IP của Internet và mô hình OSI
Bộ giao thức TCP/IP được phát triển từ quá trình nghiên cứ của cơ quanDARPA thuộc bộ quốc phòng Hoa Kỳ Nó bắt nguồn từ sự phát triển hệ thống thôngtin trong nội bộ DARPA Sau dó TCP/IP được phối hợp với Berkeley SoftwareDistribution of Unix Ngày nay, TCP/IP là một chuẩn phổ biến cho hoạt động thông tinliên mạng và đóng vai trò là giao thức vận chuyển trong Internet, cho phép nhiều triệumáy tính liên lạc với nhau trên mạng phạm vị toàn cầu
Trang 26TCP/IP quan trọng vì Router dùng nó như một công cụ cấu hình Chứcnăng của giao thức TCP/IP là truyền thông tin từ một thiết bị mạng này sang một thiết
bị mạng khác Trong khi là công việc này nó có cấu trúc gần giống với mô hình OSItại các lớp bên dưới, và hỗ trợ tất cả các chuẩn vật lý và các giao thức liên kết dữ liệu
Hình 2.4 Chồng giao thức TCP/IP
Các lớp chịu chi phối nhiều nhất vởi TCP/IP là lớp 7, lớp 4 và lớp 3 Bao gồmtrong các lớp này là các loại giao thức khác với chức năng và mục tiêu khác nhau, tất
cả những điều đó đều liên quan đến hoạt đông vận chuyển thông tin
TCP/IP cho phép hoạt động thông tin diễn ra trong số bất kỳ các mạng nàotrong liên mạng và phù hợp tốt như nhau trong hoạt động truyền tin ở cả LAN vàWAN TCP/IP không chỉ bao gồm cho các đặc tả lớp 3 và lớp 4 mà còn đặc tả cho cácứng dụng phổ biến như E-mail, truy cập từ xa (remode login), mô phỏng đầu cuối(terminal emulation) và truyền file
Trang 27Hình 2.5 các giao thức bên trong TCP/IP
2.5 Ngôn ngữ lập trình PHP
2.5.1 Giới thiệu
Cùng với Apache, PHP và MySQL đã trở thành chuẩn trên các máy chủ Web.Rất nhiều phần mềm Web mạnh sử dụng PHP và MySQL (PHP Nuke, Post Nuke,vBulletin…)
PHP là ngôn ngữ có cú pháp gần giống Perl nhưng tốc độ dịch của nó được cácchuyên gia đánh giá là nhanh hơn ASP 5 lần, chạy trên nhiều hệ điều hành như Unix,Window, Linux nó hỗ trợ kết nối các hệ cơ sở dữ liệu lớn như MySQL, ngoài ra nócòn được Apache hỗ trợ như là một module cơ bản
a Lịch sử ra đời
Năm 1995, Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp lạicùng đoạn mã khi tạo các trang Ban đầu tác giả chỉ có ý định tạo bộ phân giải đơngiản để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viết bằng C
Tới năm 1998, việc công bố phiên bản 3 thì PHP mới chính thức phát triển theohướng tách riêng của mình Giống như C và Perl, lúc này nó đã là một ngôn ngữ lậptrình có cấu trúc và tính năng đa dạng, chính vì thế đã khuyến khích các nhà thiết kếWeb sử dụng PHP Nó có thể cung cấp một lượng cơ sở dữ liệu khá đồ sộ gồm cảMySQL, mSQL, dbm, Hyperwave, Informix, Ocracle, nó cũng có thể làm việc với cáchình ảnh, các file dữ liệu, FTP, XML của các kỹ thuật ứng dụng khác
Trang 28b PHP là gì?
PHP được viết từ Hypertext Preprocessor hoặc Personal Home Page, đây
là một ngôn ngữ kịch bản mã nguồn mở sử dụng cho mục đích chung, đặc biệt thíchhợp cho phát triển Web và có thể nhúng vào HTML Hiện nay được sử dụng rất rộngrãi
Mã PHP được thực thi ở phía Server, khi trình duyệt của người dùng truy cậpmột trang web có chứa một đoạn mã PHP thì trình duyệt nhận được trang kết quả đã
xử lý từ Web server, người dùng sẽ không thể biết được đoạn mã viết gì
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML Điểm đặcbiệt là PHP được phát triển hoàn toàn cho nền tảng web Chính vì vậy , mà các ứngdụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP Đây cũng chính là điểmmạnh của PHP so với Perl
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl PHP có thểgiao tiếp với nhiều hệ CSDL như MySQL, MS Access, Sybase, Oracle và cả MicrosoftSQL Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khả năng khác nhưIMAP, SNMP, LDAP, XML PHP chạy trên hầu hết các nền tảng hệ thống Trình máychủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web chính thức của PHP
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí Với máy tính cấuhình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy chủ có thểphục vụ được nhiều ứng dụng web tương đối Toàn bộ chi phí hầu như chỉ là thời gianbạn bỏ ra để cài đặt các phần mềm PHP được xem là một thay thế cho Perl PHPkhông thể làm được nhiều như Perl, thế nhưng chính sự hạn chế này làm cho PHP dễhọc và dễ dùng
2.5.2 Sử dụng PHP
a Khai báo mã PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng
<? echo “Đây là kiểu Short”; ?>
- Kiểu định dạng XML: thẻ này có thể sử dụng với văn bản dạng XML
<?php echo “Đây là kiểu định dạng với XML”; ?>
- Kiểu Script: trong trường hợp muốn sử dụng PHP như một script tương tự nhưkhai báo Javascript hay VBScript 4