Bài 10 : Lập trình web-server trên Raspberry pi – phần 1

Bài 10 : Lập trình web-server trên Raspberry pi – phần 1

18:24 - 14/01/2019

Bài 10 : Lập trình web-server trên Raspberry pi – phần 1

Hướng cài đặt Hệ điều hành và Remote Desktop cho Raspberry Pi nhanh chóng và cực kỳ đơn giản
Remote Desktop Raspberry Pi không cần Wifi, mạng LAN và IP
Camera nhiệt giải pháp tuyệt vời cho mùa Covid-19
Lập trình cơ bản với OpenPLC trên Raspberry Pi
Hướng dẫn cài đặt OpenPLC trên Raspberry Pi

IOT đang phát triển một cách mãnh liệt trong vài năm trở lại đây. Với sự bùng nổ của nó, các kỹ sư phát triển ứng dụng luôn cần những phần cứng đủ mạnh để phát triển nhanh ứng dụng của mình. Và Raspberry cũng nằm trong số đó, nó hoàn toàn đủ sức để trở thành Master trong mạng IOT. Trong loạt bài viết tới đây, mình sẽ hướng dẫn các bạn biến Pi thành web-server thực thụ với mục đích điều khiển các thiết bị IOT trong nhà thông qua web-interface (nghĩa là bạn có thể truy cập tới Pi bằng trình duyệt để điều khiển).

Mô hình của hệ thống được mô tả như sau :

Hình 1 : Mô hình web control

Hình 1: Mô hình web control

Phía trình duyệt sẽ truy cập vào server được cài đặt trên Pi. Server này có nhiệm vụ hiển thị thông tin trên trình duyệt, nhận mọi dữ liệu điều khiển mà bạn thao tác trên trình duyệt. Dữ liệu sau khi được server xử lý và lưu vào cơ sở dữ liệu sẽ được chuyển tới Master. Lưu ý rằng Server được viết bằng PHP còn Master được viết bằng C, Master chính là server trong mô hình server-client mà những bài viết trước mình đã hướng dẫn. Tiếp đó Master dùng dữ liệu này để điều khiển các thiết bị trong nhà.

Có thể bạn sẽ thắc mắc là tại sao không viết Server điều khiển luôn các thiết bị mà qua Master để làm gì. Lí do mình làm rắc rối như thế là để mọi người có thể tự lập trình việc điều khiển cho Master mình vì có thể mọi người không quen với ngôn ngữ php. Hơn nữa mô hình server-client không nhất thiết phải là dùng mạng để giao tiếp, còn có nhiều cách khác như mạng RF, Zigbee hay Bluetooth. Trong khi những thư viện cho chúng hầu hết mới chỉ hỗ trợ trên C. Vì thế tạo thêm Master là điểu cần thiết.

Loạt bài viết sẽ được chia làm 3 bài :

-      Bài 1 : hướng dẫn cài đặt những công cụ cơ bản để tạo lập được web-server. Kiến thức về webserver cũng được lồng vào phần này.

-      Bài 2 : hướng dẫn lập trình web-server đơn giản cho Raspberry Pi.

-      Bài 3 : bản demo cuối cùng cho toàn bộ hệ thống.

Những bài viết này không yêu cầu người đọc có nhiều vốn kiến thức về công nghệ thông tin. Tuy nhiên trong bài có nhiều chỗ có đề cập tới thuật ngữ của ngành IT, mọi người có thể tự tìm hiểu thêm để làm rõ hơn. Bài viết hướng tới việc hướng dẫn mọi người làm sao có thể xây dựng ứng dụng web-server một cách đơn giản nhất có thể.


I. Cài đặt những công cụ cần thiết


Những công cụ cơ bản xây dựng nê web-server bao gồm Apache, Mysql và ngôn ngữ lập trình PHP. Đây đều là những công cụ/ngôn ngữ phổ biến nhất trong lĩnh xực xây dựng web.

a. Cài đặt Apache

Khi nói về web-server, chúng ta thường hình dung tới khía cạnh phần cứng là một máy chủ dùng để chứa các tài nguyên của một hay nhiều website. Và trên thực tế thì một máy chủ có thể phục vụ nhiều loại tài nguyên khác nhau. Ví dụ một máy chủ vừa có thể làm một máy chủ phục vụ việc chứa các tập tin chia sẻ (file server) hoặc có thể là máy chủ chứa cơ sở dữ liệu (database server) hoặc máy chủ phục vụ việc gửi và nhận email (mail server).

Tuy nhiên, thuật ngữ web-server còn được hiểu trên khía cạnh của một phần mềm được cài đặt trên máy chủ (phần cứng). Chính phần mềm này sẽ xác định xem web-server được dùng với mục đích gì. Ví dụ một web-server sẽ cần cài đặt trên đó phần mềm HTTP web-server. Có nhiều phần mềm như vậy và Apache là một trong những phần mềm phổ biến nhất.

Khi bạn cài Apache trên máy tính cá nhân thì máy tính của bạn lúc này vừa đóng vai trò là một client vừa đóng vai trò của một web-server. Địa chỉ nội bộ http://localhost là một địa chỉ đặc biệt. Nó chỉ tồn tại trên máy tính của mỗi người và khi truy cập địa chỉ này máy tính của bạn sẽ gửi HTTP request tới chính nó. Như vậy nếu bạn cài đặt Apache trên máy tính, bạn đã tạo ra môi trường giả lập một web-server trên chính máy tính mình.

Để cài đặt Apache trên Pi các bạn gõ lệnh sau :

sudo apt-get update && sudo apt-get upgrade # nên update trước khi cài đặt
sudo apt-get install apache2

Để kiểm tra lại việc cài đặt đúng chưa, các bạn mở trình duyệt cuả Pi lên và gõ “localhost”. Trên trình duyệt sẽ xuất hiện trang thông tin về apache. 

Hình 2 : Hình ảnh apache hiển thị trên trình duyệt

Như vậy việc cài đặt đã hoàn tất. Vì là web-server nên các bạn cũng có thể truy cập từ bất cứ đâu trong mạng internet. Tuy nhiên hiện tại thì Pi chỉ có thể truy xuất qua mạng Lan thôi vì muốn truy xuất từ bên ngoài các bạn cần thực hiện thêm việc mở cổng trên Router mạng. Để kết nối từ máy tính của bạn tới web-server của PI, hãy mở trình duyệt trên máy tính lên và nhập địa chỉ Ip của Pi vào.

Địa chỉ apache được cài đặt trong Pi là “var/www”.

b.  Cài đặt PHP

PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình chủ yếu được dùng để phát triển các ứng dụng cho máy chủ. 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.

Cài đặt PHP và các module của PHP trên Pi :

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt php5-mysql

Như thế là việc cài đặt PHP đã hoàn tất. Các bạn có thể chạy thử một chương trình php đơn giản dưới đây :

<?php 
    echo "Hello PHP";
?>

File được lưu với tên là “index.php”. Sau đó thực hiện chạy chương trình trên terminal:

php index.php

Vì là ngôn ngữ dành cho web-server chắc hẳn nó có liên quan tới apache (có thẻ gọi là host server). Các bạn bỏ file “index.php” vào thư mục “var/www/html”. Mở lại trình duyệt, nhập địa chỉ của Pi trên thanh URL, và kết quả “Hello PHP” sẽ hiện ra trên trình duyệt. Có một điều thú vị ở đây là apache sẽ tự động nhận diện file có tên là “index” và thực hiện chạy file đó. Nếu các bạn đổi tên thì địa chỉ trên URL sẽ là “IP/file.php”.

c. Cài đặt Mysql

Mysql là một công cụ quản trị database. Nó được xây dựng lên để lưu trữ và quản lý dữ liệu. Mysql sẽ kết hợp với Php để lưu trữ ứng dụng trên web của chúng ta. Ví dụ như các thông số về thiết bị được điều khiển, hay thông tin của các cảm biến. Việc sử dụng hệ quản trị liệu là rất cần thiết vì việc quản lý dữ liệu sẽ đơn giản hơn, giảm thiểu các sự cố do thiết bị gặp trục trặc hay mất điện, vì dữ liệu đươc lưu trên phần cứng của máy.

Cài đặt Mysql : 

sudo apt-get install mysql-server

Trong quá trình cài đặt các bạn chú ý tới mật khẩu của tài khoản sử dụng “root”. Tài khoản “root” và mật khẩu sau này sẽ được dùng để kết nối tới cơ sở dữ liệu.

Như vậy chúng ta đã hoàn tất việc chuẩn bị những công cụ cần thiết để tạo lập một web-server. Tiếp theo chúng ta tiếp tục với phần hai trình bày cách tạo lập, cơ chế hoạt động của toàn bộ hệ thống bao gồm web-server và Master.

Bài tiếp theo :

-      Bài 2 : hướng dẫn lập trình web-server đơn giản cho Raspberry Pi.

-      Bài 3 : bản demo cuối cùng cho toàn bộ hệ thống.


Để cập nhật các tin tức công nghệ mới các bạn làm theo hướng dẫn sau đây :


Các bạn vào Trang chủ >> Tin tức. ở mục này có các bài viết kỹ thuật thuộc các lĩnh vực khác nhau các bạn có thể lựa chọn lĩnh vực mà mình quan tâm để đọc nhé !!!

Các bạn cũng có thế kéo xuống cuối trang để xem những tin tức công nghệ mới nhất.