# วัดอุณหภูมิ - Raspberry Pi ในส่วนนี้ของบทเรียน คุณจะเพิ่มเซ็นเซอร์วัดอุณหภูมิให้กับ Raspberry Pi ของคุณ ## ฮาร์ดแวร์ เซ็นเซอร์ที่คุณจะใช้คือ [DHT11 humidity and temperature sensor](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-DHT11.html) ซึ่งรวมเซ็นเซอร์ 2 ตัวไว้ในแพ็กเกจเดียวกัน เซ็นเซอร์นี้ค่อนข้างเป็นที่นิยม โดยมีเซ็นเซอร์ที่วางจำหน่ายในเชิงพาณิชย์หลายตัวที่รวมการวัดอุณหภูมิ ความชื้น และบางครั้งความดันบรรยากาศ เซ็นเซอร์วัดอุณหภูมิในตัวนี้เป็นเทอร์มิสเตอร์ชนิด NTC (Negative Temperature Coefficient) ซึ่งเป็นเทอร์มิสเตอร์ที่ค่าความต้านทานลดลงเมื่ออุณหภูมิเพิ่มขึ้น เซ็นเซอร์นี้เป็นเซ็นเซอร์แบบดิจิทัล โดยมี ADC ในตัวเพื่อสร้างสัญญาณดิจิทัลที่มีข้อมูลอุณหภูมิและความชื้นที่ไมโครคอนโทรลเลอร์สามารถอ่านได้ ### เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ เซ็นเซอร์วัดอุณหภูมิ Grove สามารถเชื่อมต่อกับ Raspberry Pi ได้ #### งานที่ต้องทำ เชื่อมต่อเซ็นเซอร์วัดอุณหภูมิ ![เซ็นเซอร์วัดอุณหภูมิ Grove](../../../../../translated_images/grove-dht11.07f8eafceee170043efbb53e1d15722bd4e00fbaa9ff74290b57e9f66eb82c17.th.png) 1. เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบของเซ็นเซอร์วัดความชื้นและอุณหภูมิ สายจะเสียบได้เพียงด้านเดียวเท่านั้น 1. เมื่อ Raspberry Pi ปิดอยู่ ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบดิจิทัลที่มีเครื่องหมาย **D5** บน Grove Base hat ที่ติดตั้งอยู่บน Pi ช่องเสียบนี้เป็นช่องที่สองจากด้านซ้ายในแถวของช่องเสียบที่อยู่ติดกับ GPIO pins ![เซ็นเซอร์วัดอุณหภูมิ Grove เชื่อมต่อกับช่อง A0](../../../../../translated_images/pi-temperature-sensor.3ff82fff672c8e565ef25a39d26d111de006b825a7e0867227ef4e7fbff8553c.th.png) ## เขียนโปรแกรมเซ็นเซอร์วัดอุณหภูมิ ตอนนี้คุณสามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิที่เชื่อมต่ออยู่ได้แล้ว ### งานที่ต้องทำ เขียนโปรแกรมให้กับอุปกรณ์ 1. เปิด Raspberry Pi และรอให้บูตเสร็จ 1. เปิด VS Code ไม่ว่าจะเปิดโดยตรงบน Pi หรือเชื่อมต่อผ่าน Remote SSH extension > ⚠️ คุณสามารถดู [คำแนะนำในการตั้งค่าและเปิด VS Code ในบทเรียนที่ 1 หากจำเป็น](../../../1-getting-started/lessons/1-introduction-to-iot/pi.md) 1. จาก Terminal สร้างโฟลเดอร์ใหม่ในไดเรกทอรีบ้านของผู้ใช้ `pi` โดยตั้งชื่อว่า `temperature-sensor` และสร้างไฟล์ในโฟลเดอร์นี้ชื่อว่า `app.py`: ```sh mkdir temperature-sensor cd temperature-sensor touch app.py ``` 1. เปิดโฟลเดอร์นี้ใน VS Code 1. เพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิและความชื้น จำเป็นต้องติดตั้งแพ็กเกจ Pip เพิ่มเติม จาก Terminal ใน VS Code ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจ Pip บน Pi: ```sh pip3 install seeed-python-dht ``` 1. เพิ่มโค้ดต่อไปนี้ในไฟล์ `app.py` เพื่อ import ไลบรารีที่จำเป็น: ```python import time from seeed_dht import DHT ``` คำสั่ง `from seeed_dht import DHT` จะ import คลาส `DHT` เพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิ Grove จากโมดูล `seeed_dht` 1. เพิ่มโค้ดต่อไปนี้หลังจากโค้ดด้านบนเพื่อสร้าง instance ของคลาสที่จัดการเซ็นเซอร์วัดอุณหภูมิ: ```python sensor = DHT("11", 5) ``` โค้ดนี้ประกาศ instance ของคลาส `DHT` ที่จัดการเซ็นเซอร์วัดความชื้นและอุณหภูมิแบบดิจิทัล พารามิเตอร์แรกบอกโค้ดว่าเซ็นเซอร์ที่ใช้งานคือเซ็นเซอร์ *DHT11* ซึ่งไลบรารีที่คุณใช้งานรองรับเซ็นเซอร์รุ่นอื่น ๆ ด้วย พารามิเตอร์ที่สองบอกโค้ดว่าเซ็นเซอร์เชื่อมต่ออยู่กับช่องดิจิทัล `D5` บน Grove base hat > ✅ จำไว้ว่า ช่องเสียบทั้งหมดมีหมายเลขพินเฉพาะ พิน 0, 2, 4, และ 6 เป็นพินอนาล็อก ส่วนพิน 5, 16, 18, 22, 24, และ 26 เป็นพินดิจิทัล 1. เพิ่มลูปแบบไม่สิ้นสุดหลังจากโค้ดด้านบนเพื่อดึงค่าจากเซ็นเซอร์วัดอุณหภูมิและแสดงผลในคอนโซล: ```python while True: _, temp = sensor.read() print(f'Temperature {temp}°C') ``` การเรียก `sensor.read()` จะคืนค่าทูเพิลที่มีข้อมูลความชื้นและอุณหภูมิ คุณต้องการเพียงค่าของอุณหภูมิ ดังนั้นค่าความชื้นจะถูกละไว้ ค่าของอุณหภูมิจะถูกแสดงผลในคอนโซล 1. เพิ่มคำสั่ง sleep สั้น ๆ เป็นเวลา 10 วินาทีที่ท้าย `loop` เนื่องจากไม่จำเป็นต้องตรวจสอบระดับอุณหภูมิอย่างต่อเนื่อง การ sleep จะช่วยลดการใช้พลังงานของอุปกรณ์ ```python time.sleep(10) ``` 1. จาก Terminal ใน VS Code รันคำสั่งต่อไปนี้เพื่อรันแอป Python ของคุณ: ```sh python3 app.py ``` คุณควรเห็นค่าของอุณหภูมิแสดงผลในคอนโซล ใช้สิ่งที่สามารถทำให้เซ็นเซอร์ร้อนขึ้น เช่น กดนิ้วโป้งลงบนเซ็นเซอร์ หรือใช้พัดลมเพื่อดูค่าที่เปลี่ยนแปลง: ```output 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](../../../../../2-farm/lessons/1-predict-plant-growth/code-temperature/pi) 😀 โปรแกรมเซ็นเซอร์วัดอุณหภูมิของคุณสำเร็จแล้ว! --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยระบบอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้