Khi ta gõ địa chỉ trang web “http://www.abc.com/” vào trình duyệt web và nhấn Enter, trang web hiển thị ngay trên màn hình. Các bước cơ bản trong tiến trình truyền tải trang web đến màn hình người dùng bằng cơ chế hoạt động của Web server được thể hiện.
Ttrình duyệt web thực hiện một kết nối tới máy chủ web, yêu cầu một trang web và nhận lại nó. Sau đây, là thứ tự từng bước cơ bản xảy đến đằng sau màn hình của bạn:
Trình duyệt web tách địa chỉ website làm 3 phần: - Phần giao thức: (“http”)
- Máy chủ tên miền: (www.abc.com) - Tên tệp: (“index.htm”)
Trình duyệt liên hệ với máy chủ tên miền để chuyển đổi tên miền "www.abc.com" ra địa chỉ IP (Internet Protcol).
Sau đó, trình duyệt sẽ gửi tiếp một kết nối tới máy chủ có địa chỉ IP tương ứng qua cổng 80.
Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu GET đến máy chủ, yêu cầu tệp "http://www.abc.com/index.htm" (cookies cũng sẽ được gửi kèm theo từ trình duyệt web đến máy chủ).
Tiếp đến, máy chủ sẽ gửi đoạn text dạng HTML đến trình duyệt web máy đã gởi yêu cầu (cookies cũng được gửi kèm theo từ máy chủ tới trình duyệt web, cookies được ghi trên đầu trang của mỗi trang web).
Trình duyệt web đọc các thẻ HTML, định dạng trang web và kết xuất ra màn hình.
- WebClient là gì? Là giao diện phía người dùng đầu cuối (Client), dùng để tạo ra giao diện tương tác của người dùng đối với ứng dụng Web (User Interface). - Các cơng nghệ/ ngơn ngữ lập trình hỗ trợ cho WebClient
+Công nghệ: Photoshop, Flash, Silver Light (Microsoft)v. V ...
+Ngôn ngữ: html, css, javascript v .v ...
Để đọc được các trang Web của ứng dụng Web trên máy người dùng phải cài các trình duyệt (Browser), ví dụ: FireFox, IE, Chrome, Coccoc (VN) v .v ....
IlI.Các giao thức sử dụng trên Web Server
ỉ . G i a o th ứ c H T T P
HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn bản). Nó là giao thức cơ bản mà World Wide Web sử dụng. HTTP xác định cách các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia khác) được định dạng và truyền tải ra sao, và những hành động nào mà các Web server (máy chủ Web) và các trình duyệt Web (browser) phải làm để đáp ứng các lệnh rất đa dạng. Chẳng hạn, khi bạn gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được u cầu và kéo về mở trên trình duyệt Web. Nói cách khác, HTTP là giao thức truyền tải các file từ một Web server vào một trình duyệt Web để người dùng có thể xem một trang Web đang hiện diện trên Intemet.HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet).
Có một tiêu chuẩn chính khác cũng điều khiển cách thức World Wide Web làm việc là HTML (HyperText Markup Language, ngôn ngữ đánh dấu siêu văn bản), có chức năng quản lý cách thức mà các trang Web được định dạng và hiển thị.
Người ta gọi HTTP là một giao thức “phi trạng thái” (stateless) bởi vì mỗi lệnh đều được thực thi một cách độc lập, lệnh sau khơng biết bất cứ điều gì về các lệnh đã đến trước mình. Đây chính là một hạn chế, khiếm khuyết của HTTP. Nó là ngun nhân chính của tình trạng rất khó thực thi các trang Web có khả năng phản ứng thơng minh đối với lệnh mà người dùng nạp vào. Và sự hạn chế này đang được các nhà phát triển khắc phục trong các công nghệ mới như ActiveX, Java, JavaScript và cookies.
Phiên bản mới nhất của HTTP là 1.1. So với phiên bản nguyên thủy (HTTP 1.0), phiên bản mới này truyền tải các trang Web nhanh hơn và giảm tình trạng tắc nghẽn giao thông Web.
2. G ia o th ứ c F T P
FTP là viết tắt từ File Transfer Protocol (giao thức truyền tải file) là một giao thức dùng để tải lên (upload) các file từ một trạm làm việc (workstation) hay máy tính cá nhân tới một FTP server hoặc tải xuống (download) các file từ một máy chủ FTP về một trạm làm việc (hay máy tính cá nhân). Đây là cách thức đơn giản nhất để truyền tải các file giữa các máy tính trên Internet.
FTP hiện đuợc dùng phổ biến để upload các trang Web từ nhà thiết kế Web lên
một máy chủ host trên Internet, truyền tải các file dữ liệu qua lại giữa các máy tính trên Internet, cũng nhu để tải các chng trình, các file từ các máy chủ khác về máy tính cá nhân. Dùng giao thức FTP, bạn có thể cập nhật (xóa, đổi tên, di chuyển, copy,) các file tại một máy chủ. Nếu dùng chức năng FTP của một ứng dụng quản lý file (nhu Total Commander), bạn có thể tiến hành các tác vụ xử lý file trên máy chủ giống nhu ngay trên máy tính của mình.
IV.Các Web Server thơng dụng
1. W eb S e r v e r A p a c h e
Apache hay là chng trình máy chủ HTTP là một chng trình dành cho máy chủ đối thoại qua giao thức HTTP. Apache chạy trên các hệ điều hành tuơng tự nhu Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác. Apache đóng một vai trị quan trọng trong q trình phát triển của mạng web thế giới (World Wide Web).
Khi đuợc phát hành lần đầu, Apache là chng trình máy chủ mã nguồn mở duy nhất có khả năng cạnh tranh với chng trình máy chủ tuơng tự của Netscape Communications Corporation mà ngày nay đuợc biết đến qua tên thuơng mại Sun Java System Web Server. Từ đó trở đi, Apache đã khơng ngừng tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chng trình máy chủ khác về mặt hiệu suất và tính năng phong phú. Từ tháng 4 năm 1996, Apache trở thành một chng trình máy chủ HTTP thông dụng nhất. Hơn nữa, Apache thuờng đuợc dùng để so sánh
với các phần mềm khác có chức năng tuơng tự. Tính đến tháng 1 năm 2007 thì Apache
Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation. Apache được phát hành với giấy phép Apache License và là một phần mềm tự do và miễn phí.
2.7/5
Microsoft Internet Information Services (các dịch vụ cung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền Hệ điều hành Window nhằm cung cấp và phân tán các thơng tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau như Web Server, FTP S erver,...
Nó có thể được sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng “Phương thức chuyển giao siêu văn bản - Hypertext Transport Protocol (HTTP)”.
Trong chiến lược giành thị phần Internet của Microsoft, máy chủ Web Internet Information Service (IIS) là một trong những ưu tiên hàng đầu. Phiên bản đầu tiên IIS 1.0 được giới thiệu cách đây 11 năm cùng với Windows NT 4.0 vào năm 1996. Đến năm 1999, IIS 5.0 (trên nền Windows 2000 Server) nhanh chóng trở thành máy chủ web phổ biến nhất vào thời điểm đó, mặc dù chỉ vài tháng sau nó phải đối mặt với những lỗ hổng bảo mật nghiêm trọng, bị các virus như Red Code, Nimbda khai thác. Phiên bản IIS 6.0 trên nền Windows Server 2003 được đánh giá là máy chủ web chắc chắn, ổn định, nhờ những thay đổi quan trọng trong kiến trúc. Được viết lại trong sự khác biệt rất lớn so với IIS 6.0, với những cải tiến tốc độ, độ ổn định và khả năng an ninh, mục tiêu của IIS 7.0 là trở thành một máy chủ web uyển chuyển và dễ dùng, cũng như đủ mạnh để chạy các ứng dụng web trong tương lai. Được coi là máy chủ web nhiều tham vọng nhất của Microsoft từ trước đến nay, cũng như là lần nâng cấp có những thay đổi quan trọng nhất trong lịch sử.
3. S u n J a v a S y s te m W eb S e r v e r (J S W S )
Sun Java System Web Server (JSWS) được phát triển dựa trên chương trình máy chủ web NCSA và được biết đến dưới một số tên như Sun ONE, Netscape Enterprise Server, và iPlanet Enterprise Server. Khi AOL mua Netscape năm 1999, công ty này đã cộng tác với Sun Microsystems để hỗ trợ và tiếp tục phát triển sản phẩm Netscape. Sự cộng tác này được gọi tên là iPlanet và hoạt động của nó kéo dài 3 năm và hết hạn vào tháng 3 năm 2002. Khi kết thúc, iPlanet trở thành một phần của Sun bởi vì máy chủ web và các phần mềm thương mại điện tử mà iPlanet bán đã có quan hệ chặt chẽ với hoạt động kinh doanh của Sun hơn của Time Warner. Sun JSWS là sản phẩm thương mại, tuy nhiên chi phí bản quyền của nó là chấp nhận được. Mức phí của nó thay đổi tùy thuộc vào năng lực của bộ vi xử lý của máy chủ mà nó cài đặt lên, tuy nhiên phần lớn website trả với
mức phí từ USD 1400 đến USD 5000 cho việc mua bản quyền này. Phần mềm của Sun cũng hoạt động đuợc trên nhiều hệ điều hành nhu: HP UX, Solaris và cả Windows. Theo đánh giá mới đây, chỉ có khoảng 5% máy chủ web sử dụng Sun JSWS. Tuy nhiên một số website nổi tiếng nhất, tấp nập nhất lại vẫn đang sử dụng phần mềm máy chủ này của Sun, điển hình là BMW, Dilbert, E*TRADE, Excite, Lycos và Schwab. Báo cáo từ công ty tu vấn nhu Gartner, Inc. chỉ ra rằng Sun JSWS đuợc sử dụng với mức hơn 40% đối với các website công cộng và hơn 60% của 100 website kinh doanh đứng đầu. Cũng nhu phần lớn các chuơng tình máy chủ khác, Sun JSWS hỗ trợ phát triển các ứng dụng động cho các ứng dụng.
Chương 5: Thiết kế mạch và chương trình điều khiển
I.Nguyên lý sử dụng các thiết bị và thiết kế
-Dùng cảm biến D H T11 để đo thông số nhiệt độ và độ ẩm môi trường cây trồng để quyết định việc điều khiển các thiết bị bơm tưới, quạt làm mát, quạt hút, đèn sưởi (hệ thống làm ấm môi trường).
-Dùng cảm biến ánh sáng để đo ánh sáng môi trường để quyết định bật tắt hệ thống chiếu sáng phụ thêm cho một số loại cây trồng khi thời tiết khơng có ánh sáng. Hoặc dùng tính năng này trong việc điều khiển các đèn ánh sáng với các bước sóng hồng ngoại - bước sóng tần số cao trong ni cấy mơ thực vật. Ngồi ra còn dùng trong trường hợp kéo rèm che nắng để bảo vệ cây trồng.
-Dùng cảm biến mưa để xác định có mưa hay khơng để quyết định việc điều khiển kéo rèm che bảo vệ cây trồng.
-Dùng cảm biến siêu âm SRF04 để xác định mức nước có trong bể (bồn) chứa để quyết định điều khiển tự động bơm nước vào bể chứa.
-Các thông số dữ liệu sẽ được gửi lện Webserver để giám sát và điều khiển thông qua module ESP32 bao gồm:
<> Nhiệt độ - độ ẩm (DHT 11 Sensor: T = độ c, H = %) <> Ánh sáng (Light Sensor: đơn vị %)
<> Mưa (Rain Sensor: đơn vị %)
<> Trạng thái tất cả thiết bị có trong hệ thống (ON: Green, OFF: gray) - Bơm bồn, bơm tưới, đèn sáng, đèn sưởi, quạt hút, quạt mát, rèm che mưa, che nắng
-Webserver có chức năng điều khiển bằng tay (MAN) và tự động (AUTO). <> MAN: dựa vào kinh nghiệm của người nuôi trồng
<> AUTO: dựa trên giá trị các cảm biến và kinh nghiệm của người nuôi trồng cài đặt cho hệ thống trên nền tảng giao diện Web.
-Webserver có tích hợp trang cài đặt các kinh nghiệm để thiết kế một hệ thống nơng nghiệp thơng minh cụ thể nào đó như:
o N h i ệ t độ, độ ẩm cao nhất - thấp nhất cho môi trường nuôi trồng cụ thể <>ĐỘ cao của bể chứa (nếu muốn thay đổi dung tích, loại bể)
<>Hẹn giờ cho bơm tưới: giờ bắt đầu và thời gian chạy bao lâu. <>Ảnh sáng thấp nhất - cao nhất cần cho hệ thống (Light Min-max) <>Các thông số cài đặt được gửi về ESP32 lưu vào ROM, để không bị mất. -ESP 32 lập trình kết nối với WiFi và được kết nối đến thiết bị để điều khiển thông qua mạng internet.
II.G iao diện web:
HỆ THONG NÔNG NGHIỆP THÔNG MINH
HỆ THỐNG L À M M Ả T H Ệ THÔNG R È M CHE
H Ệ THỐNG CẢM B ỈÉ N
N H IỆ T Đ Ộ Đ Ộ Ẩ M Ả N H S Ả N G M Ư A
0 .0 0 .0 % 0 % 0 %
Ọ UẨN L Ỷ NĂNG L ƯỢNG
T H IẾ T B Ị D Ò N G Đ I Ệ N Đ IỆ N Á P C Ô N G S U Ấ T Đ IỆ N N Ằ N G
HỆ THĨNG NƠNG NGHIỆP THƠNG MINH
HỆ THÔNG TƯỞI HỆ THÔNG CHIẾU SẢNG
Trang cài đặt:
Setting Some Parameters For ESP32 fc*Bom Bồn: -Level Mm: -Level Max: -PumHeight: 40 50 cm cm cm ************* Send to ESP32 **Bom Tuõi:
Time Start Run: H:| 0 T [M:| 0 ▼ |S:| 0 * I Running Time: H:| 0 T [M:| Q T |S:| 0 T I Mode for Auto: I Evironment T
************* Send to ESP32 27 33 Environmental Requirements Temperature Min Temperature Max Humi Mm Humi Max Light Min Light Max 40 80 10 10 Send to ESP32 IlI.Phần cứng c c °c °c % %
• ESP32 NodeMCU LuaNode32 • Module relay kích mức thấp • Module D H T11
• Module Photodiod Light Sensor • Module Rain Water Sensor • Module HC SR-04
• LCD 20x4 • Thiết bị
K ết nối p hần cứng:
i . K ết Nối Các Cảm Biến
Bang két nói các phán tu* trong mach:
ESP32 NodeMCU LuaNode32 D H T 1 1 S E N S O R V C C 5V G N D M A S S D A T A G P I0 2 7 H C S R -04 S E N S O R V C C 5V G N D M A S S T R IG G P I0 5 E C H O G P I0 1 8 R A IN S E N S O R V C C 5V G N D M A S S AO G P I0 3 5 L IG H T S E N S O R V C C 5V G N D M A S S AO G P I0 3 4
IV. Code điều khiển
1. Webserver //all device
//device number ID MOD
//BƠM BON 0 DEVOMDO
//BƠM TƯỚI 1 DEV1MD1
//ĐÈN SÁNG 2 DEV2MD2 //ĐÈN SƯỞI 3 DEV3MD3 //QUẠT MÁT 4 DEV4MD4 //QUẠT HÚT 5 DEV5MD5 //CHE MUA6 //CHE NẮNG 7 DEV6MD6 DEV7MD7 var DevOn = 0; var D evOff = 1;
var MAN = 0; //Mode maunal by set hand var AUTO = 1; //Mode auto
var ColorButton = [M#00FF40M, M#C0C0C0M]; // [O N C olor, O ff Color] var ColorOn = "#00FF40";
var ColorOff = "";//"#C0C0C0";
var DevState = [DevOff, DevOff, DevOff, DevOff, DevOff, DevOff, DevOff, DevOff];
var ModeState = [MAN, MAN, MAN, MAN, MAN, MAN, MAN, MAN]; var Humi = 0;
var Temp = 0; var Light = 0; var Rain = 0;
var Current = 0; var Voltage = 0; var SumPower = 0; var Power = 0; var xh; var run = 0; var run Dev = 0;
//function indicate your Browser
function loadXmlHttpO {
if (window. XMLHttpRequest){ xh = new XMLHttpRequest(); }else if (window. ActiveXObject){
try { xh = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){} } } function PressDevice(p){ runDev = 1; loadXmlHttpO; if(xh){ obj = {"Dev":p}; dbParam = JSON.stringify(obj);
xh.open("POST","Dev",true); //Button is url, true is asynchronuos.
} }
function UpdateOneStateChange(){ //update 1 trang thai cua nut nhan xh.onreadystatechange = function(){
if (xh. ready State == 4){ if(xh. status == 200) {
var res = JSON.parse(xh.responseText); Dev = res.D;
DevState[Dev] = res.V;
var color = (DevState[Dev]==DevOn)?ColorOn:ColorOff; document. getElementById("DEV"+Dev).style.backgroundColor = color;//ColorButton[PumState [ [Pum] ] ]; runDev = 0; } } } }
//PRESS ANY MODE BUTON (MAN/AƯTO) function PressMode(p){ runDev = 1; loadXmlHttpO; if(xh){ obj = {"Dev":p}; dbParam = JSON.stringify(obj);
xh.open("POST",MMD",true); //Button is url, true is asynchronuos. UpdateModeButton(); xh.setRequestHeader("json", "-X POST -d"); xh. send(dbParam); } }
function UpdateModeButton(){ //update 1 trang thai cua nut nhan xh.onreadystatechange = function(){
if (xh. ready State == 4){ if(xh. status == 200) {
var res = JSON.parse(xh.responseText); Dev = res.D;
Mode = res.M;
Mode State [Dev] = Mode;
var color = (Mode==AUTO)?ColorOn:ColorOff; var txt = (Mode==AUTO)?" AUTO": "MAN";
var btMode = document.getElementById("MD"+Dev); btMode. style. backgroundColor = color;
btMode.innerText = txt; runDev = 0;
//document.getElementById("MD"+Dev). style. backgroundColor = color;//ColorButton[PumState [ [Pum] ] ];
} } }
function GetAllInfoDev(){ loadXmlHttpO; if(xh){
xh. open(" GET",M / AllDe v" ,true); // For onreadystatechange
xh.onreadystatechange = function(){ if (xh. ready State == 4){
if(xh. status == 200) {
var res = JSON.parse(xh.responseText); //Ndev = Number(res.ndev); //Ndev DevState = res.DS; ModeState = res.DM; UpdateDisplayDev(); } } } } xh.send(null); } function UpdateDisplayDev(){ for(i = 0;i<8;i++){ d = document. getElementById("DEV"+i); m = document.getElementById("MD"+i); c o lo rd = (DevState [i]==DevOn)?ColorOn:ColorOff; c o lo rm = (ModeState[i]==AUTO)?ColorOn:ColorOff; t x t m = (ModeState[i]==AUTO)?"AUTO":"MAN"; d.style.backgroundColor = c o lo rd ;
m. style. backgroundColor = c o lo rm ; m.innerText = t x tm ; } } function InitLoadhtml(){ GetAllInfoDev(); UpdateDisplayDev(); } function get_RTC_2Update_Server() { var today = new Date();
var h=today.getHours(); var m=today.getMinutes(); var s=today.getSeconds(); loadXmlHttpO; if(xh){ obj = {"h":h,"m":m,"s":s}; dbParam = JSON.stringify(obj);
xh.open("POST",MRTC",false); //PWM is url, true is asynchronuos.
xh.onreadystatechange = function(){ if (xh. ready State == 4){
if(xh. status == 200) {
//var res = JSON.parse(xh.responseText); console.log(xh.responseText);
}
} }
} }