1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Thiết kế hệ thống điều khiển thiết bị từ xa qua internet gửi dữ liệu nhiệt độ độ ẩm lên websever

57 417 5

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 57
Dung lượng 3,49 MB

Nội dung

Đặc biệt là áp dụng các công nghệ của các ngànhđiện tử, công nghệ thông tin và truyền thông vào trong thực tiễn cuộc sống con người.Công nghệ Internet of Things IoT ngôi nhà thông m

Trang 1

MỤC LỤC

LỜI CẢM ƠN 4

LỜI CAM ĐOAN 5

LỜI NÓI ĐẦU 6

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 7

1.1 Tổng quan về Arduino 7

1.1.1 Giới thiệu chung 7

1.1.2 Cấu trúc phần cứng 8

1.1.3 Cấu trúc phần mềm và lập trình Arduino 12

1.2 Cơ sở lý thuyết về Module Wifi ESP8266 14

1.2.1 Giới thiệu về ESP8266 14

1.2.2 Cấu tạo của ESP8266 15

1.2.3 Tính năng của ESP8266 16

1.2.4 Quản lý năng lượng ESP8266 17

1.3 Cảm biến nhiệt độ và độ ẩm 18

1.4 Tìm hiểu và xây dựng web server 19

1.4.1 Lịch sử của World Wide Web 19

1.4.2 Web Server 19

1.4.3 Giao thức TCP/IP 20

Các giao thức TCP/IP của Internet 20

1.4.4 Ngôn ngữ lập trình PHP 21

1.4.5 Hệ quản trị cơ sở dữ liệu MySQL 27

1.4.6 Giới thiệu về Apache Webserver 29

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 30

2.1 Yêu cầu hệ thống 30

2.1.1 Mô tả hoạt động của hệ 30

2.1.2 Yêu cầu của hệ thống 31

2.2 Thiết kế hệ thống 32

2.2.1 Thiết kế mạch đo nhiệt độ 32

2.2.3 Thiết kế phần cứng 40

2.2.4 Hình ảnh thực tế 44

CHƯƠNG 3 KẾT LUẬN 46

Trang 2

TÀI LIỆU THAM KHẢO 47 PHỤ LỤC 48

DANH MỤC HÌNH ẢN

Trang 3

Hình 1 Cấu trúc phần cứng của Arduino Uno 9

Hình 2 Sơ đồ chân trong ATmega 328 10

Hình 3 Sơ đồ khối cấu trúc bên trong ATmega 328 11

Hình 4 Sơ đồ cấu trúc CPU trong ATmega 328 12

Hình 5 Mô hình cấu trúc của chương trình Arduino 13

Hình 6 Hình ảnh thực tế của Chip ESP8266 15

Hình 7 Hình ảnh sơ đồ chân kết nối ESP8266 16

Hình 8 Cảm biến nhiệt độ và độ ẩm DHT11 18

Hình 9 Chồng giao thức TCP/IP 20

Hình 10 các giao thức bên trong TCP/IP 21

Hình 11 sơ đồ hoạt động của hệ thống giám sát nhiệt độ 30

Hình 12 Sơ đồ khối của mạch thiết bị đo 32

Hình 13 Sơ đồ nguyên lý DTH11 kết nối MCU 33

Hình 14 Gửi tín hiệu đo 34

Hình 15 Sơ đồ đọc giá trị đo 35

Hình 16 Sơ đồ đọc giá trị đo 35

Hình 17 Lưu đồ thuật toán mạch đo 37

Hình 18 chương trình con giải mã lệnh 38

Hình 19 Giao diện điều khiển thiết bị 39

Hình 20 Giao diện trang chủ giám sát nhiệt độ 39

Hình 21 Toàn bộ giao diện trang chủ 39

Hình 22 cơ sở dữ liệu trên data base 40

Hình 23 Sơ đồ nguyên lý khối điều khiển trung tâm 41

Hình 24 Sơ đồ nguyên lý khối relay 42

Hình 25 Sơ đồ nguyên lý toàn mạch 43

Hình 26 Sơ đồ nguyên lý toàn mạch 44

Hình 27 mạch thực tế 45

