Thiết kế hệ thống IoT quan trắc môi trường gửi dữ liệu về điện thoại

20/12/2024 15:03  

Thiết kế Hệ thống IoT Quan Trắc Môi Trường Gửi Dữ Liệu Về Điện Thoại

Dưới đây là một hệ thống IoT quan trắc môi trường (như nước nuôi cá, nước sông, hoặc không khí) có thể gửi dữ liệu về điện thoại người dùng qua ứng dụng di động hoặc nền tảng web.


1. Thành phần của hệ thống

Phần cứng

  1. Bộ cảm biến (Sensors):

    • Cảm biến nhiệt độ: Theo dõi nhiệt độ môi trường.
    • Cảm biến độ pH: Đo độ pH trong nước.
    • Cảm biến oxy hòa tan (DO): Đo lượng oxy hòa tan trong nước.
    • Cảm biến độ đục (Turbidity): Theo dõi mức độ trong sạch của nước.
    • Cảm biến độ ẩm hoặc độ dẫn điện (EC): Theo dõi độ ẩm hoặc mức độ mặn.
  2. Vi điều khiển (MCU):

    • ESP32/ESP8266: Có tích hợp Wi-Fi để truyền dữ liệu qua internet.
    • Arduino hoặc Raspberry Pi: Nếu cần xử lý dữ liệu phức tạp hơn.
  3. Nguồn điện:

    • Pin hoặc nguồn điện trực tiếp từ lưới điện.
    • Tùy chọn năng lượng mặt trời để sử dụng ở khu vực xa xôi.
  4. Module truyền thông:

    • Wi-Fi: Kết nối qua router hoặc điểm truy cập Wi-Fi.
    • LoRa: Kết nối tầm xa nếu không có Wi-Fi.
    • 4G/LTE Module (SIM800/SIM900): Truyền dữ liệu qua mạng di động.

Phần mềm

  1. Cloud Server hoặc Backend:

    • Database: Lưu trữ dữ liệu quan trắc (MySQL, Firebase, MongoDB).
    • API RESTful: Xử lý và cung cấp dữ liệu (Node.js, PHP, hoặc Python Flask).
    • MQTT Broker: Giao tiếp giữa thiết bị và server.
  2. Ứng dụng di động:

    • Android/iOS App: Hiển thị dữ liệu theo thời gian thực.
    • Tích hợp thông báo (push notification) khi có bất thường.
  3. Nền tảng Dashboard Web:

    • Hiển thị đồ thị, báo cáo lịch sử dữ liệu.
    • Tùy chọn điều khiển từ xa (như bật máy sục khí nếu oxy hòa tan thấp).

2. Quy trình hoạt động

  1. Thu thập dữ liệu từ cảm biến:

    • Các cảm biến đo lường thông số môi trường (nhiệt độ, pH, DO, độ đục) và truyền dữ liệu về vi điều khiển.
  2. Xử lý dữ liệu tại vi điều khiển:

    • Vi điều khiển (ESP32) đọc dữ liệu từ cảm biến, định dạng dữ liệu và truyền tới server qua Wi-Fi hoặc mạng di động.
  3. Gửi dữ liệu đến cloud server:

    • Dữ liệu được truyền đến cloud server thông qua giao thức MQTT hoặc HTTP.
  4. Lưu trữ và xử lý dữ liệu trên server:

    • Lưu trữ: Dữ liệu được lưu vào cơ sở dữ liệu như Firebase hoặc MySQL.
    • Phân tích: Server có thể phân tích dữ liệu để phát hiện bất thường (ví dụ: pH quá thấp hoặc oxy hòa tan thấp).
  5. Gửi dữ liệu tới điện thoại:

    • Ứng dụng di động: Ứng dụng sẽ nhận dữ liệu từ cloud qua API hoặc MQTT, hiển thị trực quan (đồ thị, cảnh báo).
    • Thông báo bất thường: Khi một giá trị vượt ngưỡng (ví dụ: nhiệt độ quá cao), ứng dụng sẽ gửi thông báo ngay lập tức.

3. Kiến trúc hệ thống

[Cảm biến] --> [ESP32/MCU] --> [Router/4G Module] --> [Cloud Server] --> [App/Website]

 


4. Phát triển trên nền tảng PHP

Phát triển backend PHP:

  1. Kết nối dữ liệu cảm biến đến server PHP:

    • ESP32 gửi dữ liệu tới server qua HTTP POST request:

      <?php 

      if   ($_SERVER[ " REQUEST_METHOD " ] ===   " POST " ) {  

      $temperature   =   $_POST[ ' temperature ' ];  

      $ph   =   $_POST[ ' ph ' ];   $do   =   $_POST[ ' do ' ];

        $turbidity   =   $_POST[ ' turbidity ' ];  

      // Kết nối cơ sở dữ liệu MySQL  

      $conn   =   newmysqli( " localhost " ,   " username " ,   " password " ,   " database_name " );  

      if   ($conn- > connect_error) {   die( " Connection failed: "   .   $conn- > connect_error); }  

      $sql   =   " INSERT INTO sensor_data (temperature, ph, do, turbidity) VALUES ( ' $temperature ' , ' $ph ' , ' $do ' , ' $turbidity ' ) " ;  

      if   ($conn- > query($sql) ===   TRUE) {   echo   " Data saved successfully " ; }  

      else  

      {

        echo   " Error: "   .   $conn- > error;

      }

        $conn- > close();

      }  

      ? >

  2. API cung cấp dữ liệu cho app:

    • Tạo API RESTful để lấy dữ liệu theo thời gian thực:

        <?php 

      $conn  = new mysqli("localhost", "username", "password", "database_name"); 

      $sql  = "SELECT * FROM sensor_data ORDER BY id DESC LIMIT 10";

       $result = $conn->query($sql); 

      $data  = []; 

      while  ($row = $result->fetch_assoc())

      {  

      $data[] =  $row;

      }  

      header( 'Content-Type: application/json'); 

      echo  json_encode($data); 

      $conn- >close(); 

      ? > 

 

Phát triển ứng dụng di động:

  1. Sử dụng Flutter hoặc React Native:

    • Giao diện thân thiện, hiển thị dữ liệu từ API.
    • Tích hợp Firebase để gửi thông báo đẩy (push notification).
  2. Gửi cảnh báo qua ứng dụng:

    • Phát triển cơ chế cảnh báo trên server:
      • Khi giá trị vượt ngưỡng, gửi thông báo qua Firebase.

5. Ưu điểm và nhược điểm

Ưu điểm:

Nhược điểm:


6. Mở rộng hệ thống

Hệ thống này vừa tiết kiệm chi phí vừa đảm bảo tính chính xác trong quan trắc môi trường, phù hợp để triển khai tại các khu vực nuôi trồng thủy sản hoặc giám sát môi trường.

 



IoT   quan trắc   môi trường   Hệ thống  


Bài viết liên quan