Ở phần trước mình đã trình bày về mô hình hoặt động của project. Nói một cách đơn giản, dự án được xây dựng trên cả thiết bị phần cứng là ESP8266/ESP32 Node MCU và kèm theo đó là phần server của dự án được tích hợp trên Raspberry Pi. Trong phần này, chúng ta cùng nhau cài đặt các công cụ cần thiết cho việc xây dựng một LAMP server và chương trình nhúng trên ESP8266.
Mục lục
1. Cài đăt hệ điều hành Raspbian cho Raspberry Pi.
Đây là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi Foundation cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất là cho người mới bắt đầu làm quen với RPI.

Chuẩn bị phần cứng:
- 1 board mạch Raspberry Pi : trong bài viết này mình sử dụng Raspberry Pi 3 Model B.
- 1 Thẻ nhớ Micro SD 16GB Class 10. Pi có thể làm việc với thẻ nhớ lên tới 32Gb. Dung lượng thẻ nhớ tối thiểu 8GB. Tốc độ của thẻ nhớ nên từ Class 10 trở lên để hiệu năng sử dụng bộ nhớ của Pi là tốt nhất.
- 1 Cable HDMI (có thể sử dụng 1 Cable HDMI – VGA)
- màn hình có cổng HDMI (Có thể sử dụng màn hình desktop với đầu vào là cổng VGA)
- 1 bộ nguồn cấp 5V/2A micro-USB cho Raspberry Pi.
- Bàn phím và chuột : sử dụng trong quá trình setup ban đầu cho Raspberry Pi.
Phần mềm cần thiết:
+ Format thẻ nhớ : Sử dụng phần mềm SD Formatter : SD Formatter
+Ghi file .img của hệ điều hành lên thẻ nhớ : Win32DiskImager
+ File hệ điều hành với version phù hợp với Model của Pi. Có thể lên trực tiếp trang chủ để dowload.
Hướng dẫn cài đặt:
2. Cài đặt những công cụ cần thiết để xây dựng LAMP server.
Những công cụ cơ bản xây dựng nê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 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 trên 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 đó ta có thể chạy chương trình trên terminal:
php index.php
PHP dành cho web-server nên chắc hẳn nó có liên quan tới apache (có thẻ gọi là host server). Ta cần đưa 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. 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”.
b. Cài đặt Apache
Để 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.

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”.
c. Cài đặt Mysql
MySQL là hệ quản trị cơ sở dữ liệu tự do 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 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 Server (MariaDB Server) và PHP-MySQL packages bằng cách nhập lệnh sau: :
pi@raspberrypi:/var/www/html $ sudo apt install mariadb-server php-mysql -y
pi@raspberrypi:/var/www/html $ sudo service apache2 restart
Sau khi cài đặt MySQL ( MariaDB Server ), bạn nên chạy lệnh này để bảo mật cài đặt MySQL của bạn:
pi@raspberrypi:/var/www/html $ sudo mysql_secure_installation
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.
d. Cài đặt phpMyAdmin trên Raspberry Pi
phpMyAdmin là một công cụ miễn phí được viết bằng PHP, nhằm xử lý việc quản trị MySQL bằng giao diện web.
Để cài đặt phpMyAdmin trên Raspberry Pi, hãy nhập lệnh sau vào terminal :
pi@raspberrypi:/var/www/html $ sudo apt install phpmyadmin -y
Chương trình cài đặt PHPMyAdmin sẽ hỏi bạn vài câu hỏi. Chúng ta sẽ sử dụng dbconfig-common .
- Chọn Apache2 và nhấn phím Enter
- Configuring phpmyadmin? OK
- Configure database for phpmyadmin with dbconfig-common? Yes
- Nhập mật khẩu của bạn và nhấn OK
Kích hoạt tiện ích mở rộng PHP MySQLi và khởi động lại Apache2 để các thay đổi có hiệu lực:
pi@raspberrypi:/var/www/html $ sudo phpenmod mysqli
pi@raspberrypi:/var/www/html $ sudo service apache2 restart
Khi truy cập your RPi IP address /phpmyadmin (trong trường hợp của tôi http://192.168.1.86/phpmyadmin ), bạn có thể sẽ thấy “Not Found” error trong trình duyệt của bạn:

Nếu đúng như vậy, bạn sẽ phải chuyển thư mục phpmyadmin sang /var/www/html , chạy lệnh tiếp theo:
pi@raspberrypi:/var/www/html $ sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
Reload trang web của bạn (http://192.168.1.86/phpmyadmin), bạn sẽ thấy trang đăng nhập cho giao diện phpMyAdmin web:

3. Cài đặt Arduino IDE để lập trình cho ESP8266/ESP32 và phần cứng cần thiết.
Yêu cầu:
- 1 x ESP8266 v1(hoặc các bạn có thể chọn bất kì kit ESP8266 node MCU hay ESP 32 nào khác)
- USB TTL (ví dụ PL2303 hoăc CP210x)
- 1 x Arduino IDE bản mới nhất nhé ( các bạn có thể down ở đây)
Sau khi down bản mới nhất của Arduino IDE, các bạn tiến hành cài đặt như bình thường và mở chương trình

Tiến hành cài đặt thư viện và chức năng nạp code từ IDE cho ESP 8266 mình làm như sau:
Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đường link sau vào
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Click OK để chấp nhận.

Tiếp theo vào Tool→Board→Boards Manager

Sau khi chương trình tự tìm kiếm. Ta kéo xuống và click vào ESP8266 by ESP8266 Community, click vào Install. Chờ phần mềm tự động download và cài đặt thư viện.

Chọn Board để lập trình cho ESP8266:
Kết nối mudule USB-to-UART vào máy tính. Vào Tool→Board→Generic ESP8266 Module, chọn cổng COM tương ứng với module USB-to-UART tương ứng.

Chọn chế độ nạp Arduino as ISP. Vậy là ta đã có môi trường lập trình cho esp8266 rất thân thiện.
Từ bài tiếp theo, chúng ta hãy cùng bắt đầu xây dựng project của mình nhé.
4 comments
[…] tôi lập trình ESP32/ESP8266 bằng Arduino IDE, vì vậy bạn phải cài đặt tiện ích bổ sung ESP32/ESP8266 trong Arduino IDE của […]
Username và password đăng nhập trang php lấy ở đâu vậy nhỉ? Trong quá trình cài đặt bạn có thể chỉ rõ hơn được ko?
Mặc định phpMyAdmin sẽ yêu cầu người dùng truy cập vào ứng dụng này phải nhập tên người dùng MySQL và mật khẩu tương ứng để có thể sử dụng ứng dụng
Ý mình là lúc cài đặt ko thấy có khai báo. Giờ lấy đâu ra để đăng nhập ấy?