Tải bản đầy đủ (.docx) (57 trang)

Thiết kế mạch điều khiển thiết bị và giám sát qua internet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.63 MB, 57 trang )

LỜ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 trong
suố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

1


LỜ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à em
tham 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ông
tin 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

2


MỤ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
3


2.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

4


LỜ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ông
nghệ thông tin, điện tử, tự động hóa,… Đã làm cho đời sống của con người ngày càng
hoà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ậm
chí 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 sinh
viê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ự động
hó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ông
trá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.

5


Chươ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ập
trì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ông
qua 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ều
khiể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át

triể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ông
cầ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ức

tạ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.
6


Arduino được biết đến nhiều nhất là phần cứng của nó, nhưng phải có phần
mề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ợp
môi trường phát triển (IDE). IDE cho phép viết, chỉnh sửa code và chuyển đổi sao cho
phầ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ày
gọ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ập
trì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ành
phầ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ều
module, mỗi module được phát triển cho một ứng dụng.Về mặt chức năng, các bo
mạ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ớ, hay
kí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ối
như Ethernet và Bluetooth. Các bo mở rộng chủ yếu mở rộng thêm một số tính năng
cho bo mạch chính ví dụ như tính năng kết nối Ethernet, Wireless, điều khiển động cơ.

1.1.2. Cấu trúc phần cứng
♦ Cấu trúc chung
Arduino Uno là một bo mạch vi điều khiển dựa trên chip ATmega168 hoặc
ATmega 328. Cấu trúc chung bao gồm:
- 14 chân vào ra bằng tín hiệu số, trong đó có 6 chân có thể sử dụng để điều chế
độ rộng xung.
- Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các bộ cảm
biến bên ngoài để thu thập số liệu.
-

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 bo
mạch và một chân cấp nguồn cho mạch, một nút reset.
7


- 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ấp
cho Arduino có thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồn
chuyê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:

8


Hì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ự
sang số.

 Chân AVCC (chân 20): Chân cung cấp điện áp cho quá trình chuyển đổi
ADC.

 Cổng B (chân 14 - chân 19, chân 9, chân 10): Bao gồm có 8 chân I/O từ
(PB0÷PB7).

 Cổng C (chân 23 – chân 28, chân 1): Bao gồm có 7 chân I/O từ (PC0÷PC6)
trong đó chân PC6 (chân số 1) làm chân reset.

 Cổng D (chân 2 – chân 6, chân 11 – chân 13): Bao gồm có 8 chân I/O từ

chân (PD0÷PD7).

9


Hì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ập
nhanh, 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óa
hiệu suất, AVR sử dụng một kiến trúc Harvard và đường bus riêng biệt cho chương
trì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.

10


Hình 1.4. Sơ đồ cấu trúc CPU trong ATmega 328
♦ Nguồn nuôi
Arduino có thể được hỗ trợ thông qua kết nối USB hoặc với một nguồn cung cấp
điện bên ngoài. Các nguồn năng lượng được lựa chọn tự động. Hệ thống vi điều khiển
có thể hoạt động bằng một nguồn cung cấp bên ngoài từ 6V đến 20V. Nên cung cấp
với ít hơn 7V, tuy nhiên pin 5V có thể cung cấp ít hơn 5V và hệ thống vi điều khiển có
thể không ổn định. Nếu sử dụng nhiều hơn 12V điều chỉnh điện áp có thể quá nóng.
Phạm vi khuyến nghị là 7V đến 12V.
 Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điện bên
ngoà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().
11


