Ngôn ngữ PHP

Một phần của tài liệu Hệ thống bãi giữ xe thông minh và access control ứng dụng công nghệ RFID (Có code) (Trang 80)

4.2.2.1 PHP là gì?

Cái tên PHP ban đầu được viết tắt bởi cụm từ “Personal Home Page” và được phát triển từ năm 1994 bởi Rasmus Lerdorf. Lúc đầu chỉ là một bộ đạc tả Perl, được sử dụng để lưu dấu vết người dùng trên các trang web. Sau đó Rasmus Lerdorf phát triển PHP như là một máy đặc tả (script engine). Vào giữa năm 1997, PHP phát triển nhanh chóng trong sự yêu thích của nhiều người, PHP đã không còn là dự án cá nhân của Rasmus Lerdorf và đã trở thành một công nghệ web quan trọng. Zeev Suraski và Andi Gutmans đã hoàn thiện việc phân tích cú pháp cho ngôn ngữ để rồi thánh 6 năm 1998, PHP3 đã ra đời (phiên bản này có phần mở rộng là *.php3). Cho đến tận thời điểm đó, PHP chưa một lần được phát triển chính thức, một yêu cầu viết lại bộ đặc tả được đưa ra, ngay sau đó PHP4 ra đời (phiên bản này có phần mở rộng không phải là *.php4 mà là *.php). PHP4 nhanh hơn so với PHP3 rất nhiều. PHP bây giờ gọi là PHP Hypertext PreProcesor. Đến ngày 14 tháng 7 năm 2005, PHP5 được công bố, ở phiên bản này có thêm PDO (PHP Data Object). Và cho đến nay phiên bản PHP6 được kỳ vọng sẽ lắp đầy những khuyết điểm của PHP ở các bản trước đây. Ví dụ như hỗ trợ namespace, hỗ trợ Unicode, sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viên PECL…

Hình 4.3 Rasmus Lerdorf Đoạn mã sau minh họa cách viết PHP lồng vào các trang HTML:

<html>

<head>

<title> Mã mẫu </title> </head>

<body>

<?php

echo “HELLO WORLD”;

?>

</body> </html>

Thẻ <?php và ?> sẽ đánh dấu sự bắt đầu và kết thúc của phần mã PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần mềm giao diện ứng dụng HTTP.

4.2.2.2 Tại sao phải sử dụng PHP?:

Như chúng ta đã biết, có rất nhiều trang web được xây dựng bởi ngôn ngữ HTML. Đây chỉ là những trang web tĩnh, nghĩa là chúng chỉ chưa đựng nội dung cụ thể với những dòng văn bản đơn thuần, hình ảnh và có thể được hỗ trợ bời ngôn ngữ JavaScript hoặc Java Apple. Những trang web như vậy người ta thường gọi là client – side. Tuy nhiên, Internet và Intranets đã được sử dụng cho các ứng dụng cần tới cơ sở dữ liệu. Các trang ứng dụng như vậy gọi là trang web động, bởi nội dung của chúng thya đổi tùy thuộc vào dữ liệu và người sử dụng. PHP là ngôn ngữ làm được điều như vậy. Bằng cách chạy PHP trên máy chủ Web server, bạn có thể tạo ra các ứng dụng có sự tương tác với cơ sở dữ liệu để tạo ra những trang web và đây gọi là trang web động.

Trong đề tài luận vằn này, chúng em sử dụng PHP để tạo các trang giao tiếp cơ sở dữ liệu cho phép thêm/xóa/sửa/cập nhật/tìm kiếm nhân viên và config thiết bị.

Hình 4.4 Quá trình thông dịch trang PHP

4.2.2.3 Sự khác nhau giữa web tĩnh (HTML) và web động (PHP):

Hình 4.6 Phương thức hoạt động của web động PHP

