🌡️
เรียนรู้และใช้งานเซนเซอร์ตรวจวัดอุณหภูมิและความชื้นในอากาศ

รูปที่ 9.1 เซนเซอร์ SHT3x สำหรับวัดอุณหภูมิและความชื้นในอากาศ
🌡️9.1 บทนำ
ในโลกของอาคารอัจฉริยะและระบบ IoT
การตรวจวัดอุณหภูมิและความชื้นในอากาศถือเป็นองค์ประกอบสำคัญของการบริหารจัดการสภาพแวดล้อมภายในอาคารอย่างมีประสิทธิภาพ
เซนเซอร์ SHT30 จากบริษัท Sensirion ประเทศสวิตเซอร์แลนด์
เป็นเซนเซอร์แบบดิจิทัลที่สามารถวัดได้ทั้ง อุณหภูมิ (°C) และ ความชื้นสัมพัทธ์ (%RH)
ด้วยความแม่นยำสูง และส่งข้อมูลผ่านบัส I²C ได้อย่างรวดเร็วและเสถียร
SHT30 เหมาะสำหรับการใช้งานในระบบอัจฉริยะ เช่น:
-
ระบบปรับอากาศอัตโนมัติในบ้าน อาคารสำนักงาน และโรงเรียน
-
ระบบควบคุมอุณหภูมิในห้องเซิร์ฟเวอร์หรือคลังสินค้า
-
การติดตามสภาพอากาศในโรงเรือนเพาะปลูก พิพิธภัณฑ์ หรือพื้นที่ควบคุมพิเศษ
-
การแจ้งเตือนเมื่ออุณหภูมิหรือความชื้นเกินค่าที่กำหนด
เพื่อป้องกันความเสียหายต่ออุปกรณ์หรือสิ่งแวดล้อม
ตัวเซนเซอร์ SHT30 มีขนาดเล็ก ใช้พลังงานต่ำ และไม่ต้องปรับเทียบค่าด้วยตนเอง
เพราะมาพร้อมระบบ Factory Calibrated
ซึ่งช่วยให้สามารถนำไปใช้งานได้สะดวกแม้ในระบบที่ต้องการความแม่นยำสูง เช่น
งานวิจัยและงานอุตสาหกรรม
นอกจากนี้ ชุดฝึก Smart Building IoT ยังออกแบบให้สามารถใช้งาน SHT30 ร่วมกับ
OLED Display, Buzzer, รีเลย์ และปุ่มปรับตั้งค่า
เพื่อสร้างระบบตรวจวัดและแจ้งเตือนที่สมบูรณ์ในรูปแบบที่เข้าใจง่ายและนำไปใช้ได้จริง
ในบทนี้ ผู้เรียนจะได้เรียนรู้วิธีเชื่อมต่อ SHT30 กับบอร์ด Smart Building IoT ผ่าน I2C
วิธีเขียนโค้ดเพื่ออ่านค่าอุณหภูมิ/ความชื้น
และการประยุกต์ใช้ข้อมูลดังกล่าวเพื่อควบคุมอุปกรณ์หรือแสดงผลผ่านหน้าจอ รวมถึงแนวทางการใช้
EEPROM เพื่อเก็บค่าการตั้งค่าอย่างถาวร

รูปที่ 9.2 โมดูล SHT30 พร้อมเคสติดตั้ง สำหรับตรวจวัดอุณหภูมิและความชื้นในอากาศ
🌡️9.2 ส่วนประกอบเซนเซอร์
เซนเซอร์ SHT30 ประกอบด้วยวงจรหลักดังนี้:
-
RH Sensor และ T Sensor:
ใช้ตรวจวัดค่าความชื้นสัมพัทธ์ (Relative Humidity) และอุณหภูมิ (Temperature)
-
ADC (Analog to Digital Converter):
แปลงค่าที่วัดได้เป็นสัญญาณดิจิทัลเพื่อให้ไมโครคอนโทรลเลอร์อ่านค่าได้
-
Calibration Memory:
เก็บค่าความแม่นยำจากโรงงาน เพื่อลดความคลาดเคลื่อนในการวัด
-
Data Processing & Linearization:
ประมวลผลและปรับค่าให้อยู่ในรูปเชิงเส้นเพื่อความถูกต้อง
-
Digital Interface (I²C):
ใช้สื่อสารกับไมโครคอนโทรลเลอร์ผ่านขา SDA และ SCL
-
Power on Reset และ nRESET:
เป็นวงจรสำหรับรีเซ็ตอุปกรณ์เมื่อเริ่มใช้งานหรือมีการรีสตาร์ทระบบ
-
Alert Logic:
ส่งสัญญาณแจ้งเตือนเมื่อค่าที่วัดได้เกินหรือต่ำกว่าขอบเขตที่กำหนด