Trang 4

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 thầy giáo TS Nguyễn Vôn Dim đã tận tình hướng dẫn, chỉ bảo, hướng dẫn em trong suốt quá trình tìm hiểu, triển

khai và nghiên cứu đề tài

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 - Trường Đại học Công nghệ thông tin và Truyền Thông Thái Nguyên đãdạy bảo tận tình, trang bị cho em những kiến thức quý báu, bổ ích và tạo điều kiệnthuận lợi trong suốt quá trình em học tập và nghiên cứu tại trường

Do có nhiều hạn chế về kiến thức nên đề tài không tránh khỏi những thiếu sót,rất mong nhận được những ý kiến đóng góp quý báu của quý thầy cô và các bạn cùngquan tâm Cuối cùng em xin gửi lời chúc sức khỏe và thành đạt tới tất cả thầy cô, cùngtoàn thể gia đình và bạn bè

Em xin chân thành cảm ơn!

Thái Nguyên, tháng 04 năm 2018

Sinh viên thực hiện

Nông Văn Thời

Trang 5

LỜI CAM ĐOAN

Em xin cam đoan về nội dung của đề tài “ Thiết kế hệ thống đ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 thầy Nguyễn Vôn Dim 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ôngtin và Truyền thông

Thái Nguyên, tháng 04 năm 2018

Sinh viên thực hiện

Nông Văn Thời

LỜI NÓI ĐẦU

Trang 6

Trong quá trình phát triển của con người, những cuộc cách mạng về công nghệđóng một vai trò rất quan trọng, chúng làm thay đổi từng ngày từng giờ cuộc sống củacon người, theo hướng hiện đại hơn Đi đôi với quá trình phát triển của con người,những thay đổi do chính tác động của con người trong tự nhiên, trong môi trường sốngcũng đang diễn ra, tác động trở lại chúng ta, như ô nhiễm môi trường, khí hậu thay đổi,v.v Dân số càng tăng, nhu cầu cũng tăng theo, các dịch vụ, các tiện ích từ đó cũngđược hình thành và phát triển theo Đặc biệt là áp dụng các công nghệ của các ngànhđiện tử, công nghệ thông tin và truyền thông vào trong thực tiễn cuộc sống con người.Công nghệ Internet of Things (IoT) ngôi nhà thông minh được tích hợp từ các kỹ thuậtđiện tử, tin học và viễn thông tiên tiến vào trong mục đích nghiên cứu, giải trí, sảnxuất, v.v , phạm vi này ngày càng được mở rộng, để tạo ra các ứng dụng đáp ứng chocác nhu cầu trên các lĩnh vực khác nhau

Hiện nay, mặc dù khái niệm IoT đã trở nên khá quen thuộc và được ứng dụngkhá nhiều trong các lĩnh vực của đời sống con người, đặc biệt ở các nước phát triển cónền khoa học công nghệ tiên tiến Tuy nhiên, những công nghệ này chưa được áp dụngmột cách rộng rãi ở nước ta, do những điều kiện về kỹ thuật, kinh tế, nhu cầu sử dụng.Xong nó vẫn hứa hẹn là một đích đến tiêu biểu cho các nhà nghiên cứu, cho nhữngmục đích phát triển đầy tiềm năng

Được sự chỉ dẫn của Tiến sĩ Nguyễn Vôn Dim, em đã chọn đề tài “ Thiết kế hệ

thống điều khiển thiết bị và giám sát nhiệt độ trong nhà qua internet” Trong quá trìnhthực hiện đề tài 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ótmong 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 7

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ậ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 8

Arduino đượ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ấtnhiề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ốngnhau 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ếtnối như Ethernet và Bluetooth Các bo mở rộng chủ yếu mở rộng thêm một số tínhnă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ơ

Trang 9

- 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

- 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 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 (ATmega168) 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 10

Hình 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 11

Hình 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 CPUlà để đả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 12

Hình 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ạchvà 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

Trang 13

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().

Hình 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

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 14

}//vong lap loop kiem tra nut pin moi lan lap//va gui du lieu ra cong serial neu an nut void loop()

{

if(digitalRead(buttonPin) == HIGH)serialWrite(‘H’);

elseserialWrite(‘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

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

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

Trang 15

 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 chiphí 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 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

Trang 16

+ 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

Hình 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

Trang 17

- Wake up và truyền các gói dữ liệu trong <2ms.

- 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

- 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

Trang 18

- 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 đi từ 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

1.3 Cảm biến nhiệt độ và độ ẩm

DHT11 là cảm biến nhiệt độ và độ ẩm Nó sử dụng giao tiếp số theo chuẩn 1dây

Hình 8. Cảm biến nhiệt độ và độ ẩm DHT11

Nó có cấu tạo gồm 4 chân như hình :

-Chân 1: Chân nối nguồn VCC 5VDC-Chân 2: Chân dữ liệu để giao tiếp với vi điều khiển theo chuẩn 1 dây.-Chân 3: Chân NC (No connect)

-Chân 4: Chân GND nối đất

Trang 19

1.4 Tìm hiểu và xây dựng web server

1.4.1 Lịch sử của World Wide Web

World Wide Web, gọi tắt là Web hoặc WWW, mạng lưới toàn cầu làmột không gian thông tin toàn cầu mà mọi người có thể truy cập (đọc và viết) qua cácthiết bị kết nối với mạng Internet Thuật ngữ này thường được hiểu nhầm là từ đồng

nghĩa với chính thuật ngữ Internet Nhưng Web thực ra chỉ là một trong các dịch vụ

chạy trên Internet, ngoài Web ra còn các dịch vụ khác như thư điện tử hoặc FTP

Web được viện sĩ Viện Hàn lâm Anh Tim Berners-Lee, một chuyêngia tại CERN, Geneva, Thụy Sĩ phát minh ngày 12 tháng 3 năm 1989 Khởi đầu nó chỉlà một dự án liên lạc nội bộ của CERN, nhưng Berners-Lee nhận ra ý tưởng này có thểthực hiện với quy mô toàn cầu Berners-Lee và Robert Cailliau, đồng nghiệp của ôngtại CERN đề xuất vào năm 1990 sử dụng siêu văn bản "để liên kết và truy cập thôngtin như một mạng lưới các nút trong đó người dùng có thể duyệt thông tin theo ýmuốn", và Berners-Lee đã hoàn thành trang web đầu tiên vào tháng 12 năm đó.Trangweb được kiểm tra thành công ngày 20 tháng 12 năm 1990 và Berners-Lee thông báo

về ý tưởng này trên alt.hypertext vào ngày 7 tháng 8 năm 1991.

1.4.2 Web Server

Máy chủ Web (Web Server) là máy tính mà trên đó cài đặt phần mềmphục vụ web, đôi khi người ta cũng gọi chính phần mềm đó là web server Tất cả cácweb server đều hiểu và chạy được các file *.htm và *.html Tuy nhiên mỗi web serverlại phục vụ một số kiểu file chuyên biệt chẳng hạn như llS của Microsoft dành cho

*.asp, *.aspx…; Apache dành cho *.php…; Sun Java system web server của SUNdành cho *.jsp…

Ở phần lõi của máy chủ web là một dịch vụ web phục vụ nội dung tĩnhcho một trình duyệt bằng cách tải một tập tin từ đĩa và chuyển nó lên mạng, tới mộtngười sử dụng trình duyệt web Sự trao đổi hoàn toàn này được thực hiện gián tiếpthông qua một trình duyệt và một máy chủ kết nối tới một thiết bị khác sử dụng HTTP.Bất kỳ máy tính nào cũng có thể vào trong một dịch vụ web bằng cách cài đặt phầnmềm dịch vụ và kết nối internet Trên mạng có rất nhiều các phần mềm ứng dụng dịch

vụ web, bao gồm các phầm mềm cung cấp tên miền từ NCSA và Apache, và các phầnmềm thương mại của Microsoft, Netscape và của nhiều hãng khác

1.4.3 Giao thức TCP/IP

Các giao thức TCP/IP của Internet

Trang 20

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ôngtin liên mạng và đóng vai trò là giao thức vận chuyển trong Internet, cho phép nhiềutriệu máy tính liên lạc với nhau trên mạng phạm vị toàn cầu.

TCP/IP quan trọng vì Router dùng nó như một công cụ cấu hình Chức năngcủ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 OSI tạicá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 9. 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 21

Hình 10. các giao thức bên trong TCP/IP

1.4.4 Ngôn ngữ lập trình PHP

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

b 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

Trang 22

thích hợp cho phát triển Web và có thể nhúng vào HTML Hiện nay được sử dụng rấtrộng rã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ìnhmáy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web chính thức củaPHP

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

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

<script language = ‘php’> echo “PHP script”; </script>

- Kiểu ASP:

Trang 23

Chú ý: Khi sử dụng các số thực tế để tính toán, có thể làm mất giá trị của

nó Vì vậy, nên sử dụng các hàm toán học trong thư viện chuẩn để tính toán

- Xâu:

Có 2 cách để xác đinh 1 xâu: Đặt giữa 2 dấu nháy kép(“”) hoặc giữa 2 dấu nháyđơn (‘’).Chú ý là các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặcđơn

- Mảng:

Mảng thực chất là gồm 2 bảng: Bảng chỉ số và bảng liên kết

 Mảng 1 chiều: Có thể dùng hàm list(), array() để liệt kê các giá trị của từngphần tử trong mảng để tạo mảng Có thể thêm các giá trị vào mảng để tạo thành

PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ

cái hoặc dấu gạch dưới.

PHP không yêu cầu phải khai báo trước kiểu dữ liệu cho các biến, kiểu dữ liệucủa biến sẽ phụ thuộc vào kiểu dữ liệu mà bạn gán cho nó

VD: $a;

$b=2;

Trang 24

d Biểu Thức

Biểu thức là một phần quan trọng trong PHP Phần lớn mọi thứ bạn viết đềuđược coi như là một biểu thức Điều này có nghĩa là mọi thứ đều có một giá trị

Một dạng cơ bản nhất của biểu thức là bao gồm các biến và hằng số.PHP hổ trợ

3 kiều giá trị cơ bản nhất: Số nguyên, số thực, và xâu Ngoài ra còn có mảng và đốitượng Mỗi kiểu giá trị này đều có thẻ gán cho cácbiến hay làm giá trị trả ra khỏi cáchàm

e Các cấu trúc lệnh

- If else else if

if (điều kiện) { các lệnh thực thi; }

elseif ( điều kiện) { các lệnh thực thi;}

foreach(array_expression as $value) statement

foreach(array_expression as $key => $value) statement

- Break và continue

Break: Thoát khỏi vòng lặp hiện thời

Continue: Bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo

- Switch

Switch (tên biến) {

case trường hợp 1: break;

case trường hợp 2: break;

case trường hợp 3: break;

default :

Trang 25

●Những điều cần nhớ:

- Các cấu trúc điều khiển chi phối tốc độ của chương trình, cho phép chia nhỏcác thành phần khác nhau của một ngôn ngữ lập trình, phụ thuộc vào đầu vào và có thể

dễ dàng thực hiện các thao tác

- Có hai loại cấu trúc điều khiển trong PHP: Ngôn ngữ điều kiện và điều khiểntheo một vòng khép kín

- Hai loại cấu trúc trên chỉ có các lệnh không dùng dấu ngoặc, tuy nhiên cácnhà lập trình thường sử dụng chúng để tạo mã dễ hiểu hơn Các lệnh này thường đượcứng dụng với cùng một lý do

- Break: Có thể được dùng để kết thúc lệnh hiện thời Nó cũng có thể được sửdụng để xoá bỏ For Loops và While Loops, Exit, xoá bỏ toàn bộ nhiệm vụ của ngônngữ lập trình Break còn được dùng ở bất kỳ đâu trong ngôn ngữ lập trình

echo "$input[0] + $input[1] = ", $input[0]+$input[1];

function makecoffee ($type = "cappucino") {

return "Making a cup of $type.\n";

}

Trang 26

Chú ý: Khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm vềphía phải nhất trong danh sách các đối số.

VD: function makeyogurt ($flavour, $type = "acidophilus")

g.Lưu trữ và truy vấn dữ liệu bằng PHP

* Mở file bằng PHP

- fopen(tên file, chế độ mở): mở file

- fputs(), fwrite(): ghi file

- fclose(): Đóng file

- feof(): Nhận giá trị true nếu con trỏ ở cuối file

- file_exists(): Kiểm tra file có tồn tại

-filesize(): kiểm tra dung lượng của file

-unlink(): xóa file

* Thiết lập kết nối cơ sở dữ liệu

Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể làlocalhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng nhậplàm việc trên cơ sở dữ liệu được mở

* Thiết lập kết nối:

Int mysql_pcconnect(“serverbname”, “username”, “password”);

$link = mysql_connect(“servername”, “username”, “password”)

or die(“Không kết nối được với CSDL”);

* Mở một CSDL:

mysql_select_db(“database name”); hoặc

mysql_select_db(“database name”, $link);

Trang 27

* Đóng kết nối cơ sở dữ liệu:

mysql_close(database_connection);

* Truy vấn cơ sở dữ liệu:

Int mysql_query(string sql);

Int mysql_query(string sql, [int db_connect]);

Int mysql_query(string database, string sql, [int db_connect]);

* Số lượng mẩu tin:

mysql_num_rows(); Cho biết số lượng mẩu tin câu truy vấn trả về

* Truy vấn dữ liệu:

Int mysql_fetch_array($result);

Mysql_fetch_object($result);

* Dung lượng của tập mẩu tin:

int mysql_free_result(int $result);

1.4.5 Hệ quản trị cơ sở dữ liệu MySQL

1.4.5.1 MySQL là gì?

MySQL là một database server, là hệ thống quản lý cơ sở dữ liệu quan hệ.Trongviệc lưu trữ, tìm kiếm, sắp xếp và truy vấn dữ liệu, nó tỏ ra rất nhanh và mạnh mẽ.MySQL server điều khiển truy cập dữ liệu đa người dùng cùng một thời điểm, cungcấp khả năng truy cập dữ liệu nhanh, bảo đảm cho người sử dụng được cấp quyền truycập dữ liệu của hệ thống Do vậy, MySQL là đa người dùng, đa luồng

MySQL sử dụng các câu lệnh truy vấn SQL(ngôn ngữ truy vấn có cấu trúc), làmột chuẩn ngôn ngữ truy vấn cơ sở dữ liệu hiện nay trên Web MySQL được chínhthức sử dụng rộng rãi năm 1996 nhưng đã hình thành từ năm 1979 MySQL cómãnguồn mở và sử dụng miễn phí, nhưng với những mục đích thương mại khác thì nócũng có các bản quyền thương mại nếu được yêu cầu cung cấp bản quyền Một khókhăn cho người lập trình không chuyên là khi sử dụng MySQL, việc tạo cơ sở dữ liệuhoàn toàn bằng lệnh, do đó đòi hỏi người sử dụng phải có tính cẩn thận và sắp xếp quytrình làm việc hợp lý

Trang 28

MySQL có thể quản lý tới hàng Terabyte dữ liệu, hàng triệu bản ghi, chạy trênnhiều môi trường khác nhau, có giao diện tương đối dễ sử dụng, có thể truy vấn dữliệu thông qua câu lệnh SQL.

MySQL thường được sử dụng chung với PHP trong những trang Web cần sửdụng đến cơ sở dữ liệu

1.4.5.2 Nơi cung cấp MySQL

Có thể download tại website www.mysql.com qua mạng Internet phần mềm hệ

quản trị cơ sở dữ liệu server/client đến các phần mềm tiện nghi và các phần mềm giaodiện đẹp mắt và tiện dụng

1.4.5.3 Các câu lệnh cơ bản của MySQL

a Tạo cơ sở dữ liệu:

Create Database <database_name>

Create <object type>

<object_name>

b Phát biểu SQL thao tác dữ liệu

- SELECT (truy vấn mẩu tin)

- INSERT (Thêm mẩu tin)

- UPDATE (Cập nhật dữ liệu)

- DELETE (Xóa mẩu tin)

Phát biểu SELECT

SELECT<danh sách cột>

FROM <danh sách bảng>

WHERE <các điều kiện ràng buộc>

[GROUP BY <tên cột/biểu thức trong Select>]

[HAVING <điều kiện bắt buộc của Group by>]

[ORDER BY <danh sách cột>]

[Limit fromNumber | To Number]

Phát biểu INSERT

INSERT INTO <table_name> [<colum_name list>]

Ngày đăng: 11/05/2018, 16:10

TỪ KHÓA LIÊN QUAN

w