อุปกรณ์สแกนธนบัตรอัจฉริยะที่ใช้ ESP32-CAM ในการวิเคราะห์และบอกจำนวนเงินด้วยเสียงพูด
สวัสดีชาว Maker ทุกคนครับ! 💡 วันนี้เราไม่ได้มาแค่หาทำโปรเจกต์สนุกๆ แต่เราจะมาสร้างเทคโนโลยีที่ **ช่วยเปลี่ยนชีวิตคนได้จริงๆ** ลองจินตนาการดูนะครับ ผู้สูงอายุหรือผู้พิการทางสายตา มักจะใช้วิธีคลำสัมผัสเนื้อกระดาษเพื่อแยกแยะมูลค่าของธนบัตร แต่เมื่ออายุมากขึ้น ความแม่นยำในการสัมผัสก็ลดลง ทำให้เสี่ยงต่อการรับเงินทอนผิดพลาดหรือถูกโกงได้ง่ายมาก
เพื่อแก้ปัญหานี้ วันนี้เราจะพาไปทำโปรเจกต์ "เครื่องตรวจจับและแยกธนบัตร" (Currency Recognition) ที่ทำงานง่ายสุดๆ แค่เอาธนบัตรวางหน้ากล้องแล้วกดปุ่ม ตัวเครื่องจะประมวลผลด้วย AI และ "พูดบอกจำนวนเงินออกมาเป็นเสียง" ผ่านลำโพงได้ทันที! โดยพระเอกของงานนี้คือบอร์ดตัวจิ๋วแต่แจ๋วอย่าง ESP32-CAM ครับ!
ทำไมโปรเจกต์นี้ถึงโคตรเหมาะกับมือใหม่? 🤔
ปกติถ้าพูดถึงการทำ AI ตรวจจับรูปภาพ เราก็ต้องมานั่งถ่ายรูปธนบัตรเป็นร้อยๆ ใบ มานั่งตีกรอบ (Labelling) และเสียเวลาเทรนโมเดลเป็นวันๆ ใช่ไหมครับ? แต่โปรเจกต์นี้ ไม่ต้องเทรนโมเดลเองเลยแม้แต่นิดเดียว!
เพราะเราจะใช้บริการจาก CircuitDigest Cloud API ที่เขาเทรนโมเดล AI มารอไว้ให้แล้วบนเซิร์ฟเวอร์ (ในตัวอย่างเป็นธนบัตรรูปีอินเดีย) หน้าที่ของเรามีแค่เขียนโค้ดให้ ESP32-CAM ถ่ายรูป แล้วโยนไฟล์ขึ้น Cloud ผ่าน Wi-Fi พอ Cloud คืนค่ากลับมาว่าแบงก์อะไร เราก็แค่สั่งให้บอร์ดไปดึงไฟล์เสียงจาก Google Text-to-Speech (TTS) มาพูดออกลำโพง จบปิ๊ง!
💡 Maker's Tip: เนื่องจากบอร์ด ESP32 ไม่มีกำลังขับเสียงที่ดังพอ เราจึงต้องใช้โมดูล PAM8403 (Audio Amplifier) มาช่วยขยายสัญญาณเสียงก่อนส่งเข้าลำโพง เพื่อให้เสียงพูดดังฟังชัดครับ!
หากเพื่อนๆ อยากประกอบโปรเจกต์ดีๆ แบบนี้ แวะมาช้อป บอร์ด ESP32-CAM, โมดูลขยายเสียง PAM8403, ลำโพงตัวจิ๋ว, และปุ่มกด ได้ที่ Globalbyte Shop เลยครับ! ของพร้อมส่ง ทัก LINE OA มาปรึกษาแอดมินได้ตลอดเลยครับ!
การต่อวงจรและสเปกที่ใช้ ⚙️
การต่อสายในโปรเจกต์นี้เรียบง่ายมากครับ แค่เชื่อมต่อโมดูลต่างๆ เข้ากับพินของ ESP32-CAM ตามนี้เลย:
| ขาพินบน ESP32-CAM |
เชื่อมต่อไปยัง |
หมายเหตุ |
| GPIO 2 |
ปุ่มกด (Push button) |
เพื่อสั่งถ่ายภาพ (เขียนโค้ดใช้โหมด INPUT_PULLUP) |
| GPIO 4 (หรือ 12) |
ขา Audio IN ของ PAM8403 |
ส่งสัญญาณเสียง (PWM) ไปยังวงจรขยาย |
| 5V และ GND |
VCC & GND ของ PAM8403 |
เพื่อจ่ายไฟเลี้ยงให้โมดูลขยายเสียงทำงาน |
| Output ของ PAM8403 |
ลำโพง 8 โอห์ม (Speaker) |
ขับเสียงให้ดังออกมา |
⚠️ คำแนะนำเรื่องกล้องและการเชื่อมต่อ (Troubleshooting)
ปัญหาที่เจอบ่อยคือกล้องเบลอหรือค้างตอน Boot ครับ แนะนำให้ใช้แหล่งจ่ายไฟ (Power Supply) ขนาด 5V / 2A เต็ม เพื่อให้บอร์ดและลำโพงทำงานได้เสถียรที่สุด และควรวางกล้องให้ห่างจากธนบัตรประมาณ 10-15 ซม. พร้อมมีแสงสว่างส่องถึง เพื่อให้ AI บน Cloud ทายผลได้แม่นยำที่สุดครับ!
ผังการต่อสายวงจร (Circuit Diagram) 🔌
การจัดวางฮาร์ดแวร์เพื่อความนิ่ง 📸
ควรออกแบบแท่นวางกล้องให้มั่นคง (ใช้
บริการ 3D Print ของร้านเราช่วยได้นะ!) เพื่อป้องกันภาพสั่นเบลอขณะสแกน
วิดีโอสาธิตการทำงานจริง 🎬
ระบบ CircuitDigest Cloud สำหรับทดสอบ API 🌐
เราสามารถอัปโหลดภาพเข้าหน้าเว็บเพื่อปรับความแม่นยำ (Confidence level) และทดสอบโมเดลได้ฟรีก่อนเขียนโค้ดครับ
ตัวอย่างโค้ด: การถ่ายภาพและโยนขึ้นคลาวด์ 💻
นี่คือส่วนของโค้ดหลักที่สั่งให้ ESP32-CAM ถ่ายรูป (UXGA Format) แล้วยิง HTTPS POST ไปที่ Server:
// การตั้งค่าคุณภาพของกล้อง
cfg.frame_size = FRAMESIZE_UXGA; // ความละเอียดภาพสูง
cfg.jpeg_quality = 8; // ย่อขนาดไฟล์แต่ยังคงความคมชัด
cfg.fb_count = 2;
cfg.fb_location = CAMERA_FB_IN_PSRAM;
sensor_t* s = esp_camera_sensor_get();
s->set_sharpness(s, 2); // เพิ่มความคมชัดเพื่อให้ AI อ่านง่ายขึ้น
// การส่งข้อมูลรูปภาพขึ้นไปยัง API (CircuitDigest Cloud)
client.printf(
"POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"X-API-Key: %s\r\n"
"Content-Type: multipart/form-data\r\n",
serverPath, serverName, API_KEY);
client.write(buf, len);
ตัวอย่างโค้ด: การดึงเสียงพูดจาก Google TTS 🔊
พอคลาวด์ตอบกลับมาว่ามันคือแบงก์อะไร เราก็จะโยนคำนั้นไปให้ Google เปลี่ยนเป็นเสียง (Text-to-Speech) ครับ:
// ดึงเสียงอ่าน MP3 จากเซิร์ฟเวอร์แปลภาษาของ Google
String path = "/translate_tts?ie=UTF-8&q=" + encoded + "&tl=en&client=tw-ob";
WiFiClient httpClient;
httpClient.connect("translate.google.com", 80);
// ฟังก์ชันลำดับการทำงาน (ถ่ายรูป -> โยนเข้า API -> เล่นเสียง)
void detectCurrency() {
camera_fb_t* fb = esp_camera_fb_get();
String currency = sendImageToAPI(fb->buf, fb->len);
playMP3(mp3Buf, mp3Len);
}
ผลลัพธ์ผ่านหน้าจอ Serial Monitor 🖥️
บนหน้าจอคอมพิวเตอร์จะรายงานทันทีว่าตรวจพบแบงก์อะไร พร้อมความมั่นใจ (Confidence) กี่เปอร์เซ็นต์ ก่อนที่จะพูดออกลำโพง
📚 แหล่งข้อมูลศึกษาเพิ่มเติมและดาวน์โหลดโค้ด:
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากโปรเจกต์ต่างประเทศ โปรเจกต์นี้เป็นการนำร่องด้วยโมเดลธนบัตรอินเดีย และจำเป็นต้องใช้เครือข่ายอินเทอร์เน็ตที่เสถียรในการทำงาน หากต้องการประยุกต์ใช้กับสกุลเงินอื่น อาจต้องมีการฝึกโมเดล AI ใหม่เพิ่มเติม แนะนำให้ศึกษาโค้ดและการตั้งค่าอย่างละเอียดจาก
ลิงก์อ้างอิงต้นฉบับ ก่อนนำไปสร้างใช้งานจริงครับ