สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการสร้างรถยนต์ควบคุมระยะไกลพร้อมสตรีมวิดีโอสดโดยใช้ ESP32-CAM และส่วนประกอบที่หาได้ง่าย

สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

แม้ว่าจะมีรถยนต์หุ่นยนต์ควบคุมแบบไร้สายที่ใช้ ESP32 พร้อมกล้องในตัวมากมาย เช่น PiCar-X 2.0 หรือ Zeus Car แต่การสร้างบางอย่างด้วยตัวเองอาจสนุกและคุ้มค่ากว่า นั่นคือสิ่งที่เราจะทำในวันนี้ โดยสร้างรถ RC ของเราเองโดยใช้ชิ้นส่วนสำเร็จรูปและบอร์ด ESP32-CAM และเขียนเฟิร์มแวร์สำหรับบอร์ดนี้

โปรเจ็กต์นี้สาธิตระบบกล้องควบคุมระยะไกลที่ใช้ ESP32 ซึ่งสามารถส่งสตรีมวิดีโอสดผ่าน WebSocket และควบคุมมอเตอร์และเซอร์โวได้ แอปพลิเคชันเซิร์ฟเวอร์ Python จัดการการสื่อสาร WebSocket และจัดเตรียมอินเทอร์เฟซเว็บเพื่อดูและควบคุมอุปกรณ์ ESP32

คุณสมบัติ

  • การสตรีมวิดีโอสดจาก ESP32-CAM ไปยังเว็บเซิร์ฟเวอร์
  • การควบคุมมอเตอร์และเซอร์โวจากระยะไกลผ่านคำสั่ง WebSocket
  • การหมดเวลาอัตโนมัติเพื่อรีเซ็ตมอเตอร์และเซอร์โวเป็นสถานะเริ่มต้น
  • ฟีดวิดีโอแบบไดนามิกสำหรับแคนวาสหลายไคลเอนต์บนเซิร์ฟเวอร์

ข้อกำหนดด้านฮาร์ดแวร์

  • ESP32-CAM (โมดูล AI Thinker หรือบอร์ดที่เข้ากันได้)
  • มอเตอร์และเซอร์โวเชื่อมต่อกับพิน GPIO ที่เหมาะสม
  • แหล่งจ่ายไฟ 5V ที่เสถียรสำหรับ ESP32-CAM
  • การ์ด SD เสริม (หากจำเป็นสำหรับฟังก์ชันอื่น ๆ)
  • เครือข่ายไวไฟเพื่อการสื่อสาร

วัสดุ

  • ตัวถังรถ
  • การควบคุมความเร็วแบบอิเล็กทรอนิกส์: ฉันใช้เวอร์ชัน 30 แอมป์เพราะมีเอาต์พุต BEC ที่ดีกว่า - 5v ที่ 3 แอมป์ ดูเหมือนว่าจะมีกระแสเพียงพอสำหรับจ่ายไฟให้ทั้ง ESC และเซอร์โว
  • ที่ยึดแบตเตอรี่
  • เซลล์ 2 18650 3.6v หรือชุดแบตเตอรี่ 7.4v (ฉันเคยใช้ทั้งสองแบบ เซลล์มีความยืดหยุ่นมากกว่าสำหรับโครงการอื่น)
  • ESP32-CAM:(สำคัญมากที่จะต้องซื้อแบบที่มีเสาอากาศภายนอก และฉันใช้กล้องฟิชอาย 170 องศา)
  • จอยเกมบลูทูธ (ฉันใช้คอนโทรลเลอร์ PS4)

การเดินสายไฟ

ฉันถอดอะแดปเตอร์ JST 3 พินออกจากเซอร์โวที่มาพร้อมกับแชสซีรถแล้วใส่ลงในปลั๊ก JST 4 พินเพื่อเสียบเข้ากับ ESP32 จากนั้นฉันจึงต่อสายบวกและสายลบบนเซอร์โวและเพิ่มปลั๊ก JST ตัวเมีย 3 พินโดยใช้เครื่องมือจีบ ในที่สุด ฉันก็ต่อสายควบคุม ESC (สีขาว) เข้ากับปลั๊ก JST 4 พินและปลั๊กตัวเมีย 3 พิน มีลักษณะดังนี้:

