เสกคาถาให้ ESP32 ฟังเสียงแล้วเปลี่ยนเป็นตัวอักษร (Speech-to-Text) ด้วยพลัง Edge AI คลาวด์ระดับเทพ!

เฮ้ ชาว Maker สายลุยและเพื่อนๆ Gen Z / Gen Y ทุกคน! เคยคิดอยากจะสั่งงานโปรเจกต์ IoT ของตัวเองด้วยเสียงเหมือนในหนังไซไฟไหม? เช่น พูดว่า "เปิดไฟ" แล้วข้อความไปโผล่บนจอ หรือสั่งงานหุ่นยนต์ได้ทันที วันนี้ Globalbyte มีโปรเจกต์ระดับแอดวานซ์มาฝาก นั่นคือการสร้างระบบ ESP32 Speech to Text (STT) เปลี่ยนเสียงพูดให้กลายเป็นตัวอักษรวิ่งโชว์บนหน้าจอ OLED และ Serial Monitor แบบเรียลไทม์! บอกเลยว่างานนี้เป็นการผสมผสานระหว่างฮาร์ดแวร์เสียง ระดับอินเตอร์เน็ต Wi-Fi และคลาวด์ API ที่มันส์สะใจสาย Dev แน่นอนครับ!

ESP32 Speech to Text Project Cover

สารบัญพลิกตำรา (Table of Contents)

  • Wit.ai คืออะไร? ทำไมต้องหยิบมาใช้แปลงเสียงร่วมกับ ESP32
  • เหตุผลเด็ดๆ ที่เหล่านักพัฒนาเทใจเลือก Wit.ai สำหรับโปรเจกต์ควบคุมด้วยเสียง
  • ส่องแผนผังการทำงาน (Block Diagram) ถอดรหัสลับการส่งสัญญาณเสียง
  • เช็คลิสต์อุปกรณ์ (BOM) ที่ต้องเตรียมสำหรับโปรเจกต์นี้
  • แผนผังการต่อสายวงจร (Circuit Diagram) แบบจับมือขันน็อต
  • ขั้นตอนการเซ็ตอัปบัญชี Wit.ai เพื่อคว้า Service Access Token
  • ติดตั้ง Arduino Libraries ที่จำเป็น
  • กางโค้ดฉบับเต็มพร้อมคำอธิบายแบบเคลียร์ๆ ทีละเซกชัน
  • การอัปโหลดและทดสอบระบบจริงในสนามลองไฟ
  • สรุปสูตรแก้ปัญหา (Troubleshooting) ยอดฮิตเมื่อระบบงอแง

Wit.ai คืออะไร? ทำไมต้องหยิบมาใช้แปลงเสียงร่วมกับ ESP32

ก่อนจะลุย เราต้องทำความเข้าใจข้อจำกัดทางฮาร์ดแวร์กันนิดนึง เนื่องจากบอร์ด ESP32 ตัวจิ๋วของเรามีหน่วยความจำและกำลังการประมวลผลที่ค่อนข้างจำกัด ทำให้มันไม่สามารถรันโมเดลตรวจจับเสียงขนาดใหญ่ภายในตัวเอง (Locally) ได้โดยตรง ชุดคำสั่งที่ต้องคำนวณมหาศาลแบบนี้เราจึงต้องโยนหน้าที่ไปให้ระบบ Cloud-based Service จัดการแทนครับ และพระเอกในงานนี้ก็คือ แพลตฟอร์ม Wit.ai นั่นเอง!

สำหรับ Wit.ai เป็นแพลตฟอร์มบนคลาวด์สุดอัจฉริยะที่พัฒนาโดย Meta (ใช่แล้วครับ บัญชีเดียวกับที่พวกเราใช้ล็อกอิน Facebook / Instagram นั่นแหละ!) มันถูกออกแบบมาเพื่อทำหน้าที่ได้ทั้งการแปลงเสียงเป็นข้อความ (Speech-to-Text) และแปลงข้อความเป็นเสียงพูด (Text-to-Speech) โดยเบื้องหลังความฉลาดของมันคือระบบ Natural Language Processing (NLP) ที่ช่วยให้มันเข้าใจบริบทของคำพูดที่เราส่งเข้าไป แพลตฟอร์มนี้จึงเป็นที่นิยมมากๆ ในการนำไปสร้างแอปพลิเคชันมือถือ, บอทอัจฉริยะ และอุปกรณ์ Smart Home ยิ่งไปกว่านั้นเขายังมีคู่มือรายละเอียดเปิดเผยไว้ใน คู่มือสำหรับนักพัฒนาซอฟต์แวร์ (Developer's Guide) อีกด้วย แต่ถ้าใครอยากลองทำโปรเจกต์แบบไม่ต้องพึ่งเน็ต ก็สามารถข้ามไปศึกษา ระบบรู้จำเสียงแบบออฟไลน์ด้วย Edge Impulse ได้เช่นกันครับ

เหตุผลเด็ดๆ ที่เหล่านักพัฒนาเทใจเลือก Wit.ai สำหรับโปรเจกต์ควบคุมด้วยเสียง

ทำไม Maker ทั่วโลกถึงเลือกใช้แพลตฟอร์มนี้? นี่คือคำตอบครับ:

  • เชื่อมต่อง่ายดาย: รองรับการเชื่อมต่อและสั่งงานผ่าน REST HTTP APIs ได้อย่างไม่ซับซ้อน
  • ใช้งานฟรีฟรี!: ไม่มีค่าใช้จ่ายตาม ข้อตกลงและเงื่อนไขของ Wit.ai ที่ระบุไว้
  • ประหยัดงบฮาร์ดแวร์: บอร์ดปลายทางไม่ต้องแรง (เพราะโยนงานหนักไปประมวลผลบนคลาวด์)
  • สเปกครอบคลุม: รองรับแอปพลิเคชันระบบ AI ทั้งแบบเริ่มต้นไปจนถึงขั้นสูง

ส่องแผนผังการทำงาน (Block Diagram) ถอดรหัสลับการส่งสัญญาณเสียง

การทำงานสรุปสั้นๆ ให้เข้าใจง่ายๆ คือ ไมโครโฟนดิจิทัลจะคอยจับเสียงพูดของเรา แล้วทำการสตรีมข้อมูลเสียงดิบรูปแบบ 16-bit PCM ที่ความถี่ sample rate 16 kHz ส่งต่อมายัง ESP32 จากนั้นตัวบอร์ดจะส่งข้อมูลเสียงนี้วิ่งข้ามเน็ต Wi-Fi ไปยัง Wit.ai Cloud API ผ่านโปรโตคอลความปลอดภัย HTTPS เมื่อฝั่งคลาวด์แปลงคำพูดด้วยระบบ NLP เสร็จแล้ว จะทำการส่งข้อความที่แกะเสร็จแล้วกลับมาในรูปแบบไฟล์ JSON เพื่อให้ ESP32 นำมาแกะเอาข้อความไปแสดงผลบนจอ OLED เป็นอันเสร็จสิ้นกระบวนการครับ!

(โน้ตสําหรับสายออฟไลน์: เนื่องจากระบบใช้ Wi-Fi วิ่งไปหาคลาวด์ มันจึงทำงานได้ตอนต่อเน็ตเท่านั้นนะ ถ้าใครมองหาระบบแปลงข้อความกลับเป็นเสียงแบบไม่ต้องใช้เน็ต สามารถแวะไปส่องต่อได้ที่ ระบบแปลงข้อความเป็นเสียงแบบออฟไลน์บน ESP32 ครับ)

เตรียมของกันเลย! อุปกรณ์ที่ต้องใช้สำหรับโปรเจกต์นี้

รายการอุปกรณ์หลักๆ สำหรับประกอบวงจรบน Breadboard มีดังนี้ครับ:

ลำดับ ชื่ออุปกรณ์ จำนวน คำอธิบายหน้าที่
1 บอร์ดพัฒนา ESP32 1 บอร์ด ทำหน้าที่เป็นสมองกลควบคุมและรับส่งข้อมูลหลัก
2 INMP441 I2S Microphone Module 1 ตัว ไมโครโฟนดิจิทัลความละเอียดสูงสำหรับบันทึกเสียงพูด
3 ปุ่มกดสวิตช์ (Button Switch) 1 ตัว สำหรับกดค้างเพื่อเข้าสู่โหมดรับฟังเสียง (Listening Mode)
4 หน้าจอ OLED Display ขนาด 0.91 นิ้ว 1 จอ หน้าจอเทคโนโลยี SSD1306 แบบ I2C สำหรับแสดงข้อความ
5 สายไฟ Jumper (แบบผู้-ผู้) 10 เส้น ใช้สำหรับเชื่อมต่อวงจรบนโปรโตบอร์ด
6 โฟมโปรโตบอร์ด (Breadboard) 1 แผ่น ใช้สำหรับยึดอุปกรณ์และจัดเรียงวงจรทดลอง
💡 ทริคเด็ดช้อปสนุกจาก Globalbyte: สำหรับเพื่อนๆ Maker คนไหนที่อ่านรายการอุปกรณ์แล้วพบว่าของยังไม่ครบ โดยเฉพาะบอร์ด ESP32 พินแน่นๆ, ไมโครโฟน INMP441 I2S แท้, จอ OLED อักษรคมชัด หรือสายพ่วง Jumper เส้นนำสัญญาณดีๆ ไม่ต้องไปหาที่ไหนไกลครับ! แวะมากดสั่งซื้อที่ร้าน Globalbyte ของเราได้เลย มีของพร้อมส่งทันใจ ไม่ต้องรอพรีออเดอร์ให้เสียเวลา เอาไปลุยโปรเจกต์ต่อยอดทำระบบสั่งงานด้วยเสียงแบบฉลุยแน่นอนครับ!

แผนผังการต่อสายวงจร (Circuit Diagram) แบบจับมือขันน็อต

การเชื่อมต่อระบบไมโครโฟนและหน้าจอเข้ากับบอร์ดหลัก ให้จัดเรียงพินเชื่อมต่อเข้าด้วยกันตามตารางอ้างอิงด้านล่างนี้ได้เลยครับ เพื่อความสะดวกในการตรวจสอบ:

📌 ขาเชื่อมต่อของไมโครโฟน INMP441 I2S Mic -> ESP32

พินบนไมโครโฟน INMP441 ขาพินบนบอร์ด ESP32
VCC 3.3V
GND GND
WS GPIO 25
SD GPIO 33
SCK GPIO 26

📌 ขาเชื่อมต่อของหน้าจอ OLED Display (SSD1306) -> ESP32

พินบนหน้าจอ OLED ขาพินบนบอร์ด ESP32
VCC 3.3V
GND GND
SCL GPIO 22
SDA GPIO 21

(เทคนิคเพิ่มเติม: หากต้องการแปลงโปรเจกต์นี้ให้เป็นอุปกรณ์แบบพกพาสุดเจ๋ง เพื่อนๆ สามารถหาแบตเตอรี่ภายนอกขนาด 3.7V มาเชื่อมต่อเข้าที่พิน VIN และ GND ของบอร์ด ESP32 เพื่อนำไปใช้นอกสถานที่ได้ด้วยนะครับ)

ขั้นตอนการเซ็ตอัปบัญชี Wit.ai เพื่อคว้า Service Access Token

เพื่อให้บอร์ดของเราคุยกับระบบ AI คลาวด์รู้เรื่อง เราต้องไปเปิดประตูลงทะเบียนเพื่อรับรหัสประจำตัวก่อนครับ ตามขั้นตอนง่ายๆ ดังนี้:

  1. เข้าไปที่เว็บไซต์ https://wit.ai แล้วทำการล็อกอินด้วยบัญชี Meta (Facebook / Instagram) ของคุณได้เลย
  2. คลิกที่ปุ่ม '+ New App' จากนั้นตั้งชื่อแอปพลิเคชันของคุณให้เรียบร้อย (สามารถตั้งสถานะเป็น Private สำหรับโปรเจกต์ส่วนตัว หรือ Open สำหรับโปรเจกต์สาธารณะได้ตามใจชอบ) แล้วกด Create
  3. ไปที่เมนูด้านซ้าย เลือกไอคอน Management > Settings จากนั้นมองหาหัวข้อ Service Access Token แล้วกดคัดลอก (Copy) รหัสนั้นเก็บไว้เพื่อนำไปใส่ในโค้ดโปรแกรมของเราครับ

ติดตั้ง Arduino Libraries ที่จำเป็น

โปรเจกต์นี้จะมีการเรียกใช้งานไลบรารีทั้งหมด 6 ตัว โดยไลบรารี 4 ตัวแรก (WiFi.h, WiFiClientSecure.h, driver/i2s.h, Wire.h) เป็นไลบรารีมาตรฐานที่ติดมากับโครงสร้าง ESP32 Arduino Core อยู่แล้ว ไม่ต้องติดตั้งเพิ่ม ส่วนอีก 2 ตัวสุดท้ายสำหรับการขับหน้าจอ OLED เพื่อนๆ ต้องทำการค้นหาและกดติดตั้งด้วยตนเองผ่านระบบ Library Manager ในโปรแกรม Arduino IDE ครับ:

  • Adafruit_GFX.h: สำหรับช่วยวาดโครงสร้างภาพและกราฟิกพื้นฐานบนจอ
  • Adafruit_SSD1306.h: ตัวไดรเวอร์หลักที่ใช้ควบคุมชิปแสดงผลของจอ OLED 0.91 นิ้ว
⚠️ คำเตือนเรื่องความซับซ้อนของระบบบัดกรีและสตรีมมิ่งเสียง: เนื่องจากโปรเจกต์นี้ทำงานร่วมกับสัญญาณเสียงแบบดิจิทัล (I2S Protocol) และต้องมีการส่งชุดข้อมูลความเร็วสูงผ่านเน็ตไร้สายแบบ Chunked transfer編碼 โค้ดโปรแกรมและการสตรีมจึงมีความลึกและซับซ้อนพอสมควร หากเพื่อนๆ คนไหนอ่านแล้วรู้สึกมึนงง แนะนำให้กดเข้าไปดูรายละเอียดเชิงลึก ผังประกอบฉบับเต็ม และร่วมแชร์ไอเดียในคอมมูนิตี้ได้ที่ลิงก์ต้นฉบับด้านล่างสุดของหน้าเว็บนี้นะครับ!

กางโค้ดฉบับเต็มและอธิบายการทำงานแบบเคลียร์ๆ

นี่คือซอร์สโค้ดฉบับสมบูรณ์ที่พร้อมใช้งาน (Arduino Sketch) สำหรับอัปโหลดเข้าบอร์ดทดสอบของคุณครับ สังเกตตรงฟังก์ชัน sendAudioToWit() ซึ่งเป็นหัวใจสำคัญ มันจะคอยจับสัญญาณเสียงดิบ PCM จาก Buffer ไมค์สตรีมมิ่งยิงตรงเข้าคลาวด์ขณะที่คุณกดปุ่มเชื่อมต่อค้างไว้ครับ

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <driver/i2s.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// คอนฟิกหน้าจอ OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

// ใส่ข้อมูลเครือข่าย Wi-Fi และ Token ของ Wit.ai ตรงนี้เลย!
const char* ssid = "your_ssid";
const char* password = "your_password";
const char* service_access_token = "your_service_access_token";

// กำหนดพินเชื่อมต่อระบบเสียง I2S และปุ่มกด
#define I2S_WS 25
#define I2S_SD 33
#define I2S_SCK 26
#define BUTTON_PIN 4
#define SAMPLE_RATE 16000
#define I2S_PORT I2S_NUM_0
#define BUFFER_SIZE 1024
int16_t buffer[BUFFER_SIZE];

void updateDisplay(String message) {
  display.clearDisplay();
  display.setCursor(0, 0);
  display.println(message);
  display.display();
}

void setupI2S() {
  i2s_config_t config = {
    .mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX),
    .sample_rate = SAMPLE_RATE,
    .bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT,
    .channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT,
    .communication_format = I2S_COMM_FORMAT_STAND_I2S,
    .intr_alloc_flags = 0,
    .dma_buf_count = 8,
    .dma_buf_len = 512,
    .use_apll = false
  };
  i2s_pin_config_t pin_config = {
    .bck_io_num = I2S_SCK,
    .ws_io_num = I2S_WS,
    .data_out_num = -1,
    .data_in_num = I2S_SD
  };
  i2s_driver_install(I2S_PORT, &config, 0, NULL);
  i2s_set_pin(I2S_PORT, &pin_config);
}

