Đồ án Trạm khí tượng sử dụng Raspberr Pi có webserver (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Trạm khí tượng sử dụng Raspberr Pi có webserver (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
do_an_tram_khi_tuong_su_dung_raspberr_pi_co_webserver_phan_1.pdf
Nội dung text: Đồ án Trạm khí tượng sử dụng Raspberr Pi có webserver (Phần 1)
- BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERR PI CÓ WEBSERVER GVHD: ThS. TRƯƠNG NGỌC ANH SVTH: NGUYỄN THÀNH NGỌC MSSV: 10101083 SVTH: LÊ NHẬT TUYNH MSSV: 10101166 S K L 0 0 3 1 3 6 Tp. Hồ Chí Minh, tháng 07/2014
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER GVHD: Th.s Trương Ngọc Anh SVTH: Nguyễn Thành Ngọc MSSV: 10101083 SVTH: Lê Nhật Tuynh MSSV: 10101166 Tp. Hồ Chí Minh - 7/2014
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER GVHD: Th.s Trương Ngọc Anh SVTH: Nguyễn Thành Ngọc MSSV: 10101083 SVTH: Lê Nhật Tuynh MSSV: 10101166 Lớp: 101012C, Hệ Chính Quy Tp. Hồ Chí Minh – 7/2014
- BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER GVHD: Th.s Trương Ngọc Anh SVTH: Nguyễn Thành Ngọc MSSV: 10101083 SVTH: Lê Nhật Tuynh MSSV: 10101166 Lớp: 101012C, Hệ Chính Quy Tp. Hồ Chí Minh – 7/2014
- ĐỒ ÁN TỐT NGHIỆP CHƯƠNG I DẪN NHẬP CHƯƠNG I: DẪN NHẬP 1
- ĐỒ ÁN TỐT NGHIỆP 1.1. ĐẶT VẤN ĐỀ Xã hội ngày càng phát triển, đặc biệt là về lĩnh vực khoa học kỹ thuật đã giúp cho cuộc sống của con người ngày càng trở nên tiện nghi và hiện đại. Ngày nay con người chúng ta không những quan tâm đến các vấn đề về giáo dục, y tế, giải trí mà còn rất quan tâm đến các vấn đề thời tiết để phục vụ cho việc trồng trọt, chăn nuôi, đi lại, cảnh báo các mối nguy hại do nhiệt độ, độ ẩm gây ra. Chính vì thế, con người làm việc để đầu tư cho cuộc sống của mình ngày càng tốt hơn, mà cụ thể hơn là đầu tư cho mình một trạm khí tượng để theo dõi thời tiết. Khi nghe đến trạm khí tượng, ai ai trong chúng ta đều cho rằng, trạm khí tượng chắc hẳn là rất là đồ sộ và cồng kềnh, và tốn rất nhiều chi phí. Một vấn đề đặt ra, là làm sao chúng ta có thể tạo ra một trạm khí tượng nhỏ gọn và chi phí thì thấp? Đó là một câu hỏi chúng ta sẽ giải quyết trong đề tài này. 1.2. LÝ DO CHỌN ĐỀ TÀI Xã hội hiện đại với sự phát triển không ngừng của khoa học công nghệ, con người có thêm nhiều lựa chọn cũng như đặt ra nhiều yêu cầu hơn để phục vụ cho cuộc sống của mình. Tốc độ phát triển của mạng Internet ngày càng nhanh mang con người đến gần nhau hơn cũng như giải quyết được nhiều vấn đề hơn. Cùng với sản phẩm thông minh ra đời ngày càng đa dạng như máy tính xách tay, máy tính bảng, Và sự phát triển nhanh đến mức chóng mặt của các dòng điện thoại thông minh đã giúp việc truy cập mạng ngày càng phổ biến hơn. Việc truy cập mạng Internet dường như đã trở thành một thói quen và cần thiết trong cuộc sống, từ phục vụ công việc, học tập, tra cứu tìm kiếm thông tin cho đến các hoạt động giải trí đều sử dụng Internet mọi lúc mọi nơi. Với những lợi ích thiết thực từ mạng Internet, nhóm nghiên cứu đã nhận thấy, việc ứng dụng Internet vào trong “trạm khí tượng” là một ý tưởng rất hay, tiện lợi và cần thiết cho con người. Nó không những giúp chúng ta theo dõi các thông số đo được ở mọi lúc mọi nơi mà còn có chức năng ghi lại các giá trị để cho chúng ta có thể xem lại bất kì giá trị nào vào bất kì thời điểm nào mà chúng ta mong muốn, chỉ bằng cách gõ ngày mà chúng ta muốn xem. Một chức năng khác là không kém phần quan trọng là: chúng ta có thể xuất các giá trị này ra file excel, điều này là rất thuận tiện khi chúng ta muốn có một bản báo cáo thời tiết để phục vụ cho công việc của mình hoặc chúng ta có thể điều khiển và giám sát thiết bị và hệ thống gia đình và Bên cạnh đó, việc phát triển không ngừng của các chip vi xử lý đã cho ra đời nhiều KIT vi điều khiển, KIT hệ thống nhúng với nhiều chức năng, hỗ trợ người nghiên cứu lĩnh vực công nghệ nói chung và lĩnh vực điện tử nói riêng. Sự phát triển của vi điện tử và mạng Internet giúp con người sáng tạo ra thêm nhiều ứng dụng hay, thiết thực mà điển hình là “trạm khí tượng”. Vì vậy, nhóm nghiên cứu đã quyết định chọn đề tài này cho Đồ Án Tốt Nghiệp của mình là : “TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER”. 1.3. ĐỐI TƯỢNG NGHIÊN CỨU Với việc nhóm nghiên cứu chọn đề tài “TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER”, thiết bị phải đáp ứng được các yêu cầu tối thiểu như giao tiếp được mạng Internet, hỗ trợ thực thi các chương trình ứng dụng do người dùng lập trình, vừa đóng vai trò là một KIT vi điều khiển để điều khiển các ngõ vào ngõ ra, các chức năng truyền dữ liệu, giao tiếp với các thiết CHƯƠNG I: DẪN NHẬP 2
- ĐỒ ÁN TỐT NGHIỆP bị mở rộng khác. Trên thị trường hiện nay, việc tìm kiếm một thiết bị như vậy không quá khó, nhưng việc lựa chọn thiết bị nào có thể vừa đáp ứng được đầy đủ các chức năng mà đề tài cần vừa có giá thành phù hợp vừa hỗ trợ người nghiên cứu tìm ra hướng đi mới là vấn đề mà nhóm nghiên cứu cần nhanh chóng giải quyết. Qua việc tìm hiểu, nhóm nghiên cứu quyết định chọn Raspberry Pi làm đối tượng nghiên cứu để thực hiện đề tài. Với giá thành vừa phải, vừa đáp ứng được các yêu cầu mà đề tài cần vừa sử dụng chip vi xử lý thế hệ mới, Raspberry sẽ là lựa chọn đúng đắn của nhóm nghiên cứu. Việc tiếp cận những KIT vi điện tử công nghệ mới luôn là sự mong muốn và cũng là những thử thách cho sinh viên kỹ thuật nói chung và lĩnh vực điện tử nói riêng. 1.4. GIỚI HẠN ĐỀ TÀI Trong giới hạn thời gian cho phép để hoàn thành đồ án, kết hợp với những kiến thức tích lũy được trong quá trình học tập, do đó nhóm chúng em chỉ tập trung nghiên cứu về: Cách tạo một giao diện web điều khiển bằng ngôn ngữ Python, HTML, PHP, Javascript, Jquery cơ bản. Thiết lập Web Server trên Raspberry. Sử dụng ngôn ngữ Python để lập trình trên Raspberry và đưa dữ liệu lên Webserver. Sử dụng ngôn ngữ C để lập trình trên Arduino Uno. Sử dụng DCOM_3G trên Raspberry Pi để kết nối Internet. 1.5. DÀN Ý NGHIÊN CỨU Với yêu cầu đề ra và xác định hướng giải quyết, nhóm nghiên cứu xây dựng luận văn gồm các nội dung chính như sau: Chương 1. Dẫn nhập Đặt vấn đề. Lý do chọn đề tài. Đối tượng nghiên cứu. Mục tiêu đề tài. Giới hạn đề tài. Dàn ý nghiên cứu. Ý nghĩa thực tiễn. Chương 2. Cơ sở lý thuyết Chương 3. Thiết kế mạch Sơ đồ khối. Phân tích các khối. Giới thiệu và sử dụng linh kiện. Chương 4. Thiết kế webserver Cài đặt webserver Tạo giao diện trang webserver. Chương 5. Lưu đồ giải thuật Master Slave Raspberry Pi CHƯƠNG I: DẪN NHẬP 3
- ĐỒ ÁN TỐT NGHIỆP Chương 6. Kết quả nghiên cứu, kết luận và hướng phát trển. Kết quả nghiên cứu. Kết luận. Hướng phát triển. 1.6. TÌNH HÌNH NGHIÊN CỨU Trong nước: Hiện nay đã có nhiều dự án nghiên cứu và ứng dụng raspberry pi trong lĩnh vực khoa học kỹ thuật, và trong các lĩnh vực đời sống xã hội. Tuy mới ra đời không lâu, nhưng việc nghiên cứu về raspberry pi đang diễn ra rất là mạnh mẽ và càng ngày càng xuất hiện những ứng dụng hết sức là độc đáo và có tính ứng dụng cao. Đặc biệt, raspberry pi rất được đông đảo nhiều bạn sinh viên ngành điện điện tử chọn làm đề tài nghiên cứu đồ án tốt nghiệp. Vì thế, raspberry pi là một sức hút thực sự, nơi mà các bạn sinh viên giàu lòng nhiệt huyết và sáng tạo làm cho raspberry ngày càng trở nên mạnh mẽ hơn. Nhưng raspberry pi vẫn còn khá là mới mẻ đối với nhiều người ở Việt Nam vì nó mới ra đời không lâu. Nhưng trong tương lai thì raspberry pi sẽ trở nên phổ biến hơn ở Việt Nam vì nó là một chiếc máy tính giá rẻ và rất hiệu quả trong việc học tập và nâng cao khả năng lập trình. Ngoài nước: Tình hình phát triển raspberry trên thế giới đang diễn ra rất là mạnh mẽ. Chẳng hạn như việc tạo ra các con robot thông minh, hoặc là một siêu máy tính từ 64 con raspberry pi Qua đó, cho ta thấy raspberry đang trở thành một thế lực của sự tư duy và sáng tạo. Ngoài ra, ở nhiều nước trên thế giới; raspberry pi đã được đưa vào các chương trình giảng dạy để giúp cho các học viên tăng khả năng lập trình logic vì nó là một chiếc máy tính giá rẻ và dễ sử dụng. 1.7. Ý NGHĨA THỰC TIỄN. Việc tạo ra trạm khí tượng sử dụng Raspberry là một ý tưởng khá mới. Việc nghiên cứu thành công đề tài “TRẠM KHÍ TƯỢNG SỬ DỤNG RASPBERRY PI CÓ WEBSERVER” sẽ giúp ứng dụng thông minh này trở nên gần gũi, thân thiện hơn với mọi người, giảm giá thành sản phẩm, nâng cao tính hữu dụng cũng như mang lại sự tin cậy hơn cho mọi người đặc biệt là những người nông dân chân lấm tay bùn. Cùng với việc ra đời và phát triển nhiều ứng dụng công nghệ và dịch vụ mạng, khoa học kỹ thuật sẽ ngày càng trở nên gần gũi với con người hơn, hỗ trợ con người nhiều hơn trong cuộc sống nói chung và trạm khí tượng nói riêng. CHƯƠNG I: DẪN NHẬP 4
- ĐỒ ÁN TỐT NGHIỆP CHƯƠNG II CƠ SỞ LÝ THUYẾT CHƯƠNG II: CƠ SỞ LÝ THUYẾT 5
- ĐỒ ÁN TỐT NGHIỆP 2.1. Raspberry Pi là gì? Hình 2.1: Raspberry Pi Rasberry Pi là một máy tính có kích thước nhỏ gọn được phát triển ở Anh bởi Rasberry Pi Foundation với mục đích thúc đẩy phát triển khoa học máy tính trong trường học. Năm 2006, ý tưởng đầu tiên của Rasberry Pi được dựa trên vi điều khiển Atmega644. Sơ đồ và bố trí PCB được công bố. Quỹ tài trợ Eben Upton tập hợp một nhóm các giáo viên, học giả và những người đam mê máy tính để phát triển máy tính truyền cảm hứng cho trẻ em. Tháng 8 năm 2011, năm mươi máy tính model A được sản xuất. Tháng 12 năm 2011, hai mươi lăm máy tính model B được lắp ráp và thử nghiệm. Phiên bản này cho khả năng khởi chạy Linux, chơi một trailer phim 1080p. Trong tuần đầu tiên của năm 2012, 10 máy tính đầu tiên được bán đấu giá trên eBay với tổng giá trị là 16000 bảng Anh. 2.1.1. Giới thiệu về Raspberry Pi. Raspberry Pi là một chiếc máy tính tí hon giá chỉ 35$ chạy hệ điều hành Linux ra mắt vào tháng 2 năm 2012. Ban đầu Raspberry Pi được phát triển dựa trên ý tưởng của tiến sĩ Eben Upton tại đại học Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh có thể dễ dàng tiếp cận và khám phá thế giới tin học. Dự định khiêm tốn của ông đến cuối đời là có thể bán được tổng CHƯƠNG II: CƠ SỞ LÝ THUYẾT 6
- ĐỒ ÁN TỐT NGHIỆP cộng 1000 bo mạch cho các trường học. Vậy thì điều gì đã làm nên thành công ngoài sức tưởng tượng của Raspberry Pi khi đã bán được hơn một triệu bo mạch chỉ trong vòng chưa đầy một năm? 1. Raspberry Pi có mức giá hấp dẫn: 35$ cho một chiếc bo mạch có thể làm được hầu như mọi ứng dụng hằng ngày như lướt web, học lập trình, xem phim HD đến những ý tưởng không ngờ đến như điều khiển robot, nhà thông minh v.v. 2. Raspberry Pi chạy hệ điều hành Linux: 99% những thứ làm trên máy tính Windows đều có thể thực hiện được trên Linux và quan trọng là: tất cả đều miễn phí. 3. Raspberry Pi có 8 ngõ GPIO: có thể kết nối và điều khiển các thiết bị trong cuộc sống thực tế như đèn, động cơ, GPS Rất nhiều ứng dụng nhà thông minh đã sử dụng Raspberry Pi làm bộ điều khiển trung tâm. 4. Raspberry Pi có kích thước tí hon: chỉ tương đương một chiếc thẻ ATM và nặng khoảng 50 gram. Gắn với chiếc tivi, Raspberry có thể biến thành một thiết bị giải trí thông minh trong phòng khách. Gắn với màn hình và bàn phím, chuột, Raspberry có thể biến thành một chiếc máy tính đúng nghĩa, nhỏ gọn và tiện lợi. 5. Cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới: hầu hết những thắc mắc của người dùng đều được giải đáp rất nhanh và còn hơn thế nữa; người dùng có thể tìm thấy hàng ngàn dự án đã thực hiện và vô số ý tưởng độc đáo. Với những ưu điểm độc đáo trên, Raspberry Pi đã vượt ra khỏi biên giới của trường học và trở thành thiết bị ưa thích của rất nhiều người đam mê điện tử và lập trình. Sự thành công của nó đã mở ra một bước phát triển mới cho tin học: đem máy tính và cảm hứng lập trình đến gần mọi người hơn bao giờ hết. 2.1.2. Cấu tạo của Raspberry Pi. Thiết kế phần cứng thông minh của Raspberry Pi là một trong những lý do khiến nó trở nên phổ biến. Hãy xem qua Raspberry Pi có gì? Hình 2.2: Cấu tạo của Raspberry Pi 1. Trái tim của Pi là chip SOC (System-On-Chip) Broadcom BCM2835 chạy ở tốc độ 700MHz. Chip này tương đương với nhiều loại được sử dụng trong smartphone phổ thông hiện nay, và có thể chạy được hệ điều hành Linux. Tích hợp trên chip này là nhân đồ họa CHƯƠNG II: CƠ SỞ LÝ THUYẾT 7
- ĐỒ ÁN TỐT NGHIỆP (GPU) Broadcom VideoCore IV. GPU này đủ mạnh để có thể chơi 1 số game phổ thông và phát video chuẩn full HD. 2. 8 ngõ GPIO (General Purpose Input Output): đúng như tên gọi của nó, chúng ta có thể kết nối và điều khiển rất nhiều thiết bị điện tử/cơ khí khác. 3. Ngõ HDMI: dùng để kết nối Pi với màn hình máy tính hay tivi có hỗ trợ cổng HDMI. 4. Ngõ RCA Video (analog): khi thiết kế Pi người ta cũng tính đến trường hợp người sử dụng ở các nước đang phát triển không có điều kiện sắm một chiếc tivi đời mới tích hợp cổng HDMI. Vì vậy cổng video analog này được thêm vào, giúp người dùng có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng. 5. Ngõ audio 3.5mm: kết nối dễ dàng với loa ngoài hay headphone. Đối với tivi có cổng HDMI, ngõ âm thanh được tích hợp theo đường tín hiệu HDMI nên không cần sử dụng ngõ audio này. 6. Cổng USB: một điểm mạnh nữa của Pi là tích hợp 2 cổng USB 2.0, có thể kết nối với bàn phím, chuột hay webcam, bộ thu GPS v.v qua đó có thể mở rộng phạm vi ứng dụng. Vì Pi chạy Linux nên hầu hết thiết bị chỉ cần cắm-và-chạy (Plug-&-Play) mà không cần cài driver phức tạp. 7. Cổng Ethernet: cho phép kết nối Internet tốc độ tối đa 100Mbps 8. Khe cắm thẻ SD: Pi không tích hợp ổ cứng. Thay vào đó nó dùng thẻ SD để lưu trữ dữ liệu. Toàn bộ hệ điều hành Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻ nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32 GB. 9. Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt động. 10. Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này mà chúng ta có thể tận dụng hầu hết các sạc điện thoại di động trên thị trường để cấp nguồn điện cho Pi. Sơ đồ các chân ngõ vào ra trên Raspberry pi model B: Hình 2.3: Sơ đồ chân của Raspberry Pi CHƯƠNG II: CƠ SỞ LÝ THUYẾT 8
- ĐỒ ÁN TỐT NGHIỆP Hình 2.4: Vị trí chân P1 của Raspberry Pi Đặc tính điện của các chân GPIO: Có tổng cộng 26 chân được chia thành 2 hàng. Các chân GPIO có điện áp ngõ ra là 3V3. Dòng điện ngõ ra max trên các chân GPIO là 50 mA. Các chân có nhiều chức năng bao gồm: CHƯƠNG II: CƠ SỞ LÝ THUYẾT 9
- ĐỒ ÁN TỐT NGHIỆP 2.1.3. Giới thiệu bộ xử lý trung tâm của Raspberry Pi. Trái tim của Pi là vi xử lý Broadcom BCM2835 chạy ở tốc độ 700MHz. Đây là vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành phần của hệ thống gồm CPU, GPU cũng như audio, communication chip đều được tích hợp trong một. Chip SoC này nằm ngay bên dưới chip memory Hynix 512 MB màu đen ở giữa board. SoC này khác với CPU ở trong PC thông thường ở chỗ nó được chế tạo dựa trên kiến trúc tập lệnh (Instruction Set Architect – ISA) là ARM chứ không phải kiến trúc x86 như của Intel. ARM có ISA dạng rút gọn RISC và tiêu thụ điện năng rất thấp nên phù hợp với thiết bị di động. Ngược lại x86 có ISA dạng CISC và hoạt động với công suất cao nên dễ dàng xử lý các tác vụ phức tạp trên PC. Vì sự khác biệt cơ bản đó mà ARM và x86 đều có thị trường riêng của mình: ARM dẫn đầu trong mảng thiết bị di động còn x86 vẫn chiếm phần lớn thị phần trong PC mặc dù cả hai đều đang cố gắng thâm nhập vào thị phần bên kia. Lấy ví dụ như chip ARM trên Raspberry Pi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu hao 3.5W mỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt. Thiết kế này bảo đảm Raspberry Pi hoạt động với sức mạnh vừa phải trong khi vẫn giữ được hình dáng nhỏ gọn do không cần quạt tản nhiệt và do đó, ARM có mặt trong hầu hết điện thoại di động thời nay. Hình 2.5: ARM vs Intel Điều quan trọng cần lưu ý là: do khác nhau về kiến trúc tập lệnh nên các phần mềm viết cho nền tảng x86 sẽ không hoạt động trên ARM. Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6. ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không tương thích phần mềm với thế hệ ARMv7. Tuy nhiên, điều này có thể giải quyết bằng cách chuyển đổi phần mềm để đạt sự tương thích. Nói như vậy không có nghĩa là lập trình Raspberry Pi sẽ gặp nhiều khó khăn. Bù lại, cộng đồng Raspberry Pi phát triển rất nhanh trên thế giới là nguồn tài nguyên phong phú: hàng loạt dự án, phần mềm được phát triển cho Pi. CHƯƠNG II: CƠ SỞ LÝ THUYẾT 10
- ĐỒ ÁN TỐT NGHIỆP 2.1.4. Phụ kiện hỗ trợ kèm theo. Hình 2.6: Phụ kiện kèm theo với Raspberry Pi Raspberry Pi được bán dưới dạng một board mạch đơn lẻ không đi kèm phụ kiện nhằm giảm chi phí sản xuất, vì vậy người sử dụng có thể tự lựa chọn phụ kiện tùy theo mục đích sử dụng. Sau đây sẽ là tổng hợp một số phụ kiện hữu ích cho Pi: Phụ kiện cơ bản: Nguồn: loại có jack micro USB, 5V, tối thiểu 700mA. Thẻ nhớ SD: đây là nơi lưu trữ toàn bộ hệ điều hành của Pi và cả dữ liệu do đó nên đầu tư thẻ nhớ thật tốt, tốc độ từ class 6 trở lên. Pi hoạt động trên thẻ nhớ có dung lượng ít nhất là 4 GB. Bàn phím + chuột: là hai thành phần nhập liệu cơ bản của máy tính. Cáp mạng: để kết nối Internet hoặc kết nối với máy tính. Chỉ cần cáp RJ45 bình thường, bắt chéo hay không đều được Cáp màn hình: tùy theo loại màn hình sử dụng mà tương thích với cáp HDMI-HDMI hoặc HDMI-DVI hoặc HDMI-VGA hay RCA Video. Case bảo vệ: để tránh vô tình chạm vào mạch điện của Pi hoặc bảo vệ Pi khi đặt ở ngoài trời thì case bảo vệ là rất cần thiết. Phụ kiện mở rộng: Webcam hoặc Pi camera module (25$): cả hai đều hoạt động tốt trên Pi. Điểm khác biệt là webcam kết nối qua USB còn camera module sử dụng khe cắm CSI có sẵn trên Pi. Chất lượng của camera module được đánh giá rất tốt so với giá tiền bỏ ra và quan trọng hơn là nó có thể tận dụng sức mạnh của bộ xử lý đồ họa Video Core IV trên Pi mà CHƯƠNG II: CƠ SỞ LÝ THUYẾT 11
- ĐỒ ÁN TỐT NGHIỆP webcam không truy cập được. Ngoài ra thì webcam được bán dưới dạng sản phẩm đóng gói hoàn chỉnh còn camera module thì dưới dạng board module nên người dùng phải sử dụng cẩn thận hơn. Wifi USB dongle: Raspberry hỗ trợ dùng thiết bị wifi dongle để kết nối Pi với mạng wifi thông qua qua cổng USB. 2 sản phẩm được sử dụng phổ biến là Edimax EW- 7811Un và Ralink RT5370 vì rất nhỏ gọn, giá thành rẻ (khoảng 10$) và hoạt động tốt trên Pi. Riêng loại Ralink thì còn có thể kiêm luôn chức năng hot spot phát wifi. Màn hình cảm ứng: gắn lên Pi thay cho bàn phím và chuột giá bán khoảng 30$. 2.2. Tổng quan về Internet và Web. Mạng máy tính là một hệ thống các máy tính được kết nối với nhau, có thể chia sẽ dữ liệu cho nhau. World Wide Web (WWW) là một hệ thống server chứa thông tin (siêu văn bản) mà người dùng có thể sử dụng thông qua web browser. Mô hình mạng máy tính có dạng Client – Server trong đó Server (máy chủ) là máy tính sử dụng để các máy tính truy cập, các máy tính truy cập được gọi là Client. Ví dụ khi người dùng truy cập vào một trang web www.google.com thì Server là máy chủ chứa dữ liệu của www.google.com còn Client là máy tính cá nhân của người dùng. TCP/IP là giao thức truyền dữ liệu giữa 2 máy tính, mỗi máy tính có một địa chỉ IP (Internet Protocol) xác định. Địa chỉ IP là cụm gồm 4 số giới hạn từ 0 – 255 có dạng A.B.C.D. Ví dụ như 193.168.1.93. Domain name (tên miền) là một định danh để xác định vị trí của một máy tính trên mạng Internet. Domain name chỉ có duy nhất và không trùng nhau. Ví dụ như www.google.com là duy nhất. Website được chia thành 2 dạng: website tĩnh và website động. Website tĩnh là những website không có khả năng tương tác với người dùng, thường sử dụng các ngôn ngữ như HTML, DHTML. Website động là những website có tính tương tác cao giữa người dùng và quản trị, được xây dụng bằng ngôn ngữ ASP, PHP, cùng với sự kết hợp của cơ sở dữ liệu. Website động có phần quản trị web để cập nhập nội dung website như website tin tức, bán hàng, Có phần bình luận cho các thành viên trong diễn đàn . Như vậy, để tạo một web server đòi hỏi người dùng cần chuẩn bị cho mình: Web browser (trình duyệt web) như Internet Explorer, Google Chrome, Mozzila Firefox, Trình soạn thảo văn bản: Notepad, Notepad ++, PHP Designer, Môi trường làm việc cho PHP. CHƯƠNG II: CƠ SỞ LÝ THUYẾT 12
- ĐỒ ÁN TỐT NGHIỆP 2.2.1. Webserver. Hình 2.7: Mô hình Web server. 2.2.2. Server. Trong lĩnh vực điện toán, danh từ máy chủ (server) có thể được hiểu như sau: Một chương trình máy tính hoạt động như một dịch vụ để phục vụ những nhu cầu hay những yêu cầu từ những chương trình khác (từ các máy tính khác, được hiểu theo ngôn ngữ chuyên môn là client). Chương trình trên máy chủ và các chương trình của máy con có thể cùng hoạt động chung trên một máy tính hoặc trên nhiều máy tính khác nhau. Một máy tính có thể cung cấp một hay nhiều dịch vụ để phục vụ nhu cầu cho những máy tính khác trên cùng một hệ thống mạng. Một hệ thống phần mềm hay phần cứng như máy chứa cơ sở dữ liệu (databaseserver), máy chủ chứa các tập thông tin (file server), máy chủ thư điện tử (mailserver) Đối với mạng máy tính, một máy chủ là một chương trình hoạt động xử lý các yêu cầu cho mạng máy tính đó. Một máy chủ cũng có thể được xem như hệ thống xử lý với một hoặc nhiều chương trình hoạt động trên đó. Một hệ thống máy chủ có thể là một máy tính, hoặc kết hợp nhiều máy tính liên kết với nhiều máy tính khác hay những thiết bị kỹ thuật khác. Hệ thống máy chủ cung cấp những dịch vụ cơ bản xuyên suốt trong hệ thống mạng, những private users trong những hệ thống tổ chức lớn hoặc public users trên hệ thống Internet. Ví dụ, khi bạn nhập vào một câu truy vấn tìm kiếm trên các bộ máy CHƯƠNG II: CƠ SỞ LÝ THUYẾT 13
- ĐỒ ÁN TỐT NGHIỆP tìm kiếm, yêu cầu truy vấn này sẽ được gửi từ máy tính của bạn đến những máy chủ chứa thông tin những trang web tương ứng thông qua mạng Internet. Các máy chủ này sẽ xử lý các truy vấn của bạn và trả về kết quả phù hợp trở lại trên máy tính của bạn. Có nhiều loại máy chủ có chức năng chuyên dụng như máy chủ web, máy chủ in ấn, máy chủ cơ sở dữ liệu. Các máy chủ doanh nghiệp thì được sử dụng để phục vụ cho việc kinh doanh và thương mại. 2.2.3. Khái niệm MySQL. MySQL là hệ quản trị cơ sở dữ liệu tự do mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OSX Hình 2.8: Mô tả hoạt động của MySQL Như trên hình thì MySQL tạo ra các bảng để chứa cơ sở dữ liệu, nó có thể được truy cập để lấy dữ liệu với nhiều ngôn ngữ như php hoặc python. 2.2.4. Phần mềm phpMyAdmin. Phần mềm phpMyAdmin là một công cụ mã nguồn mở miễn phí được viết bằng PHP dự định để xử lý quản trị của MySQL thông qua một trình duyệt web. Nó có thể thực hiện nhiều tác vụ CHƯƠNG II: CƠ SỞ LÝ THUYẾT 14
- ĐỒ ÁN TỐT NGHIỆP như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép. Hình 2.9: Sơ đồ khối hoạt động của 1 web server 2.3. Giới thiệu các ngôn ngữ lập trình Web. 2.3.1. Ngôn ngữ PHP. PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới. PHP được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là ‘Personal Home Page Tools’. Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn. PHP/FI, viết tắt từ “Personal Home Page/Forms Interpreter”, bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay. Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng. Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán. Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án CHƯƠNG II: CƠ SỞ LÝ THUYẾT 15
- ĐỒ ÁN TỐT NGHIỆP của một người. PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0. PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học. Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0. Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác. Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc. Nó đã được đặt tên ngắn gọn là ‘PHP’, một kiểu viết tắt hồi quy của “PHP: Hypertext Preprocessor”. Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet. PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm. Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả. Một động cơ mới, có tên ‘Zend Engine’ (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới. Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet. CHƯƠNG II: CƠ SỞ LÝ THUYẾT 16
- ĐỒ ÁN TỐT NGHIỆP Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP. Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn.Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002. Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC1, RC2, RC3. Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP. Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp module PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams. 2.3.2. Ngôn ngữ HTML. HTML (Hyper Text Markup Language) là ngôn ngữ đánh dấu siêu văn bản, dùng để viết các trang web, do Tim Berner Lee phát minh và được W3C (World Wide Web Consortium) đưa thành chuẩn năm 1994. HTML là một ngôn ngữ đánh dấu chứ không phải một ngôn ngữ lập trình, nhằm tạo ra các trang web tĩnh dựa trên các thẻ (tags) đánh dấu, dựa vào các thẻ đánh dấu để trình duyệt cách hiển thị. HTML chứa các thành phần định dạng để báo cho trình duyệt web biết cách để hiển thị một trang web. Một trang web thông thường gồm có 2 thành phần chính: Dữ liệu của trang web (văn bản, âm thanh, hình ảnh, ). Các thẻ tag HTML dùng để định dạng mô tả cách thức các dữ liệu được hiển thị trên trình duyệt. CHƯƠNG II: CƠ SỞ LÝ THUYẾT 17