รูปที่ 9.3 แผนผังภายในเซนเซอร์ SHT30 แสดงโครงสร้างการวัดค่าและส่งข้อมูลผ่าน
I2C
🌡️9.3 หลักการทำงานของเซนเซอร์
เซนเซอร์ SHT30 คือ Digital Humidity and Temperature Sensor จะทำงานแบบ
Self-Contained คือ มีทั้งส่วนตรวจจับ แปลงสัญญาณ และประมวลผลอยู่ภายในตัวเดียวจบ
1. การวัดความชื้น (Humidity Sensing)
-
ใช้เซนเซอร์ชนิด capacitive humidity sensor
ซึ่งมีโครงสร้างเป็นแผ่นนำไฟฟ้าสองแผ่นประกบกับวัสดุไดอิเล็กทริกที่ไวต่อความชื้น -
เมื่อความชื้นในอากาศเปลี่ยนไป ความสามารถในการเก็บประจุ (Capacitance)
ของไดอิเล็กทริกจะเปลี่ยนตาม → ถูกแปลงเป็นสัญญาณไฟฟ้า
2. การวัดอุณหภูมิ (Temperature Sensing)
-
ใช้เซนเซอร์ชนิด Band-Gap Temperature Sensor
ซึ่งสร้างแรงดันไฟฟ้าขึ้นอยู่กับอุณหภูมิ -
การเปลี่ยนแปลงของแรงดันสะท้อนถึงอุณหภูมิ ณ เวลานั้น
3. การประมวลผลภายใน (Internal Processing)
-
สัญญาณอนาล็อกจากทั้งสองเซนเซอร์จะถูกส่งไปยัง ADC (Analog to Digital
Converter) เพื่อแปลงเป็นดิจิทัล -
ข้อมูลดิจิทัลถูกส่งผ่าน Calibration Memory เพื่อปรับความแม่นยำ
(ค่าตั้งจากโรงงาน) -
มี Data Processing Unit ที่ทำหน้าที่ linearize
และปรับเทียบค่าให้อ่านค่าได้ง่าย
4. การสื่อสารข้อมูล (Digital Output)
-
ผลลัพธ์ถูกส่งออกผ่าน I²C Interface (หรือบางรุ่นรองรับ PWM/SDI)
-
ผู้ใช้สามารถอ่านค่าจากเซนเซอร์ได้ผ่านคำสั่ง I²C Read
จากไมโครคอนโทรลเลอร์
🌡️9.4 อุปกรณ์ที่ใช้ในการทดลอง
| ลำดับที่ | รายละเอียดอุปกรณ์ |
|---|---|
| 1 | เซนเซอร์ SHT30 |
| 2 | บอร์ด Smart Building IoT (Sensor Board) |
ตารางที่ 9.1 รายการอุปกรณ์ที่ใช้ในการทดลอง
🌡️9.5 การเชื่อมต่อกับบอร์ด
เชื่อมต่อเซนเซอร์ SHT30 ที่คอนเนคเตอร์ I2C บนบอร์ด Smart Building IoT (Sensor
Board) เพื่อให้ ESP32 ประมวลผล โดยขาที่ใช้ในการเชื่อมต่อจะเป็นดังนี้
-
VCC → 5V
-
GND → GND
-
SDA → GPIO21
-
SCL → GPIO22

รูปที่ 9.4 การเชื่อมต่อโมดูลเซนเซอร์ตรวจวัดค่าอุณหภูมิและความชื้น SHT30
🌡️9.6 ตัวอย่างโค้ดและการแสดงผล
Example Code 9.1: อ่านค่าและแสดงผลบน Serial + OLED
โค้ดนี้ทำหน้าที่อ่านค่าอุณหภูมิและความชื้นจากเซนเซอร์ SHT30 ผ่านบอร์ด tenergy32hub
และแสดงผลทั้งทาง Serial Monitor และจอ OLED

รูปที่ 9.5 อ่านค่าจากเซนเซอร์ SHT30 และแสดงผลผ่าน Serial Monitor และ
OLED

Example Code 9.2: เพิ่มการแจ้งเตือนผ่าน Buzzer เมื่ออุณหภูมิสูงเกินค่า
TEMP_ALERT
ปรับปรุงโค้ด โดยให้มีการแจ้งเตือนด้วยเสียง buzzer
เมื่ออุณหภูมิสูงกว่าค่าตัวแปรที่กำหนดไว้ในโค้ด โดยแสดงค่าทาง Serial และ OLED

รูปที่ 9.6 แจ้งเตือนด้วย Buzzer เมื่ออุณหภูมิเกินค่าที่กำหนด พร้อมแสดงผลผ่าน Serial
และ OLED

Example Code 9.3: เพิ่มปุ่มปรับค่า TEMP_ALERT (SW1, SW2)
ปรับปรุงโค้ดเดิม โดยโปรแกรมสามารถตั้งค่า TEMP_ALERT ได้ด้วย SW1 และ SW2
โดยทำการเพิ่มหรือลดที่ความละเอียด 0.5C ซึ่งเวลากดปุ่ม SW1 และ SW2 ให้มีเสียงดังที่
buzzer และแสดงค่าที่ Serial และ OLED