void sendAudioToWit() {
  WiFiClientSecure client;
  client.setInsecure(); // ข้ามการตรวจสอบ SSL Cert เพื่อความเร็วในการรัน
  if (!client.connect("api.wit.ai", 443)) {
    updateDisplay("Conn Failed");
    return;
  }
  
  // สร้าง HTTP Header ส่งค่าข้อมูลเสียงดิบ mono 16kHz Little Endian เข้าสู่ระบบคลาวด์
  String header = "POST /speech?v=20230215 HTTP/1.1\r\n"
                  "Host: api.wit.ai\r\n"
                  "Authorization: Bearer " + String(service_access_token) + "\r\n"
                  "Content-Type: audio/raw;encoding=signed-integer;bits=16;rate=16000;endian=little\r\n"
                  "Transfer-Encoding: chunked\r\n"
                  "Connection: close\r\n\r\n";
  client.print(header);
  updateDisplay("Listening...");
  
  size_t bytes_read;
  while (digitalRead(BUTTON_PIN) == LOW) {
    i2s_read(I2S_PORT, buffer, sizeof(buffer), &bytes_read, portMAX_DELAY);
    if (bytes_read > 0) {
      client.printf("%X\r\n", bytes_read);
      client.write((uint8_t*)buffer, bytes_read);
      client.print("\r\n");
    }
  }
  client.print("0\r\n\r\n");
  updateDisplay("Processing...");
  
  String finalResult = "";
  while (client.connected() || client.available()) {
    if (client.available()) {
      String line = client.readStringUntil('\n');
      int textIndex = line.indexOf("\"text\": \"");
      if (textIndex != -1) {
        int start = textIndex + 9;
        int end = line.indexOf("\"", start);
        finalResult = line.substring(start, end);
      }
    }
  }
  client.stop();
  
  if (finalResult != "") {
    updateDisplay(finalResult);
    Serial.println("Final: " + finalResult);
  } else {
    updateDisplay("No speech detected");
  }
}

void setup() {
  Serial.begin(115200);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { 
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  
  updateDisplay("Connecting...");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) { delay(500); }
  
  setupI2S();
  updateDisplay("Ready.");
}

void loop() {
  if (digitalRead(BUTTON_PIN) == LOW) {
    sendAudioToWit();
    while(digitalRead(BUTTON_PIN) == LOW) delay(10);
    delay(200); 
  }
}
    

วิธีอัปโหลดและทดสอบระบบ Speech-to-Text

เมื่อเตรียมโค้ดและเปลี่ยนชื่อ SSID, รหัสผ่าน Wi-Fi และวาง Access Token เรียบร้อยแล้ว ให้กดปุ่มอัปโหลดตัวโปรแกรมใน Arduino IDE ได้เลยครับ วิธีการใช้งานจริงมีลำดับขั้นตอนง่ายๆ ดังนี้:

  1. เมื่อเปิดสวิตช์เครื่องจ่ายไฟครั้งแรก ตัวเครื่องจะทำการเชื่อมต่ออินเทอร์เน็ต และเมื่อหน้าจอ OLED ขึ้นคำว่า "Ready." แสดงว่าระบบพร้อมทำงานแล้วครับ
  2. ให้ทำกดสวิตช์ปุ่มกดค้างไว้ หน้าจอจะเปลี่ยนสเตตัสโชว์ข้อความคำว่า "Listening..."
  3. จากนั้นให้เพื่อนๆ พูดประโยคคำสั่งเสียงภาษาอังกฤษใส่ตัวไมโครโฟน INMP441 ในระยะห่างประมาณ 15-20 เซนติเมตร
  4. เมื่อพูดจบแล้วให้ปล่อยนิ้วออกจากปุ่มกด ระบบจะตัดสัญญาณและขึ้นว่า "Processing..." เพื่อส่งข้อมูลไปถอดรหัส
  5. รอประมวลผลบนคลาวด์เพียงชั่วอึดใจ ประโยคที่เราพูดไปก็จะถูกถอดคำและแสดงผลตัวอักษรวิ่งขึ้นบนหน้าจอ OLED และหน้าต่าง Serial Monitor ทันที! แต่ถ้าหากระบบดักฟังแล้วไม่พบเสียงพูดจะแจ้งว่า "No speech detected" แทนครับ

