เจ้าโคมไฟตัวนี้
โคมไฟมินิมอลสุดๆ (และอาจจะโอเวอร์ไปนิด) ที่สร้างจากไมโครคอนโทรลเลอร์ ESP8266 และเซ็นเซอร์วัดคาร์บอนไดออกไซด์ MHZ-19B ช่วยให้เราควบคุมระดับ CO2 ในห้อง ห้องครัว... ได้แบบจัดเต็ม
โคมไฟนี้เป็นตัวเริ่มต้นที่ดีมากๆ ในการพาน้องเข้าสู่โลก Arduino และการพิมพ์ 3D แถมยังได้โคมไฟที่ทั้งสวยและน่ารักกลับมาอีกด้วย สร้างเสร็จแล้ววางตกแต่งได้เลย

หมายเหตุ: นี่คือโปรเจกต์ Arduino ชิ้นแรกของพี่เองนะ อย่าหัวเราะเยาะล่ะ
ฟีเจอร์เด็ดๆ:
- ปรับความสว่างผ่านแอปได้
- ดูค่าคาร์บอนไดออกไซด์แบบเรียลไทม์ผ่านแอป (มีกราฟให้ดูด้วย)
- ตั้งเวลาเปิด-ปิดอัตโนมัติได้ (บอกโคมไฟได้เลยว่าให้เปิดตอนไหน)
- มีโหมดแสดงสถานะ CO2 โดยเปลี่ยนสีไฟตามระดับความเข้มข้น
มุมมองของโปรเจกต์
โคมไฟวัด CO2 นี้เป็นการผสมผสานระหว่างเทคโนโลยีเพื่อสุขภาพและความสวยงามของ IoT อย่างลงตัว โดยเน้นไปที่ส่วนประกอบหลักๆ คือ เซ็นเซอร์ MH-Z19B และ ESP8266 น้องจะได้เรียนรู้วิธีการสื่อสารและตรวจสอบคุณภาพอากาศผ่านลอจิกซอฟต์แวร์เฉพาะทางและการตั้งค่าไร้สายที่เสถียร
การทำงานทางเทคนิค: เซ็นเซอร์แก๊สแบบ NDIR และการตอบสนองด้วย RGB
โปรเจกต์นี้จะเผยให้เห็นชั้นการทำงานที่ซ่อนอยู่เบื้องหลังการโต้ตอบระหว่างอากาศและแสงไฟ:
- ชั้นตรวจจับ: เซ็นเซอร์ CO2 แบบ NDIR MH-Z19B ทำหน้าที่เป็นดวงตาในย่านอินฟราเรด คอยวัดความเข้มข้นของคาร์บอนไดออกไซด์ในห้องผ่านอินเทอร์เฟซ UART Serial
- ชั้นประมวลผล: ESP8266 ใช้พอร์ต I/O และไลบรารี MHZ-19 ในการถอดรหัสระดับแก๊ส (ppm) และคำนวณเพื่อหาสถานะ "ปลอดภัย" หรือ "อากาศเริ่มอับ"
- ชั้นแสดงผล: แถบไฟ LED RGB SK6812 ให้การตอบสนองด้วยภาพความละเอียดสูง สีของโคมไฟ (เช่น เขียว = ดี, เหลือง = เตือน, แดง = ต้องระบายอากาศ) บ่งบอกถึงคุณภาพอากาศ
- ชั้นเชื่อมต่อไร้สาย: ESP8266 เชื่อมต่อกับ Arduino IoT Cloud ทำให้สามารถดูกราฟและควบคุมโคมไฟแบบเรียลไทม์ผ่านแอปมือถือได้
- ชั้นควบคุมแบบสัมผัส: โมดูลสัมผัส TTP223 ให้วิธีควบคุมแบบแมนนวลประสิทธิภาพสูง เปิด-ปิดโคมไฟได้ด้วยการแตะเบาๆ
โครงสร้างฮาร์ดแวร์
- ESP8266 NodeMCU: ไมโครคอนโทรลเลอร์หัวใจหลักที่มี WiFi ดูแลการเก็บข้อมูลความเร็วสูงและประสานงานระหว่างคลาวด์กับงานควบคุมไฟ LED
- เซ็นเซอร์ CO2 MH-Z19B: ให้การตรวจวัด CO2 ที่เชื่อถือได้แบบไม่ต้องสัมผัสสำหรับพื้นที่อยู่อาศัย
- แถบไฟ LED RGB (NeoPixels): ให้แสงสว่างกำลังสูงและสีสันสดใสสำหรับการ "รายงานสถานะอากาศ"
- เซ็นเซอร์สัมผัส TTP223: ให้อินพุตดิจิทัลสำหรับการควบคุมโคมไฟด้วยมือแบบโอเวอร์ไรด์
- โครงพิมพ์ 3D: ทำหน้าที่เป็นตัวเรือนกลไกประสิทธิภาพสูงสำหรับวงจรตรวจจับสิ่งแวดล้อม
- สาย Micro-USB: ใช้สำหรับโปรแกรม ESP8266 และจ่ายไฟหลักให้กับตัวคอนโทรลเลอร์
ซอฟต์แวร์:
โคมไฟใช้บริการ MQTT บน Arduino Cloud เพื่อควบคุมโคมไฟผ่านอินเทอร์เน็ต และน้องจะต้องมีไลบรารีบางตัว (คิดซะว่าเป็นโปรแกรมย่อยๆ ที่เรานำมาใส่ในโปรเจกต์ Arduino ของเราเพื่อให้มันทำงานตามที่ต้องการ) เพื่อให้สามารถคอมไพล์โปรแกรมได้
- MHZ-19
- OneButton
- Neopixel (ต้องใช้เวอร์ชัน 1.8.4)
ขั้นตอนการประกอบ:
ฐานของโคมไฟพิมพ์ด้วยวัสดุไม้ (แนะนำให้ใช้) และส่วนที่เหลือของโคมไฟทำจาก PLA (ไฟล์ .stl อยู่ด้านล่างของโปรเจกต์นี้) ห้ามช็อตนะตัวนี้ ใจเย็นๆ ค่อยๆ ทำ
พอปริ้นท์ชิ้นส่วนครบแล้ว ก็แค่เอากระดาษทรายขัดๆนิดหน่อย ก็พร้อมลุยแล้ววว
ต่อไปก็เรื่องไฟฟ้า ตามรายการอุปกรณ์ด้านล่างเลย สำหรับการเดินสายไฟ มีให้เลือกสองทาง:
- **ทางเลือกที่ 1:** ใช้สายไฟธรรมดาๆ บัดกรีให้เรียบร้อย แล้วก็ยัดลงไปในฐานไฟ (วงจรต่อแบบนี้อยู่ในไฟล์ .pdf ชื่อ schematic)

- **ทางเลือกที่ 2:** สั่งทำ PCB (ตัวเลือกที่แพงและ Overengineered มาก อย่าทำเลยน้อง) สามารถดาวน์โหลดไฟล์ Gerber ได้จากโฟลเดอร์ใน repository ชื่อ design files

ขั้นตอนการตรวจวัดอากาศและโต้ตอบ
กระบวนการทำงานของไฟวัด CO2 นี้ ออกแบบมาให้มีประสิทธิภาพสุดๆ:
- ตั้งค่า Hardware: เอา ESP8266 กับเซ็นเซอร์ MH-Z19B ลงฐานที่ปริ้นท์ไว้ให้เรียบร้อย เตรียม ESP ให้พร้อมลุย
- ตั้งค่า Cloud Sync: ในฟังก์ชัน `setup()` ให้ตั้งค่าเชื่อมต่อ WiFi, ตัวแปร IoT Cloud และแถบไฟ Neopixel
- ลูปทำงานหลัก: ESP8266 จะทำการสุ่มตัวอย่างค่าก๊าซแบบต่อเนื่อง และอัพเดทสีไฟกับกราฟบนคลาวด์แบบเรียลไทม์
- แสดงผลแบบ Visual: ดูสิว่าไฟของน้องจะกลายเป็นสัญญาณแสงที่เต้นเป็นจังหวะไปตามคุณภาพอากาศโดยอัตโนมัติเลย
พอตัดสินใจได้ว่าจะจัดวางโครงการยังไง ขั้นต่อไปคือเรื่องซอฟต์แวร์ ซึ่งน้องจะต้องใช้ IoT Cloud (จาก Arduino)
- **1.** สร้าง "Thing" ขึ้นมาแล้วเชื่อมโยงกับบอร์ด (esp8266) ของน้อง
- **2.** เพิ่มตัวแปรที่จำเป็นลงใน "Thing" บน Arduino Cloud เพื่อให้โค้ดทำงานได้ถูกต้อง (ดูในรูป)
- **3.** สร้าง Dashboard แล้วเชื่อมโยงกับตัวแปรจาก "Thing" ที่เพิ่งสร้างไป
- **4.** แก้ไขโค้ดที่ให้มา และเพิ่มข้อมูล WiFi, รหัสผ่าน, Device ID และ Secret Key ของน้องลงในไฟล์ thingproperties





แนวทางการพัฒนาต่อ
- เพิ่ม OLED Dashboard: ต่อจอ OLED ขนาดเล็กที่ฐานไฟ เพื่อแสดงค่า "CO2 ปัจจุบัน (ppm)", "อุณหภูมิ" และ "ความชื้น"
- เพิ่มเซ็นเซอร์หลายตัว: ต่อเซ็นเซอร์ MQ-2 หรือ MQ-135 เพื่อสร้างเครื่องตรวจวัดอากาศอัตโนมัติที่ตรวจจับ "แก๊สรั่ว" และควันได้ด้วย
- สร้าง Web Dashboard เฉพาะทาง: เพิ่มแดชบอร์ดบนเว็บเพื่อติดตามและบันทึกประวัติคุณภาพอากาศจากสมาร์ทโฟนผ่าน WiFi แบบไร้สาย
- เพิ่มระบบแจ้งเตือน: ต่อออด (Buzzer) สำหรับ "การแจ้งเตือนการระบายอากาศ" เพื่อให้ไฟทำงานตามโปรโตคอลความปลอดภัยและส่งเสียงเตือนเมื่อค่า CO2 สูงเกินไป
Co2 Lamp เป็นโปรเจคที่โคตรเหมาะสำหรับสายอิเล็กทรอนิกส์ตัวจริง ที่อยากได้เครื่องมือติดตามสุขภาพแบบอินเตอร์แอคทีฟและน่าสนใจกว่านี้!