สวัสดีครับเพื่อนๆ Developer ทุกท่าน วันนี้ผมจะพาไปเจาะลึกถึงการทำงานร่วมกันของ ESP32 บอร์ดไมโครคอนโทรลเลอร์สารพัดประโยชน์ และ MicroPython ภาษาโปรแกรมมิ่งที่เข้ามาเปลี่ยนโฉมการพัฒนา IoT ให้ง่ายและรวดเร็วยิ่งขึ้น ถ้าพร้อมแล้ว เรามาดูกันเลยครับ

ESP32 คืออะไร?
ESP32 คือไมโครคอนโทรลเลอร์ที่ผลิตโดยบริษัท Espressif Systems มันคือสมองของอุปกรณ์ IoT จำนวนมากในปัจจุบัน ด้วยจุดเด่นคือ:
- มี Wi-Fi และ Bluetooth ในตัว: ทำให้มันสามารถเชื่อมต่อกับอินเทอร์เน็ตและอุปกรณ์อื่นๆ ได้อย่างง่ายดาย
- ประสิทธิภาพสูง: มี Core ประมวลผล 2 ตัว (Dual-Core) ทำให้ทำงานหลายอย่างพร้อมกันได้
- ราคาถูก: เข้าถึงได้ง่ายสำหรับนักเรียนนักศึกษาและ Maker ทั่วไป
- GPIO เยอะ: มีขาเชื่อมต่อกับอุปกรณ์ภายนอกได้หลากหลาย เช่น เซนเซอร์, รีเลย์, จอแสดงผล
หน้าตาของ ESP32 DevKit C V4 ที่เราคุ้นเคยกันดี:

MicroPython คืออะไร?
MicroPython คือการนำเอาภาษา Python 3 มาย่อส่วนให้ทำงานบนไมโครคอนโทรลเลอร์ที่มีทรัพยากรจำกัดได้ มันยังคงความสามารถและไวยากรณ์ (Syntax) แบบ Python ไว้เกือบทั้งหมด ทำให้การเขียนโปรแกรมบนฮาร์ดแวร์ขนาดเล็กไม่ใช่เรื่องยากอีกต่อไป
ตัวอย่างการเขียนโค้ด MicroPython ง่ายๆ ที่รันบน ESP32:

ทำไม ESP32 กับ MicroPython ถึงเป็นคู่ซี้ที่ลงตัว?
- ความเร็วในการพัฒนา: ด้วยความที่ Python เป็นภาษาที่เขียนง่าย อ่านง่าย และมี REPL (Read-Eval-Print Loop) ทำให้เราสามารถทดสอบโค้ดได้แบบ Interactive ไม่ต้องรอ Compile และ Upload บ่อยๆ เหมือนภาษา C เหมาะกับการทำ Prototype อย่างยิ่ง
- โค้ดกระชับ: MicroPython ช่วยลดจำนวนบรรทัดโค้ดลงได้อย่างมากเมื่อเทียบกับ C ทำให้โปรเจกต์ของคุณสั้นลง ดูแลง่ายขึ้น
- มี Library ในตัว: สำหรับฟังก์ชันพื้นฐาน เช่น การควบคุม GPIO, I2C, SPI, UART, Wi-Fi หรือ Bluetooth นั้น MicroPython มี Library มาให้พร้อมใช้งานได้ทันที ไม่ต้องวุ่นวายกับการค้นหาและติดตั้ง Library ภายนอก
- พลังของ Python: หากคุณคุ้นเคยกับ Python อยู่แล้ว การจะกระโดดมาพัฒนา IoT ด้วย MicroPython บน ESP32 จะไม่ใช่เรื่องยากเลย เพราะ Syntax ส่วนใหญ่ยังคงเหมือนเดิม
โปรเจกต์ IoT ที่ MicroPython บน ESP32 ทำได้ดี
- Smart Home Automation: ควบคุมไฟ, พัดลม, หรืออุปกรณ์ไฟฟ้าอื่นๆ ผ่าน Wi-Fi
- Data Logging: อ่านค่าจากเซนเซอร์ต่างๆ (อุณหภูมิ, ความชื้น, แสง) แล้วส่งข้อมูลขึ้น Cloud
- Web Server / API Server ขนาดเล็ก: สร้างหน้าเว็บง่ายๆ เพื่อควบคุมอุปกรณ์ หรือสร้าง API สำหรับแอปพลิเคชันมือถือ
- Network Scanner: สแกนหาอุปกรณ์ในเครือข่าย หรือเชื่อมต่อกับ Wi-Fi หลายๆ ตัว
- MQTT Client: ส่งและรับข้อมูลกับ Broker เพื่อสร้างระบบ IoT ที่ซับซ้อนขึ้น
ตัวอย่างการเชื่อมต่อ ESP32 เข้ากับเซนเซอร์อุณหภูมิและความชื้น (DHT11) แล้วส่งข้อมูลขึ้น Cloud:
