เฟิร์มแวร์ 1 ม. สำหรับ esp 01 ไมโครคอนโทรลเลอร์ ESP8266: การเชื่อมต่อและการกำหนดค่า ตัวแปลง USB เป็น TTL โดยใช้ตัวเชื่อมต่อ DTR

ในกระบวนการศึกษาและออกแบบโครงการที่ซับซ้อนมากขึ้น ถึงเวลาที่มีความต้องการและความปรารถนาที่จะเรียนรู้วิธีทำงานกับการสื่อสารประเภททั่วไปเช่น WiFi เนื่องจากการสื่อสารประเภทนี้ช่วยให้คุณสร้างเครือข่ายเดียวสำหรับอุปกรณ์สมาร์ทโฮมของคุณได้อย่างสะดวกสบายและจัดการอุปกรณ์เหล่านั้นด้วย โทรศัพท์มือถือแท็บเล็ตหรือคอมพิวเตอร์กล่าวคือสร้างได้จริง บ้านอัจฉริยะซึ่งจะทำให้คุณเสียค่าใช้จ่ายถูกกว่าการซื้อโซลูชันสำเร็จรูปในร้านค้าถึงสิบเท่า แน่นอนว่าการใช้ WiFi ไม่ได้จำกัดอยู่เพียงเท่านี้ และมีตัวอย่างมากมายของการใช้การสื่อสารประเภทนี้ซึ่งไม่มีประโยชน์ในการลงรายการ และหากคุณเข้าสู่หน้านี้ หมายความว่าคุณจำเป็นต้อง ใช้ WiFi ด้วยเหตุผลบางอย่าง คุณเพียงแค่ต้องหาวิธีทำงานอย่างถูกต้อง .

เราจะจัดเรียงตามที่ถูกที่สุดและเป็นที่นิยมมากที่สุด โมดูลอินเตอร์เน็ตไร้สาย อีพีเอส8266-01. คุณสามารถซื้อโมดูล ESP8266-01 WiFi บนเว็บไซต์ของเรา

ข้อดีหลักประการหนึ่งของโมดูลดังกล่าวคือการมีหน่วยความจำและไมโครคอนโทรลเลอร์ของตัวเองบนบอร์ดซึ่งช่วยให้ทำงานได้อย่างอิสระโดยการโหลดแบบร่างลงในโมดูลโดยตรง

จริงๆ แล้วมีการดัดแปลงโมดูล ESP8266 WiFi ค่อนข้างมาก และเราจะไม่แสดงรายการไว้ที่นี่ เมื่อคุณเรียนรู้วิธีทำงานกับโมดูลดังกล่าวแล้ว คุณก็สามารถเริ่มทำงานร่วมกับผู้อื่นได้อย่างง่ายดาย ฉันต้องการทราบทันทีว่าการทำงานกับ WiFi อาจดูเหมือนเป็นงานที่ค่อนข้างยาก และหากคุณมีโครงการที่เสร็จสิ้นแล้วไม่กี่โครงการในกระเป๋าเดินทาง ควรละทิ้งการสื่อสาร WiFi ไว้ก่อน และใช้การสื่อสารทางวิทยุในโครงการของคุณ โดยทำงานร่วมกับ เข้าใจง่ายกว่ามาก ชุมชนทั้งหมดและฟอรัมเฉพาะเรื่องถูกสร้างขึ้นสำหรับการทำงานกับโมดูล WiFi ซึ่งพิสูจน์อีกครั้งว่าคนส่วนใหญ่เข้าใจการสื่อสารประเภทนี้ได้ยากเพียงใดในทันที และหลังจากอ่านข้อมูลทั้งหมดอีกครั้ง คนส่วนใหญ่ก็ยอมแพ้ เป็นไปได้มากว่าฉันจะไม่สามารถทำได้ทั้งหมด ข้อมูลสำคัญเพื่อให้เข้ากับกรอบของบทความนี้เพียงอย่างเดียวและไม่มีประเด็นใดในเรื่องนี้ไม่เช่นนั้นจะกลายเป็นความสับสนอีกครั้ง ฉันจะพยายามปฏิบัติตามเส้นทางของจุดที่สำคัญที่สุดตามลำดับที่เข้มงวดเพื่อที่คุณจะได้เข้าใจหลักการทำงานของการสื่อสารประเภทนี้แล้วจึงพัฒนาทักษะของคุณเองไปในทิศทางนี้

เรามาเริ่มกันที่พินของโมดูล WiFi กันก่อน อีพีเอส8266-01.

วีซีซี- แหล่งจ่ายไฟโมดูลจาก 3V ถึง 3.6V

จีเอ็นดี- โลก.

อสท- รีเซ็ตเอาต์พุตที่รับผิดชอบในการรีบูตโมดูล

CH_PD- "การปิดเครื่องชิป" เมื่อมีการจ่ายไฟให้ การทำงานของโมดูลจะถูกเปิดใช้งาน

เท็กซัส- การถ่ายโอนข้อมูล (อินเทอร์เฟซ UART)

รับ- การรับข้อมูล (อินเทอร์เฟซ UART)

GPIO0

GPIO2- พอร์ต I/O เอนกประสงค์

พิน GPIO0 และ GPIO2 เป็นพินดิจิทัลแบบเดียวกับที่เราใช้งานบนบอร์ด Arduino เพื่อเชื่อมต่อด้วย เซ็นเซอร์ต่างๆและใช้ในกรณีของการทำงานอิสระบนไมโครคอนโทรลเลอร์ WiFi ภายในของโมดูล ESP8266-01

หากต้องการจ่ายไฟให้กับโมดูล ESP8266-01 ได้อย่างน่าเชื่อถือ ให้ใช้แหล่งจ่ายไฟ 3.3V ที่มีความเสถียรภายนอก และไม่ควรพยายามใช้พลังงานจากบอร์ด Arduino ของคุณ เนื่องจากโมดูลใช้กระแสไฟสูงถึง 215mA และอาจส่งผลเสียต่อคุณ คณะกรรมการพัฒนา. จะหาแหล่งจ่ายไฟ 3.3V ที่เสถียรได้ที่ไหน ฉันหวังว่าจะไม่เป็นปัญหาสำหรับคุณ ไม่เช่นนั้นยังเร็วเกินไปที่คุณจะจัดการกับโมดูลนี้ ตัวอย่างเช่น ฉันชอบใช้โมดูลพลังงาน YWRobot 3.3V และ 5.0V นี้เพื่อประกอบวงจรบนเขียงหั่นขนมอย่างรวดเร็ว ซึ่งช่วยให้คุณได้รับแรงดันไฟฟ้าที่เสถียรที่ 3.3V หรือ 5V อย่างรวดเร็วบนเส้นทางพลังงานที่สอดคล้องกันของเขียงหั่นขนม

การเชื่อมต่อเครื่องหมายบวก (+) จากแหล่งจ่ายไฟ 3.3V ของเราไปยังพิน วีซีซีโมดูล ESP8266-01 และลบ (-) นำแหล่งจ่ายไฟไปที่เอาต์พุต จีเอ็นดี. ในสถานะนี้ ไฟ LED สีแดงบนโมดูลจะเปิดขึ้น เพื่อส่งสัญญาณว่าเชื่อมต่อพลังงานอย่างถูกต้อง เพื่อให้โมดูลเปิดใช้งานได้จำเป็นต้องเชื่อมต่อเครื่องหมายบวกด้วย (+) แหล่งจ่ายไฟพร้อมเอาต์พุต CH_PDโมดูล ESP8266-01 และแนะนำให้ทำโดยตรงผ่านตัวต้านทาน 10 kOhm ตอนนี้เมื่อเราเปิดเครื่อง ไฟ LED สีแดงบนโมดูลควรสว่างขึ้น และไฟ LED สีน้ำเงินควรกระพริบอย่างรวดเร็วสองครั้ง หากสิ่งนี้เกิดขึ้นกับคุณ แสดงว่าทุกอย่างเรียบร้อยดี คุณได้เชื่อมต่อทุกอย่างถูกต้องแล้ว และโมดูลของคุณก็ใช้งานได้ มิฉะนั้น ให้ตรวจสอบการเชื่อมต่ออีกครั้ง หรือเปลี่ยนโมดูล เนื่องจากมีแนวโน้มว่าจะไม่ทำงาน

