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/pi-temp.md

116 lines
10 KiB

# วัดอุณหภูมิ - 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/th/grove-dht11.07f8eafceee17004.webp)
1. เสียบปลายด้านหนึ่งของสาย Grove เข้ากับช่องเสียบของเซ็นเซอร์วัดความชื้นและอุณหภูมิ สายจะเสียบได้เพียงด้านเดียวเท่านั้น
1. เมื่อ Raspberry Pi ปิดอยู่ ให้เชื่อมต่อปลายอีกด้านของสาย Grove เข้ากับช่องเสียบดิจิทัลที่มีเครื่องหมาย **D5** บน Grove Base hat ที่ติดตั้งอยู่บน Pi ช่องเสียบนี้เป็นช่องที่สองจากด้านซ้ายในแถวของช่องเสียบที่อยู่ติดกับ GPIO pins
![เซ็นเซอร์วัดอุณหภูมิ Grove เชื่อมต่อกับช่อง A0](../../../../../translated_images/th/pi-temperature-sensor.3ff82fff672c8e56.webp)
## เขียนโปรแกรมเซ็นเซอร์วัดอุณหภูมิ
ตอนนี้คุณสามารถเขียนโปรแกรมเพื่อใช้งานเซ็นเซอร์วัดอุณหภูมิที่เชื่อมต่ออยู่ได้แล้ว
### งานที่ต้องทำ
เขียนโปรแกรมให้กับอุปกรณ์
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) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลโดยระบบอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้