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/ms/2-farm/lessons/1-predict-plant-growth/wio-terminal-temp-publish.md

4.2 KiB

Terbitkan suhu - Wio Terminal

Dalam bahagian pelajaran ini, anda akan menerbitkan nilai suhu yang dikesan oleh Wio Terminal melalui MQTT supaya ia boleh digunakan kemudian untuk mengira GDD.

Terbitkan suhu

Setelah suhu dibaca, ia boleh diterbitkan melalui MQTT kepada kod 'server' yang akan membaca nilai tersebut dan menyimpannya untuk digunakan dalam pengiraan GDD. Mikrokontroler tidak membaca masa dari Internet dan menjejaki masa dengan jam masa nyata secara automatik, peranti perlu diprogramkan untuk melakukan ini, dengan andaian ia mempunyai perkakasan yang diperlukan.

Untuk mempermudahkan pelajaran ini, masa tidak akan dihantar bersama data sensor, sebaliknya ia boleh ditambah oleh kod server kemudian apabila mesej diterima.

Tugas

Programkan peranti untuk menerbitkan data suhu.

  1. Buka projek temperature-sensor Wio Terminal

  2. Ulang langkah yang anda lakukan dalam pelajaran 4 untuk menyambung ke MQTT dan menghantar telemetri. Anda akan menggunakan broker Mosquitto awam yang sama.

    Langkah-langkahnya adalah:

    • Tambahkan perpustakaan Seeed WiFi dan MQTT ke fail .ini
    • Tambahkan fail konfigurasi dan kod untuk menyambung ke WiFi
    • Tambahkan kod untuk menyambung ke broker MQTT
    • Tambahkan kod untuk menerbitkan telemetri

    ⚠️ Rujuk arahan untuk menyambung ke MQTT dan arahan untuk menghantar telemetri dari pelajaran 4 jika diperlukan.

  3. Pastikan CLIENT_NAME dalam fail header config.h mencerminkan projek ini:

    const string CLIENT_NAME = ID + "temperature_sensor_client";
    
  4. Untuk telemetri, bukannya menghantar nilai cahaya, hantar nilai suhu yang dibaca dari sensor DHT dalam satu sifat pada dokumen JSON yang dipanggil temperature dengan mengubah fungsi loop dalam main.cpp:

    float temp_hum_val[2] = {0};
    dht.readTempAndHumidity(temp_hum_val);
    
    DynamicJsonDocument doc(1024);
    doc["temperature"] = temp_hum_val[1];
    
  5. Nilai suhu tidak perlu dibaca terlalu kerap - ia tidak akan berubah banyak dalam masa yang singkat, jadi tetapkan delay dalam fungsi loop kepada 10 minit:

    delay(10 * 60 * 1000);
    

    💁 Fungsi delay mengambil masa dalam milisaat, jadi untuk mempermudah pembacaan, nilai tersebut dihantar sebagai hasil pengiraan. 1,000ms dalam satu saat, 60s dalam satu minit, jadi 10 x (60s dalam satu minit) x (1000ms dalam satu saat) memberikan kelewatan 10 minit.

  6. Muat naik ini ke Wio Terminal anda, dan gunakan monitor serial untuk melihat suhu yang dihantar ke broker MQTT.

    --- Available filters and text transformations: colorize, debug, default, direct, hexlify, log2file, nocontrol, printable, send_on_enter, time
    --- More details at http://bit.ly/pio-monitor-filters
    --- Miniterm on /dev/cu.usbmodem1201  9600,8,N,1 ---
    --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
    Connecting to WiFi..
    Connected!
    Attempting MQTT connection...connected
    Sending telemetry {"temperature":25}
    Sending telemetry {"temperature":25}
    

💁 Anda boleh menemui kod ini dalam folder code-publish-temperature/wio-terminal.

😀 Anda telah berjaya menerbitkan suhu sebagai telemetri dari peranti anda.


Penafian:
Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI Co-op Translator. Walaupun kami berusaha untuk memastikan ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang berwibawa. Untuk maklumat penting, terjemahan manusia profesional adalah disyorkan. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini.