อย่าเพิ่งซื้อ ESP32 WROOM 32 ถ้ายังไม่ได้ดูลิปนี้

Поделиться
HTML-код
  • Опубликовано: 26 янв 2025

Комментарии • 59

  • @สุพัฒน์กลัดเดช

    รบกวนถามหน่อยครับ ผมซื้่อบอร์ด ที่ใช้ ESP32 WROOM 4 relay ใช้ CP2102 ต่อเขียนคำสั้งง่าย ๆ ดูจากคลิปอาจารย์ และกดปุ่ม D01 ที่อยู่ข้าง ๆ ปุ่ม EN แต่ก็ไม่สามารถconnectได้ครับ พอจะให้คำแนะนำเพิ่มเติมหรือเปล่าครับ

    • @saroj1961
      @saroj1961  Год назад

      ปัญหามันมีหลายประการที่ทำให้อัพโหลดไม่ได้
      1. pc มองเห็น comport หรือยัง?
      - ดูไดรเวอร์ ดูสาย usb
      2.ถ้าเห็น comport ให้เปิด Serial Monitor
      - กดปุ่มรีเซท (en) ที่บอร์ด ต้องมีข้อมูลขึ้นที่ Sial monitor
      - ถ้าไม่มีอะไรขึ้น ปัญหาอาจอยู่ที่การรับส่ง rx txจาก mcu ไป usb
      3. ปุ่ม boot เองกดแล้ว อาจไม่จ่าย gnd ไปยังขา GPIO0
      ฯลฯ

  • @XiaZ
    @XiaZ 2 года назад +10

    มันไม่ใช่แค่ขา DTR ครับ แต่เปิดการทำงานของทั้ง DTR/RTS ร่วมกัน
    ตามปกติ ESP32 หลังจากมันเริ่มทำงานหากขา 0 เป็น High มันจะเข้าสู่โหมด SPI Boot (โหมดทำงานปกติ)
    แต่ถ้าขา 0 และ 2 เป็น Low มันจะเข้าสู่โหมด Download Boot (โหมดรอรับ Firmware)
    ซึ่งไอ้ขา 0 นี่มันก็คือขา Boot นั่นแหละ ส่วนขา 2 มันมี R Pull-down อยู่ในตัวชิปอยู่แล้วจึงเป็น Low แน่นอน
    ลองทดสอบโดยการเอาขา 2 ขึ้น High ดูจะเห็นว่ามันไม่เข้า Download Boot เช่นกัน
    ทีนี้การใช้งานปกติเราก็แค่กดขา 0 (บนบอร์ดจะเขียนว่า Boot) ให้เป็น Low ตอนที่จ่ายไฟมัน มันก็จะพร้อมรับโปรแกรมแล้ว
    แต่ที่ทั่วไปเราไม่ต้องกดด้วยตัวเองเป็นเพราะบอร์ดพัฒนาเหล่านี้มันลักไก่โดยการเอาขา DTR กับ RTS ไปเปิดทรานซิสเตอร์ไขว้ (XOR logic) ที่จะดึง EN กับ Boot ลง GND นั่นเอง
    ทีนี้ก็อาศัยการเปิด Serial port ของ IC บนบอร์ดที่มาด้วยกัน (ส่วนใหญ่ CH340G ไม่ก็ CP2102) มันจะดึง RTS และ DTR ลงสลับกันตามลำดับ เท่ากับว่าเป็นเหมือนการกด Reset ตามด้วย Boot นั่นเอง
    แต่บอร์ดที่มันมีปัญหาตามที่เห็น มันมาจาก esptool ที่คุณใช้มันเป็นตัวเก่า มันมีบัคที่ทำให้ Arduino มันไม่เปิดปิด serial port ซ้ำๆ เราจึงต้องกด Boot แช้แล้ว Reset ในระหว่างการโปรแกรม
    และการที่เอา C ไปต่อเข้าขา EN ก็เป็นการเพิ่มระยะเวลาเปิดตัวของชิปเพื่อให้ตัวชิปมันเริ่มต้นช้าลงจะได้เปิดมาทันขา 0 โดน DTR ดึงลง GND พอดี
    ต้องอธิบายเพิ่มนิดนึงทำไมต่อ C จาก EN ลง GND ถึงทำให้ชิปเริ่มทำงานช้าลง
    ขา EN ของ ESP32 นั้นคือขา Chip Enable แปลว่า เปิดใช้งานชิป ซึ่งถ้ามันเป็น High ชิปก็จะทำงาน
    ทีนี้ใน Datasheet ของ ESP32 เค้าแนะนำให้ทำวงจร RC delay ให้ขา EN เพื่อหน่วงเวลาการเปิดทำงานของชิป ซึ่งมีไว้ป้องกันไฟไม่นิ่งในระหว่างการเริ่มทำงาน
    ขา EN ในบอร์ดส่วนใหญ่จึงมี R pull-up 10k กับ C 0.1uF ลง GND มาอยู่แล้ว (ค่าที่เค้าแนะนำใน Datasheet คือ 10k/1uF หรือก็คือ 63% ใน 10ms แต่ก็ปรับตามเสป็คแหล่งจ่ายของแต่ละคน)
    ทีนี้พอเราเอา C ไปใส่ให้มันก็กลายเป็นว่าเราไปเพิ่มค่า C ลง GND ให้สูงขึ้น ส่งผลให้ชิปมันเริ่มทำงานช้าลง ทำให้มันเปิดมาทันการกดขา 0 ลง GND จาก DTR นั่นเอง

    • @saroj1961
      @saroj1961  2 года назад

      ขอบคุณครับ

    • @Cosmos-2022
      @Cosmos-2022 10 месяцев назад +1

      ความรู้แน่น ๆ ขอบคุณมากครับ

  • @SuperGhust
    @SuperGhust Год назад

    eps32 พอถอดปลั๊กไฟเลี้ยงออก มันไม่กลับมาทำในเงื่อนไขใหม่เหรอครับ
    อย่างเช่น 9.00 - 20.00 ให้ปริ้น ข้อความออกมา พอถอดปลั๊กเสียบใหม่ ไม่ทำในเงื่อนไขนี้แล้วครับ ไม่ปริ้นข้อความออกมาแล้วครับ
    มีวิธีแก้ไขไหมครับ ขอบคุณครับ

  • @watcharapongsri5484
    @watcharapongsri5484 4 года назад +1

    ใช้ Esp32 เหมือนกันครับ
    ต้อนนี้ใช้วิธีจิ้มปุ่ม flash ระหว่าง upload เอาครับ

    • @saroj1961
      @saroj1961  4 года назад +1

      ต่อ C เข้าไปสักตัวชีวิตจะสะดวกขึ้นอีกหน่อย

    • @saroj1961
      @saroj1961  4 года назад +1

      เพิ่มเติมครับ
      ที่เคยถามผมไว้เรื่อง Task (ถ้าไว้ในอีกคลิปหนึ่ง )
      ผมเอามาตอบในคลิปนี้เพราะว่า multi thread มันทำได้บนบอร์ด ESP32 ซึ่งเป็น Dual core
      ถ้าเร่งด่วน ก็ดูของเจ้านี้ได้เลยอธิบายละเอียดมาก
      ruclips.net/video/jpVcCmh8sig/видео.html

    • @watcharapongsri5484
      @watcharapongsri5484 4 года назад

      @@saroj1961
      ขอบคุณครับ เดียวจะลองศึกษาดูครับ
      ขอเล่านิดนึง นะครับ พอดี ตอนนี้ ผมทำ project Iot เพืออ่านค่า volt/amp ของ solar cell ที่บ้าน ด้วย ESP32/ESP8266
      ใน code มีการทำงานหลักๆอยู่ 2 อย่าง คือ
      - อ่านค่า volt/amp จาก PZEM
      - และอีกอย่าง คือ รับคำสั่งจาก api เพือส้่งงาน RElay switch
      ใน void loop() { .. } ผมใช้ delay เพือเป๋นการ หน่วงเวลาในการอ่านค่าจาก PZEM
      ถ้าตั้งถี่ไป มันขอบอ่านค่าไม่ทัน หรือชอบค้าง เลยจำเป่้นต้อง Delay ไว้ประมาณ 3 วิ
      ปัญหาคือ พอผมใส่ Deplay(3000) พอผมส่งงาน เพื่อให้ trigger Relay (บางที) มันไม่ทำงานทันที
      เพราะมันต้องรอรอบ (รอบที่ผมใส่ delay 3 sec ไว้) กลายเป็นว่า มันต้องรอ ให้ครบ 3 วิ ก่อน ถึง ทำงาน step ต่อไป แทนที่มันจะ trigger relay ทันที
      ถ้ามี Relay หลาายๆ ตัว นี้ กด สั่งพร้อมๆ กัน รู้สึกไม่ทันใจ เท่าไร
      ผมเลยคิดว่า ถ้ามี task เข้ามาช่วยคงจะดี มันจะได้ทำงาน ทันทีหลังจาก call api เพือสั่งงาน Relay swich
      โดย thead แยกกัน ระหว่าง อ่านค่าจาก device และ รับคำสั่ง relay
      (PZEM ที่ผมใช้อยู่)
      th.aliexpress.com/i/32913960037.html
      ruclips.net/video/-27RCMravCk/видео.html

    • @saroj1961
      @saroj1961  4 года назад +1

      @@watcharapongsri5484 โหทำได้ขนาดนี้มาตายตรง delay()
      เข้าใจเลยครับ คือปัญหานี้ อาจแก้ด้วย thread
      ใน ESP32 นะครับ (จากตัวอย่างใครลิงค์ที่แปะไว้ให้)
      ได้แต่ปัญหาที่ตามมาแล้วผมยังไม่ได้ทดลองคือ แต่ละ Thread มันแยก working arear กันเลย ไม่รู้ว่ามันส่งผ่านตัวแปรข้ามไปหากันได้มั๊ย
      ...
      แต่ถึงอย่างไรในแต่ละเรื่องที่ต้องผ่าน delay ก็จะเจอปัญหาอยู่ดี
      ทางแก้ (ซึ่งต้องแก้ ไม่ว่าจะ มี multi thread)หรือไม่ คือ
      การใช้ mills() มาจัดการแทน delay() ทุกตัว
      มันคงคุยกันยาว inbox หาผมทาง facebook โทรคุยกันทาง massenger จะรู้เรื่องเร็วกว่าครับ
      (ดูช่องทางการติดต่อ ในรายละเอียดใต้คลิปครับ)

    • @watcharapongsri5484
      @watcharapongsri5484 4 года назад +1

      @@saroj1961 เดียวจะลองเอา mills() มาใช้ดู ว่ามันจะแก้ปัญหาตรงนี้ได้ไหม ขอบคุณมากครับพี่

  • @howdynun9967
    @howdynun9967 Год назад +1

    ขอบคุณมากๆ ครับ มีประโยชน์มากครับ

    • @saroj1961
      @saroj1961  Год назад +1

      ยินดีครับ
      ขอบคุณที่ติดตามชม และติดตามช่องนะครับ

  • @ภูวดลจําสูญ
    @ภูวดลจําสูญ 3 года назад +1

    ขออนุญาตสอบถามครับ ผมใช้บอร์ด Arduino DUE อยากส่งสัญญาณเสียงออกขา DAC ต้องเขียน code ยังไงครับ ขอบคุณครับ

    • @saroj1961
      @saroj1961  3 года назад

      เป็นคำถามที่ตอบยากที่สุดครับ
      input-process-output
      การที่เราจะเขียนโปรแกรมจะติดต่อกับสิ่งใดต้องรู้ว่าสิ่งนั้นต้องการอะไรเป็นอินพุท และคำสั่งที่จะสั่งการเขาเป็นอย่างไร

    • @ภูวดลจําสูญ
      @ภูวดลจําสูญ 3 года назад +1

      การทำงานจะเป็นแบบ รับอินพุทเป็นสัญญาณเสียงจากไมค์โครโฟน แล้วส่งเอาท์พุตเป็นสัญญาณเสียงออกลำโพงครับ อยากทดลองง่ายๆแบบนี้ก่อนครับ ผมลองเขียน code ให้ส่งเอาท์พุทออกขา DAC0 แล้ว ไม่ได้ครับ รบกวนอาจารย์ให้คำแนะนำหน่อยครับ🙏🙏🙏

    • @saroj1961
      @saroj1961  3 года назад

      @@ภูวดลจําสูญ แนะนำให้หาโครงงานลักษณะเดียวกันนี้หรือคล้ายๆกันนี้ แล้วเอาโค้ดมาทดลอง จะเป็นวิธีที่เข้าใกล้ความเป็นจริงได้เร็วกว่าครับ
      ถ้ามันทำงานได้ในระดับนึงเราก็แก้ไขดัดแปลงโค้คครับ

    • @ภูวดลจําสูญ
      @ภูวดลจําสูญ 3 года назад +1

      ขอบคุณครับอาจารย์🙏🙏

  • @Cosmos-2022
    @Cosmos-2022 10 месяцев назад +2

    Esp32 ตัวไหนปัญหาน้อยสุดครับ

    • @saroj1961
      @saroj1961  9 месяцев назад +1

      ผมไม่ได้ใช้ทุกตัวนะครับ ตัวที่ผเลือกใช้คือ ESP32-WROOM-32
      และคำถามที่ว่าตัวไหนปัญหาน้อย ต้องตอบว่าตัวมันเองไม่น่าจะมีปัญหา เพียงแต่เราพามันไปอยู่ในสภาพแวดล้อมที่มีปัญหามากกว่าครับ
      การออกแบบในระบบเอื้อกับการทำงานเป็นการป้องกันปัญหาครับ

  • @jirapaskonkokkruad2683
    @jirapaskonkokkruad2683 11 месяцев назад +1

    #เรียนสอบถามครับ#
    ESP32 NodMCU32S โหลดไม่ผ่านขึ้น Compilation error: #error "Software Serial is not supported on the ESP32" ท่าไดพอมีแนวทางแก้ไขไหมครับ

    • @saroj1961
      @saroj1961  11 месяцев назад +1

      ESP32 มี hardware Serial ถึง 3 ตัว Serial, Serial1, Serial2
      ไม่ต้องไปใช้ Software serial ในโค้ดให้เปลี่ยนไปใช้ Serial2 เลยมีขากำหนดชัดเจน tx2 rx2 สำหรับบอร์ด ESP32-WROOM-32 รุ่น 30 pin ครับ

    • @jirapaskonkokkruad2683
      @jirapaskonkokkruad2683 11 месяцев назад +1

      @@saroj1961 ขอบคุณครับ

  • @สหายสายโท
    @สหายสายโท Год назад +1

    c10ufกี่vครับอาจารย์

    • @saroj1961
      @saroj1961  Год назад

      10v ก็ได้ครับ เนื่องจากไฟของบอร์ดแค่3.3-5v ครับ

  • @boyboyguy1
    @boyboyguy1 3 года назад +1

    มันสามารถอัพโหลด code ผ่าน สาย micro usb ได้เส้นเดียวไหมครับ หรือว่าต้อง ไปทำขั้วต่อ ผ่าน พอต UART ไปยัง usb กับคอมพิวเตอร์ อีก

    • @saroj1961
      @saroj1961  3 года назад

      ช่อง usb ที่ตัวบอร์ดนั่นแหละครับ มันพร้อมอัพโหลดแล้ว เพียงแต่ขนาดกระบวนการ trig เท่านั้น
      ไม่ต้องกังวลครับ บอร์ด esp32 รุ่นหลังๆนี่ เขาจัดการมาให้เรียบร้อยหมดแล้ว
      คลิปนี้ออกมานานแล้ว ผมซื้อบอร์ดมาก็เจอปัญหาเลย ทำตามนั้นแล้วใช้ได้ครับ
      ถ้าใครซื้อมาแล้วทดลองอัพโหลดโปรแกรมไฟกระพริบดูก่อนเลย

    • @boyboyguy1
      @boyboyguy1 3 года назад +1

      @@saroj1961 thanks

  • @monchai61
    @monchai61 2 года назад +1

    ผมสร้างงานจาก stand alone มีจอ TFT Buzzer wifi และ อ่านค่า ADC
    มีปัญหา คือ เครื่องไม่สามารถเปิดบูตได้ ถ้าถอดสาย โปรแกรม USB ออก
    พยายามหาข้อมูลเกี่ยวกับการ GPIO Boot ก็ยังแก้ไขไม่ได้ครับ

    • @saroj1961
      @saroj1961  2 года назад +1

      เอาสาย usb แล้วจ่ายไฟเลี้ยงบอร์ด esp32 ทางไหนครับ
      ตรวจสอบว่า regulate 3.3V มีไฟเข้าทาง input หรือไม่

    • @monchai61
      @monchai61 2 года назад +1

      @@saroj1961 batt 7v4. Reg 3v3.
      ทุดครั้งที่เปิดเครื่อง ต้องมากดreset เองครับ

    • @saroj1961
      @saroj1961  2 года назад

      @@monchai61 ชุด power-on reset ไม่ทำงาน
      ลองตรวจสอบจากปุ่มรีเซท ไล่กลับไปน่าจะเจอชุด R-C ทำ power -on reset ครับ

  • @suteepornkidtang9744
    @suteepornkidtang9744 3 года назад +1

    สามารถทำให้เชื่อมต่อ WiFi รหัส 2 ชั้นได้ไหมคับ

    • @saroj1961
      @saroj1961  3 года назад

      รหัส 2 ชั้นคือยังไงครับ

  • @kop-ct6fc
    @kop-ct6fc 2 года назад +1

    ซื้อปุ๊บ คลิปนี้เด้งขึ้นมาปั๊บเลยครับ 5555

    • @saroj1961
      @saroj1961  2 года назад

      ยินดีครับถ้ามีประโยชน์ รุ่นหลังๆ ปัญหานี้ไม่มีแล้วครับ

  • @bluebell1886
    @bluebell1886 2 года назад +1

    ในกรณีที่ผมกด bootแล้วเมื่อกับไม่เชื่อมต่อกันจะเกิดจากอะไรครับ

    • @saroj1961
      @saroj1961  2 года назад

      มีหลายปัจจัยนะครับ เอาแบบว่าเจอบ่อยๆ
      1. สาย usb ไม่ใช่สาย data
      2. ชิพ usb ช่วงที่เป็น uart ttl เสีย
      3. usb driver ไม่ทำงาน
      ต้องค่อย พิสูจน์ไปครับ

  • @SuperGhust
    @SuperGhust 3 года назад +1

    ถ้าผมจะทำ faceunlock นี่ทำไงครับ

    • @saroj1961
      @saroj1961  3 года назад

      มีชาวอินเดียทำคลิปอยู่ครับ ลองหาดู
      อันที่จริงผมว่ามีทำกันเยอะนะ ส่วนใหญ่ก็ฝรั่งละครับ
      ถ้าผมทำได้แล้วจะเอามาลงครับ

  • @Luayja-12
    @Luayja-12 3 года назад +1

    ใส่ C 470 uf ได้มั้ยครับ

    • @saroj1961
      @saroj1961  3 года назад

      อยู่ในคลิปครับ

  • @พินิตแสงวัฒนะ

    ขอบคุณครับ

    • @saroj1961
      @saroj1961  Год назад

      ยินดีครับ
      ขอบคุณที่ติดตามรับชม

  • @ipaokub
    @ipaokub 3 года назад +1

    หา ไม่เจอ ว่าพอท ไหน ถอน แล้วเสียบก็เหมือนเดิม

    • @saroj1961
      @saroj1961  3 года назад

      มันก็เหมือนกับไม่ได้เสียบครับ สาเหตุ
      1. สาย usb ไม่ใช่สาย data
      2. driver ลงไม่สมบูรณ์ กรณ๊นี้จะมีเครื่องหมายตกใจ หรือ สามเหลี่ยมให้เราเห็น
      3. บอร์ดเสีย (อันนี้ถ้ามีตัวตัดสินอีกสักตัวก็จะฟันธงได้ง่าย)

    • @ipaokub
      @ipaokub 3 года назад +1

      @@saroj1961 ได้ละครับ จารย์ เปลี่ยนสายใหม่

    • @saroj1961
      @saroj1961  3 года назад

      @@ipaokub เยี่ยมครับ

  • @นิกรผิวสร้อย-ษ3น

    ทักทายครับพี่

  • @Xwen.
    @Xwen. 4 года назад +1

    ผมทำตามแล้วครับยังไม่ได้เลย เศร้ามากตอนนี้

    • @saroj1961
      @saroj1961  4 года назад

      ตรวจสอบทีละขั้นครับ
      1. IDE มองเห็น comport หรือยัง ..เช็คใน device manager ก่อนว่าใช่หรือไม่
      2. ถ้าเห็นคอมพอร์ต ให้ลองถอดดู คอมพอร์ตนั้นต้องหายไป ใส่กลับมันต้องกลับมาครับ

    • @Xwen.
      @Xwen. 4 года назад

      @@saroj1961 ขอบคุณครับ ยังไงถ้าไม่ได้ ผมจะทักเฟสไปครับ 🙏🏻

  • @กิตติพงษ์ภูศรี-ฏ2ฃ

    พอขึ้นจุดๆๆ ไห้กด bootค้าง ซัก2วิครับ

    • @saroj1961
      @saroj1961  4 года назад

      ใช่ครับ
      กับอีกย่างคือกดค้างไว้เลยพอขึ้น connect ด็ปล่อยมือ
      ขอบคุณสำหรับคำแนะนำ

  • @นิกรผิวสร้อย-ษ3น

    ยังจำได้นะครับ

    • @saroj1961
      @saroj1961  4 года назад

      จำได้สิครับ
      ติดตามรายการอาหารอยู่นะ ผมก็ทำอาหารรับประทานเองอยู่บ่อยๆครับ

  • @virginboy8823
    @virginboy8823 3 года назад +2

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

    • @saroj1961
      @saroj1961  3 года назад +1

      บอกไม่ได้หรอกครับ แต่มันมีวิธีการ
      การหาปัญหาก็ต้องทำการ debug ครับ
      ....
      คือการที่โปรแกรมไม่ทำงานเราต้องหาว่ามันไปหยุดตรงไหน
      เอา Serial.print("อะไรก็พิมพ์ออกไป") ตรงที่เราอยากรู้ว่าโปรแกรมมันทำงานมาถึงตรงนั้นหรือไม่
      ถ้าไม่ถึงก็ไล่ย้อนกับไปเรื่อยๆ แล้วคุณจะเห็นว่าปัญหามันน่าจะมาจากส่วนไหน