13 KiB
วัดอุณหภูมิ - Wio Terminal
ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดอุณหภูมิให้กับ Wio Terminal และอ่านค่าของอุณหภูมิจากเซ็นเซอร์
ฮาร์ดแวร์
Wio Terminal ต้องการเซ็นเซอร์วัดอุณหภูมิ
เซ็นเซอร์ที่คุณจะใช้คือ DHT11 humidity and temperature sensor ซึ่งรวมเซ็นเซอร์ 2 ชนิดไว้ในแพ็คเกจเดียวกัน เซ็นเซอร์นี้ค่อนข้างเป็นที่นิยม โดยมีเซ็นเซอร์ที่วางขายทั่วไปที่รวมการวัดอุณหภูมิ ความชื้น และบางครั้งความดันบรรยากาศด้วย ส่วนของเซ็นเซอร์วัดอุณหภูมิเป็นเทอร์มิสเตอร์แบบ Negative Temperature Coefficient (NTC) ซึ่งความต้านทานจะลดลงเมื่ออุณหภูมิเพิ่มขึ้น
นี่คือเซ็นเซอร์แบบดิจิทัล ดังนั้นจึงมี ADC ในตัวเพื่อสร้างสัญญาณดิจิทัลที่มีข้อมูลอุณหภูมิและความชื้นที่ไมโครคอนโทรลเลอร์สามารถอ่านได้
เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ
เซ็นเซอร์วัดอุณหภูมิ Grove สามารถเชื่อมต่อกับพอร์ตดิจิทัลของ Wio Terminal ได้
งาน - เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ
เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ
-
เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบบนเซ็นเซอร์วัดความชื้นและอุณหภูมิ สายจะเสียบได้เพียงด้านเดียว
-
เมื่อ Wio Terminal ไม่ได้เชื่อมต่อกับคอมพิวเตอร์หรือแหล่งจ่ายไฟอื่น ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบ Grove ด้านขวาบน Wio Terminal เมื่อมองที่หน้าจอ นี่คือช่องเสียบที่อยู่ไกลจากปุ่มเปิดปิดมากที่สุด
เขียนโปรแกรมสำหรับเซ็นเซอร์วัดอุณหภูมิ
ตอนนี้ Wio Terminal สามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิที่เชื่อมต่อได้แล้ว
งาน - เขียนโปรแกรมสำหรับเซ็นเซอร์วัดอุณหภูมิ
เขียนโปรแกรมให้กับอุปกรณ์
-
สร้างโปรเจกต์ Wio Terminal ใหม่โดยใช้ PlatformIO ตั้งชื่อโปรเจกต์นี้ว่า
temperature-sensor
เพิ่มโค้ดในฟังก์ชันsetup
เพื่อกำหนดค่าพอร์ตอนุกรม⚠️ คุณสามารถดู คำแนะนำในการสร้างโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 1 ได้หากจำเป็น
-
เพิ่มไลบรารีที่จำเป็นสำหรับ Seeed Grove Humidity and Temperature sensor ลงในไฟล์
platformio.ini
ของโปรเจกต์:lib_deps = seeed-studio/Grove Temperature And Humidity Sensor @ 1.0.1
⚠️ คุณสามารถดู คำแนะนำในการเพิ่มไลบรารีในโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 4 ได้หากจำเป็น
-
เพิ่มคำสั่ง
#include
ต่อไปนี้ที่ด้านบนของไฟล์ ใต้คำสั่ง#include <Arduino.h>
ที่มีอยู่แล้ว:#include <DHT.h> #include <SPI.h>
คำสั่งนี้นำเข้าไฟล์ที่จำเป็นสำหรับการทำงานกับเซ็นเซอร์ ไฟล์เฮดเดอร์
DHT.h
มีโค้ดสำหรับเซ็นเซอร์เอง และการเพิ่มไฟล์เฮดเดอร์SPI.h
ช่วยให้โค้ดที่จำเป็นสำหรับการสื่อสารกับเซ็นเซอร์ถูกรวมเข้ามาเมื่อแอปถูกคอมไพล์ -
ก่อนฟังก์ชัน
setup
ให้ประกาศเซ็นเซอร์ DHT:DHT dht(D0, DHT11);
คำสั่งนี้ประกาศอินสแตนซ์ของคลาส
DHT
ที่จัดการเซ็นเซอร์ Digital Humidity และ Temperature เซ็นเซอร์นี้เชื่อมต่อกับพอร์ตD0
ซึ่งเป็นช่องเสียบ Grove ด้านขวาบน Wio Terminal พารามิเตอร์ที่สองบอกโค้ดว่าเซ็นเซอร์ที่ใช้งานคือเซ็นเซอร์ DHT11 - ไลบรารีที่คุณใช้งานรองรับเซ็นเซอร์รุ่นอื่นด้วย -
ในฟังก์ชัน
setup
เพิ่มโค้ดเพื่อกำหนดค่าการเชื่อมต่อแบบอนุกรม:void setup() { Serial.begin(9600); while (!Serial) ; // Wait for Serial to be ready delay(1000); }
-
ที่ท้ายฟังก์ชัน
setup
หลังคำสั่งdelay
สุดท้าย ให้เพิ่มคำสั่งเริ่มต้นเซ็นเซอร์ DHT:dht.begin();
-
ในฟังก์ชัน
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
-
สร้างและอัปโหลดโค้ดไปยัง Wio Terminal
⚠️ คุณสามารถดู คำแนะนำในการสร้างโปรเจกต์ PlatformIO ในโปรเจกต์ 1 บทเรียน 1 ได้หากจำเป็น
-
เมื่ออัปโหลดเสร็จแล้ว คุณสามารถตรวจสอบอุณหภูมิได้โดยใช้ 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 แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาที่เป็นต้นฉบับควรถือว่าเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้