การแก้ไขปัญหาเบื้องต้น (Troubleshooting) ที่มักจะเจอ

หากประกอบวงจรหรือรันโปรแกรมแล้วระบบทำงานติดขัด ลองตรวจสอบจุดผิดพลาดตามคู่มือตารางด้านล่างนี้ได้เลยนะครับ:

อาการที่พบ สาเหตุที่คาดว่าจะเกิด แนวทางการแก้ไขปัญหา
เกิดเออเรอร์แจ้งว่าไม่พบไฟล์ Adafruit_GFX.h ลืมติดตั้งไลบรารีเสริมภายนอก เข้าไปที่ Library Manager เสิร์ชหาและกดติดตั้งไลบรารี Adafruit_GFX ให้เรียบร้อย
หน้าจอ OLED ค้างที่ข้อความ "Connecting…" เป็นเวลานาน ข้อมูลชื่อ Wi-Fi หรือรหัสผ่านไม่ถูกต้อง ตรวจเช็คความถูกต้องของตัวแปร SSID และ Password ในบรรทัดตั้งค่าโค้ดอีกครั้ง
หน้าจอ OLED แจ้งว่า "Conn Failed" บอร์ดไม่สามารถเชื่อมต่อเซิร์ฟเวอร์คลาวด์ได้ เช็คระบบอินเทอร์เน็ตที่บ้านว่าเครือข่ายออกนอกระบบผ่านพอร์ต 443 ได้ปกติหรือไม่
หน้าจอขึ้นข้อความ "No speech detected" ตลอดเวลา สายพินไมค์หลวม หรือคีย์ Token ผิด เช็คพินเชื่อมต่อ GPIO ของ INMP441 ทันที และตรวจสอบ Service Access Token ของ Wit.ai อีกครั้ง
ข้อความที่แปลเสร็จแล้วคลาดเคลื่อนไม่ตรงกับคำพูด มีเสียงรบกวนรอบข้างมาก หรือพูดห่างไมค์เกินไป ขยับมาพูดให้ชัดเจนในรัศมี 15–20 ซม. จากหน้าตัวไมค์ และพยายามลดเสียงรอบข้างลง
หน้าจอ OLED ดับมืดสนิท ไม่แสดงผลใดๆ ขาต่อระบบ I2C หลวมหรือแอดเดรสผิด ตรวจสอบการต่อสายพิน SDA/SCL ไปยังขา GPIO 21/22 และเช็คแอดเดรสหน้าจอว่าตรงกับ 0x3C หรือไม่

