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

7.5 KiB

เผยแพร่อุณหภูมิ - Wio Terminal

ในส่วนนี้ของบทเรียน คุณจะเผยแพร่อุณหภูมิที่ตรวจจับได้โดย Wio Terminal ผ่าน MQTT เพื่อให้สามารถนำไปใช้คำนวณ GDD ในภายหลังได้

เผยแพร่อุณหภูมิ

เมื่ออ่านค่าอุณหภูมิได้แล้ว คุณสามารถเผยแพร่ข้อมูลผ่าน MQTT ไปยังโค้ด 'เซิร์ฟเวอร์' ที่จะอ่านค่าและจัดเก็บข้อมูลเพื่อใช้ในการคำนวณ GDD ได้ ไมโครคอนโทรลเลอร์ไม่ได้อ่านเวลาจากอินเทอร์เน็ตหรือมีนาฬิกาเรียลไทม์ในตัวโดยอัตโนมัติ อุปกรณ์จำเป็นต้องถูกโปรแกรมให้ทำสิ่งนี้ หากมีฮาร์ดแวร์ที่จำเป็น

เพื่อให้ง่ายขึ้นสำหรับบทเรียนนี้ จะไม่มีการส่งเวลาพร้อมกับข้อมูลเซ็นเซอร์ แต่สามารถเพิ่มเวลาได้ในโค้ดเซิร์ฟเวอร์เมื่อได้รับข้อความ

งานที่ต้องทำ

โปรแกรมอุปกรณ์เพื่อเผยแพร่ข้อมูลอุณหภูมิ

  1. เปิดโปรเจกต์ temperature-sensor ของ Wio Terminal

  2. ทำซ้ำขั้นตอนที่คุณทำในบทเรียนที่ 4 เพื่อเชื่อมต่อกับ MQTT และส่งข้อมูลเทเลเมทรี โดยคุณจะใช้ Mosquitto broker สาธารณะตัวเดิม

    ขั้นตอนสำหรับสิ่งนี้คือ:

    • เพิ่มไลบรารี Seeed WiFi และ MQTT ลงในไฟล์ .ini
    • เพิ่มไฟล์การตั้งค่าและโค้ดเพื่อเชื่อมต่อกับ WiFi
    • เพิ่มโค้ดเพื่อเชื่อมต่อกับ MQTT broker
    • เพิ่มโค้ดเพื่อเผยแพร่ข้อมูลเทเลเมทรี

    ⚠️ ดู คำแนะนำในการเชื่อมต่อกับ MQTT และ คำแนะนำในการส่งข้อมูลเทเลเมทรี จากบทเรียนที่ 4 หากจำเป็น

  3. ตรวจสอบให้แน่ใจว่า CLIENT_NAME ในไฟล์เฮดเดอร์ config.h สะท้อนถึงโปรเจกต์นี้:

    const string CLIENT_NAME = ID + "temperature_sensor_client";
    
  4. สำหรับข้อมูลเทเลเมทรี แทนที่จะส่งค่าความสว่าง ให้ส่งค่าอุณหภูมิที่อ่านได้จากเซ็นเซอร์ DHT ในคุณสมบัติของเอกสาร JSON ที่เรียกว่า temperature โดยเปลี่ยนฟังก์ชัน loop ใน main.cpp:

    float temp_hum_val[2] = {0};
    dht.readTempAndHumidity(temp_hum_val);
    
    DynamicJsonDocument doc(1024);
    doc["temperature"] = temp_hum_val[1];
    
  5. ค่าอุณหภูมิไม่จำเป็นต้องอ่านบ่อยนัก เพราะมันจะไม่เปลี่ยนแปลงมากในช่วงเวลาสั้น ๆ ดังนั้นตั้งค่า delay ในฟังก์ชัน loop เป็น 10 นาที:

    delay(10 * 60 * 1000);
    

    💁 ฟังก์ชัน delay ใช้เวลาในหน่วยมิลลิวินาที ดังนั้นเพื่อให้อ่านค่าได้ง่ายขึ้น ค่าจะถูกส่งผ่านเป็นผลลัพธ์ของการคำนวณ 1,000ms ใน 1 วินาที, 60 วินาทีใน 1 นาที ดังนั้น 10 x (60 วินาทีใน 1 นาที) x (1000ms ใน 1 วินาที) จะให้ค่าหน่วงเวลา 10 นาที

  6. อัปโหลดโปรแกรมนี้ไปยัง Wio Terminal ของคุณ และใช้ serial monitor เพื่อตรวจสอบว่าอุณหภูมิถูกส่งไปยัง MQTT broker หรือไม่

    --- 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}
    

💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-publish-temperature/wio-terminal

😀 คุณได้เผยแพร่อุณหภูมิเป็นข้อมูลเทเลเมทรีจากอุปกรณ์ของคุณสำเร็จแล้ว


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้