ในบทเรียนนี้ น้องจะได้เรียนรู้วิธีสร้างสถานีตรวจอากาศด้วย ESP32 และวิธีติดตามค่าต่างๆ จากระยะไกลผ่านแอป Blynk และเว็บไซต์ สถานีนี้ไม่ใช่แค่วัดข้อมูลสิ่งแวดล้อมแบบเรียลไทม์ แต่ยังส่งข้อมูลขึ้นคลาวด์ให้เราดูได้จากที่ไหนในโลกก็ได้


อุปกรณ์ที่ต้องใช้:
หัวใจของโปรเจคนี้คือการเอาไมโครคอนโทรลเลอร์ที่มี Wi-Fi ในตัวมาทำงานร่วมกับเซ็นเซอร์ประสิทธิภาพสูง
- บอร์ดพัฒนา ESP32: ไมโครคอนโทรลเลอร์ 32 บิตที่มี Wi-Fi และ Bluetooth ในตัว เหมาะสุดๆ สำหรับงาน IoT
- เซ็นเซอร์ DHT11: ใช้สำหรับวัดอุณหภูมิและความชื้นสัมพัทธ์ในอากาศ
- เซ็นเซอร์วัดแสง (LDR): ตัวต้านทานที่ไวต่อแสง ใช้วัดความเข้มของแสง
- ตัวต้านทาน 10k Ohm: สำหรับสร้างวงจรแบ่งแรงดัน (Voltage Divider) ร่วมกับ LDR
- เซ็นเซอร์ CJMCU CCS811: เซ็นเซอร์คุณภาพอากาศขั้นสูง (Digital Gas Sensor) สำหรับตรวจจับค่าคาร์บอนไดออกไซด์เทียบเท่า (eCO2) และสารประกอบอินทรีย์ระเหยง่ายทั้งหมด (TVOC)
- สายจัมเปอร์: สำหรับต่อวงจร
- เบรดบอร์ดหรือ PCB: สำหรับทำโปรโตไทป์หรือบัดกรีสำหรับการประกอบถาวร
- สาย USB: สำหรับจ่ายไฟและอัพโหลดโปรแกรม
ขั้นตอนที่ 1: ตั้งค่าสถานีตรวจอากาศ
การเชื่อมต่อเซ็นเซอร์แต่ละตัวใช้โปรโตคอลการสื่อสารที่ต่างกัน ทั้งแบบ Analog, Digital และ I2C เพื่อให้ ESP32 ประมวลผลข้อมูลได้แม่นยำ
ต่อสายอุปกรณ์กันเลย
เชื่อมต่อเซ็นเซอร์ตามนี้จ้า:
เซ็นเซอร์วัดแสง (LDR):
- ใช้หลักการแบ่งแรงดัน (Voltage Divider) ต่อขา LDR ข้างหนึ่งไปที่ 3.3V และอีกขาต่อกับ ตัวต้านทาน 10k Ohm ที่เชื่อมกับ GND
- จุดต่อระหว่าง LDR กับตัวต้านทาน ให้ต่อเข้ากับขา D34 ของ ESP32 (ซึ่งเป็นขา Analog Input) เพื่ออ่านค่าแรงดันที่เปลี่ยนไปตามความเข้มแสง
CJMCU CCS811 (เซ็นเซอร์วัดคุณภาพอากาศ):
- เชื่อมต่อผ่านโปรโตคอล I2C:
- 3V → 3.3V บนบอร์ด ESP32
- GND → GND
- SDA → ขา D21 บน ESP32
- SCL → ขา D22 บน ESP32
- WAKE → GND (เพื่อให้เซ็นเซอร์ทำงานต่อเนื่อง)
DHT11 (เซ็นเซอร์วัดอุณหภูมิและความชื้น):
- GND → GND บน ESP32
- VCC → 3.3V บน ESP32
- OUT → D15 บน ESP32 (หมายเหตุ: ใช้ขา Digital สำหรับการส่งข้อมูลแบบ single-bus)
ขั้นตอนที่ 2: อัพโหลดโค้ดลงบอร์ด ESP32
ในขั้นตอนนี้ เราจะใช้ Arduino IDE ในการเขียนโปรแกรมเพื่ออ่านค่าจากเซ็นเซอร์ต่างๆ