4.2.2.4 Những điểm mạnh của PHP:

 PHP thực hiện với tốc độ rất nhanh và hiệu quả. Một server bình thường có thể đáp ứng được hàng triệu truy cập tới trong một ngày.

 PHP hỗ trỡ kết nối tới rất nhiều hệ CSDL khác nhau.

 PHP cung cấp một hệ thống thư viện phong phú. Do PHP ngay từ đầu được thiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên web nen PHP cung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các công việc dễ dàng như: gửi/nhận email, làm việc với cookie và nhiều thứ khác nữa

 PHP là ngôn ngữ rất dễ dùng, dễ học và đơn giản hơn nhiều so với ngôn ngữ khác như Perl, Java. Nếu bạn đã biết ngôn ngữ C thì mọi việc sẽ hoàn toàn thuận lợi.

 PHP có thể sử dụng được trên nhiều hệ điều hành, chúng ta có thể viết chúng trên Linux, Unix và các phiên bản Windows. Và có thể đem mã PHP này chạy trên các hệ điều hành khác mà không phải sửa đổi lại mã

 PHP là ngôn ngữ mã nguồn mở.

4.2.3 Ngôn ngữ JavaScript:

JavaScript theo phiên bản hiện hành là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ này được sử dụng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng. Nó vốn được phát triển bởi Brendan Eich tại hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thành Live Script và cuối cùng thành JavaScript. Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn là Java. Phần mở rộng .js thường được dùng cho tập tin mã nguồn JavaScript.

Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA – 262 bản 3. ECMAScript là phiên bản chuẩn hóa của JavaScript. Trình duyệt Mozilla phiên bản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X – phần mở rộng cho JavaScript hỗ trợ làm việc với XML, được chuẩn hóa trong ECMA – 357

4.2.3.1 Java, JavaScript và Jscript:

Cùng thời điểm Netscape bắt đầu sử dụng công nghệ Java trên trình duyệt Netscape, LiveScript đã được đổi tên thành JavaScript để được chú ý hơn bời ngôn ngữ Java lúc đó đang được coi là một hiện tượng. JavaScript được bổ sung vào trình duyệt Netscape bắt đầu từ phiên bản 2.0b3 của trình duyệt này vào tháng 12 năm 1995. Trên thực tế, hai ngôn ngữ Java và JavaScript không liên quan gì đến nhau, ngoại trừ cú pháp của hai ngôn ngữ cùng được phát triển dựa trên cú pháp của C. JavaScript gồm 2 mảng là client – server thực hiện lệnh trên máy của end – user và web – server.

Sau thành công của JavaScript, Microsoft bắt đầu phát triển Jscript, một ngôn ngữ có cùng ứng dụng và tương thích với JavaScript. Jcript được bổ sung vào trình duyệt Internet Explorer bắt đầu từ Internet Explorer phiên bản 3.0 được phát hành tháng 8 năm 1996.

DOM (Document Object Model), một khái niệm thường được nhắc đến với JavaScript trên thực tế không phải là một phần của chuẩn ECMAScript, DOM là một chuẩn riêng biệt có liên quan chặt chẽ với XML.

4.2.3.2 Ứng dụng:

JavaScript là một ngôn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C. Giống như C, JavaScript có khái niệm từ khóa, do đó, V gần như không thể được mở rộng. Cũng như C, JavaScript không có bộ xử lý nhập/xuất (input/output) riêng. Trong khi C sử dụng thư viện nhập/xuất chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện nhập/xuất.

Trên trình duyệt, rất nhiều trang web sử dụng JavaScript để thiết kế trang web động và một số hiệu ứng hình ảnh thông qua DOM. JavaScript được dùng để thực hiện một số tác vụ không thể thực hiện chỉ với HTML như kiểm tra thông tin nhập vào, tự động thay đổi hình ảnh….Ở Việt Nam, JavaScript còn được ứng dụng để làm bộ gõ tiếng Việt giống như bộ gõ hiện đang sử dụng trên trang Wikipedia tiếng Việt. Tuy nhiên, trong mỗi trình duyệt áp dụng JavaScript khác nhau và không tuân theo tiêu chuẩn W3C DOM, do đó trong rất nhiều trường hợp lập trình viên phải viết nhiều phiên bản của cùng một đoạn mã nguồn để có thể hoạt động trên nhiều trình duyệt. Một số công nghệ nổi bật dòng JavaScript tương tác với DOM bao gồm DHTML, Ajax và SPA.

Bên ngoài trình duyệt, JavaScript có thể sử dụng trong tập tin PDF của Adoba Acrobat và Adobe Reader. Điều khiển Dashboard trên hệ điều hành Max OS X phiên bản 10.4 cũng có sử dụng JavaScript. Công nghệ kịch bản động (active script) của Microsoft có hỗ trợ ngôn ngữ Jcript làm một ngôn ngữ kịch bản dùng cho hệ điều hành. Jscript.NET là một ngôn ngữ tương thích với CLI gần giống JavaScript nhưng có thêm nhiều tính năng lập trình hướng đối tượng. Mỗi ứng dụng này đều cung cấp mô hình đối tương riêng cho phép tương tác mới môi trường chủ, với phần lõi là ngôn ngữ lập trình JavaScript gần giống nhau.

4.3 Giới thiệu ngôn ngữ lập trình Python: 4.3.1 Lịch sử: 4.3.1 Lịch sử:

Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ động do vậy nó tương tự Perl, Ruby, Scheme, Smalltalk và Tcl. Python được phát triển trong một dự án mã nguồn mở do tổ chức phi lợi nhuận Python Software Foundation quản lý.

Theo đánh giá của Eric S. Raymond, Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của chính Guido van Rossum trong một bài phỏng vấn của ông.

Ban đầu Python được phát triển chạy trên Unix. Nhưng rồi theo thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS – DOS đến Mac OS, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự đóng góp của nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python.

Hình 4.7 Guido van Rossum Sự phát triển của Python đến nay có thể chia làm các giai đoạn:

 Python 1: bao gồm các bản phát hành 1.x. Giai đoạn này kéo dài từ đầu đến cuối thập niên 1990.

- Từ năm 1990 đến 1995, Guido van Rossum làm việc tại CWI (Centrum voor Wiskunde en Informatica – trung tâm toán-tin học tại Amsterdam, Hà Lan). Vì vậy các phiên bản Python đầu tiên đều do CWI phát hành. Phiên bản cuối cùng phát hành tại CWI là 1.2 - Năm 1995, Guido van Rossum chuyển sang CNRI (Corporation for National Research

Intiatives) ở Reston, Viginia. Tại dây, ông phát hành một số Python phiên bản khác. Phiên bản 1.6 là phiên bản cuối cùng phát hành tại CNRI.

- Sau khi phát hành 1.6, Guido van Rossum rời bỏ CNRI để làm việc với các lập trình viên chuyên viết phần mềm thương mại. Tại đây ông có ý tưởng sử dụng Python với các phần

mềm theo tiêu chuẩn GPL. Sau đó CNRI và FSF (Free Software Foundation – tổ chức phần mềm tự do) đã cùng nhau đã cùng nhau hợp tác làm bản quyền Python phù hợp với GPL. - Phiên bản 1.6.1 ra đời sau đó là phiên bản đầu tiên tuan theo bản quyền GPL. Tuy nhiên

phiên bản này hoàn toàn giống 1.6 trừ một số sửa lỗi cần thiết.

 Python 2: vào năm 2000, Guido và nhóm phát triển Python đời đến BeOpen.com và thành lập BeOpen PythonLabs team. Phiên bản Python 2.0 được phát hành tại đây.Sau khi phát hành Python 2.0 Guido và các thành viên PythonLabs gia nhập Digital Creations. Python 2.1 ra đời kế thừa Python 1.6.1 và Python 2.0. Bản quyền của phiên bản này được đổi thành Python Software Foundation License. Từ thời điểm này trở đi, Python thuộc quyền sở hữu của Python Software Foundation (PSF), một tổ chức phi lợi nhuận được thành lập theo mẫu Apache Software Foundation.

 Python 3: còn gọi là Python3000 hoặc Py3K: dòng 3.x sẽ không hoàn toàn tương thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x. Nguyên tắc chủ đạo để phát triển Python 3.x là “bỏ cách làm việc cũ nhằm hạn chế trùng lặp về mặt chức năng của Python”.

4.3.2 Đặc điểm:

 Dễ học, đễ đọc: python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu.

 Từ khóa:

- Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí kiệu và cấu trúc, cú pháp so với ngôn ngữ khác.

- Python là một ngôn ngữ phân việt kiểu chữ hoa và chữ thường

 Khối lệnh: trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp kí hiệu hoặc từ khóa. Ví dụ trong C/C++, cặp dấu ngoặc nhọn {} được dùng để bao bọc một khối lệnh. Python, trái lại, có một đặc điểm rất đặc biệt để tạo khối lệnh đó là thụt các câu lệnh trong khối lệnh vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó.

4.3.3 Khả năng mở rộng:

Python có thể được mớ rộng nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào python nhiều hàm tùy theo nhu cầu. Các hàm này sẽ trở thành hàm dựng sẵn của Python. Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp). Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó.

4.3.4 Lệnh và cấu trúc điều khiển:

Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải thêm bất kì ký tự gì. Cũng như các ngôn ngữ khác, Python cũng có các cấu trúc điều khiên. Chúng bao gồm:  Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để thực thi khi có điều

kiện cụ thể

 Cấu trúc lặp bao gồm:

- Vòng lặp for: chạy qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp.

 Python cũng có từ khóa class để khai báo một lớp (sử dụng lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm.

PHẦN II: THIẾT KẾ, THI CÔNG HỆ THỐNG Chương 5: MÔ HÌNH TỔNG QUÁT HỆ THỐNG

5.1 Mô hình hệ thống:

Cổng Cổng

Reader

Phần mềm nhận dạng biển số

Cổng vào Cổng ra Card ID Card ID Điều khiển cửa Kết nối Ethernet Card ID Kết nối Ethernet SERVER Kết nối Ethernet Ảnh Ảnh

Hình 5.2 Mô hình tại bãi giữ xe

Hình 5.3 Mô hình access control

5.2 Mô tả hoạt động hệ thống: 5.2.1 Hệ thống bãi giữ xe thông minh: 5.2.1 Hệ thống bãi giữ xe thông minh:

 Hệ thống bãi giữ xe thông minh có cổng vào và ra phân biệt.

 Khi xe vào  nhân viên và khách hàng khi vào đề phải quét thẻ RFID, lấy card id và thời gian  lưu vào server

Chụp 2 hình trước và sau xe và nhận dạng biển số xe

 Khi xe vào  phần mềm nhận dạng sẽ chụp 2 bức ảnh. Một ảnh biển số xe vào và một ảnh chủ nhân xe  lưu vào server

 Phần mềm nhận dạng làm nhiệm vụ nhận diện biển số xe tử ảnh, tách kí tự rồi chuyển ảnh kí tự từ dạng ảnh sang dạng text  lưu vào server

 Khi xe ra  nhân viên và khách quét thẻ RFID, lấy thời gian ra  lưu vào server (để kiểm tra sau này)

 Phần mềm nhận dạng ở ngõ ra sẽ lấy ảnh chủ nhân xe, biến số và card id lúc xe vào từ server so sánh với biển số nhận được, ảnh chủ nhân xe và card id lúc xe ra.

 Nếu hợp lệ  cho xe ra

5.2.2 Hệ thống access control:

 Bộ access control gồm module Raspberry Pi và reader RFID RDM880

 Trên module Raspberry Pi chứa một cơ sở dữ liệu ngay trên nó (local database) đã khi báo sẵn thông tin nhân viên được phép ra vào phòng và thời gian nhân viên được phép ra vào (ví dụ: công ty làm việc từ 7h đến 18h thì nhân viên chỉ được ra – vào trong khoảng thời gian này).

 Khi nhân viên quét thẻ RFID (lúc vào)  bộ access control đọc mã thẻ và kiểm tra trong cơ sở dữ liệu dữ liệu local, nếu card id phù hợp thì điều khiển mở cửa. Đồng thời bộ access control cũng lấy thời điểm nhân viên vào cơ sở dữ liệu local và gửi về server (remote database).

 Khi nhân viên quét thẻ RFID (lúc ra)  bộ access control thực hiện chức năng tương tự,

Một phần của tài liệu Hệ thống bãi giữ xe thông minh và access control ứng dụng công nghệ RFID (Có code) (Trang 80)

Tải bản đầy đủ (PDF)

(132 trang)