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.md

13 KiB

วัดอุณหภูมิ - Wio Terminal

ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดอุณหภูมิให้กับ Wio Terminal และอ่านค่าของอุณหภูมิจากเซ็นเซอร์

ฮาร์ดแวร์

Wio Terminal ต้องการเซ็นเซอร์วัดอุณหภูมิ

เซ็นเซอร์ที่คุณจะใช้คือ DHT11 humidity and temperature sensor ซึ่งรวมเซ็นเซอร์ 2 ชนิดไว้ในแพ็คเกจเดียวกัน เซ็นเซอร์นี้ค่อนข้างเป็นที่นิยม โดยมีเซ็นเซอร์ที่วางขายทั่วไปที่รวมการวัดอุณหภูมิ ความชื้น และบางครั้งความดันบรรยากาศด้วย ส่วนของเซ็นเซอร์วัดอุณหภูมิเป็นเทอร์มิสเตอร์แบบ Negative Temperature Coefficient (NTC) ซึ่งความต้านทานจะลดลงเมื่ออุณหภูมิเพิ่มขึ้น

นี่คือเซ็นเซอร์แบบดิจิทัล ดังนั้นจึงมี ADC ในตัวเพื่อสร้างสัญญาณดิจิทัลที่มีข้อมูลอุณหภูมิและความชื้นที่ไมโครคอนโทรลเลอร์สามารถอ่านได้

เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ

เซ็นเซอร์วัดอุณหภูมิ Grove สามารถเชื่อมต่อกับพอร์ตดิจิทัลของ Wio Terminal ได้

งาน - เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ

เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ

เซ็นเซอร์วัดอุณหภูมิ Grove

  1. เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบบนเซ็นเซอร์วัดความชื้นและอุณหภูมิ สายจะเสียบได้เพียงด้านเดียว

  2. เมื่อ Wio Terminal ไม่ได้เชื่อมต่อกับคอมพิวเตอร์หรือแหล่งจ่ายไฟอื่น ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบ Grove ด้านขวาบน Wio Terminal เมื่อมองที่หน้าจอ นี่คือช่องเสียบที่อยู่ไกลจากปุ่มเปิดปิดมากที่สุด

เซ็นเซอร์วัดอุณหภูมิ Grove เชื่อมต่อกับช่องเสียบด้านขวา

เขียนโปรแกรมสำหรับเซ็นเซอร์วัดอุณหภูมิ

ตอนนี้ Wio Terminal สามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิที่เชื่อมต่อได้แล้ว

งาน - เขียนโปรแกรมสำหรับเซ็นเซอร์วัดอุณหภูมิ

เขียนโปรแกรมให้กับอุปกรณ์

  1. สร้างโปรเจกต์ Wio Terminal ใหม่โดยใช้ PlatformIO ตั้งชื่อโปรเจกต์นี้ว่า temperature-sensor เพิ่มโค้ดในฟังก์ชัน setup เพื่อกำหนดค่าพอร์ตอนุกรม

    ⚠️ คุณสามารถดู คำแนะนำในการสร้างโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 1 ได้หากจำเป็น

  2. เพิ่มไลบรารีที่จำเป็นสำหรับ Seeed Grove Humidity and Temperature sensor ลงในไฟล์ platformio.ini ของโปรเจกต์:

    lib_deps =
        seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
    

    ⚠️ คุณสามารถดู คำแนะนำในการเพิ่มไลบรารีในโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 4 ได้หากจำเป็น

  3. เพิ่มคำสั่ง #include ต่อไปนี้ที่ด้านบนของไฟล์ ใต้คำสั่ง #include <Arduino.h> ที่มีอยู่แล้ว:

    #include <DHT.h>
    #include <SPI.h>
    

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

  4. ก่อนฟังก์ชัน setup ให้ประกาศเซ็นเซอร์ DHT:

    DHT dht(D0, DHT11);
    

    คำสั่งนี้ประกาศอินสแตนซ์ของคลาส DHT ที่จัดการเซ็นเซอร์ Digital Humidity และ Temperature เซ็นเซอร์นี้เชื่อมต่อกับพอร์ต D0 ซึ่งเป็นช่องเสียบ Grove ด้านขวาบน Wio Terminal พารามิเตอร์ที่สองบอกโค้ดว่าเซ็นเซอร์ที่ใช้งานคือเซ็นเซอร์ DHT11 - ไลบรารีที่คุณใช้งานรองรับเซ็นเซอร์รุ่นอื่นด้วย

  5. ในฟังก์ชัน setup เพิ่มโค้ดเพื่อกำหนดค่าการเชื่อมต่อแบบอนุกรม:

    void setup()
    {
        Serial.begin(9600);
    
        while (!Serial)
            ; // Wait for Serial to be ready
    
        delay(1000);
    }
    
  6. ที่ท้ายฟังก์ชัน setup หลังคำสั่ง delay สุดท้าย ให้เพิ่มคำสั่งเริ่มต้นเซ็นเซอร์ DHT:

    dht.begin();
    
  7. ในฟังก์ชัน loop เพิ่มโค้ดเพื่อเรียกเซ็นเซอร์และพิมพ์ค่าอุณหภูมิไปยังพอร์ตอนุกรม:

    void loop()
    {
        float temp_hum_val[2] = {0};
        dht.readTempAndHumidity(temp_hum_val);
        Serial.print("Temperature: ");
        Serial.print(temp_hum_val[1]);
        Serial.println ("°C");
    
        delay(10000);
    }
    

    โค้ดนี้ประกาศอาร์เรย์ว่างที่มี 2 ค่าแบบ float และส่งอาร์เรย์นี้ไปยังคำสั่ง readTempAndHumidity บนอินสแตนซ์ DHT คำสั่งนี้จะเติมค่าในอาร์เรย์ด้วย 2 ค่า - ความชื้นจะอยู่ในตำแหน่งที่ 0 ของอาร์เรย์ (จำไว้ว่าที่อยู่ใน C++ เริ่มต้นที่ 0 ดังนั้นตำแหน่งที่ 0 คือ 'ตำแหน่งแรก') และอุณหภูมิจะอยู่ในตำแหน่งที่ 1

    ค่าอุณหภูมิจะถูกอ่านจากตำแหน่งที่ 1 ของอาร์เรย์ และพิมพ์ไปยังพอร์ตอนุกรม

    🇺🇸 ค่าอุณหภูมิที่อ่านได้จะอยู่ในหน่วยเซลเซียส สำหรับชาวอเมริกัน หากต้องการแปลงเป็นฟาเรนไฮต์ ให้หารค่าที่อ่านได้ในหน่วยเซลเซียสด้วย 5 จากนั้นคูณด้วย 9 แล้วบวก 32 ตัวอย่างเช่น ค่าอุณหภูมิ 20°C จะกลายเป็น ((20/5)*9) + 32 = 68°F

  8. สร้างและอัปโหลดโค้ดไปยัง Wio Terminal

    ⚠️ คุณสามารถดู คำแนะนำในการสร้างโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 1 ได้หากจำเป็น

  9. เมื่ออัปโหลดเสร็จแล้ว คุณสามารถตรวจสอบอุณหภูมิได้โดยใช้ serial monitor:

    > Executing task: platformio device monitor <
    
    --- 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 ---
    Temperature: 25.00°C
    Temperature: 25.00°C
    Temperature: 25.00°C
    Temperature: 24.00°C
    

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

😀 โปรแกรมเซ็นเซอร์วัดอุณหภูมิของคุณสำเร็จแล้ว!


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