ขั้นตอนการทำงาน:
- เปิดโปรแกรม Arduino IDE
- เลือกบอร์ด ESP32 ของคุณจากเมนู Tools > Board (เช่น ESP32 Dev Module)
- ตรวจสอบให้แน่ใจว่าเลือก Port ที่ถูกต้องแล้ว
- อัพโหลดโค้ดตัวอย่างลงบนบอร์ด
วิเคราะห์การทำงานของโค้ด:
โปรแกรมจะเริ่มต้นเซ็นเซอร์ CCS811 ผ่าน I2C และตั้งค่า DHT11 ให้อยู่ในสถานะพร้อม ในส่วน loop() บอร์ดจะอ่านค่าอะนาล็อกจากขา D34 เพื่อคำนวณความเข้มแสง และอ่านค่าดิจิทัลจาก DHT11 และ CCS811 ถ้าน้องเปิด Serial Monitor (ตั้งค่า Baud Rate เป็น 9600) ก็จะเห็นค่าที่เซ็นเซอร์ต่างๆ อ่านได้ เพื่อตรวจสอบข้อมูลเบื้องต้น
ขั้นตอนที่ 3: ตรวจสอบสถานีอากาศจากระยะไกลผ่านแอป Blynk
Blynk เป็นแพลตฟอร์ม IoT ที่ทำให้เราสามารถตรวจสอบค่าจากสถานีอากาศของเราได้จากระยะไกล ผ่านมือถือ ไม่ว่าจะอยู่ห่างกันแค่ไหนก็ตาม สิ่งที่ต้องมีก็แค่แอป Blynk กับอินเทอร์เน็ตเท่านั้น ในโปรเจกต์นี้เราจะเรียนรู้วิธีตรวจสอบค่าจากเซ็นเซอร์ LDR และ DHT11 เท่านั้นนะ




ตั้งค่าแอปพลิเคชัน Blynk:
สร้างโปรเจกต์ใหม่ในแอป Blynk: หลังจากดาวน์โหลดแอปและล็อกอินเข้าบัญชีแล้ว ให้เริ่มต้นด้วยการสร้างโปรเจกต์ใหม่
เลือกฮาร์ดแวร์: เลือกรุ่นฮาร์ดแวร์ที่ใช้ ถ้าทำตามบทความนี้ก็คงใช้บอร์ด ESP32 อยู่แล้ว
Auth Token: Auth Token คือรหัสประจำตัวที่ไม่ซ้ำใคร ใช้เชื่อมต่อฮาร์ดแวร์กับสมาร์ทโฟนของคุณ ทุกโปรเจกต์ใหม่จะมี Auth Token เป็นของตัวเอง คุณจะได้รับ Token นี้หลังจากสร้างโปรเจกต์เสร็จ คลิกที่ส่วน Devices และเลือกอุปกรณ์ที่ต้องการ ก็จะเห็น Token แล้ว Token ตัวนี้ทำหน้าที่เหมือน "กุญแจ" ที่อนุญาตให้บอร์ด ESP32 เชื่อมต่อกับแอปได้
ตั้งค่าแอป Blynk / ออกแบบแดชบอร์ด: น้องจะต้องสร้างโปรเจกต์บน Blynk สำหรับตรวจสอบพารามิเตอร์ต่างๆ เพิ่มวิดเจ็ต Value Display 3 ตัว และตั้งค่าทีละตัว:
- ตัวแรกจะรับอินพุตเป็น V6 (สำหรับแสดงความชื้น)
- ตัวที่สอง V5 (สำหรับแสดงอุณหภูมิ)
- ตัวที่สาม V0 (สำหรับแสดงความเข้มแสง) น้องจะสังเกตว่าทั้งหมดถูกตั้งค่าเป็นโหมด Push เพื่อให้บอร์ดส่งข้อมูลตามช่วงเวลาที่กำหนด
โปรแกรมบอร์ด ESP32 สำหรับเชื่อมต่อคลาวด์: เปิด Arduino IDE และเปิดโปรแกรมตัวอย่าง เลือกบอร์ดที่ใช้จากเมนู Tools พร้อมทั้งเลือก Port ที่ถูกต้อง แล้วอัพโหลดโค้ด
ตรรกะของโค้ด Blynk:
โค้ดนี้ใช้ไลบรารี BlynkSimpleEsp32.h น้องต้องกรอกชื่อไวไฟ (SSID), รหัสผ่าน และ Auth Token ที่ได้รับลงไป ฟังก์ชันต่างๆ เช่น Blynk.virtualWrite(V5, temperature) จะถูกเรียกใช้เพื่อส่งค่าจากเซ็นเซอร์บน ESP32 ไปยัง Blynk Server

ถ้าอัพโหลดสำเร็จ น้องจะเห็นข้อความยืนยันการเชื่อมต่อจาก Blynk บน Serial Monitor และข้อมูลสภาพอากาศจะโผล่มาให้เห็นบนมือถืออย่างต่อเนื่องเลย!
คู่มือนี้เป็นส่วนหนึ่งของโครงการ DEEDU ซึ่งได้รับเงินสนับสนุนร่วมจากโครงการ Erasmus + ของคณะกรรมาธิการยุโรป หมายเลขโครงการ: 2018-1-FR02-KA205-014144.
เนื้อหาในสิ่งพิมพ์นี้ไม่สะท้อนความคิดเห็นอย่างเป็นทางการของสหภาพยุโรป ความรับผิดชอบต่อข้อมูลและมุมมองที่แสดงอยู่ในนี้เป็นของผู้เขียนเท่านั้น