Hì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ến
khở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ột
lầ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 bps
pinMode(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.




Ví dụ 2:
int button = 3; // ham setup se khoi tao cong serial va nut pin
void setup() {
beginSerial(9600);
pinMode(buttonPin, INPUT);
}
//vong lap loop kiem tra nut pin moi lan lap
//va gui du lieu ra cong serial neu an nut
12


void loop()
{
if(digitalRead(buttonPin) == HIGH)
serialWrite(‘H’);
else
serialWrite(‘L’);
delay(1000);
}
♦ Các hàm vào ra số
 Hàm pinMode(): Cấu hình một chân thành một chân vào hoặc một chân ra.
Cú pháp: pinMode(pin, mode);
Trong đó: pin là số của chân muốn đặt chế độ, mode là các chế độ INPUT,
INPUT_PULLIP, OUTPUT. Giá trị trả về là none.

 Ví dụ 3:
int ledPin = 13; //ket noi den Led voi chan so 13

void setup()
{
pinMode(ledPin, OUTPUT);// dat chan so lam chan ra
}
void loop()
{
digitalWrite(ledPin, HIGH); // den led sang
delay(1000); // doi trong 1s
digitalWrite(ledPin, LOW); //den led tat
delay(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.
13


● Ví dụ 4:
int ledPin = 13;//ket noi den led voi chan so 13
int inPin = 7; //ket noi chan so 7 voi nut nhan
int val = 0;// bien doc cac gia tri cua nut nhan
void setup()
{
pinMode(ledPin, OUTPUT);// dat chan so 13 lam chan xuat
pinMode(inPin, INPUT);//dat chan so 7 lam chan nhap
}

void loop()
{
val = digitalRead(inPin); //doc du lieu tu chan so 7
digitalWrite(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ôi
trườ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ép

kí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ết
nố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ý ứng

dụ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ảm
thiể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 internet

khô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 đơn

giả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
14


phí 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 đó bao
gồ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ăng
củ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.

15


Hì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.
16


-

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ụng

InternetofThings với mục đích đạt được mức tiêu thụ điện năng thấp nhất với sự kết
hợ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 3
chế độ: 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 so
vớ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 để đánh
thứ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 được

phá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ởi
thiết bị di động SOC. Cho phép chúng vẫn ở chế độ chờ, điện năng thấp cho đến khi
Wifi 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 ứng
dụ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.
17


-

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ái
wakeup.
-

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ơnclock
gating đượ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.

18


Chươ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ủa
kiế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 nhau
trong 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ống
má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ập
trung (dêcntralized) do đó nếu một hay nhiều node mạng chính bị phá hủy thì các node

cò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 (Netword
Control 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ương
trì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 trang
web, máy tính đó còn phải được cài các chương trình phục vụ web. Chính những
chươ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 được
và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úng
phả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ạc
vớ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
19


trong 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ông
ngừ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ương
thí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ên
mạ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 đều
tạ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ốn
phổ 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ốt
nhấ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ên
mạ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ỗi
lớ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 di
chuyển xuyên qua một mạng như thế nào. Ngoài ra có thể dùng mô hình tham chiếu
OSI để 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ương
trì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ằm
trê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ôi
trườ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ản
hơn.
20


+ 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ớp
khá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ệc
họ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ởi
mộ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
21


 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ông
cung 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ình
Work, 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àn
vẹ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 đầu
cuố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ình
bà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ác
phiê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àm
việ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 (application
protocol) 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ận
chuyể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

22


việ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ột
liê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ới
lược đồ đánh địa chỉ vật lý (đối nghịch với địa chỉ luận lý), cấu hình mạng, truy
xuấ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ệu
vậ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ức
cầ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.

23


Hì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ại
nguồ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 tham
khaorddeesn như là hoạt động thông tin ngang hàng (peer-to-peer). Trong tiến trình
nà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ệu
giao 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 ngang
hà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 đến
mộ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ủa
nó; sau đó thêm những gì gọi là header và trailer mà lớp cần để thực hiện trức năng
củ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ào
lớ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ển
trao 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
24



mộ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ạng
dướ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ệu
cung 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ột
frame.
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óa
frame 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ường
tạ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ơ quan
DARPA thuộc bộ quốc phòng Hoa Kỳ. Nó bắt nguồn từ sự phát triển hệ thống thông
tin trong nội bộ DARPA. Sau dó TCP/IP được phối hợp với Berkeley Software
Distribution of Unix. Ngày nay, TCP/IP là một chuẩn phổ biến cho hoạt động thông tin
liên mạng và đóng vai trò là giao thức vận chuyển trong Internet, cho phép nhiều triệu
máy tính liên lạc với nhau trên mạng phạm vị toàn cầu.

25


×