Quản lý năng lượng thiết bị trong IoT


Hoàng Cao Kỳ
10 tháng trước
Hữu ích 8 Chia sẻ Viết bình luận 0
Đã xem 8941

Một khía cạnh cần xem xét khi phát triển dự án IoT là quản lý năng lượng thiết bị. Với sự phát triển của Internet of Things, việc tối ưu hóa các thiết bị hoạt động bằng pin là một khía cạnh quan trọng có thể tạo ra sự khác biệt rất lớn. Quản lý năng lượng thiết bị trong IoT là một nhiệm vụ đầy thách thức vì một thiết bị luôn có thể được cấp nguồn và có thể được đặt ở mọi nơi. Thông thường, các thiết bị IoT được đặt ở xa và chúng phải sử dụng pin để hoạt động.

Quản lý năng lượng thiết bị IoT: Cách triển khai

Quản lý năng lượng thiết bị trong IoT bao gồm tất cả các bước liên quan đến quy trình thiết kế và điều rất quan trọng là phải tính đến cách thiết bị sẽ hoạt động và cách hành vi này ảnh hưởng đến mức tiêu thụ năng lượng. Dung lượng pin và hành vi của thiết bị là hai trong số các khía cạnh quan trọng nhất. Chi tiết hơn, hành vi của thiết bị có thể có tác động xấu đến quản lý năng lượng. Thông thường, chúng ta có thể mô hình hóa mức tiêu thụ năng lượng của thiết bị IoT bằng ba lĩnh vực khác nhau:

  • Vi điều khiển
  • Hoạt động vô tuyến
  • Cảm biến và cơ cấu chấp hành

Trường hợp sử dụng thiết bị IoT điển hình là:

  • Thu thập dữ liệu từ các cảm biến
  • Gửi và nhận dữ liệu
  • Kiểm soát bộ truyền động

Thông thường, một thiết bị IoT sử dụng một hoặc nhiều cảm biến để thu thập thông tin liên quan đến môi trường. Dữ liệu thu được được sử dụng cục bộ hoặc từ xa để đưa ra quyết định. Thông tin này có được bằng cách sử dụng các cảm biến và mỗi cảm biến có mức tiêu thụ năng lượng cụ thể. Do đó, điều rất quan trọng là chọn cảm biến cẩn thận để tối ưu hóa quản lý năng lượng.

Một thiết bị IoT trong quá trình hoạt động có thể gửi và nhận dữ liệu từ xa. Thông thường, một số thiết bị IoT được kết nối với một cổng IoT thu thập thông tin đó và gửi chúng lên đám mây. Hoạt động gửi và nhận là một trong những nhiệm vụ tốn kém nhất theo quan điểm quản lý điện năng. Hoạt động này liên quan đến kết nối radio (di động, Wi-Fi, Bluetooth, v.v.).

Cuối cùng, bằng cách sử dụng một số logic kinh doanh cụ thể cục bộ hoặc từ xa, một thiết bị IoT có thể điều khiển một hoặc nhiều bộ truyền động.

Bộ vi điều khiển điều khiển tất cả các hoạt động và là bộ não của thiết bị, và để hoạt động, nó cần nguồn điện.

Triển khai quản lý năng lượng trong IoT

Bây giờ chúng tôi đã giới thiệu một số khía cạnh liên quan đến quản lý năng lượng trong thiết bị IoT, đã đến lúc mô tả cách triển khai nó. Để làm điều đó, chúng tôi sẽ mô tả một số thực tiễn tốt nhất theo quan điểm phát triển, bao gồm cách viết mã có tính đến việc quản lý năng lượng thiết bị.

Cách dễ nhất mà chúng tôi sử dụng để phát triển ứng dụng IoT bằng Arduino, ESP8266 và các thiết bị tương thích khác là triển khai mã trong  loop() phương thức. Ví dụ: khi chúng tôi phải thu thập dữ liệu từ một cảm biến theo các khoảng thời gian cụ thể, chúng tôi chỉ cần thêm  delay(..) phương thức, chỉ định thời gian thiết bị sẽ đợi bao lâu trước khi bắt đầu lại và lặp lại các tác vụ tương tự. Cách tiếp cận này không phải là cách tốt nhất khi chúng ta xem xét khía cạnh quản lý năng lượng. Có nhiều cách khác nhau chúng ta có thể sử dụng để đạt được kết quả tốt hơn.

Ví dụ, để biết thêm chi tiết, một thiết bị ESP8266 có bốn chế độ khác nhau để chế độ ngủ hay tiết kiệm pin:

  • Không ngủ
  • Modem ngủ
  • Giấc ngủ nhẹ
  • Giấc ngũ sâu

Bảng này mô tả các chế độ ngủ khác nhau:

nguồn “ ESP8266 Low Power giải pháp

Không ngủ

Đây là cách không hiệu quả nhất để sử dụng thiết bị này. Nó luôn luôn là trên.

Chế độ ngủ Modem

Chế độ này chỉ được bật khi ESP8266 được kết nối với Wi-Fi. Ở chế độ này, ESP8266 tắt mô-đun Wi-Fi giữa hai khoảng thời gian DTIM Beacon. ESP8266 bật lại mô-đun Wi-Fi trước Beacon tiếp theo. Chế độ ngủ được sử dụng khi cần thiết để giữ CPU.

Chế độ ngủ nhẹ

Đây là chế độ rất giống với chế độ ngủ Modem nhưng ở chế độ này, ESP8266 tạm dừng CPU và tắt đồng hồ. Chế độ này hiệu quả hơn chế độ trước. Ở chế độ Ngủ nhẹ, nên đánh thức ESP8266 bằng chân GPIO.

Chế độ ngủ sâu

Trong chế độ này, mọi thứ đều bị tắt ngoại trừ RTC (Đồng hồ thời gian thực), do đó, có thể bật ESP8266 theo định kỳ. Đây là chế độ hiệu quả nhất. Chế độ ngủ sâu có thể được sử dụng trong các tình huống trong đó thiết bị sẽ gửi dữ liệu theo các khoảng thời gian cụ thể. Đây là ví dụ về một ứng dụng sử dụng cảm biến. Ứng dụng đọc dữ liệu cảm biến, gửi các giá trị và chuyển sang chế độ ngủ sâu.

Tài nguyên thú vị hơn:

Cách sử dụng Quản lý năng lượng trong ESP8266 để giảm mức tiêu thụ năng lượng

Bây giờ, đã đến lúc xây dựng một ví dụ đơn giản mô tả cách sử dụng chế độ ngủ sâu để xử lý việc quản lý năng lượng trong IoT. Chúng ta hãy giả sử rằng ứng dụng của chúng ta phải đọc nhiệt độ và gửi nó đến một nền tảng IoT từ xa. Cấu trúc ứng dụng phải là:

  • Đọc dữ liệu từ cảm biến
  • Gửi dữ liệu
  • Chuyển sang chế độ ngủ sâu trong khoảng thời gian được xác định trước
  • Lặp lại một lần nữa từ bước đầu tiên

Cách bật chế độ ngủ sâu trong ESP8266

Bước đầu tiên là cho phép chế độ ngủ sâu. Các sơ đồ dưới đây cho thấy làm thế nào để làm điều đó:

Trong trường hợp này, chúng tôi đang kết nối chân D0 với RST. Khi bạn tải mã lên ESP8266, không kết nối D0 với RST.

Mã ESP8266 dưới đây cho thấy cách thực hiện:

#include <ESP8266WiFi.h>

const char* WIFI_SSID="---";
const char* WIFI_PWD="----";

void setup() {
  Serial.begin(9600); 

  connectToWifi();
  // send data

  Serial.println("Going to deep sleep for 15 sec");
  ESP.deepSleep(15e6);
}

void loop() {
  // put your main code here, to run repeatedly:
}

void connectToWifi() {
  Serial.print("Connecting to Wifi:");
  Serial.println(WIFI_SSID);
  WiFi.begin(WIFI_SSID, WIFI_PWD);

   while (WiFi.status() != WL_CONNECTED) {
    if (WiFi.status() == WL_CONNECT_FAILED) {
      Serial.println("Error during WiFi connection- ");
      delay(10000);
    }
    delay(1000);
   }

    Serial.print("Wifi IP:");
    Serial.println(WiFi.localIP());
}


Trong trường hợp này, ESP8266 chuyển sang chế độ ngủ sâu trong 15 giây. Khi thức dậy, nó bắt đầu lại từ đầu, kết nối với Wi-Fi, v.v.

Có thể sử dụng phương pháp này để đánh thức ESP8266 bằng một nút để khởi động nó. Chúng tôi sẽ đề cập đến nó trong một bài viết khác.

Tóm lược

Ở cuối bài này, hy vọng, bạn đã có được kiến ​​thức về cách quản lý sức mạnh trong IoT bằng một số ví dụ. Việc quản lý năng lượng rất quan trọng trong IoT, vì vậy điều quan trọng là phải tính đến nó.

Hữu ích 8 Chia sẻ Viết bình luận 0
Đã xem 8941