Home Internet of Things - IoT ESP8266/ESP32 và Raspberry Pi LAMP Server – [Bài 1]: Giới thiệu project.

ESP8266/ESP32 và Raspberry Pi LAMP Server – [Bài 1]: Giới thiệu project.

by Khanh Tran

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 :

1.  Tổng quan cơ bản về LAMP stack

LAMP stack là gì?

LAMP stack là nền tảng của các hosting website sử dụng chủ yếu Linux. Tên là viết tắt của Linux, Apache, MySQL và PHP, là giải pháp máy chủ linh hoạt, được kết hợp từ 4 lớp giải pháp phần mềm riêng lẻ.

Các thành phần này, được sắp xếp theo các lớp hỗ trợ lẫn nhau, tạo thành các stack phần mềm. Các website và ứng dụng web chạy trên nền tảng của các stack cơ bản này.

Linux: là lớp đầu tiên trong stack. Hệ điều hành này là cơ sở nền tảng cho các lớp phần mềm khác.

Apache: Lớp thứ hai bao gồm phần mềm web server, thường là Apache Web (HTTP) Server. Lớp này nằm trên lớp Linux. Web server chịu trách nhiệm chuyển đổi các web browser sang các website chính xác của chúng. Apache đã (và vẫn) là ứng dụng web server phổ biến nhất trên public Internet hiện nay. Trên thực tế, Apache được ghi nhận là đóng một vai trò quan trọng trong sự phát triển ban đầu của World Wide Web.

MySQL: Lớp thứ ba là nơi cơ sở dữ liệu database được lưu trữ. Nó lưu trữ các chi tiết có thể được truy vấn bằng script để xây dựng một website. MySQL thường nằm trên Linux và cùng với Apache / lớp 2. Trong cấu hình highend, MySQL có thể được off load xuống 1 máy chủ lưu trữ riêng biệt.

PHP: là lớp trên cùng của stack. Lớp script bao gồm PHP và / hoặc các ngôn ngữ lập trình web tương tự khác. Các website và ứng dụng web chạy trong lớp này.

2. Tổng quan về dự án.

Trong dự án này, tôi sẽ xây dựng một client ESP32 hoặc ESP8266 để thực hiện HTTP POST request đến Raspberry Pi LAMP Server (  Linux, Apache, MySQL, PHP ). Raspberry Pi có một chương trình viết bằng PHP để insert dữ liệu (đọc từ cảm biến thông qua ESP 8266/ESP 32) vào cơ sở dữ liệu MySQL.

Tôi cũng sẽ tạo một web page hiển thị dữ liệu cảm biến, mốc thời gian và một số thông tin khác được lưu trữ trong cơ sở dữ liệu. Sau đó chúng ta có thể kiểm tra dữ liệu đọc được từ cảm biến trong mạng local thông qua trình duyệt của mình.

Trong phần này, tôi sẽ sử dụng cảm biến BME280 được kết nối với ESP8266 Node MCU. Bạn có thể sửa đổi code để đọc được giá trị từ một loại cảm biến khác như DHT11/22 … bằng Arduino

Để xây dựng dự án này, chúng ta sẽ sử dụng các công nghệ sau:

  • Xây dựng LAMP server trên Raspberry Pi
  • ESP32 hoặc ESP8266 lập trình với Arduino IDE
  • PHP script để insert dữ liệu vào MySQL và hiển thị trên trang web
  • Cơ sở dữ liệu MySQL để lưu trữ dữ liệu.

Bài tiếp theo, chúng ta hãy cùng tìm hiểu và cài đặt các công cụ cần thiết để xây dựng Raspberry Pi LAMP Server.

You may also like

Leave a Comment