🖼️ คลังแกลเลอรี่ภาพประกอบและขั้นตอนทางเทคนิคเชิงลึก

คลิกเลือกดูรูปภาพอ้างอิงของไดอะแกรม ชิ้นส่วน และหน้าจอการตั้งค่าการอัปโหลดโค้ดเพิ่มเติม:

1. ภาพจำลองแผนผังระบบการทำงานภายใน (System Block Diagram):

Block Diagram of ESP32 Speech to Text

2. ชิ้นส่วนภาพฮาร์ดแวร์จริงก่อนนำมาประกอบวงจรทดลอง:

Components Required for Project

3. รูปภาพแผนผังผังวงจร (Circuit Wiring Diagram) ฉบับเต็ม:

Circuit Diagram of ESP32 Speech to Text

4. หน้าจอหลักในการลงทะเบียนใช้งานเพื่อสร้างแอปบนแพลตฟอร์มคลาวด์:

Wit Welcome Screen

5. ขั้นตอนระบุชื่อและเปิดสร้างแอปพลิเคชันตัวช่วยอัจฉริยะในหน้าเว็บ:

Creating a New App on Wit

6. หน้าต่างระบุตำแหน่งการเสิร์ชและติดตั้งไลบรารีของค่าย Adafruit ผ่านโปรแกรม:

Installing the External Adafruit Libraries

7. ตัวอย่างการแจ้งเตือนเมื่อระบบทำการคอมไพล์โค้ดและส่งข้อมูลลงบอร์ดสำเร็จ:

Code Successfully Uploaded Message

8. หน้าตาของระบบวงจรจริงเมื่อทำงานเสร็จสมบูรณ์ในโหมดรับฟังเสียง:

Working of the Circuit

9. ตัวอย่างการแจ้งเตือนประเภทข้อผิดพลาดเมื่อลืมติดตั้งตัวเสริมไลบรารี:

Library Missing Error Screen
แหล่งข้อมูลอ้างอิงและคลังความรู้ต้นฉบับ:
• เรียบเรียงจากบทความโครงงานหลักภาษาอังกฤษ: Circuit Digest (ESP32 Speech to Text using AI)
• คลังดาวน์โหลดซอร์สโค้ดทางการ: คลังโปรเจกต์เวอร์ชันเต็มบน GitHub Repository และดาวน์โหลด ไฟล์สเก็ตช์รหัสโปรแกรมบอร์ดแบบ ZIP
• แหล่งศึกษาค้นคว้าไอเดียสิ่งประดิษฐ์เพิ่มเติม: ไปลองส่อง คลังโปรเจกต์เสริมตัวอื่นๆ สำหรับบอร์ด ESP32 ได้เลยครับ!
คำเตือนและความรับผิดชอบ (Disclaimer): เนื้อหาทั้งหมดในหน้าบทความนี้ได้รับการแปล สรุป และจัดลำดับการเรียบเรียงมาจากคู่มือโครงงานในภาษาอังกฤษ ข้อมูลจำเพาะเชิงเทคนิค ลำดับขาพิน และฟังก์ชันในซอร์สโค้ดอาจมีความคลาดเคลื่อนอันเนื่องมาจากการแปลหรือการอัปเดตเวอร์ชันซอฟต์แวร์ของระบบในอนาคตได้ โปรดทำการตรวจสอบสเปกฮาร์ดแวร์ คู่มือนักพัฒนา และเอกสารทางการของทางผู้ให้บริการอย่างละเอียดอีกครั้งก่อนดำเนินการจ่ายกระแสไฟจริงให้กับระบบวงจรของคุณ
🛠️ สนใจช้อปอุปกรณ์ หรือเข้ามาแลกเปลี่ยนไอเดียพูดคุยกับพวกเรา?

ทางร้านเรามีบอร์ดไมโครคอนโทรลเลอร์ เซนเซอร์จับสัญญาณเสียง จอแสดงผล และเครื่องมือประกอบโปรเจกต์ดีๆ รออยู่เพียบ! พร้อมกลุ่มแชร์ความรู้สุดอบอุ่น เลือกช่องทางติดต่อด้านล่างนี้ได้เลยครับ!

 

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี