You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/vi/1-getting-started/lessons/4-connect-internet/wio-terminal-telemetry.md

3.7 KiB

Điều khiển đèn ngủ qua Internet - Wio Terminal

Trong phần này của bài học, bạn sẽ gửi dữ liệu đo lường ánh sáng từ Wio Terminal của mình đến MQTT broker.

Cài đặt thư viện JSON cho Arduino

Một cách phổ biến để gửi tin nhắn qua MQTT là sử dụng JSON. Có một thư viện Arduino dành cho JSON giúp việc đọc và viết tài liệu JSON trở nên dễ dàng hơn.

Nhiệm vụ

Cài đặt thư viện Arduino JSON.

  1. Mở dự án đèn ngủ trong VS Code.

  2. Thêm dòng sau vào danh sách lib_deps trong tệp platformio.ini:

    bblanchon/ArduinoJson @ 6.17.3
    

    Điều này sẽ nhập ArduinoJson, một thư viện JSON dành cho Arduino.

Gửi dữ liệu đo lường

Bước tiếp theo là tạo một tài liệu JSON chứa dữ liệu đo lường và gửi nó đến MQTT broker.

Nhiệm vụ - gửi dữ liệu đo lường

Gửi dữ liệu đo lường đến MQTT broker.

  1. Thêm đoạn mã sau vào cuối tệp config.h để định nghĩa tên chủ đề dữ liệu đo lường cho MQTT broker:

    const string CLIENT_TELEMETRY_TOPIC = ID + "/telemetry";
    

    CLIENT_TELEMETRY_TOPIC là chủ đề mà thiết bị sẽ gửi mức ánh sáng đến.

  2. Mở tệp main.cpp

  3. Thêm chỉ thị #include sau vào đầu tệp:

    #include <ArduinoJSON.h>
    
  4. Thêm đoạn mã sau vào bên trong hàm loop, ngay trước delay:

    int light = analogRead(WIO_LIGHT);
    
    DynamicJsonDocument doc(1024);
    doc["light"] = light;
    
    string telemetry;
    serializeJson(doc, telemetry);
    
    Serial.print("Sending telemetry ");
    Serial.println(telemetry.c_str());
    
    client.publish(CLIENT_TELEMETRY_TOPIC.c_str(), telemetry.c_str());
    

    Đoạn mã này đọc mức ánh sáng, tạo một tài liệu JSON sử dụng ArduinoJson chứa mức ánh sáng này. Sau đó, tài liệu này được chuyển thành chuỗi và gửi lên chủ đề MQTT đo lường bởi MQTT client.

  5. Tải mã lên Wio Terminal của bạn, và sử dụng Serial Monitor để xem mức ánh sáng được gửi đến MQTT broker.

    Connecting to WiFi..
    Connected!
    Attempting MQTT connection...connected
    Sending telemetry {"light":652}
    Sending telemetry {"light":612}
    Sending telemetry {"light":583}
    

💁 Bạn có thể tìm thấy đoạn mã này trong thư mục code-telemetry/wio-terminal.

😀 Bạn đã gửi dữ liệu đo lường từ thiết bị của mình thành công.


Tuyên bố miễn trừ trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn thông tin chính thức. Đối với các thông tin quan trọng, nên sử dụng dịch vụ dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.