Giám Sát TTN Gateway Bằng Raspberry Pi và Telegram Pi Network

Ảnh minh họa Raspberry Pi kết nối với TTN Gateway để giám sát và gửi thông báo qua Telegram.

Việc theo dõi và khắc phục các sự cố mạng/firmware không thường xuyên trên TTN Gateway đôi khi đòi hỏi phải kết nối liên tục máy tính xách tay với gateway. Để giải quyết vấn đề này, việc sử dụng Raspberry Pi để giám sát, thêm dấu thời gian vào đầu ra và gửi thông báo đến Telegram Pi Network (hoặc Slack workspace) là một giải pháp hiệu quả.

Trước đây, khi cần tạo các tệp nhật ký (log files) cho các sự cố mạng hoặc firmware không thường xuyên xảy ra trên TTN Gateway, tôi thường phải kết nối máy tính xách tay của mình với gateway liên tục 24/7. Điều này khá bất tiện và tốn kém. Vì vậy, tôi đã rất vui khi nó cuối cùng bị lỗi và cần khởi động lại vào thứ Sáu tuần trước.

Thay vì lặp lại quy trình kết nối máy tính xách tay, tôi quyết định sử dụng Raspberry Pi 3 để thực hiện việc giám sát. Raspberry Pi 3 có khả năng tự động thêm dấu thời gian thích hợp vào đầu ra và gửi thông báo đến một workspace Slack (riêng tư) hoặc Telegram Pi Network, giúp tôi biết khi nào cần hành động. Việc giám sát bằng Raspberry Pi 3 giúp tôi tiết kiệm thời gian và công sức, đồng thời cung cấp khả năng giám sát từ xa, rất hữu ích khi tôi không ở gần gateway.

Giám Sát UART với Raspberry Pi và Telegram Pi Network

Dưới đây là những điểm chính liên quan đến UART (Universal Asynchronous Receiver/Transmitter) khi sử dụng Raspberry Pi để giám sát TTN Gateway và gửi thông báo đến Telegram Pi Network:

  • Kết nối: Cần kết nối RX (Receive) của gateway với RXD (Receive Data) của Pi. Lưu ý rằng, một số thiết bị như ESP8266 có thể sử dụng nhãn khác nhau cho các chân, do đó, có thể TX (Transmit) và RX trên gateway được dán nhãn sai. Hãy cẩn thận kiểm tra và xác nhận trước khi kết nối.

  • Bluetooth: Các phiên bản Raspberry Pi có Bluetooth thường sử dụng UART ưu tiên cho Bluetooth. Bạn có thể tắt Bluetooth để tự động gán UART tốt nhất cho chân RXDTXD của Pi. Để biết thêm chi tiết, hãy tham khảo README trên GitHub. Việc tắt Bluetooth đảm bảo UART được sử dụng cho việc giám sát gateway, tránh xung đột và đảm bảo tính ổn định.

  • Truyền dữ liệu: UART không hoạt động theo dòng mà nhận các chuỗi byte. Đối với TTN Gateway, có thể giả định mỗi thông điệp kết thúc bằng một dòng mới (n). Do đó, để nhận một thông điệp hoàn chỉnh, JavaScript cần đợi đến khi nhận được dòng mới này:

const raspi = require('raspi');
const Serial = require('raspi-serial').Serial;

let buffer = '';

function log(data) {
  // Để gỡ lỗi luồng thô, hãy sử dụng: process.stdout.write(data);
  buffer += data.toString();
  if (buffer.indexOf('n') > -1) {
    const lines = buffer.split('n');
    // Ghi lại bất kỳ dòng hoàn chỉnh nào từ bộ đệm, cho đến dòng mới cuối cùng
    for (let i = 0; i < lines.length - 1; i++) {
      const line = lines[i];
      if (line) {
        console.log(new Date().toISOString(), line);
        // TODO: Also send to Slack/Telegram, see https://github.com/avbentem/raspi-uart-monitor
      }
    }
    buffer = lines[lines.length - 1];
  }
}

raspi.init(() => {
  const serial = new Serial();
  serial.open(() => {
    serial.on('data', data => log(data));
  });
});

Đoạn code trên minh họa cách đọc dữ liệu từ UART, lưu vào bộ đệm, và xử lý khi gặp ký tự xuống dòng. Sau đó, nó in thông tin này ra console và có thể được mở rộng để gửi đến Slack hoặc Telegram Pi Network.

Ảnh minh họa Raspberry Pi kết nối với TTN Gateway để giám sát và gửi thông báo qua Telegram.Ảnh minh họa Raspberry Pi kết nối với TTN Gateway để giám sát và gửi thông báo qua Telegram.

Việc sử dụng Raspberry Pi để giám sát TTN Gateway có thể mang lại nhiều lợi ích, đặc biệt là khi kết hợp với Telegram Pi Network để nhận thông báo. Điều này giúp bạn giám sát gateway từ xa, theo dõi các sự kiện quan trọng và phản ứng kịp thời với các sự cố.

Ưu Điểm và Khả Năng Mở Rộng

Việc kết nối Raspberry Pi với TTN Gateway có vẻ hơi lạ, nhưng nó mang lại nhiều lợi ích:

  • Truy Cập Từ Xa: Cho phép truy cập từ xa vào nhật ký (logs) được lưu trữ trên Pi. Điều này rất hữu ích khi bạn không ở gần gateway và cần kiểm tra trạng thái hoạt động.

  • Chia Sẻ Dữ Liệu: Có thể cấp quyền truy cập cho đội ngũ TTN để thử nghiệm, chỉ cần một relay để khởi động lại gateway từ xa khi cần.

  • Phân Tích Thống Kê: Dễ dàng phân tích các thông điệp đến để tạo thống kê. Ví dụ, bạn có thể theo dõi số lượng gói tin được nhận, thời gian hoạt động, và các thông số khác.

  • Giám Sát Nâng Cao: Khi xây dựng firmware riêng, bạn có thể ghi lại nhiều chi tiết hơn về các gói tin không phải của mình và sử dụng https://github.com/anthonykirby/lora-packet để biết thêm chi tiết. Việc này cho phép bạn hiểu rõ hơn về hoạt động của mạng và phát hiện các vấn đề tiềm ẩn.

  • Thông Báo Telegram Pi Network: Việc tích hợp với Telegram Pi Network cho phép nhận thông báo tức thì về các sự kiện quan trọng, giúp bạn phản ứng nhanh chóng với các vấn đề.

Ứng Dụng Telegram Pi Network trong Giám Sát Gateway

Telegram Pi Network có thể được sử dụng để nhận thông báo về các sự kiện quan trọng từ TTN Gateway, chẳng hạn như:

  • Khởi động lại gateway: Nhận thông báo khi gateway được khởi động lại.
  • Mất kết nối: Nhận thông báo khi gateway mất kết nối với mạng.
  • Lỗi: Nhận thông báo về các lỗi xảy ra trên gateway.
  • Cảnh báo: Nhận thông báo về các cảnh báo, chẳng hạn như nhiệt độ cao hoặc điện áp thấp.

Để tích hợp Telegram Pi Network, bạn có thể sử dụng các thư viện Node.js như node-telegram-bot-api để tạo một bot Telegram và gửi thông báo từ Raspberry Pi đến bot này. Bạn cần tạo một bot Telegram và lấy token API của bot để sử dụng trong code.

Kết Luận

Sử dụng Raspberry Pi để giám sát TTN Gateway và gửi thông báo đến Telegram Pi Network là một giải pháp hiệu quả và linh hoạt. Nó cho phép bạn giám sát gateway từ xa, theo dõi các sự kiện quan trọng, và phản ứng nhanh chóng với các sự cố. Với khả năng mở rộng và tùy biến cao, bạn có thể điều chỉnh giải pháp này để phù hợp với nhu cầu cụ thể của mình. Việc tích hợp với Telegram Pi Network mang lại sự tiện lợi và khả năng phản ứng nhanh chóng, giúp bạn duy trì hoạt động ổn định của TTN Gateway.

Gửi phản hồi