รูปที่ 9.7 โมดูลแสดงตัวอย่างการตั้งค่า TEMP_ALERT ด้วยปุ่ม SW1 และ SW2

Example Code 9.4: เพิ่มปุ่มปรับค่า TEMP_ALERT (SW1, SW2), บันทึกค่าไว้ใน
EEPROM และควบคุมรีเลย์
เห็นได้ว่า เมื่อมีการรีเซต ESP32 ค่าที่ได้ตั้งค่าไว้จะไม่ถูกจำ และต้องมาตั้งค่าใหม่ทุกครั้ง
ดังนั้นให้ปรับปรุงโค้ดเดิม โดยทำการบันทึกค่าไว้ใน EEPROM และเพิ่มเติมการทำงานคือ
ถ้าอุณหภูมิสูงว่าค่า TEMP_ALERT ให้ Relay ON แต่ถ้าต่ำกว่า ให้ Relay OFF

รูปที่ 9.8 ตัวอย่างการเขียนโปรแกรมเพื่อบันทึกค่าการตั้งอุณหภูมิไว้ใน EEPROM
และควบคุมรีเลย์ตามเงื่อนไข

ความรู้เพิ่มเติม:
EEPROM คือหน่วยความจำถาวรบน ESP32 ใช้สำหรับเก็บค่าต่าง ๆ เช่น ค่าอุณหภูมิที่ตั้งไว้
แม้ปิดเครื่องค่าจะยังอยู่เหมือนเดิม ใช้งานผ่านไลบรารี EEPROM.h พร้อมคำสั่ง read(),
write(), และ commit() เพื่อบันทึกค่าอย่างถาวร.
🌡️การประยุกต์ใช้งาน
-
ระบบควบคุมอุณหภูมิ–ความชื้นในสมาร์ตโฮม
-
ควบคุมพัดลมหรือเครื่องทำความชื้น
-
ติดตั้งในห้องเซิร์ฟเวอร์เพื่อตรวจสภาพแวดล้อม
-
ใช้ในโรงเรือนเพาะปลูกหรือคลังเก็บยา
🌡️สรุปผลการเรียนรู้
-
ผู้เรียนสามารถอ่านค่าอุณหภูมิและความชื้นจาก SHT30 ได้
-
เข้าใจวิธีเชื่อมต่อและใช้งานผ่านบัส I2C
-
สามารถประยุกต์ใช้งานเซนเซอร์กับอุปกรณ์ควบคุมอื่นได้ เช่น รีเลย์, OLED,
Buzzer -
สามารถบันทึกค่าการตั้งค่าลง EEPROM ได้
✅ กิจกรรมการทดลอง (Lab Exercise)
1. แสดงค่าอุณหภูมิและความชื้นผ่าน Serial Plotter
-
เขียนโปรแกรมอ่านค่าจากเซนเซอร์ SHT30
-
แสดงค่าอุณหภูมิ (°C) และความชื้นสัมพัทธ์ (%RH) บนกราฟด้วย Serial Plotter
ของ
VsCode
-
สังเกตแนวโน้มการเปลี่ยนแปลงของข้อมูลตามเวลา
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
2.ทดสอบการตอบสนองของเซนเซอร์ต่อสภาพแวดล้อม
-
เปลี่ยนแปลงสภาพแวดล้อม เช่น
▸ เป่าลมอุ่นจากไดร์เป่าผม
▸ ใช้พัดลมเป่าลมเย็น
▸ วางไว้ใกล้ถ้วยน้ำร้อน หรือในกล่องปิด
-
จดบันทึกค่าที่เปลี่ยนแปลง และวิเคราะห์ผลลัพธ์
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
3.สร้างระบบแจ้งเตือนอัตโนมัติ
-
เขียนโค้ดให้ระบบส่งสัญญาณแจ้งเตือน (เช่น เปิด Buzzer หรือ LED) เมื่อ
▸ อุณหภูมิเกิน 30°C
▸ ความชื้นน้อยกว่า 40%
-
ทดสอบระบบและบันทึกว่าแจ้งเตือนทำงานเมื่อใด
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
📝 พื้นที่สรุปผลการเรียนรู้
🔹 หลังจากทำกิจกรรมและศึกษาข้อมูลจากชุดฝึกนี้ ฉันได้เรียนรู้ว่า…
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
🔹 ความเข้าใจเพิ่มเติมที่ได้รับจากใบงานนี้คือ…
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
🔹 ข้อเสนอแนะ/ข้อสงสัยเพิ่มเติม
…………………………………………………………………………………………………………………………………………..………………………………………………………………………………………………………………………………………..…………………………………………………………………………………………………………………
“เทคโนโลยีที่ดี ต้องรู้สึกถึงสิ่งที่มองไม่เห็น”
“A good system senses what can’t be seen.”




Leave a Reply