11 KiB
วัดอุณหภูมิ - Raspberry Pi
ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดอุณหภูมิให้กับ Raspberry Pi ของคุณ
ฮาร์ดแวร์
เซ็นเซอร์ที่คุณจะใช้คือ DHT11 humidity and temperature sensor ซึ่งรวมเซ็นเซอร์ 2 ตัวไว้ในแพ็กเกจเดียวกัน เซ็นเซอร์นี้ค่อนข้างเป็นที่นิยม โดยมีเซ็นเซอร์ที่วางจำหน่ายในเชิงพาณิชย์หลายตัวที่รวมการวัดอุณหภูมิ ความชื้น และบางครั้งความดันบรรยากาศ เซ็นเซอร์วัดอุณหภูมิในตัวนี้เป็นเทอร์มิสเตอร์ชนิด NTC (Negative Temperature Coefficient) ซึ่งเป็นเทอร์มิสเตอร์ที่ค่าความต้านทานลดลงเมื่ออุณหภูมิเพิ่มขึ้น
เซ็นเซอร์นี้เป็นเซ็นเซอร์แบบดิจิทัล โดยมี ADC ในตัวเพื่อสร้างสัญญาณดิจิทัลที่มีข้อมูลอุณหภูมิและความชื้นที่ไมโครคอนโทรลเลอร์สามารถอ่านได้
เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ
เซ็นเซอร์วัดอุณหภูมิ Grove สามารถเชื่อมต่อกับ Raspberry Pi ได้
งานที่ต้องทำ
เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ
-
เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบของเซ็นเซอร์วัดความชื้นและอุณหภูมิ สายจะเสียบได้เพียงด้านเดียวเท่านั้น
-
เมื่อ Raspberry Pi ปิดอยู่ ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบดิจิทัลที่มีเครื่องหมาย D5 บน Grove Base hat ที่ติดตั้งอยู่บน Pi ช่องเสียบนี้เป็นช่องที่สองจากด้านซ้ายในแถวของช่องเสียบที่อยู่ติดกับ GPIO pins
เขียนโปรแกรมเซ็นเซอร์วัดอุณหภูมิ
ตอนนี้คุณสามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิที่เชื่อมต่ออยู่ได้แล้ว
งานที่ต้องทำ
เขียนโปรแกรมให้กับอุปกรณ์
-
เปิด Raspberry Pi และรอให้บูตเสร็จ
-
เปิด VS Code ไม่ว่าจะเปิดโดยตรงบน Pi หรือเชื่อมต่อผ่าน Remote SSH extension
⚠️ คุณสามารถดู คำแนะนำในการตั้งค่าและเปิด VS Code ในบทเรียนที่ 1 หากจำเป็น
-
จาก Terminal สร้างโฟลเดอร์ใหม่ในไดเรกทอรีบ้านของผู้ใช้
pi
โดยตั้งชื่อว่าtemperature-sensor
และสร้างไฟล์ในโฟลเดอร์นี้ชื่อว่าapp.py
:mkdir temperature-sensor cd temperature-sensor touch app.py
-
เปิดโฟลเดอร์นี้ใน VS Code
-
เพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิและความชื้น จำเป็นต้องติดตั้งแพ็กเกจ Pip เพิ่มเติม จาก Terminal ใน VS Code ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ Pip บน Pi:
pip3 install seeed-python-dht
-
เพิ่มโค้ดต่อไปนี้ในไฟล์
app.py
เพื่อ import ไลบรารีที่จำเป็น:import time from seeed_dht import DHT
คำสั่ง
from seeed_dht import DHT
จะ import คลาสDHT
เพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิ Grove จากโมดูลseeed_dht
-
เพิ่มโค้ดต่อไปนี้หลังจากโค้ดด้านบนเพื่อสร้าง instance ของคลาสที่จัดการเซ็นเซอร์วัดอุณหภูมิ:
sensor = DHT("11", 5)
โค้ดนี้ประกาศ instance ของคลาส
DHT
ที่จัดการเซ็นเซอร์วัดความชื้นและอุณหภูมิแบบดิจิทัล พารามิเตอร์แรกบอกโค้ดว่าเซ็นเซอร์ที่ใช้งานคือเซ็นเซอร์ DHT11 ซึ่งไลบรารีที่คุณใช้งานรองรับเซ็นเซอร์รุ่นอื่น ๆ ด้วย พารามิเตอร์ที่สองบอกโค้ดว่าเซ็นเซอร์เชื่อมต่ออยู่กับช่องดิจิทัลD5
บน Grove base hat✅ จำไว้ว่า ช่องเสียบทั้งหมดมีหมายเลขพินเฉพาะ พิน 0, 2, 4, และ 6 เป็นพินอนาล็อก ส่วนพิน 5, 16, 18, 22, 24, และ 26 เป็นพินดิจิทัล
-
เพิ่มลูปแบบไม่สิ้นสุดหลังจากโค้ดด้านบนเพื่อดึงค่าจากเซ็นเซอร์วัดอุณหภูมิและแสดงผลในคอนโซล:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
การเรียก
sensor.read()
จะคืนค่าทูเพิลที่มีข้อมูลความชื้นและอุณหภูมิ คุณต้องการเพียงค่าของอุณหภูมิ ดังนั้นค่าความชื้นจะถูกละไว้ ค่าของอุณหภูมิจะถูกแสดงผลในคอนโซล -
เพิ่มคำสั่ง sleep สั้น ๆ เป็นเวลา 10 วินาทีที่ท้าย
loop
เนื่องจากไม่จำเป็นต้องตรวจสอบระดับอุณหภูมิอย่างต่อเนื่อง การ sleep จะช่วยลดการใช้พลังงานของอุปกรณ์time.sleep(10)
-
จาก Terminal ใน VS Code รันคำสั่งต่อไปนี้เพื่อรันแอป Python ของคุณ:
python3 app.py
คุณควรเห็นค่าของอุณหภูมิแสดงผลในคอนโซล ใช้สิ่งที่สามารถทำให้เซ็นเซอร์ร้อนขึ้น เช่น กดนิ้วโป้งลงบนเซ็นเซอร์ หรือใช้พัดลมเพื่อดูค่าที่เปลี่ยนแปลง:
pi@raspberrypi:~/temperature-sensor $ python3 app.py Temperature 26°C Temperature 26°C Temperature 28°C Temperature 30°C Temperature 32°C
💁 คุณสามารถค้นหาโค้ดนี้ได้ในโฟลเดอร์ code-temperature/pi
😀 โปรแกรมเซ็นเซอร์วัดอุณหภูมิของคุณสำเร็จแล้ว!
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยระบบอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้