ไปข้างหน้า. ในการทำงานกับโมดูล ESP8266 WiFi เราจำเป็นต้องมีอะแดปเตอร์ USB-UART มีอะแดปเตอร์ที่แตกต่างกัน เช่น FT232RL, CP2102, PL2303 แต่เราจะถือว่าคุณไม่มีอะแดปเตอร์ดังกล่าวและเราจะใช้บอร์ด Arduino เป็นอะแดปเตอร์ USB-UART ฉันจะใช้บอร์ด Arduino NANO สำหรับสิ่งนี้ แต่คุณสามารถใช้บอร์ดอื่นได้ตามต้องการ การเชื่อมต่อบนบอร์ดใด ๆ จะเหมือนกัน เราทำการเชื่อมต่อตามแผนภาพต่อไปนี้

มาดูสิ่งที่เราทำที่นี่ โปรดทราบว่าเราได้เชื่อมต่อพินบนบอร์ด Arduino ด้วยจัมเปอร์แล้ว อสทและ จีเอ็นดี. การจัดการนี้จะปิดการใช้งานไมโครคอนโทรลเลอร์และช่วยให้เราสร้างอะแดปเตอร์ USB-UART จริงจากบอร์ด Arduino ของเรา

เนื่องจากเราจ่ายไฟให้กับโมดูล WiFi ESP8266-01 จากแหล่งจ่ายไฟภายนอกที่แยกจากกัน โปรดจำไว้ว่าเราจะต้องเชื่อมต่อกราวด์ของแหล่งจ่ายไฟทั้งหมดในโครงการของเราเสมอ ดังนั้นเราจึงเชื่อมต่อเอาต์พุต จีเอ็นดีบอร์ด Arduino พร้อมกราวด์ (-) แหล่งจ่ายไฟภายนอก 3.3V ของเราออกแบบมาเพื่อจ่ายไฟให้กับโมดูล ESP8266-01

บทสรุป เท็กซัสเชื่อมต่อบอร์ด Arduino ของคุณเข้ากับพิน เท็กซัสโมดูล ESP8266-01 บรรทัดนี้จะส่งข้อมูลจากโมดูล WiFi ไปยังบอร์ด Arduino ใครก็ตามที่คุ้นเคยกับอินเทอร์เฟซ UART อาจสงสัยว่า “แต่เป็นไปได้อย่างไร ทุกแห่งที่พวกเขาสอนว่า TX ต้องเชื่อมต่อกับ RX TX ส่งข้อมูล และ RX จะได้รับ” และคุณจะพูดถูก ถูกต้อง TX จะเชื่อมต่อกับ RX อยู่เสมอ แต่ในกรณีที่เราสร้างอะแดปเตอร์ UART จาก Arduino เราจำเป็นต้องเชื่อมต่ออุปกรณ์โดยตรง ถือว่านี่เป็นข้อยกเว้นของกฎ

เส้น รับนอกจากนี้เรายังเชื่อมต่อบอร์ด Arduino ของคุณเข้ากับสายโดยตรง รับโมดูล ESP8266-01 บรรทัดนี้จะส่งข้อมูลจากบอร์ด Arduino ไปยัง การ์ดไวไฟโมดูล. แต่เราทำการเชื่อมต่อนี้ผ่านสิ่งที่เรียกว่าตัวแบ่งแรงดันไฟฟ้าซึ่งประกอบด้วยตัวต้านทานสองตัวที่มีค่าระบุ 1 kOhm และ 2 kOhm เราจำเป็นต้องลดแรงดันไฟฟ้าบนสายนี้โดยใช้ตัวต้านทานสองตัว (ตัวแบ่งแรงดันไฟฟ้า) เนื่องจากบอร์ด Arduino ส่งสัญญาณลอจิคัลด้วยแรงดันไฟฟ้า 5V และโมดูล WiFi ทำงานด้วยแรงดันไฟฟ้า 3.3V ในการแปลงสัญญาณลอจิก เราสามารถใช้บอร์ดตัวแปลงระดับลอจิกพิเศษ ซึ่งแน่นอนว่าถูกต้องมากกว่า แต่ขอย้ำอีกครั้งว่าคุณไม่มีสัญญาณ และเราต้องใช้เส้นทางที่ง่ายกว่าและทำโดยใช้ ตัวแบ่งแรงดันไฟฟ้า

ตอนนี้เราได้เชื่อมต่อทุกสิ่งที่จำเป็นสำหรับการทำงานต่อไปแล้ว แต่เรายังมีพินอีก 3 อันที่ไม่ได้ใช้ ( GPIO0, GPIO2และ อสท) บน โมดูลอินเตอร์เน็ตไร้สาย ESP8266-01. เพื่อความมั่นคง อินเตอร์เน็ตไร้สายทำงานโมดูลเราจำเป็นต้องดึงเทอร์มินัลที่ไม่ได้ใช้ที่เหลือเหล่านี้ให้เป็นค่าบวก (+) สายไฟโมดูลผ่านตัวต้านทาน 10 kOhm

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

และอีกครั้งที่เราตรวจสอบการทำงานของโมดูล ESP8266-01 WiFi เปิดเครื่องแล้วดูว่าไฟ LED สีแดงสว่างขึ้นและไฟ LED สีน้ำเงินกะพริบสองสามครั้ง หากทุกอย่างเกิดขึ้นเช่นนี้ ก็เยี่ยมไปเลย เดินหน้าต่อไป มิฉะนั้น เราจะตรวจสอบความถูกต้องของการเชื่อมต่อตลอดจนคุณภาพของผู้ติดต่อทั้งหมด อาจเป็นเพียงสถานการณ์เล็กน้อยเมื่อคุณตรวจสอบทุกอย่างอีกครั้งสิบครั้งและตรวจสอบให้แน่ใจว่าทุกอย่างเชื่อมต่ออย่างถูกต้อง แต่เมื่อคุณเปิดโมดูล คุณจะเห็นว่าไฟ LED สีฟ้าทำงานไม่ถูกต้อง เปิดตลอดเวลา กะพริบตลอดเวลา หรือไม่ตอบสนองต่อสิ่งใดเลย อาจเนื่องมาจากการติดต่อไม่ดีในบางสาย ตัวอย่างเช่น เมื่อประกอบวงจรบนเขียงหั่นขนม ตัวต้านทานตัวใดตัวหนึ่งไม่ได้เข้าที่อย่างแน่นหนาและทำให้เกิดการรบกวน ตรวจสอบคุณภาพของการเชื่อมต่อ โมดูลมีความละเอียดอ่อนมาก อย่าละเลยสิ่งนี้ นี่เป็นสาเหตุทั่วไปที่ทำให้การทำงานไม่เสถียร

โดยทั่วไปแล้ว การเชื่อมต่อจะเสร็จสิ้นแล้ว ตอนนี้เราต้องเตรียมโปรแกรม อาร์ดูโน่ IDEสำหรับการทำงานกับโมดูล WiFi ESP8266-01 ในการทำเช่นนี้เราจำเป็นต้องดาวน์โหลดและติดตั้งไฟล์เก็บถาวรที่จำเป็นใน Arduino IDE พร้อมไลบรารีตัวอย่างและบอร์ด ESP ซึ่งต่อมาจะอนุญาตให้เราอัปโหลดภาพร่างโดยตรงไปยังไมโครคอนโทรลเลอร์ของโมดูล ESP8266-01 เปลี่ยนเฟิร์มแวร์ ฯลฯ ตามวัตถุประสงค์ของบทความนี้เรามักจะไม่ต้องการการตั้งค่าเหล่านี้ แต่สำหรับฉันแล้วดูเหมือนว่าหลังจากที่เราทราบวิธีเชื่อมต่อโมดูลแล้วขั้นตอนจะถูกต้องหากเราดาวน์โหลดทุกสิ่งที่จำเป็นในการทำงานกับ Arduino IDE ทันที . ทุกอย่างที่นี่มีหลักการเรียบง่าย

เปิดโปรแกรม อาร์ดูโน่ IDEและไปที่เมนู "ไฟล์" - "การตั้งค่า"

ในหน้าต่างที่ปรากฏขึ้นในช่องด้านบนเราเขียนว่า "esp8266" ด้วยเหตุนี้เราจะมีเฉพาะเฟิร์มแวร์ที่จำเป็นในหน้าต่างเท่านั้น เมื่อคุณคลิกที่เฟิร์มแวร์ ปุ่มจะปรากฏขึ้น "การติดตั้ง". คลิกที่ปุ่ม "การติดตั้ง"และรอจนกระทั่งทุกอย่างได้รับการติดตั้ง ไฟล์เก็บถาวรมีขนาดค่อนข้างใหญ่ประมาณ 150 เมกะไบต์ ดังนั้นคุณจะต้องรอ

หลังการติดตั้งเสร็จสิ้น เรารีบูต Arduino IDE และดูว่าบอร์ด ESP ใหม่ปรากฏในเมนู "เครื่องมือ" - "บอร์ด" อย่างไร นั่นคือทั้งหมดที่ กับ การตั้งค่า Arduinoเราทำ IDE เสร็จแล้ว เราไม่ต้องการการตั้งค่าเหล่านี้ในตอนนี้ แต่ในการทำงานในอนาคต เราจะไม่สามารถทำได้หากไม่มีการตั้งค่าเหล่านี้

เรามีทุกอย่างที่เชื่อมต่อและเตรียมพร้อมแล้ว ตอนนี้เราสามารถเริ่มเข้าใจการควบคุมได้แล้ว ที่จริงแล้วตอนนี้เราจะตรวจสอบและกำหนดค่าโมดูลโดยใช้คำสั่ง AT ต่อไปและจะไม่มีทางทำได้หากไม่มีมัน โมดูล WiFi ถูกนำมาใช้ในลักษณะที่การสื่อสารทั้งหมดเกิดขึ้นโดยใช้คำสั่ง AT ซึ่งเดินสายเข้ากับเฟิร์มแวร์ของโมดูล เราจะไม่แสดงรายการคำสั่ง AT ทั้งหมดที่นี่ มีค่อนข้างมากและหากคุณต้องการศึกษาทุกอย่างอย่างละเอียด คุณสามารถค้นหาคำสั่งเหล่านี้บนอินเทอร์เน็ตได้อย่างง่ายดาย และตอนนี้เราจะใช้เฉพาะสิ่งที่จำเป็นที่สุดในการเริ่มต้นเท่านั้น

ดังนั้นเราจึงเชื่อมต่อบอร์ด Arduino ของเราผ่านทาง สายยูเอสบีไปยังคอมพิวเตอร์ ก แหล่งภายนอกอาหารที่บำรุง โมดูลอินเตอร์เน็ตไร้สาย ESP8266-01ยังไม่จำเป็นต้องเปิดเครื่อง เปิดตัวกันเลย โปรแกรมอาดูโน่ IDE เลือกบอร์ด Arduino ของเราจากเมนู "เครื่องมือ" ในกรณีของฉันคือ Arduino NANO และคุณเลือกของคุณ นอกจากนี้อย่าลืมเลือกพอร์ตที่ Arduino ของเราเชื่อมต่ออยู่ ฉันหวังว่าคุณจะเข้าใจทั้งหมดนี้และรู้ว่าต้องทำอย่างไร

เปิดการตรวจสอบพอร์ต "เครื่องมือ" - "การตรวจสอบพอร์ต". การเลือกความเร็วพอร์ต 74880 (ที่ความเร็วนี้โมดูลจะเริ่มทำงาน) และเลือก "NL & CR" ในรายการทางด้านซ้าย

ตอนนี้เราเชื่อมต่อแหล่งพลังงานภายนอกที่จ่ายพลังงานให้กับโมดูล WiFi ของเรา หลังจากนั้นคุณจะเห็นข้อมูลโดยประมาณต่อไปนี้ในมอนิเตอร์พอร์ต

ที่นี่เราจะดูข้อมูลบางอย่างเกี่ยวกับโมดูล WiFi ของเรา (ความเร็ว จำนวนหน่วยความจำบนเครื่อง ฯลฯ) ข้อมูลที่ได้รับอาจแตกต่างกันไปขึ้นอยู่กับเวอร์ชัน เฟิร์มแวร์ WiFiโมดูล. อย่าไปสนใจเรื่องนี้เลย สิ่งอื่นที่สำคัญ ด้านล่างเราจะเห็นชุดอักขระที่ไม่มีความหมายซึ่งหมายความว่าความเร็วพอร์ต (74880 บอด) ที่เราตั้งค่าไว้นั้นเหมาะสำหรับ บูตสแตรปโมดูลเพื่อดูข้อมูลนี้ได้ตามปกติ แต่ความเร็วนี้ไม่เหมาะกับการสื่อสารปกติกับโมดูล WiFi

ในการเลือกความเร็วพอร์ตที่ถูกต้อง เราก็จะเปลี่ยนความเร็วพอร์ตและส่งสัญลักษณ์ไปที่พอร์ต (ช่องด้านบนและปุ่มส่ง) ที่จนกว่าเราจะได้คำตอบ ตกลง. หากลองส่งตัวละครตอนนี้ ที่ไปที่พอร์ตด้วยความเร็ว 74880 คุณจะได้รับการตอบสนองอักขระที่ไม่มีความหมายอีกหนึ่งหรือสองตัว

ลองตั้งค่าความเร็วเป็น 115200 baud ทันทีแล้วส่งคำสั่ง AT ส่วนใหญ่แล้วโมดูลจะกะพริบด้วยความเร็วนี้

นี่คือภาพที่คุณควรเห็นในมอนิเตอร์พอร์ตของคุณ หากคุณยังคงได้รับชุดอักขระที่ไม่สามารถเข้าใจได้ตอบกลับ ให้ลดความเร็วและส่งอีกครั้ง ที่คำสั่งจนกว่าคำตอบจะกลับมา ตกลง. หากคุณลองความเร็วทั้งหมดแล้วและไม่ได้รับคำตอบที่ถูกต้อง แสดงว่าคุณโชคไม่ดีและโมดูลจะกะพริบด้วยเฟิร์มแวร์ด้วยความเร็วที่ไม่ได้มาตรฐาน สิ่งที่เหลืออยู่คือการรีเฟรชโมดูลด้วยเฟิร์มแวร์ปกติ แต่นี่เป็นหัวข้อสำหรับบทความแยกต่างหาก

ฉันหวังว่าทุกอย่างจะดีและคุณได้เลือกความเร็วที่ถูกต้องแล้ว อย่างไรก็ตามหากคุณพยายามปิดและเปิดโมดูล WiFi อีกครั้งหลังจากที่คุณเลือกความเร็วที่ถูกต้องแล้วแทนที่จะเป็นข้อมูลเริ่มต้นเดียวกันที่แสดงอย่างถูกต้องด้วยความเร็ว 74880 บอด คุณจะตรงกันข้าม เห็นชุดตัวละครปนเปกันแต่ท้ายสุดจะเห็นคำว่า "พร้อม"" แต่เรามีโอกาสที่จะดูข้อมูลเริ่มต้นนี้ในรูปแบบปกติด้วยความเร็วที่ถูกต้อง ในการทำเช่นนี้ เราจำเป็นต้องรีบูตโมดูลโดยทางโปรแกรมโดยใช้คำสั่ง AT AT+RST.

หากต้องการค้นหาเวอร์ชันเฟิร์มแวร์ของโมดูล WiFi ESP8266-01 ของคุณ คุณต้องส่งคำสั่งไปยังตัวตรวจสอบพอร์ต AT+จีเอ็มอาร์และในการตอบกลับ คุณจะได้รับข้อมูลโดยประมาณดังต่อไปนี้:

โมดูล WiFi ESP8266-01 สามารถทำงานได้ทั้งในโหมดจุดเข้าใช้งานและโหมดไคลเอ็นต์ เพื่อให้โมดูลทำงานในทุกโหมดพร้อมกัน ให้ส่งคำสั่งไปยังมอนิเตอร์พอร์ต AT+CWMODE=3และเพื่อเป็นการตอบสนองคุณควรได้รับ ตกลง.

ทีม AT+CWLAPจะช่วยให้คุณเห็นจุดเชื่อมต่อ WiFi ทั้งหมดที่คุณเห็น ช่วงเวลานี้โมดูลของคุณ ตัวอย่างเช่น โมดูลของฉันเห็นจุดเชื่อมต่อ WiFi เพียงสามจุดในพื้นที่ครอบคลุมเท่านั้น คำตอบควรเป็นดังนี้:

ตัวอย่างเช่นเรารู้รหัสผ่านสำหรับจุดเชื่อมต่อที่สามและเพื่อเชื่อมต่อกับมันเราดำเนินการคำสั่ง AT+CWJAP="ชื่อ", "รหัสผ่าน"ในกรณีของฉันคำสั่งนี้ดูเหมือนว่า AT+CWJAP="dsl_unlim_512_home","11111111"ซึ่งเราได้รับคำตอบที่ประสบความสำเร็จ:

พารามิเตอร์คำสั่งถูกเขียนลงในหน่วยความจำแฟลชของโมดูล ESP8266-01 WiFi และหากเราปิดโมดูลและเปิดใหม่อีกครั้ง โมดูลจะเชื่อมต่อกับจุดเชื่อมต่อนี้โดยอัตโนมัติ ดูโดยบังเอิญอย่าเว้นวรรคในคำสั่งมิฉะนั้นคุณจะได้รับคำตอบ ข้อผิดพลาด. โปรดทราบว่าในเฟิร์มแวร์เวอร์ชันล่าสุดขอแนะนำให้ใช้คำสั่ง AT+CWJAP_CURนั่นคือคำสั่งจะมีลักษณะดังนี้ AT+CWJAP_CUR="ชื่อ", "รหัสผ่าน"หากจู่ๆ เราลืมว่าโมดูลของเราเชื่อมต่อกับจุดเชื่อมต่อใด เราจำเป็นต้องส่งคำสั่ง AT+CWJAP?หรือ AT+CWJAP_CUR?และเพื่อเป็นการตอบสนองเราจะได้รับจุดเข้าใช้งานที่โมดูล WiFi เชื่อมต่ออยู่ในปัจจุบัน

ด้วยการเชื่อมต่อและ ตั้งค่าเริ่มต้น โมดูลอินเตอร์เน็ตไร้สาย ESP8266-01เราคิดออกแล้ว โมดูลใช้งานได้และพร้อมสำหรับการดำเนินโครงการในอนาคตของคุณ เป็นไปไม่ได้เลยที่จะวิเคราะห์ตัวอย่างที่เป็นไปได้ทั้งหมดของการทำงานกับโมดูลนี้ภายในกรอบของบทความเดียว และเราจะจัดการกับสิ่งนี้ในบทความต่อไปนี้ และสำหรับผู้ที่ไม่คุ้นเคยกับการเขียนโปรแกรมมากนัก แต่ต้องการเริ่มจัดการโปรเจ็กต์โดยใช้ WiFi อย่างรวดเร็ว ฉันแนะนำให้พวกเขารู้จักกับผู้ออกแบบโปรเจ็กต์ RemoteXY WiFi ไซต์นี้จะช่วยให้คุณสร้างอินเทอร์เฟซการควบคุมสำหรับโทรศัพท์มือถือหรือแท็บเล็ตของคุณได้อย่างง่ายดาย และใช้เพื่อควบคุมอุปกรณ์ของคุณที่คุณเชื่อมต่อโมดูล WiFi

มูเล่ esp-01
โครงการ การเชื่อมต่อที่ถูกต้องโมดูล esp-01 สำหรับการเขียนโปรแกรมและเฟิร์มแวร์

โมดูลถูกกะพริบโดยการสลับไปที่โหมดการเขียนโปรแกรม ในการดำเนินการนี้ ให้กดปุ่ม FLASH ค้างไว้ จากนั้นโดยไม่ต้องปล่อย ให้กดปุ่ม RESET สั้น ๆ แล้วปล่อย FLASH
โมดูลจะเปลี่ยนเป็นโหมดการเขียนโปรแกรม
ในอาคารผู้โดยสารในขณะนี้คุณสามารถเห็นได้

ets 8 มกราคม 2013 สาเหตุแรก: 2, โหมดบูต: (1.6)
โหมดบูต:(1,6) - รีบูตผ่าน RESET เข้าสู่โหมดการเขียนโปรแกรม
โหมดบูต: (1,7) - รีบูตเครื่องเข้าสู่โหมดการเขียนโปรแกรม - ซึ่งไม่ถูกต้องทั้งหมด

สำหรับเฟิร์มแวร์ฉันจะใช้โปรแกรม โปรแกรมเมอร์เฟิร์มแวร์ NODEMCU
(ไฟล์เก็บถาวรพร้อมโปรแกรมจะแนบไปกับหัวข้อ)
แตกไฟล์เก็บถาวรและเรียกใช้โปรแกรม\Win32\Release\ESP8266Flasher.exe เวอร์ชัน 32 บิตในกรณีของฉัน
เรากำหนดค่าให้กับโมดูลในกรณีของฉันคือหน่วยความจำแฟลช 1 เมกะไบต์หรือ 8 เมกะบิต




ขั้นตอนแรกคือการลบหน่วยความจำด้วยไฟล์เปล่าขนาด 1 MB
นี่เป็นรายการเสริม คุณสามารถข้ามการลบและไปที่เฟิร์มแวร์ได้
ผู้ที่มีหน่วยความจำไม่มากก็น้อยจำเป็นต้องมีไฟล์เปล่าในขนาดที่เหมาะสม
ต่อไปเราจะพิจารณาว่าจำเป็นต้องใช้เฟิร์มแวร์ใด!
สามารถใช้เป็น เฟิร์มแวร์พร้อมบน NODEMCU และจากผู้ออกแบบเพื่อประกอบเข้ากับโมดูลที่คุณต้องการ
ตัวอย่างเช่น หนึ่งใน NODEMCU เก่าที่ได้รับการพิสูจน์แล้ว

ตัวสร้าง wifi-iot.com/
ตัวสร้าง nodemcu-build.com/
หรือดาวน์โหลดล่าสุด

ปัญหาเกี่ยวกับเฟิร์มแวร์
ถ้าโมดูล esp8266 ไม่กะพริบ ตรวจสอบการดึงขึ้นและการเชื่อมต่อกับ GND GPIO0 ที่ถูกต้อง และยังมี RX TX ปะปนอยู่หรือไม่
ในเทอร์มินัลคุณสามารถตรวจสอบได้ว่าโหมดการบูต:(1,6) หรือโหมดการบูต:(1,7) ปรากฏขึ้น

ถ้าหลังจาก เฟิร์มแวร์ที่ไม่สำเร็จโมดูลไม่ทำงาน ลองลบหน่วยความจำด้วยไฟล์ฟอร์มว่างขนาดหน่วยความจำของคุณ

ถ้าโมดูลไม่ทำงานหลังจากเฟิร์มแวร์สำเร็จและส่งขยะอย่างไม่สิ้นสุดไปยังพอร์ต (ไฟ LED การส่งข้อมูลอาจกะพริบ) สิ่งนี้เกิดขึ้นเมื่อกระพริบ Nodemcu บิลด์ล่าสุดจากนั้นคุณจะต้องแฟลชไฟล์เพิ่มเติมลงในพื้นที่หน่วยความจำขึ้นอยู่กับ ชิปหน่วยความจำ
ข้อมูลหน่วยความจำถูกนำมาจากเว็บไซต์ nodemcu
0x7c000 สำหรับ 512 kB, โมดูลเช่น ESP-01,03,07
0xfc000 สำหรับ 1 MB, โมดูลเช่น ESP8285, PSF-A85 แต่ยังมี esp-01,01s บางประเภทด้วย
0x1fc000 สำหรับ 2 MB
0x3fc000 สำหรับ 4 MB, ประเภทโมดูล ESP-12E, NodeMCU devkit 1.0, WeMos D1 mini เป็นต้น

หากทุกอย่างล้มเหลวให้เขียน...

ฉันจะเพิ่มกลุ่มอย่างเป็นทางการของผู้ผลิตอุปกรณ์

โมดูล Wi-Fi ESP-01 เป็นโมดูลยอดนิยมที่สุดในซีรีส์ ESP8266 การสื่อสารกับคอมพิวเตอร์หรือไมโครคอนโทรลเลอร์ดำเนินการผ่าน UART โดยใช้ชุดคำสั่ง AT นอกจากนี้โมดูลยังสามารถใช้เป็นอุปกรณ์อิสระได้ในการดำเนินการนี้คุณต้องโหลดเฟิร์มแวร์ของคุณเองลงไป คุณสามารถตั้งโปรแกรมและดาวน์โหลดเฟิร์มแวร์ผ่าน Arduino IDE เวอร์ชันที่สูงกว่า 1.6.5 หากต้องการแฟลชเฟิร์มแวร์โมดูล คุณจะต้องใช้อะแดปเตอร์ UART-USB โมดูล ESP-01 อาจใช้กันอย่างแพร่หลายในอุปกรณ์ IoT (Internet of Things)

ข้อมูลจำเพาะโมดูล

  • Wi-Fi 802.11b/g/n
  • โหมด WiFi: ไคลเอนต์ จุดเชื่อมต่อ
  • กำลังขับ- 19.5 เดซิเบล
  • แรงดันไฟฟ้า - 1.8 -3.6 V
  • ปริมาณการใช้ปัจจุบัน - 220 mA
  • พอร์ต GPIO: 4
  • ความถี่สัญญาณนาฬิกาโปรเซสเซอร์ - 80 MHz
  • ความจุหน่วยความจำรหัส
  • แกะ- 96 กิโลไบต์
  • ขนาด - 13×21 มม

การเชื่อมต่อ

พิจารณาโหมดคำสั่ง AT ในการดำเนินการนี้ ให้เชื่อมต่อโมดูลเข้ากับคอมพิวเตอร์ผ่านอะแดปเตอร์ USB-UART วัตถุประสงค์ของหมุดโมดูล (ดูรูปที่ 1):
  • VCC - +3.3 โวลต์
  • GND - กราวด์
  • RX, TX - พิน UART
  • เอาต์พุต CH_PD - เปิดใช้งานชิป
  • GPIO0, GPIO2 - ผู้ติดต่อแบบดิจิทัล
โมดูลต้องการ แหล่งจ่ายไฟภายนอก 3.3 วี

รูปที่ 1 การกำหนดพินโมดูล ESP-01

แผนภาพการเชื่อมต่อสำหรับการสื่อสารกับโมดูลในโหมดคำสั่ง AT (รูปที่ 2):

รูปที่ 2 แผนผังการเชื่อมต่อโมดูล ESP-01 เข้ากับคอมพิวเตอร์ผ่านพอร์ตอนุกรม

รูปที่ 3 วงจรประกอบ

หากต้องการส่งคำสั่ง AT ใน Mac OS X คุณสามารถใช้โปรแกรม CoolTerm ได้ ระบบปฏิบัติการ โปรแกรมวินโดวส์ปลวก. คุณสามารถค้นหาความเร็วของพอร์ต COM สำหรับการเชื่อมต่อกับโมดูลได้จากการทดลองเท่านั้น ซึ่งอาจแตกต่างกันไปตามเฟิร์มแวร์ที่แตกต่างกัน สำหรับโมดูลของฉันความเร็วกลายเป็น 9600 บอด นอกจากนี้ คุณสามารถสร้างการแลกเปลี่ยนได้หลังจากถอดและเชื่อมต่อพิน CH_PD เข้ากับแหล่งจ่ายไฟอีกครั้งเท่านั้น หลังจากเชื่อมต่อแล้ว ให้พิมพ์ AT ในเทอร์มินัลและควรได้รับการตอบกลับ OK จากโมดูล คำสั่ง AT+GMR จะให้หมายเลขเวอร์ชันเฟิร์มแวร์ของโมดูล คำสั่ง AT+RST จะรีบูตโมดูล (ดูรูปที่ 4) รายการคำสั่ง AT พื้นฐานมีอยู่ในเอกสารนี้ (ESP8266ATCommandsSet.pdf)

รูปที่ 4 การส่งคำสั่ง AT ไปยังโมดูลจากปลวก

หากโหมดคำสั่ง AT ไม่สะดวกสำหรับคุณคุณสามารถกำหนดค่าบอร์ดได้โดยใช้โปรแกรม AppStack ESP8266 Config ซึ่งสามารถดาวน์โหลดได้จากลิงค์ http://esp8266.ru/download/esp8266-utils/ESP8266_Config.zip รูปร่างโปรแกรมแสดงไว้ในรูปที่ 5 โมดูลถูกกำหนดค่าโดยใช้ กุยในขณะที่การดำเนินการคำสั่งสามารถเห็นได้บนหน้าจอโปรแกรม (ดูรูปที่ 6) จอภาพยังสามารถส่งคำสั่ง AT จากบรรทัดคำสั่งได้

รูปที่ 5. โปรแกรมกำหนดค่า AppStack ESP8266

รูปที่ 6 มอนิเตอร์แบบอนุกรมของโปรแกรม AppStack ESP8266 Config

มีสองตัวเลือกสำหรับการใช้โมดูลนี้:

  • ร่วมกับไมโครคอนโทรลเลอร์ (เช่น Arduino) ซึ่งจะควบคุมโมดูลผ่าน UART
  • เขียนเฟิร์มแวร์ของคุณเองเพื่อใช้ ESP8266 เป็นอุปกรณ์สแตนด์อโลน

ตัวอย่างการใช้งาน

มาดูตัวอย่างการเชื่อมต่อเซ็นเซอร์ความชื้นและอุณหภูมิ DHT11 เข้ากับโมดูล ESP-01 แล้วส่งข้อมูลไปที่ บริการคลาวด์ ThingSpeak (https://thingspeak.com/) เราจะต้องมีส่วนต่อไปนี้:
  • โมดูล ESP-01
  • คณะกรรมการขนมปัง
  • เซ็นเซอร์ความชื้นและอุณหภูมิ DHT11
  • ตัวต้านทาน 10 kOhm
  • สายเชื่อมต่อ
  • แหล่งจ่ายไฟ 3 - 3.6V
ก่อนอื่น มาเชื่อมต่อเซ็นเซอร์ DS18B20 เข้ากับโมดูล ESP-01 กันก่อน DS18B20 เป็นเซ็นเซอร์วัดอุณหภูมิแบบดิจิตอลที่ทำงานผ่านอินเทอร์เฟซแบบ 1 สายแบบเส้นเดียว แผนภาพการเชื่อมต่อของเซ็นเซอร์ DS18B20 กับโมดูลแสดงไว้ในรูปที่ 1 7.

รูปที่ 7 แผนภาพการเชื่อมต่อของเซ็นเซอร์ DHT11 กับโมดูล ESP-01

จากนั้นคุณจะต้องสร้างโปรไฟล์ในบริการ ThingSpeak บริการมีคำแนะนำในการส่งข้อมูลไปยังบริการและรับข้อมูลจากบริการ

รูปที่ 8 วงจรที่สมบูรณ์

เราจะเขียนโปรแกรมใน สภาพแวดล้อม Arduino IDE สำหรับ ESP8266 เราจะใช้ไลบรารี ESP8266WiFi.h (ในตัว) และ OneWire.h มาอัพโหลดภาพร่างจากรายการที่ 1 ไปยังบอร์ด Arduino โดยรับข้อมูลจากเซ็นเซอร์อุณหภูมิและส่งข้อมูลไปยังบริการ ThingSpeak คุณต้องป้อนข้อมูลของคุณสำหรับจุดเชื่อมต่อ WiFi สำหรับโมดูล ESP-01:

  • const ถ่าน *ssid;
  • const ถ่าน *รหัสผ่าน;
รวมถึงพารามิเตอร์ privateKey สำหรับแอปพลิเคชันของคุณในบริการ ThingSpeak รายการ 1 // เว็บไซต์ // รวมไลบรารี่เพื่อใช้งานกับ esp8266 #include // รวมไลบรารี DHT เพื่อทำงานกับ DHT11 #include // พินเชื่อมต่อ DATA pin #define DHTPIN 4 // เซ็นเซอร์ DHT11 #define DHTTYPE DHT11 // การสร้างอินสแตนซ์ของวัตถุ DHT DHT dht (DHTPIN, DHTTYPE); //ssid เครือข่าย WiFiการเชื่อมต่อ const char ssid = "********"; // รหัสผ่านไวไฟเครือข่ายการเชื่อมต่อ รหัสผ่าน const char = "******"; // เซิร์ฟเวอร์ ThingSpeak const char* host = "184.106.153.149"; // คีย์ API ของแอปพลิเคชัน ThingSpeak ของคุณ const char* privateKey = "****************"; // ตัวแปรสำหรับจัดเก็บอุณหภูมิและความชื้นอุณหภูมิลอยตัว; ความชื้นลอยตัว // ตัวแปรสำหรับช่วงการวัดที่ไม่ได้ลงนาม long millis_int1=0; การตั้งค่าเป็นโมฆะ () ( // เริ่มพอร์ตอนุกรม Serial.begin (115200); ล่าช้า (10); Serial.print ("เชื่อมต่อกับ WiFi"); Serial.println (ssid); // เชื่อมต่อผ่าน WiFi WiFi.begin ( ssid รหัสผ่าน); while (WiFi.status() != WL_CONNECTED) ( ล่าช้า (500); ) Serial.println("เชื่อมต่อ WiFi"); // start dht dht.begin(); ) void loop() ( / / รอช่วงเวลา 10 นาที if(milis()-millis_int1>=10*60000) ( Serial.print("connect to ThingSpeak"); Serial.println(host); // ใช้ไคลเอนต์ WiFi ไคลเอนต์ WiFiClient; ถ้า (!client.connect (host, 80)) ( Serial.println("connection failed"); return; ) // รับข้อมูลอุณหภูมิ temp = get_data_temperature(); ความชื้น = get_data_humidity(); // สร้าง URL พร้อมคำขอ สำหรับเซิร์ฟเวอร์ String url = "/ update?key="; url += privateKey; url += "&temp="; url += temp; url += "&humidity="; url += humid; // ส่งคำขอ ไปยังเซิร์ฟเวอร์ client.print(String(" GET ") + url + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r \n"); ล่าช้า (10); // การตอบสนองของเซิร์ฟเวอร์ ThingSpeak while(client.available())( String req = client.readStringUntil("\r"); Serial.print(req); ) ) ) ตอนนี้ในบริการ ThingSpeak เราสามารถดูกราฟของการอ่านได้ ของเซ็นเซอร์อุณหภูมิ DHT11 ของเรา (รูปที่ 9)

รูปที่ 9 กราฟการอ่านเซ็นเซอร์อุณหภูมิ DS18B20 ในบริการ ThingSpeak

คำถามที่พบบ่อย FAQ

1. โมดูลไม่ตอบสนองคำสั่งเอที
  • ตรวจสอบว่าเชื่อมต่อโมดูลอย่างถูกต้อง
  • ตรวจสอบการเชื่อมต่อที่ถูกต้องของหน้าสัมผัส Rx, Tx กับอะแดปเตอร์ UART-USB
  • ตรวจสอบการเชื่อมต่อของพิน CH_PD เป็น 3.3 V;
  • ทดลองเลือกความเร็วการสื่อสารบนพอร์ตอนุกรม
2. โมดูล ESP-01 ไม่ได้รับข้อมูลอุณหภูมิจากเซ็นเซอร์DHT11
  • ตรวจสอบว่าเซ็นเซอร์ DHT11 เชื่อมต่ออย่างถูกต้องกับโมดูล
3. ข้อมูลจะไม่ถูกถ่ายโอนไปยังบริการ ThingSpeak
  • ตรวจสอบการเชื่อมต่อของโมดูลกับจุดเชื่อมต่อ WiFi
  • ตรวจสอบการเชื่อมต่อของจุดเชื่อมต่อ WiFi กับอินเทอร์เน็ต
  • ตรวจสอบว่าคำขอไปยังบริการ ThingSpeak ถูกต้อง

... โดยทั่วไป เนื้อหานี้ไม่ได้จำกัดอยู่เพียงหัวข้อ Arduino เพียงหัวข้อเดียว

หัวข้อของ ESP8266 ค่อนข้างจะยาก แต่ถ้าคุณทำงานกับโมดูล Wi-Fi เหล่านี้ในสภาพแวดล้อมการพัฒนา Arduino IDE เกณฑ์การเข้าร่วมจะลดลงถึงระดับที่ยอมรับได้สำหรับผู้ใช้ Arduino โดยเฉลี่ย และไม่เพียงแต่ผู้ชาย Arduino เท่านั้น แต่ยังรวมถึงบุคคลใดก็ตามที่มีความปรารถนาที่จะสร้างบางสิ่งในหัวข้อ IoT (Internet of Things) และไม่ต้องใช้เวลามากในการอ่านเอกสารประกอบของชิปและศึกษา API สำหรับโมดูลเหล่านี้

วิดีโอนี้ทำซ้ำเนื้อหาที่นำเสนอในบทความด้านล่างโดยสมบูรณ์

เรารู้วิธีเชื่อมต่อ ESP8266 แล้วและใส่ไว้ในโหมดการเขียนโปรแกรม ตอนนี้เรามาดูสิ่งที่มีประโยชน์มากกว่ากันดีกว่า

ฉันจะบอกทันทีว่าเมื่อเราตั้งโปรแกรมโมดูลในสภาพแวดล้อมการพัฒนา Arduino เราจะทำลายเฟิร์มแวร์ดั้งเดิมและเราจะไม่สามารถทำงานกับโมดูลโดยใช้คำสั่ง AT ได้อีกต่อไป โดยส่วนตัวแล้ว สิ่งนี้ไม่ได้ทำให้ฉันเย็น/ร้อน แต่ถ้าใครต้องการมัน ในตอนท้ายของบทความ ฉันจะแสดงวิธีแฟลชเฟิร์มแวร์ดั้งเดิมกลับเข้าไปในโมดูล หรือโปรแกรมโหลดบูตบางประเภท เช่น NodeMcu

เริ่มต้นด้วยการดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการ รุ่นล่าสุด Arduino IDE ปัจจุบันเป็น 1.6.7 เวอร์ชันเก่าเช่น 1.0.5 ไม่พอดีเพราะพวกเขาไม่มีฟังก์ชั่นที่จำเป็นและการเต้นรำกับแทมบูรีนก็ไม่ได้สนใจเราใช่ไหม?

เราเปิดตัวสภาพแวดล้อมการพัฒนาและไปที่ไฟล์/การตั้งค่าทันที:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

จากนั้นไปที่ Tools/Board:/Board Manager...:

หน้าต่างผู้จัดการบอร์ดจะปรากฏขึ้นตรงหน้าเรา เลื่อนลงไปด้านล่างสุด และหากทุกอย่างถูกต้องเราจะเห็นสิ่งนี้:

คลิกเคอร์เซอร์บนคำจารึก " เอสพี8266โดย ชุมชน ESP8266"หลังจากนั้นเรามีปุ่ม "ติดตั้ง" เลือกเวอร์ชันที่ต้องการ ผมเอาอันล่าสุด วันนี้เป็น 2.1.0 แล้วติดตั้ง สภาพแวดล้อมการพัฒนาจะดาวน์โหลดไฟล์ที่ต้องการ (ประมาณ 150 เมกะไบต์) และตรงข้ามกับ จารึก " เอสพี8266โดย ชุมชน ESP8266""ติดตั้งแล้ว" จะปรากฏขึ้นนั่นคือติดตั้งแล้ว:

เราเลื่อนลงไปตามรายการบอร์ดและพบว่าเรามี ESP ที่แตกต่างกันมากมายในรายการ ใช้ "โมดูล ESP8266 ทั่วไป":

ไปที่ "เครื่องมือ" และเลือกพอร์ต COM ที่ต้องการ (สำหรับฉันคือ COM32) ตัวแปลง Arduino หรือ USB UART จากนั้นตั้งค่าความเร็วในการอัพโหลด: "115200":

เราตั้งค่าความเร็วเป็น 74880 และ "NL & CR" จากนั้นปิดและใช้พลังงานอีกครั้งและมันจะตอบสนองด้วยข้อมูลการดีบักบางอย่าง:

โปรดทราบว่า 74880 ไม่ใช่ความเร็วหลักของ ESP8266 เพียงส่งข้อมูลการดีบักเท่านั้น หากโมดูลไม่ส่งสิ่งใดไปยังคอนโซล แสดงว่าอาจมีการเชื่อมต่อบางอย่างไม่ถูกต้อง

โดยค่าเริ่มต้นความเร็วควรเป็น 115200 แต่ในบางกรณีอาจเป็น 9600 และอื่นๆ... ดังนั้นลองค้นหาดู

หลังจากเลือกความเร็วที่ต้องการแล้ว เราจะส่งโมดูล "AT" และควรตอบกลับว่าทุกอย่าง "OK" คำสั่ง "AT+GMR" จะแสดงข้อมูลเกี่ยวกับเฟิร์มแวร์

ก่อนที่คุณจะเริ่มกระพริบ ESP8266 ใน Arduino IDE ฉันแนะนำให้คุณอ่านบทความจนจบ

ตอนนี้เรามาลองแฟลช ESP8266 ผ่าน Arduino IDE กันดีกว่า เราใส่โมดูลเข้าสู่โหมดการเขียนโปรแกรม (ฉันเขียนวิธีการทำสิ่งนี้ในบทความก่อนหน้านี้)

มาเพิ่ม LED มาตรฐานให้กับไฟกะพริบ:

// โดย Mr. PodelkinTs youtube.com/RazniePodelki // พิเศษสำหรับ geektimes.ru/post/271754/ #define TXD 1 // GPIO1/TXD01 การตั้งค่าเป็นโมฆะ() ( pinMode(TXD, OUTPUT); ) void loop() ( digitalWrite (TXD, สูง); ล่าช้า (1,000); digitalWrite (TXD, ต่ำ); ล่าช้า (1,000); )

แวบวับ? ดังนั้นทุกอย่างถูกต้อง ฉันมาจากไหนที่ LED เชื่อมต่อกับพินแรก ในบทความก่อนหน้านี้มีรูปภาพที่มี pinouts ของโมดูลต่าง ๆ และมีการทำเครื่องหมายของพอร์ตเมื่อใช้ Arduino bootloader (หมุดมีเครื่องหมายสีชมพู)

แน่นอนว่าการกระพริบไฟ LED เป็นสิ่งที่ดี แต่เราจำเป็นต้องติดตั้งเว็บเซิร์ฟเวอร์บางประเภทหรือเริ่มควบคุมไฟ LED อย่างน้อยก็โดยใช้ปุ่มในเบราว์เซอร์ใช่ไหม แต่ฉันจะบอกคุณเกี่ยวกับเรื่องนี้อีกครั้ง

และตอนนี้ วิธีแฟลชกลับเฟิร์มแวร์ดั้งเดิมและวิธีแฟลชโมดูลด้วย bootloaders ของบุคคลที่สาม สำหรับ ESP8266 มีโปรแกรมเช่น NodeMCU Flasher ซึ่งเดิมมีไว้สำหรับการแฟลชบูตโหลดเดอร์ NodeMCU แต่เมื่อปรากฎว่าเฟิร์มแวร์อื่นจะกะพริบอย่างสมบูรณ์แบบ

ฉันจะแนบไฟล์เก็บถาวรด้วยโปรแกรมนี้และเฟิร์มแวร์เข้ากับบทความเพื่อความสะดวก แต่คุณสามารถดาวน์โหลดได้ตลอดเวลา เวอร์ชั่นใหม่ NodeMCU กะพริบ

ในโฟลเดอร์ "nodemcu-flasher-master" มี 2 โฟลเดอร์ Win64 และ Win32 และขึ้นอยู่กับความลึกบิตของระบบปฏิบัติการของคุณให้เลือกโฟลเดอร์ที่คุณต้องการ จากนั้นในโฟลเดอร์ Release ให้รัน “ESP8266Flasher.exe” และดูอินเทอร์เฟซของโปรแกรม:

เลือกพอร์ต COM ที่ต้องการแล้วไปที่แท็บ "กำหนดค่า" ลบเครื่องหมายกากบาทที่อยู่ถัดจาก "INTERNAL://NODEMCU" แล้ววางให้ต่ำลงหนึ่งจุดดังในภาพหน้าจอ:

(หากคุณต้องการแฟลช Bootloader ของ NodeMCU ให้ลบกากบาทตรงตำแหน่งที่มันไม่ใช่ออก และวางไว้ในตำแหน่งที่มันอยู่ นั่นคือใกล้กับ “INTERNAL://NODEMCU”)

จากนั้นเราคลิกที่เฟืองและเลือกตำแหน่งของเฟิร์มแวร์ของเรา เฟิร์มแวร์มักจะอยู่ในรูปแบบ *.bin (ในไฟล์แนบที่แนบมาคือ “v0.9.5.2 AT Firmware.bin” ซึ่งอยู่ในโฟลเดอร์หลัก) และ เลือก "0x00000" เป็นและสูงกว่าด้วย

เรากลับไปที่แท็บ "การทำงาน" อีกครั้งนำโมดูลเข้าสู่โหมดการเขียนโปรแกรมแล้วคลิก "แฟลช":

เพียงเท่านี้โมดูลก็เริ่มที่จะแฟลชแล้ว หลังจากกระพริบอย่าลืมรีบูตโมดูลและ voila มันจะแฟลชด้วยเฟิร์มแวร์ที่เราต้องการ

เราตรวจสอบด้วยคำสั่ง AT “AT+GMR” ว่าเราทำทุกอย่างถูกต้องหรือไม่:

อย่างที่คุณเห็นทุกอย่างเป็นไปอย่างราบรื่น

วิธีใช้โมดูล ESP-01 ควบคุม LED ผ่านอินเทอร์เน็ต ซึ่งเป็นโมดูลที่ให้คุณควบคุมใด ๆ อุปกรณ์ไฟฟ้า.

ในบทช่วยสอน ESP8266 นี้ เราใช้โมดูล ESP-01 เพื่อควบคุม LED ผ่านทางอินเทอร์เน็ต ESP8266 เป็นแพลตฟอร์มราคาถูกแต่มีประสิทธิภาพสำหรับการสื่อสารผ่านอินเทอร์เน็ต

นอกจากนี้ยังง่ายต่อการใช้งานกับ Arduino หลังจากจบบทเรียนนี้ คุณจะได้รับความรู้พื้นฐานในการควบคุมอุปกรณ์ไฟฟ้าผ่านทางอินเทอร์เน็ตจากทุกที่ในโลก!

ที่นี่เราจะใช้ตัวแปลง USB เป็น TTL เพื่อตั้งโปรแกรม ESP8266 ESP-01 และเราจะนำไปใช้ในการพัฒนาเว็บเซิร์ฟเวอร์สำหรับ รีโมทนำ.

มันทำงานอย่างไร

ESP8266 สามารถควบคุมได้จากเครือข่าย Wi-Fi ในพื้นที่หรือจากอินเทอร์เน็ต (หลังจากการส่งต่อพอร์ต) โมดูล ESP-01 มีพิน GPIO ที่สามารถตั้งโปรแกรมให้เปิดหรือปิด LED หรือรีเลย์ผ่านทางอินเทอร์เน็ตได้ สามารถตั้งโปรแกรมโมดูลได้โดยใช้ตัวแปลง Arduino USB เป็น TTL ผ่านทางพินอนุกรม (RX, TX)

การเชื่อมต่อฮาร์ดแวร์กับ ESP8266 ของคุณ

เราสามารถใช้ตัวแปลง USB เป็น TTL หรือใช้ Arduino เพื่อตั้งโปรแกรม ESP8266 ต่อไปนี้เป็นสามวิธีที่คุณสามารถปฏิบัติตามเพื่อโหลดโค้ดลงใน ESP8266 ของคุณ - เลือกวิธีที่เหมาะกับคุณที่สุด โปรดดูไดอะแกรมสำหรับแต่ละตัวเลือกและกำหนดค่าอุปกรณ์ของคุณให้เหมาะสม

1. ตัวแปลง USB เป็น TTL โดยใช้ขั้วต่อ DTR

หากคุณใช้ตัวแปลง USB เป็น TTL พร้อมเอาต์พุต DTR การดาวน์โหลดจะเป็นไปอย่างราบรื่น โปรดจำไว้ว่าจอภาพแบบอนุกรมจะไม่ทำงานเมื่อทำเช่นนี้

ยูเอสบี TTL → ESP8266 ESP-01
GND → GND
เท็กซัส → รับ
รับ → เท็กซัส
RTS → RST
DTR → GPIO0

2. ตัวแปลง USB เป็น TTL โดยไม่มีเอาต์พุต DTR

ในการเชื่อมต่อตัวแปลง USB เป็น TTL โดยไม่มีพิน DTR เราต้องใช้เกียร์ธรรมดา สำหรับสิ่งนี้ เราใช้สองปุ่ม - ดูแผนภาพต่อไปนี้:

ยูเอสบี TTL → ESP8266 ESP-01
GND → GND
เท็กซัส → รับ
รับ → เท็กซัส
ปุ่มรีเซ็ต → RST
ปุ่มแฟลช → GPIO0

เมื่อดาวน์โหลดโค้ด ให้คลิกปุ่ม "ดาวน์โหลด" (Flash) กดปุ่มค้างไว้ในขณะที่คุณกดปุ่มรีเซ็ตหนึ่งครั้ง ตอนนี้คุณสามารถปล่อยปุ่ม Flash ได้แล้ว ขณะนี้ ESP8266 อยู่ในโหมดที่คุณสามารถอัปโหลดภาพร่างได้

3. การใช้ Arduino Uno เพื่ออัปโหลดโค้ดไปยัง ESP8266

คุณสามารถใช้ ESP8266 ESP-01 เพื่อรันโค้ดได้ เมื่อดาวน์โหลดโค้ด ให้ทำตามขั้นตอนเดียวกับขั้นตอนที่สอง โดยกดปุ่ม "ดาวน์โหลด" ค้างไว้ขณะกดรีเซ็ตหนึ่งครั้ง จากนั้นปล่อยปุ่ม Flash

ARDUINO → ESP8266 ESP-01
GND → GND
เท็กซัส → เท็กซัส
รับ → รับ
ปุ่มรีเซ็ต → RST
ปุ่มแฟลช → GPIO0

ดาวน์โหลดโค้ด ESP8266

ใช้วิธีการใด ๆ ข้างต้นแล้วเปิด จากนั้นเลือกบอร์ด ESP8266 จากเมนู:

เครื่องมือ → บอร์ด → โมดูล ESP8266 ทั่วไป
(เครื่องมือ → บอร์ด → โมดูล ESP8266)

บันทึก. หากคุณยังไม่ได้ติดตั้งและกำหนดค่าบอร์ด Arduino ESP8266 โปรดดำเนินการดังกล่าวโดยทำตามขั้นตอนข้างต้นในบทช่วยสอนนี้ จากนั้นคุณก็สามารถเดินหน้าต่อไปได้

ตอนนี้คัดลอกโค้ดด้านล่างลงใน Arduino IDE แล้วคลิกที่ปุ่มดาวน์โหลด เปลี่ยน SSID เป็นจุด การเข้าถึงอินเทอร์เน็ตไร้สายและเปลี่ยนรหัสผ่านเป็นของคุณ รหัสผ่าน Wi-Fiและคอมไพล์

#รวม const char* ssid = "YOUR_SSID";//พิมพ์ ssid ของคุณ รหัสผ่าน const char* = "YOUR_PASSWORD";//พิมพ์รหัสผ่านของคุณ int ledPin = 2; // GPIO2 ของเซิร์ฟเวอร์ ESP8266 WiFiServer (80); // การตั้งค่าโมฆะพอร์ตบริการ () ( Serial.begin (115200); ล่าช้า (10); pinMode (ledPin, OUTPUT); digitalWrite (ledPin, LOW); // เชื่อมต่อกับ เครือข่าย WiFi Serial.println(); Serial.println(); Serial.print("กำลังเชื่อมต่อกับ "); Serial.println(ssid); WiFi.begin(ssid, รหัสผ่าน); ในขณะที่ (WiFi.status() != WL_CONNECTED ) ( ล่าช้า (500); Serial.print ("."); ) Serial.println (""); Serial.println ("เชื่อมต่อ WiFi"); // เริ่มเซิร์ฟเวอร์ server.begin (); Serial.println ( "เซิร์ฟเวอร์เริ่มต้น"); // พิมพ์ที่อยู่ IP Serial.print ("ใช้ URL นี้เพื่อเชื่อมต่อ: "); Serial.print ("http://"); Serial.print (WiFi.localIP ()); Serial .println("/"); ) void loop() ( // ตรวจสอบว่าไคลเอนต์เชื่อมต่อ WiFiClient client = server.available(); if (!client) ( return; ) // รอจนกระทั่งไคลเอนต์ส่งข้อมูลบางส่วน Serial .println("new client"); while(!client.available())( Delay(1); ) // อ่านบรรทัดแรกของคำขอ String request = client.readStringUntil("\r"); Serial.println (คำขอ); client.flush (); // จับคู่คำขอ int value = LOW; if (request.indexOf("/LED=ON") != -1) ( digitalWrite(ledPin, HIGH); value = HIGH; ) ถ้า (request.indexOf("/LED=OFF") != -1)( digitalWrite(ledPin, LOW); value = LOW; ) //ตั้งค่า ledPin ตามคำขอ //digitalWrite(ledPin, value); // ส่งคืนการตอบสนอง client.println("HTTP/1.1 200 OK"); client.println("ประเภทเนื้อหา: ข้อความ/html"); ลูกค้า.println(""); // อย่าลืมอันนี้ client.println(""); client.println(" "); client.print("หมุด LED อยู่ในขณะนี้: "); if(value == HIGH) ( client.print("On"); ) else ( client.print("Off"); ) client.println( "

"); client.println("คลิก ที่นี่เปิด LED บนพิน 2 ON
"); client.println("คลิก ที่นี่ให้ปิด LED บนพิน 2
"); client.println(""); ล่าช้า (1); Serial.println ("ไคลเอ็นต์ถูกตัดการเชื่อมต่อ"); Serial.println (""); )

เปิดมอนิเตอร์อนุกรมของคุณและเปิด URL ที่แสดงบนมอนิเตอร์อนุกรมของคุณผ่านทางเว็บเบราว์เซอร์ เชื่อมต่อ GPIO 2 จาก ESP8266 เข้ากับพิน LED ที่ยาวกว่า ตอนนี้คุณสามารถควบคุม LED ของคุณจากระยะไกลผ่านทางอินเทอร์เน็ตได้แล้ว!

ถอดสายที่จำเป็นในการดาวน์โหลดโค้ดออก โมดูล LM1117 ใช้เพื่อจ่ายเอาต์พุต 3.3V ที่มีการควบคุม ซึ่งจะช่วยให้คุณสร้างโมดูล ESP8266 หรือ ESP-01 แบบสแตนด์อโลนได้

การเชื่อมต่อ ESP8266 กับอินเทอร์เน็ต

ปัจจุบันโมดูล ESP8266 มีเฉพาะผ่านทางเท่านั้น เครือข่ายท้องถิ่นอินเตอร์เน็ตไร้สาย ในการจัดการอุปกรณ์จากอินเทอร์เน็ต คุณต้องทำการส่งต่อพอร์ตบนเราเตอร์ของคุณ

ในการดำเนินการนี้ ให้ค้นหาที่อยู่ IP ของระบบของคุณโดยใช้คำสั่ง "ifconfig" ในเทอร์มินัลของคุณหรือไปที่ whatsmyip.org คัดลอกที่อยู่ IP ของคุณ ตอนนี้เปิดการตั้งค่าเราเตอร์ของคุณแล้วไปที่การตั้งค่าการส่งต่อ ป้อนรายละเอียดสำหรับ “พอร์ตบริการ” และ “ที่อยู่ IP” พอร์ตบริการคือหมายเลขพอร์ตจากรหัส Arduino ของคุณ (พอร์ตบริการ: 80):

เซิร์ฟเวอร์ WiFiServer (80); // พอร์ตบริการ

ที่อยู่ IP เป็นที่อยู่ที่คุณระบุไว้ก่อนหน้านี้ ปล่อยให้การตั้งค่าที่เหลือเป็นค่าเริ่มต้น ตอนนี้ไปที่เบราว์เซอร์ของคุณและป้อนที่อยู่: xxx.xxx.xx.xx:80 หน้าควรเปิดขึ้นเพื่อควบคุม LED