ข้อกำหนดของซอฟต์แวร์

รหัส ESP32

ห้องสมุด

  • WiFi.h สำหรับการเชื่อมต่อ Wi-Fi
  • ArduinoWebsockets.h สำหรับการสื่อสาร WebSocket
  • esp_camera.h สำหรับการควบคุมกล้อง ESP32-CAM
  • ServoControl.h และ Esc.h สำหรับการควบคุมเซอร์โวและมอเตอร์
  • Arduino.h สำหรับฟังก์ชัน Arduino มาตรฐาน

เซิร์ฟเวอร์ Python

ความสัมพันธ์ที่ต้องพึ่งพา

ติดตั้งไลบรารี Python ดังต่อไปนี้:

pip3 install aiohttp opencv-python numpy

การกำหนดค่า

เฟิร์มแวร์ ESP32

1. แก้ไขไฟล์ secrets.h เพื่อรวมข้อมูลรับรอง Wi-Fi ของคุณและ URL เซิร์ฟเวอร์ WebSocket:

#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"
#define WS_SERVER_URL "ws://YourServerIP:Port"

2. ตรวจสอบให้แน่ใจว่าพิน GPIO สำหรับโมดูลกล้อง มอเตอร์ และเซอร์โวตรงกับการตั้งค่าฮาร์ดแวร์ของคุณ:

  • พิน GPIO ของกล้องได้รับการกำหนดค่าไว้ล่วงหน้าสำหรับบอร์ด AI Thinker ESP32-CAM
  • อัปเดตพินมอเตอร์และเซอร์โวหากจำเป็น

เซิร์ฟเวอร์ Python

วางสคริปต์เซิร์ฟเวอร์ไว้ในไดเร็กทอรีที่มีไฟล์ index.html สำหรับอินเทอร์เฟซเว็บ

เริ่มต้นเซิร์ฟเวอร์:

python3 server.py

สามารถเข้าถึงเซิร์ฟเวอร์ได้ที่ http://localhost:8080/

การใช้งาน

อีเอสพี32

  1. อัปโหลดแบบร่างที่ให้มาไปยัง ESP32-CAM ของคุณโดยใช้ Arduino IDE หรือแพลตฟอร์มที่เข้ากันได้
  2. ตรวจสอบเอาท์พุตแบบอนุกรมเพื่อให้แน่ใจว่าเชื่อมต่อกับ Wi-Fi และเซิร์ฟเวอร์ WebSocket ได้สำเร็จ

เซิฟเวอร์

  1. เรียกใช้สคริปต์เซิร์ฟเวอร์ Python
  2. เปิดอินเทอร์เฟซเว็บในเบราว์เซอร์เพื่อดูสตรีมวิดีโอสด
  3. ส่งคำสั่งควบคุมผ่านการเชื่อมต่อ WebSocket

คำสั่ง WebSocket

  • MOTOR:<ความเร็ว>: ตั้งค่าความเร็วของมอเตอร์ (-255 ถึง 255)
  • SERVO:<มุม>: ตั้งค่ามุมเซอร์โว (0 ถึง 180)
  • การควบคุม: <ความเร็ว>: <มุม>: ควบคุมความเร็วของมอเตอร์และมุมเซอร์โวพร้อมกัน

รายละเอียดทางเทคนิค

การเริ่มต้น ESP32

  • Wi-Fi: เชื่อมต่อกับเครือข่าย Wi-Fi ที่ระบุ
  • กล้อง: กำหนดค่า ESP32-CAM ด้วยการตั้งค่าที่เหมาะสมสำหรับการสตรีมวิดีโอ
  • WebSocket: สร้างการเชื่อมต่อ WebSocket กับเซิร์ฟเวอร์

การจัดการการหมดเวลา

หากไม่ได้รับคำสั่งควบคุมภายในระยะเวลาหมดเวลาที่กำหนดไว้ ความเร็วของมอเตอร์จะรีเซ็ตเป็น 0 และมุมเซอร์โวจะรีเซ็ตเป็น 90

เซิร์ฟเวอร์ Python

  • จัดการการสื่อสาร WebSocket กับไคลเอนต์ ESP32 หลายตัว
  • ประมวลผลเฟรมวิดีโอที่เข้ามาและจัดเรียงแบบไดนามิกในตาราง
  • สตรีมกริดของเฟรมวิดีโอไปยังอินเทอร์เฟซเว็บ

การแก้ไขปัญหา

  • ปัญหาการเชื่อมต่อ:
    • ตรวจสอบข้อมูลรับรอง Wi-Fi ใน secrets.h
    • ตรวจสอบว่าเซิร์ฟเวอร์ WebSocket กำลังทำงานและสามารถเข้าถึงได้
  • ปัญหาการสตรีมวิดีโอ:
    • ตรวจสอบให้แน่ใจว่ามีการจ่ายไฟให้กับ ESP32-CAM อย่างเหมาะสม
    • ตรวจสอบการตั้งค่าการเริ่มต้นใช้งานกล้อง

สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการสร้างรถยนต์ควบคุมระยะไกลพร้อมสตรีมวิดีโอสดโดยใช้ ESP32-CAM และส่วนประกอบที่หาได้ง่าย

นักเขียนบทความ
by 
นักเขียนบทความ
สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการสร้างรถยนต์ควบคุมระยะไกลพร้อมสตรีมวิดีโอสดโดยใช้ ESP32-CAM และส่วนประกอบที่หาได้ง่าย

แม้ว่าจะมีรถยนต์หุ่นยนต์ควบคุมแบบไร้สายที่ใช้ ESP32 พร้อมกล้องในตัวมากมาย เช่น PiCar-X 2.0 หรือ Zeus Car แต่การสร้างบางอย่างด้วยตัวเองอาจสนุกและคุ้มค่ากว่า นั่นคือสิ่งที่เราจะทำในวันนี้ โดยสร้างรถ RC ของเราเองโดยใช้ชิ้นส่วนสำเร็จรูปและบอร์ด ESP32-CAM และเขียนเฟิร์มแวร์สำหรับบอร์ดนี้

โปรเจ็กต์นี้สาธิตระบบกล้องควบคุมระยะไกลที่ใช้ ESP32 ซึ่งสามารถส่งสตรีมวิดีโอสดผ่าน WebSocket และควบคุมมอเตอร์และเซอร์โวได้ แอปพลิเคชันเซิร์ฟเวอร์ Python จัดการการสื่อสาร WebSocket และจัดเตรียมอินเทอร์เฟซเว็บเพื่อดูและควบคุมอุปกรณ์ ESP32

คุณสมบัติ

  • การสตรีมวิดีโอสดจาก ESP32-CAM ไปยังเว็บเซิร์ฟเวอร์
  • การควบคุมมอเตอร์และเซอร์โวจากระยะไกลผ่านคำสั่ง WebSocket
  • การหมดเวลาอัตโนมัติเพื่อรีเซ็ตมอเตอร์และเซอร์โวเป็นสถานะเริ่มต้น
  • ฟีดวิดีโอแบบไดนามิกสำหรับแคนวาสหลายไคลเอนต์บนเซิร์ฟเวอร์

ข้อกำหนดด้านฮาร์ดแวร์

  • ESP32-CAM (โมดูล AI Thinker หรือบอร์ดที่เข้ากันได้)
  • มอเตอร์และเซอร์โวเชื่อมต่อกับพิน GPIO ที่เหมาะสม
  • แหล่งจ่ายไฟ 5V ที่เสถียรสำหรับ ESP32-CAM
  • การ์ด SD เสริม (หากจำเป็นสำหรับฟังก์ชันอื่น ๆ)
  • เครือข่ายไวไฟเพื่อการสื่อสาร

วัสดุ

  • ตัวถังรถ
  • การควบคุมความเร็วแบบอิเล็กทรอนิกส์: ฉันใช้เวอร์ชัน 30 แอมป์เพราะมีเอาต์พุต BEC ที่ดีกว่า - 5v ที่ 3 แอมป์ ดูเหมือนว่าจะมีกระแสเพียงพอสำหรับจ่ายไฟให้ทั้ง ESC และเซอร์โว
  • ที่ยึดแบตเตอรี่
  • เซลล์ 2 18650 3.6v หรือชุดแบตเตอรี่ 7.4v (ฉันเคยใช้ทั้งสองแบบ เซลล์มีความยืดหยุ่นมากกว่าสำหรับโครงการอื่น)
  • ESP32-CAM:(สำคัญมากที่จะต้องซื้อแบบที่มีเสาอากาศภายนอก และฉันใช้กล้องฟิชอาย 170 องศา)
  • จอยเกมบลูทูธ (ฉันใช้คอนโทรลเลอร์ PS4)

การเดินสายไฟ

ฉันถอดอะแดปเตอร์ JST 3 พินออกจากเซอร์โวที่มาพร้อมกับแชสซีรถแล้วใส่ลงในปลั๊ก JST 4 พินเพื่อเสียบเข้ากับ ESP32 จากนั้นฉันจึงต่อสายบวกและสายลบบนเซอร์โวและเพิ่มปลั๊ก JST ตัวเมีย 3 พินโดยใช้เครื่องมือจีบ ในที่สุด ฉันก็ต่อสายควบคุม ESC (สีขาว) เข้ากับปลั๊ก JST 4 พินและปลั๊กตัวเมีย 3 พิน มีลักษณะดังนี้:

ข้อกำหนดของซอฟต์แวร์

รหัส ESP32

ห้องสมุด

  • WiFi.h สำหรับการเชื่อมต่อ Wi-Fi
  • ArduinoWebsockets.h สำหรับการสื่อสาร WebSocket
  • esp_camera.h สำหรับการควบคุมกล้อง ESP32-CAM
  • ServoControl.h และ Esc.h สำหรับการควบคุมเซอร์โวและมอเตอร์
  • Arduino.h สำหรับฟังก์ชัน Arduino มาตรฐาน

เซิร์ฟเวอร์ Python

ความสัมพันธ์ที่ต้องพึ่งพา

ติดตั้งไลบรารี Python ดังต่อไปนี้:

pip3 install aiohttp opencv-python numpy

การกำหนดค่า

เฟิร์มแวร์ ESP32

1. แก้ไขไฟล์ secrets.h เพื่อรวมข้อมูลรับรอง Wi-Fi ของคุณและ URL เซิร์ฟเวอร์ WebSocket:

#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"
#define WS_SERVER_URL "ws://YourServerIP:Port"

2. ตรวจสอบให้แน่ใจว่าพิน GPIO สำหรับโมดูลกล้อง มอเตอร์ และเซอร์โวตรงกับการตั้งค่าฮาร์ดแวร์ของคุณ:

  • พิน GPIO ของกล้องได้รับการกำหนดค่าไว้ล่วงหน้าสำหรับบอร์ด AI Thinker ESP32-CAM
  • อัปเดตพินมอเตอร์และเซอร์โวหากจำเป็น

เซิร์ฟเวอร์ Python

วางสคริปต์เซิร์ฟเวอร์ไว้ในไดเร็กทอรีที่มีไฟล์ index.html สำหรับอินเทอร์เฟซเว็บ

เริ่มต้นเซิร์ฟเวอร์:

python3 server.py

สามารถเข้าถึงเซิร์ฟเวอร์ได้ที่ http://localhost:8080/

การใช้งาน

อีเอสพี32

  1. อัปโหลดแบบร่างที่ให้มาไปยัง ESP32-CAM ของคุณโดยใช้ Arduino IDE หรือแพลตฟอร์มที่เข้ากันได้
  2. ตรวจสอบเอาท์พุตแบบอนุกรมเพื่อให้แน่ใจว่าเชื่อมต่อกับ Wi-Fi และเซิร์ฟเวอร์ WebSocket ได้สำเร็จ

เซิฟเวอร์

  1. เรียกใช้สคริปต์เซิร์ฟเวอร์ Python
  2. เปิดอินเทอร์เฟซเว็บในเบราว์เซอร์เพื่อดูสตรีมวิดีโอสด
  3. ส่งคำสั่งควบคุมผ่านการเชื่อมต่อ WebSocket

คำสั่ง WebSocket

  • MOTOR:<ความเร็ว>: ตั้งค่าความเร็วของมอเตอร์ (-255 ถึง 255)
  • SERVO:<มุม>: ตั้งค่ามุมเซอร์โว (0 ถึง 180)
  • การควบคุม: <ความเร็ว>: <มุม>: ควบคุมความเร็วของมอเตอร์และมุมเซอร์โวพร้อมกัน

รายละเอียดทางเทคนิค

การเริ่มต้น ESP32

  • Wi-Fi: เชื่อมต่อกับเครือข่าย Wi-Fi ที่ระบุ
  • กล้อง: กำหนดค่า ESP32-CAM ด้วยการตั้งค่าที่เหมาะสมสำหรับการสตรีมวิดีโอ
  • WebSocket: สร้างการเชื่อมต่อ WebSocket กับเซิร์ฟเวอร์

การจัดการการหมดเวลา

หากไม่ได้รับคำสั่งควบคุมภายในระยะเวลาหมดเวลาที่กำหนดไว้ ความเร็วของมอเตอร์จะรีเซ็ตเป็น 0 และมุมเซอร์โวจะรีเซ็ตเป็น 90

เซิร์ฟเวอร์ Python

  • จัดการการสื่อสาร WebSocket กับไคลเอนต์ ESP32 หลายตัว
  • ประมวลผลเฟรมวิดีโอที่เข้ามาและจัดเรียงแบบไดนามิกในตาราง
  • สตรีมกริดของเฟรมวิดีโอไปยังอินเทอร์เฟซเว็บ

การแก้ไขปัญหา

  • ปัญหาการเชื่อมต่อ:
    • ตรวจสอบข้อมูลรับรอง Wi-Fi ใน secrets.h
    • ตรวจสอบว่าเซิร์ฟเวอร์ WebSocket กำลังทำงานและสามารถเข้าถึงได้
  • ปัญหาการสตรีมวิดีโอ:
    • ตรวจสอบให้แน่ใจว่ามีการจ่ายไฟให้กับ ESP32-CAM อย่างเหมาะสม
    • ตรวจสอบการตั้งค่าการเริ่มต้นใช้งานกล้อง

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

สร้างรถ RC สี่ล้อด้วยบอร์ด ESP32-CAM และชิ้นส่วนสำเร็จรูป

บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการสร้างรถยนต์ควบคุมระยะไกลพร้อมสตรีมวิดีโอสดโดยใช้ ESP32-CAM และส่วนประกอบที่หาได้ง่าย

Lorem ipsum dolor amet consectetur adipiscing elit tortor massa arcu non.

แม้ว่าจะมีรถยนต์หุ่นยนต์ควบคุมแบบไร้สายที่ใช้ ESP32 พร้อมกล้องในตัวมากมาย เช่น PiCar-X 2.0 หรือ Zeus Car แต่การสร้างบางอย่างด้วยตัวเองอาจสนุกและคุ้มค่ากว่า นั่นคือสิ่งที่เราจะทำในวันนี้ โดยสร้างรถ RC ของเราเองโดยใช้ชิ้นส่วนสำเร็จรูปและบอร์ด ESP32-CAM และเขียนเฟิร์มแวร์สำหรับบอร์ดนี้

โปรเจ็กต์นี้สาธิตระบบกล้องควบคุมระยะไกลที่ใช้ ESP32 ซึ่งสามารถส่งสตรีมวิดีโอสดผ่าน WebSocket และควบคุมมอเตอร์และเซอร์โวได้ แอปพลิเคชันเซิร์ฟเวอร์ Python จัดการการสื่อสาร WebSocket และจัดเตรียมอินเทอร์เฟซเว็บเพื่อดูและควบคุมอุปกรณ์ ESP32

คุณสมบัติ

  • การสตรีมวิดีโอสดจาก ESP32-CAM ไปยังเว็บเซิร์ฟเวอร์
  • การควบคุมมอเตอร์และเซอร์โวจากระยะไกลผ่านคำสั่ง WebSocket
  • การหมดเวลาอัตโนมัติเพื่อรีเซ็ตมอเตอร์และเซอร์โวเป็นสถานะเริ่มต้น
  • ฟีดวิดีโอแบบไดนามิกสำหรับแคนวาสหลายไคลเอนต์บนเซิร์ฟเวอร์

ข้อกำหนดด้านฮาร์ดแวร์

  • ESP32-CAM (โมดูล AI Thinker หรือบอร์ดที่เข้ากันได้)
  • มอเตอร์และเซอร์โวเชื่อมต่อกับพิน GPIO ที่เหมาะสม
  • แหล่งจ่ายไฟ 5V ที่เสถียรสำหรับ ESP32-CAM
  • การ์ด SD เสริม (หากจำเป็นสำหรับฟังก์ชันอื่น ๆ)
  • เครือข่ายไวไฟเพื่อการสื่อสาร

วัสดุ

  • ตัวถังรถ
  • การควบคุมความเร็วแบบอิเล็กทรอนิกส์: ฉันใช้เวอร์ชัน 30 แอมป์เพราะมีเอาต์พุต BEC ที่ดีกว่า - 5v ที่ 3 แอมป์ ดูเหมือนว่าจะมีกระแสเพียงพอสำหรับจ่ายไฟให้ทั้ง ESC และเซอร์โว
  • ที่ยึดแบตเตอรี่
  • เซลล์ 2 18650 3.6v หรือชุดแบตเตอรี่ 7.4v (ฉันเคยใช้ทั้งสองแบบ เซลล์มีความยืดหยุ่นมากกว่าสำหรับโครงการอื่น)
  • ESP32-CAM:(สำคัญมากที่จะต้องซื้อแบบที่มีเสาอากาศภายนอก และฉันใช้กล้องฟิชอาย 170 องศา)
  • จอยเกมบลูทูธ (ฉันใช้คอนโทรลเลอร์ PS4)

การเดินสายไฟ

ฉันถอดอะแดปเตอร์ JST 3 พินออกจากเซอร์โวที่มาพร้อมกับแชสซีรถแล้วใส่ลงในปลั๊ก JST 4 พินเพื่อเสียบเข้ากับ ESP32 จากนั้นฉันจึงต่อสายบวกและสายลบบนเซอร์โวและเพิ่มปลั๊ก JST ตัวเมีย 3 พินโดยใช้เครื่องมือจีบ ในที่สุด ฉันก็ต่อสายควบคุม ESC (สีขาว) เข้ากับปลั๊ก JST 4 พินและปลั๊กตัวเมีย 3 พิน มีลักษณะดังนี้:

ข้อกำหนดของซอฟต์แวร์

รหัส ESP32

ห้องสมุด

  • WiFi.h สำหรับการเชื่อมต่อ Wi-Fi
  • ArduinoWebsockets.h สำหรับการสื่อสาร WebSocket
  • esp_camera.h สำหรับการควบคุมกล้อง ESP32-CAM
  • ServoControl.h และ Esc.h สำหรับการควบคุมเซอร์โวและมอเตอร์
  • Arduino.h สำหรับฟังก์ชัน Arduino มาตรฐาน

เซิร์ฟเวอร์ Python

ความสัมพันธ์ที่ต้องพึ่งพา

ติดตั้งไลบรารี Python ดังต่อไปนี้:

pip3 install aiohttp opencv-python numpy

การกำหนดค่า

เฟิร์มแวร์ ESP32

1. แก้ไขไฟล์ secrets.h เพื่อรวมข้อมูลรับรอง Wi-Fi ของคุณและ URL เซิร์ฟเวอร์ WebSocket:

#define WIFI_SSID "YourWiFiSSID"
#define WIFI_PASSWORD "YourWiFiPassword"
#define WS_SERVER_URL "ws://YourServerIP:Port"

2. ตรวจสอบให้แน่ใจว่าพิน GPIO สำหรับโมดูลกล้อง มอเตอร์ และเซอร์โวตรงกับการตั้งค่าฮาร์ดแวร์ของคุณ:

  • พิน GPIO ของกล้องได้รับการกำหนดค่าไว้ล่วงหน้าสำหรับบอร์ด AI Thinker ESP32-CAM
  • อัปเดตพินมอเตอร์และเซอร์โวหากจำเป็น

เซิร์ฟเวอร์ Python

วางสคริปต์เซิร์ฟเวอร์ไว้ในไดเร็กทอรีที่มีไฟล์ index.html สำหรับอินเทอร์เฟซเว็บ

เริ่มต้นเซิร์ฟเวอร์:

python3 server.py

สามารถเข้าถึงเซิร์ฟเวอร์ได้ที่ http://localhost:8080/

การใช้งาน

อีเอสพี32

  1. อัปโหลดแบบร่างที่ให้มาไปยัง ESP32-CAM ของคุณโดยใช้ Arduino IDE หรือแพลตฟอร์มที่เข้ากันได้
  2. ตรวจสอบเอาท์พุตแบบอนุกรมเพื่อให้แน่ใจว่าเชื่อมต่อกับ Wi-Fi และเซิร์ฟเวอร์ WebSocket ได้สำเร็จ

เซิฟเวอร์

  1. เรียกใช้สคริปต์เซิร์ฟเวอร์ Python
  2. เปิดอินเทอร์เฟซเว็บในเบราว์เซอร์เพื่อดูสตรีมวิดีโอสด
  3. ส่งคำสั่งควบคุมผ่านการเชื่อมต่อ WebSocket

คำสั่ง WebSocket

  • MOTOR:<ความเร็ว>: ตั้งค่าความเร็วของมอเตอร์ (-255 ถึง 255)
  • SERVO:<มุม>: ตั้งค่ามุมเซอร์โว (0 ถึง 180)
  • การควบคุม: <ความเร็ว>: <มุม>: ควบคุมความเร็วของมอเตอร์และมุมเซอร์โวพร้อมกัน

รายละเอียดทางเทคนิค

การเริ่มต้น ESP32

  • Wi-Fi: เชื่อมต่อกับเครือข่าย Wi-Fi ที่ระบุ
  • กล้อง: กำหนดค่า ESP32-CAM ด้วยการตั้งค่าที่เหมาะสมสำหรับการสตรีมวิดีโอ
  • WebSocket: สร้างการเชื่อมต่อ WebSocket กับเซิร์ฟเวอร์

การจัดการการหมดเวลา

หากไม่ได้รับคำสั่งควบคุมภายในระยะเวลาหมดเวลาที่กำหนดไว้ ความเร็วของมอเตอร์จะรีเซ็ตเป็น 0 และมุมเซอร์โวจะรีเซ็ตเป็น 90

เซิร์ฟเวอร์ Python

  • จัดการการสื่อสาร WebSocket กับไคลเอนต์ ESP32 หลายตัว
  • ประมวลผลเฟรมวิดีโอที่เข้ามาและจัดเรียงแบบไดนามิกในตาราง
  • สตรีมกริดของเฟรมวิดีโอไปยังอินเทอร์เฟซเว็บ

การแก้ไขปัญหา

  • ปัญหาการเชื่อมต่อ:
    • ตรวจสอบข้อมูลรับรอง Wi-Fi ใน secrets.h
    • ตรวจสอบว่าเซิร์ฟเวอร์ WebSocket กำลังทำงานและสามารถเข้าถึงได้
  • ปัญหาการสตรีมวิดีโอ:
    • ตรวจสอบให้แน่ใจว่ามีการจ่ายไฟให้กับ ESP32-CAM อย่างเหมาะสม
    • ตรวจสอบการตั้งค่าการเริ่มต้นใช้งานกล้อง