0
0
Lập trình
Admin Team
Admin Teamtechmely

Theo Dõi Mất Điện với Raspberry Pi và ESP32 qua Telegram

Đăng vào 2 tuần trước

• 4 phút đọc

Theo Dõi Mất Điện với Raspberry Pi và ESP32 qua Telegram

Giới thiệu

Mất điện là một vấn đề phổ biến ở Ấn Độ, và việc phát hiện cũng như thông báo về tình trạng này là rất quan trọng. Trong bài viết này, chúng ta sẽ xây dựng một hệ thống đơn giản để theo dõi tình trạng mất điện bằng cách sử dụng Raspberry Pi, ESP32 và Telegram. Hệ thống này không chỉ hữu ích cho việc theo dõi điện năng mà còn hỗ trợ các nhà phát triển trong việc áp dụng các nguyên tắc DevOps vào thực tế.

Cấu trúc hệ thống

Hệ thống của chúng ta bao gồm hai thành phần chính:

  • ESP32: Thiết bị này sẽ hoạt động trên lưới điện và sẽ được sử dụng để gửi tín hiệu đến Raspberry Pi.
  • Raspberry Pi: Thiết bị này sẽ chạy trên nguồn điện dự phòng và sẽ theo dõi tình trạng của ESP32.

Nguyên lý hoạt động

  1. ESP32 được cấp nguồn bởi lưới điện.
  2. Raspberry Pi sẽ ping đến ESP32. Nếu ESP32 không phản hồi, Raspberry Pi sẽ xác định rằng đã xảy ra mất điện.
  3. Khi phát hiện mất điện, Raspberry Pi sẽ gửi thông báo ngay lập tức qua Telegram với thông điệp “⚡ mất điện” và khi điện phục hồi sẽ gửi thông điệp “✅ đã khôi phục”.

Tài liệu hướng dẫn chi tiết

Cài đặt cần thiết

  • Raspberry Pi: Chúng ta sẽ cần một chiếc Raspberry Pi đã được cài đặt hệ điều hành.
  • ESP32: Thiết bị này cần được lập trình để gửi tín hiệu.
  • Telegram: Tạo một bot Telegram để gửi thông báo.

Cài đặt ESP32

  • Kết nối ESP32 với máy tính của bạn và cài đặt Arduino IDE nếu chưa có.
  • Cài đặt thư viện cho ESP32 trong Arduino IDE.
cpp Copy
#include <WiFi.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Đang kết nối...");
  }
  Serial.println("Đã kết nối đến WiFi");
}

void loop() {
  // Gửi tín hiệu đến Raspberry Pi
  delay(5000);
}

Cài đặt Raspberry Pi

  • Cài đặt thư viện python-telegram-bot để gửi thông báo qua Telegram.
bash Copy
pip install python-telegram-bot
  • Tạo một script Python để kiểm tra kết nối đến ESP32.
python Copy
import requests
import telegram
import time

TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
CHAT_ID = 'YOUR_CHAT_ID'
ESP32_IP = 'ESP32_IP_ADDRESS'

bot = telegram.Bot(token=TOKEN)

while True:
    try:
        response = requests.get(f'http://{ESP32_IP}')
        if response.status_code == 200:
            print("Kết nối thành công")
        else:
            print("Mất điện! Gửi thông báo...")
            bot.send_message(chat_id=CHAT_ID, text='⚡ Mất điện!')
    except requests.ConnectionError:
        print("Mất điện! Gửi thông báo...")
        bot.send_message(chat_id=CHAT_ID, text='⚡ Mất điện!')
    time.sleep(60)

Thực hành tốt nhất

  • Kiểm tra thường xuyên: Đảm bảo rằng ESP32 và Raspberry Pi luôn hoạt động ổn định.
  • Sử dụng nguồn điện dự phòng: Để Raspberry Pi hoạt động liên tục ngay cả khi mất điện.
  • Bảo mật bot Telegram: Đảm bảo token của bot không bị lộ ra ngoài.

Những cạm bẫy phổ biến

  • Kết nối Internet không ổn định: Có thể gây ra thông báo sai lệch. Đảm bảo rằng cả ESP32 và Raspberry Pi đều có kết nối Internet ổn định.
  • Quên cập nhật IP của ESP32: Nếu IP của ESP32 thay đổi, Raspberry Pi sẽ không thể ping đến nó.

Mẹo hiệu suất

  • Tối ưu hóa thời gian ping: Giảm thời gian ping xuống 30 giây để phát hiện mất điện nhanh hơn.
  • Sử dụng MQTT: Nếu muốn mở rộng hệ thống, có thể sử dụng MQTT để giao tiếp giữa các thiết bị.

Khắc phục sự cố

  • ESP32 không phản hồi: Kiểm tra kết nối điện và WiFi của ESP32.
  • Raspberry Pi không gửi thông báo: Kiểm tra token của bot Telegram và đảm bảo bot đã được khởi động.

Kết luận

Hệ thống theo dõi mất điện bằng Raspberry Pi và ESP32 là một cách đơn giản nhưng hiệu quả để quản lý tình trạng điện năng. Hãy thử nghiệm và tùy chỉnh dự án này theo nhu cầu riêng của bạn. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại câu hỏi trong phần bình luận!

Câu hỏi thường gặp (FAQ)

1. Tôi có thể sử dụng thiết bị nào khác thay cho ESP32?
Có, bạn có thể sử dụng các thiết bị IoT khác như Arduino hoặc NodeMCU.

2. Hệ thống này có thể mở rộng như thế nào?
Bạn có thể thêm nhiều ESP32 để theo dõi nhiều vị trí khác nhau hoặc tích hợp với các hệ thống tự động hóa nhà thông minh.

Tài liệu tham khảo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào