ในยุคดิจิทัล "ตัวเลขสุ่ม (Random Numbers)" มีความสำคัญมากๆ โดยเฉพาะในสาย Security และ Cryptography (การเข้ารหัสข้อมูล) เพื่อความปลอดภัยขั้นสุด เราต้องการ "True Random Number" หรือตัวเลขที่สุ่มแบบคาดเดาไม่ได้จริงๆ ไม่ใช่แค่สมการคณิตศาสตร์จำลองขึ้นมา
ล่าสุดช่อง Theory to Thing ได้สร้างอุปกรณ์สุ่มตัวเลขสุดเจ๋ง โดยใช้แค่บอร์ดไมโครคอนโทรลเลอร์ ESP32 และ "สัญญาณรบกวนจากกล้อง (Camera Noise)" ไอเดียนี้จะล้ำแค่ไหน มาดูกัน!

จุดเริ่มต้น: จากถ้วยชา... สู่กล้องถ่ายรูป
ตอนแรกผู้สร้างตั้งใจจะใช้ ESP32 คู่กับเซนเซอร์วัดอุณหภูมิ (Thermocouple) จุ่มลงไปในถ้วยชา เพื่อเอาค่าความร้อนที่แกว่งไปมามาทำเป็นตัวเลขสุ่ม แต่มันไม่เวิร์ค! เพราะข้อมูลที่ได้มันนิ่งเกินไป ไม่มีความ "ยุ่งเหยิง" มากพอที่จะเอามาทำเป็นตัวเลขสุ่มที่ดีได้
จนกระทั่งเกิดไอเดียปิ๊งขึ้นมาตอนที่เอากล้องมาปิดฝาเลนส์ไว้ ในภาพที่ควรจะมืดสนิท กลับมีจุดสว่างเล็กๆ โผล่ขึ้นมา (ยิ่งอุณหภูมิสูงยิ่งเห็นชัด) สิ่งนี้เรียกว่า Thermal Noise ซึ่งเป็นความยุ่งเหยิงแบบธรรมชาติที่ตอบโจทย์โปรเจกต์นี้พอดี!
วิธีทำงาน: ใช้เทปดำปิดเลนส์กล้อง
ระบบนี้ทำงานด้วยหลักการง่ายๆ แต่วิธีคิดโคตรคราฟต์:
- ใช้บอร์ด ESP32 ต่อเข้ากับโมดูลกล้อง OV3660
- เอาเทปพันสายไฟสีดำ (Electrical Tape) มาแปะปิดหน้าเลนส์กล้องให้มืดสนิท
- เมื่อกล้องพยายามอ่านค่าพิกเซลสีดำ มันจะเจอกับ Thermal Noise
- ระบบจะไปดึงค่า Least Significant Bits (LSB) หรือบิตข้อมูลส่วนท้ายสุดของพิกเซล ซึ่งเป็นส่วนที่ไวต่อสัญญาณรบกวนและแกว่งแบบคาดเดาไม่ได้ที่สุด มาใช้เป็นข้อมูลดิบในการสุ่มตัวเลข
นำไปใช้งานจริง: สุ่มตอบคำถาม Yes or No
หลังจากที่ ESP32 รวบรวมข้อมูล Noise เหล่านี้ได้แล้ว ผู้สร้างก็นำมันไปเชื่อมต่อกับ Web App เพื่อทำเป็นบอทสุ่มตอบคำถามแบบ "ใช่ หรือ ไม่ใช่ (Yes-or-No)" โดยอิงจากข้อมูลสุ่มที่เกิดจากสัญญาณรบกวนของกล้องจริงๆ
แม้ผู้สร้างจะมีการทดสอบค่าสถิติเบื้องต้นเพื่อลดความเอนเอียง (Bias) ของระบบไปบ้างแล้ว แต่ถ้าจะเอาไปใช้งานระดับซีเรียส อาจจะต้องมีการคำนวณคณิตศาสตร์เชิงลึกเพิ่มอีกนิด เพื่อยืนยันว่ามัน "สุ่มแท้ 100%" จริงๆ
ชมวิดีโอสาธิตการทำงาน
อยากทำโปรเจกต์เจ๋งๆ แบบนี้บ้าง?
คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา