สารบัญ:
- ขั้นตอนที่ 1: ดูวิดีโอ
- ขั้นตอนที่ 2: ขั้นตอนเบื้องต้น: การตั้งค่าสำหรับการเขียนโปรแกรม ESP8266
- ขั้นตอนที่ 3: วิธีที่ 1: "กบ" ปักหมุดโปรแกรมเมอร์
- ขั้นตอนที่ 4: วิธีที่ 2: การใช้ USB เป็น Serial Converter โดยทั่วไป
- ขั้นตอนที่ 5: วิธีที่ 3: การรีเซ็ตโปรแกรมเมอร์อัตโนมัติโดยใช้ NodeMCU
วีดีโอ: 3 วิธีง่ายๆ ในการเขียนโปรแกรมโมดูล ESP8266 12X: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
หากคุณไม่คุ้นเคยกับไมโครคอนโทรลเลอร์ ESP8266 ฉันรู้สึกว่าคุณพลาดไปแล้วจริงๆ! สิ่งเหล่านี้น่าเหลือเชื่อ: ราคาถูก ทรงพลัง และเหนือสิ่งอื่นใดคือมี WiFi ในตัว! ESP8266 เริ่มต้นการเดินทางด้วยการเพิ่ม WiFi บนบอร์ดสำหรับบอร์ด Arduino แบบดั้งเดิม แต่หลังจากนั้นไม่นาน ชุมชนก็ได้ตระหนักถึงพลังของมันและเพิ่มการสนับสนุน เพื่อให้สามารถเขียนโปรแกรมกับ Arduino IDE ได้โดยตรง
ทุกวันนี้ หากคุณต้องการใช้ ESP8266 สำหรับโปรเจ็กต์ของคุณ ฉันขอแนะนำให้ใช้บอร์ดพัฒนา เช่น Wemos D1 Mini* (ราคาส่ง $2.50 !!) หรือ Adafruit Feather Huzzah บอร์ดเหล่านี้มีหมุดที่ใช้งานได้ทั้งหมด ซึ่งสามารถตั้งโปรแกรมได้อย่างง่ายดายผ่านตัวเชื่อมต่อ micro USB และมีตัวควบคุม 3.3V ในตัว แต่ถ้าคุณต้องการใช้ ESP8266 ในโครงการที่มี PCB แบบกำหนดเองล่ะ วิธีที่ง่ายที่สุดคือการใช้โมดูล ESP12 และในคำแนะนำนี้ ฉันจะแสดงวิธีการเขียนโปรแกรมง่ายๆ สองสามวิธีให้คุณดู* = ลิงก์พันธมิตร
ขั้นตอนที่ 1: ดูวิดีโอ
นี่คือวิดีโอที่มีข้อมูลทั้งหมดที่มีอยู่ใน Instructable หากคุณต้องการลองดู ในช่องของฉัน ฉันทำงานกับ ESP8266 เยอะมาก ดังนั้นโดยทั่วไปแล้วช่องของฉันก็ควรค่าแก่การดูว่าคุณสนใจสิ่งนั้นหรือไม่!
ขั้นตอนที่ 2: ขั้นตอนเบื้องต้น: การตั้งค่าสำหรับการเขียนโปรแกรม ESP8266
หากคุณไม่เคยใช้ ESP8266 หรือ Arduino มาก่อน เราจะต้องตั้งค่าซอฟต์แวร์เล็กน้อย ฉันมีวิดีโอเฉพาะสำหรับสิ่งนี้ มีความยาวเพียง 5 นาทีและผ่านทุกสิ่งที่คุณต้องการในการตั้งค่า
หากวิดีโอไม่ใช่สิ่งที่คุณต้องการจริงๆ ลองดูบทที่ 2 ของ IoT Class ที่ยอดเยี่ยมของ Becky ซึ่งจะครอบคลุมทุกสิ่งที่คุณต้องการเช่นกัน
ก่อนที่คุณจะย้ายไปยังส่วนถัดไป คุณควรจะสามารถอัปโหลดภาพร่างง่ายๆ ไปยัง ESP8266 ได้ (เช่น ตัวอย่างการกะพริบตาที่กล่าวถึงทั้งในวิดีโอและบทเรียนของ Becky)
ขั้นตอนที่ 3: วิธีที่ 1: "กบ" ปักหมุดโปรแกรมเมอร์
นี่อาจเป็นวิธีที่ง่ายที่สุดในการเขียนโปรแกรมโมดูล ESP12 โดยพื้นฐานแล้วคุณเพียงแค่เปิดโมดูลลงในบอร์ดแล้วมันก็ทำงานเหมือนกับหนึ่งในบอร์ดพัฒนาที่กล่าวถึงก่อนหน้านี้ ฉันเลือกบอร์ด Wemos D1 Mini จากเมนูดร็อปดาวน์เมื่อตั้งโปรแกรม ข้อเสียของวิธีนี้คือ:
- โปรแกรมเมอร์มีราคาแพงเล็กน้อยหากคุณสร้างบอร์ดเพียงไม่กี่บอร์ด
- บอร์ดสามารถตั้งโปรแกรมได้ด้วยวิธีนี้เท่านั้นก่อนที่จะบัดกรีบน PCB. ของคุณ
อันที่ฉันซื้อมาจาก Aliexpress แต่ฉันเชื่อว่าผู้ออกแบบดั้งเดิมคือผู้ใช้ของ Tindie ชื่อ Fred ตอนนั้นขายหมดแล้ว เลยลงเอยที่ Aliexpress แต่เดี๋ยวจะลิงค์ให้ทั้งคู่
- Aliexpress Pop-in ESP โมดูลโปรแกรมเมอร์*
- Fred's Frog Pin โปรแกรมเมอร์โมดูล ESP
* = ลิงค์พันธมิตร
ขั้นตอนที่ 4: วิธีที่ 2: การใช้ USB เป็น Serial Converter โดยทั่วไป
สำหรับวิธีถัดไป เราจะนำโมดูล ESP เข้าสู่โหมดการเขียนโปรแกรมด้วยตนเอง จากนั้นใช้ตัวแปลง USB เป็นซีเรียลใดๆ ก็ตามเพื่อตั้งโปรแกรม ESP8266 แม้แต่ PL2303 อันหนึ่ง* ที่มีราคา 50c ส่งงาน!
ดำเนินการตามปกติ:
ก่อนที่เราจะเริ่มต้นเขียนโปรแกรม เราต้องดูก่อนว่าส่วนประกอบภายนอกใดบ้างที่ ESP8266 จำเป็นต้องใช้ สำหรับการใช้งานปกติ โมดูล ESP-12 ต้องการสิ่งต่อไปนี้
- EN, RST และ GPIO 0 ต้องดึงให้สูงโดยใช้ตัวต้านทาน 10K
- ต้องดึง GPIO 15 ไปที่กราวด์โดยใช้ตัวต้านทาน 10K
- แหล่งจ่ายไฟ 3.3V ที่มีกระแสไฟฟ้าประมาณ 250mA (แนะนำให้ใช้ฝาปิดระหว่าง VCC และ GND)
ด้วยการกำหนดค่าข้างต้น ESP8266 เมื่อเปิดเครื่องจะอยู่ในโหมดการทำงานปกติ ดังนั้นจะเรียกใช้ภาพร่างที่คุณตั้งโปรแกรมไว้ คุณสามารถซื้อบอร์ดฝ่าวงล้อมสำหรับโมดูล ESP-12* ซึ่งมีประโยชน์มากสำหรับการทดสอบการตั้งค่าต่างๆ โมดูลมีการตั้งค่าตัวต้านทานสำหรับ EN และ GPIO 15 พิน ดังนั้นคุณจะต้องเพิ่มตัวต้านทานแบบดึงขึ้นสำหรับ RST และ GPIO 0
เปิดใช้งานโหมดการเขียนโปรแกรม:
เพื่อให้เข้าสู่โหมดการเขียนโปรแกรม ต้องดึง GPIO 0 ให้ต่ำเมื่อ ESP เริ่มทำงาน วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการเพิ่มปุ่มลงใน GPIO 0 และพิน RST ที่เชื่อมต่อกับกราวด์เมื่อกด จากนั้นเพื่อเปิดใช้งานโหมดแฟลช คุณเพียงแค่
- กดปุ่ม GPIO 0 ค้างไว้
- กดปุ่ม RST
- จากนั้นปล่อยมือทั้งสองปุ่ม
คุณไม่จำเป็นต้องทำตามลำดับนี้ในช่วงเวลาใดเวลาหนึ่งระหว่างกระบวนการอัปโหลดหรืออะไรก็ตาม เมื่อ ESP อยู่ในโหมดการเขียนโปรแกรม มันจะอยู่ที่นั่นจนกว่าจะมีการรีเซ็ตครั้งถัดไป ดังนั้นเพียงทำตามขั้นตอนเมื่อใดก็ได้ก่อนที่จะอัปโหลด
การเขียนโปรแกรมด้วยอะแดปเตอร์ USB เป็นซีเรียล:
การเปิดใช้งานโหมดโปรแกรมเป็นเพียงครึ่งเดียว ตอนนี้เราจำเป็นต้องตั้งโปรแกรมโมดูลจริงๆ อะแดปเตอร์ USB เป็นซีเรียลส่วนใหญ่ไม่สามารถจ่ายกระแสไฟให้กับ ESP8266 ได้เพียงพอ ดังนั้นจึงแนะนำให้คุณจ่ายไฟให้กับ ESP8266 โดยใช้แหล่งจ่ายกระแสไฟ 3.3V ภายนอก
ในการต่อโปรแกรมเมอร์คุณต้องเชื่อมต่อพินต่อไปนี้ (แสดงในภาพด้านบนด้วย):
- เชื่อมต่อ TX ของโปรแกรมเมอร์กับ RX ของ ESP8266 (ไม่ใช่การพิมพ์ผิด การเชื่อมต่อจะกลับกัน)
- เชื่อมต่อ RX ของโปรแกรมเมอร์กับ TX ของ ESP8266
- เชื่อมต่อกราวด์ของโปรแกรมเมอร์กับกราวด์ของ ESP8266
ในการอัปโหลดภาพสเก็ตช์ของคุณ ให้ทำตามขั้นตอนต่อไปนี้:
- เลือกหมายเลขพอร์ตของ Serial adapter ของคุณ (Tools->Port)
- เปิดใช้งานโหมดการเขียนโปรแกรมบน ESP8266 ตามที่อธิบายไว้ข้างต้น
- คลิกปุ่มอัปโหลด (หากล้มเหลวให้ตรวจสอบการเดินสายของคุณอีกครั้งและลองวางบอร์ดของคุณเข้าสู่โหมดการเขียนโปรแกรมอีกครั้ง)
- คลิกปุ่มรีเซ็ตเมื่อการอัปโหลดเสร็จสิ้น
นี่คือการตั้งค่าบอร์ดที่ฉันใช้เมื่ออัปโหลดโดยใช้วิธีนี้:
- บอร์ด: โมดูล ESP8266 ทั่วไป
- โหมดแฟลช: DIO
- ขนาดแฟลช: 4M (3M Spiffs)
- รีเซ็ตวิธีการ: ck
- ความถี่แฟลช: 40MHz
- ความเร็วในการอัพโหลด: 115200
สิ่งสุดท้ายที่ควรทราบคือคำจำกัดความ LED_BUILIN สำหรับโมดูล ESP8266 ทั่วไปชี้ไปที่พิน 1 แต่ LED ในตัวของโมดูล ESP12 เชื่อมต่อกับพิน 2 (มันทำงานต่ำเช่นเดียวกับ FYI) ดังนั้น หากคุณกำลังทดสอบร่างการกะพริบตา คุณจะต้องใช้หมายเลข 2 แทน LED_BUILTIN
* = ลิงค์พันธมิตร
ขั้นตอนที่ 5: วิธีที่ 3: การรีเซ็ตโปรแกรมเมอร์อัตโนมัติโดยใช้ NodeMCU
หากคุณใช้บอร์ดพัฒนา ESP คุณจะสังเกตเห็นว่าโดยพื้นฐานแล้วบอร์ดทั้งหมดไม่ต้องการให้คุณเปิดใช้งานโหมดการเขียนโปรแกรมด้วยตนเองโดยใช้ปุ่มต่างๆ แล้วจะทำอย่างไร
ชิป USB กับซีเรียลส่วนใหญ่มีพินเพิ่มเติมที่ส่งสัญญาณออกในขั้นตอนต่างๆ ของกระบวนการอัปโหลด และด้วยการใช้วงจรภายนอกบางส่วน เป็นไปได้ที่จะทริกเกอร์ GPIO 0 ที่ต่ำและจำเป็นต้องรีเซ็ต RuiMoteiro มีคำแนะนำในหัวข้อนี้โดยใช้บอร์ด FTDI และ ESP8266
แต่ฉันคิดว่ามีแนวทางที่ง่ายกว่านี้ และสิ่งที่ดียิ่งกว่าคือมีโอกาสดีที่คุณมีทุกสิ่งที่ต้องทำอยู่แล้ว! คุณสามารถใช้บอร์ดพัฒนา ESP8266 เช่น NodeMCU เป็นโปรแกรมเมอร์*
ข้อดีของการใช้ NodeMCU คืออะไร?
ข้อดีหลักของการใช้ NodeMCU เป็นโปรแกรมเมอร์มีดังต่อไปนี้:
- คุณสามารถจ่ายไฟให้กับ ESP8266 ได้โดยตรงจากพิน 3V ของ NodeMCU
- จะจัดการการรีเซ็ตอัตโนมัติ/เปิดใช้งานโหมดการเขียนโปรแกรม
- ราคาส่งประมาณ 2.50 เหรียญสหรัฐ (และสามารถใช้เป็นบอร์ด dev ปกติได้เมื่อไม่ได้เขียนโปรแกรมอื่น ๆ !)
คุณสามารถใช้แนวทางเดียวกันนี้กับบอร์ด dev ใด ๆ ก็ได้ที่ชิปเปิดใช้งานพินของ ESP8266
มันทำงานอย่างไร?
ฉันได้รับแนวคิดนี้จากผู้ใช้ YouTube ชื่อ Mika Kurkela ในวิดีโอของเขา เขาใช้ NodeMCU เพื่อตั้งโปรแกรมโมดูล ESP-01 แต่เราสามารถใช้แนวคิดเดียวกันนี้กับโมดูล ESP12 ได้
โดยทั่วไป เราจะปิดการใช้งาน ESP8266 บน NodeMCU โดยบังคับให้พิน EN ต่ำ ซึ่งจะป้องกันไม่ให้โมดูล ESP8266 บน NodeMCU ทำการบูท จากนั้นเราจะเชื่อมต่อพินที่เกี่ยวข้องทั้งหมดของบอร์ด NodeMCU กับ ESP8266 ภายนอกของเรา
การเดินสายไฟ
ในการต่อสาย คุณจะต้องใช้การเดินสาย ESP8266 มาตรฐานดังที่แสดงในขั้นตอนก่อนหน้า จากนั้นจึงเพิ่มการเชื่อมต่อต่อไปนี้ (แสดงในภาพด้านบนด้วย):
- เชื่อมต่อ 3V ของ NodeMCU กับ VCC ของ ESP8266
- เชื่อมต่อ GND กับ GND
- เชื่อมต่อ TX ของ NodeMCU กับ TX ของ ESP8266 (ซึ่งต่างจากขั้นตอนก่อนหน้า)
- เชื่อมต่อ RX ของ NodeMCU กับ RX ของ ESP8266
- เชื่อมต่อ D3 ของ NodeMCU กับ GPIO 0 ของ ESP8266 (D3 คือ GPIO 0 ของ ESP8266)
- เชื่อมต่อ RST ของ NodeMCU กับ RST ของ ESP8266
- เชื่อมต่อ EN ของ NodeMCU กับ GND
กำลังอัพโหลดภาพร่าง
เมื่อคุณต่อสาย ESP8266 แล้ว คุณต้องทำสิ่งต่อไปนี้:
- เลือกหมายเลขพอร์ตของ NodeMCU (เครื่องมือ -> พอร์ต)
- เลือกประเภทบอร์ด "NodeMCU 1.0 (โมดูล ESP12-E)"
- คลิกอัพโหลด
และนั่นแหล่ะ! มันจะเปิดใช้งานโหมดการเขียนโปรแกรมโดยอัตโนมัติและจะรีเซ็ตโดยอัตโนมัติเมื่ออัปโหลดเสร็จแล้ว ดังนั้นมันจึงจะเริ่มดำเนินการร่าง
ใช้สิ่งนี้ในการออกแบบบอร์ดของคุณ
เพื่อที่จะใช้วิธีนี้ในการออกแบบบอร์ดของคุณ คุณเพียงแค่แยกหมุดต่อไปนี้ออก:
- พื้น
- GPIO 0
- VCC
- TX
- RX
- RST
และเมื่อคุณต้องการตั้งโปรแกรมบอร์ดของคุณ ให้วางสายตามด้านบน
หวังว่าคุณจะพบว่าคำแนะนำนี้มีประโยชน์ หากคุณมีคำถามใด ๆ โปรดถาม!
* = ลิงค์พันธมิตร
แนะนำ:
วิธีง่ายๆ ในการควบคุมเซอร์โวมอเตอร์ด้วย Arduino: 8 ขั้นตอน
วิธีง่ายๆ ในการควบคุมเซอร์โวมอเตอร์ด้วย Arduino: ในบทช่วยสอนนี้ เราจะใช้เซอร์โวมอเตอร์และ Arduino UNO และ Visuino เพื่อควบคุมตำแหน่งองศาเซอร์โวมอเตอร์โดยใช้ส่วนประกอบเพียงไม่กี่ชิ้น จึงทำให้โครงการนี้เรียบง่าย ดูวิดีโอสาธิต
วิธีง่ายๆ ในการทำความสะอาดแผ่นเสียงไวนิล: 5 ขั้นตอน (พร้อมรูปภาพ)
วิธีง่ายๆ ในการทำความสะอาดแผ่นเสียงไวนิล: นักสะสมไวนิลมือใหม่หลายคนไม่ค่อยมีความรู้เกี่ยวกับแผ่นเสียงหรือวิธีการดูแลแผ่นเสียงอย่างถูกต้อง สิ่งแรกที่ฉันพิจารณาเมื่อเริ่มสะสมคือวิธีการทำความสะอาดไวนิลอย่างถูกต้อง มีผู้คนมากมายที่จะบอกคุณว่า
5 วิธีง่ายๆ ในการกำหนดขั้ว LED: 6 ขั้นตอน (พร้อมรูปภาพ)
5 วิธีง่ายๆ ในการกำหนดขั้ว LED: ไฟ LED อาจเป็นองค์ประกอบที่ผู้เริ่มใช้ทุกคนชื่นชอบมากที่สุด แม้กระทั่งทุกคนที่เกี่ยวข้องกับโครงการอิเล็กทรอนิกส์ ปัจจัยที่สำคัญที่สุดประการหนึ่งในการใช้อย่างถูกต้องคือการเชื่อมต่อพวกเขาอย่างที่ควรจะเป็น แน่นอน โดยปกติคุณต้องใช้รี
วิธีง่ายๆ ในการทำเหยือกน้ำโดยใช้ Fusion 360: 5 ขั้นตอน (พร้อมรูปภาพ)
วิธีง่ายๆ ในการทำเหยือกน้ำโดยใช้ Fusion 360: นี่เป็นโครงการที่สมบูรณ์แบบสำหรับผู้เริ่มต้นทุกคนโดยใช้ Fusion 360 ซึ่งทำได้ง่ายมาก พิจารณาโครงการตัวอย่างนี้และสร้างการออกแบบเหยือกของคุณเอง ฉันยังเพิ่มวิดีโอที่สร้างใน Fusion 360 อีกครั้งด้วย ฉันไม่คิดว่าคุณจำเป็นต้องรู้ว่าเจ
วิธีง่ายๆ ในการโค้งงอของเล่น: 7 ขั้นตอน (พร้อมรูปภาพ)
วิธีง่ายๆ ในการโค้งงอของเล่น: ฉันต้องการแสดงการดัดแปลงบางอย่างที่คุณสามารถทำได้กับของเล่นใดๆ เพื่อเปลี่ยนจากสิ่งที่อาจเป็นเรื่องน่ารำคาญไปเป็นเครื่องมือสำหรับความน่ากลัวที่ผิดพลาดและมีเสียงดัง เทคนิคที่นี่ค่อนข้างง่าย - แม้ว่าคุณจะไม่มีประสบการณ์เกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์มากนัก