- ESP8266 คืออะไร
- พื้นฐานของทฤษฎี WiFi:
- ประเภทของการเขียนโปรแกรมด้วย ESP8266:
- ฮาร์ดแวร์เพื่อโปรแกรมโมดูล ESP8266:
- วัสดุที่ต้องการ:
- คำอธิบายวงจร:
- คณะกรรมการอาคารเพื่อโปรแกรม ESP8266:
Internet of Things และ Home Automation เป็นหัวข้อที่น่าสนใจมากในช่วงไม่กี่วันที่ผ่านมา การสร้างบางสิ่งด้วยตัวเราเองซึ่งสามารถสื่อสารกับเวิลด์ไวด์เว็บและสามารถเข้าถึงได้จากทุกที่ในโลกมันฟังดูดีใช่ไหม
แต่เดี๋ยวก่อน!!! ฟังดูซับซ้อนด้วย ???….
สำหรับฉันฉันคิดว่าต้องใช้เวลาและทักษะอันยิ่งใหญ่ในการสร้างสิ่งต่างๆที่สามารถโต้ตอบกับอินเทอร์เน็ตได้ ไม่ฉันคิดผิดอย่างสิ้นเชิงด้วยโมดูลที่ยอดเยี่ยมนี้ที่เรียกว่าESP8266จาก Espressif Systems ตอนนี้คุณสามารถเปิดประตูสำหรับโครงการ IoT ได้อย่างง่ายดายด้วยความช่วยเหลือของโมดูลนี้ โมดูลขนาดเล็กราคาประหยัดนี้สามารถทำสิ่งมหัศจรรย์และใช้งานง่ายและใช้งานง่ายหากเราทำตามขั้นตอนที่ถูกต้อง
บทช่วยสอนนี้มีจุดมุ่งหมายเพื่อแนะนำคุณเกี่ยวกับโมดูล ESP8266-01 นี้ และช่วยให้คุณเริ่มต้นใช้งานได้ บางทีคุณได้นำโมดูลของคุณมาแล้วและติดขัดในขณะที่พยายามใช้งาน จากนั้นคุณไม่ได้อยู่คนเดียวไม่ต้องกังวลหลายคนพบว่าการเริ่มต้นใช้งานโมดูลนั้นยากมากเนื่องจากไม่มีคำแนะนำหรือเอกสารประกอบที่เหมาะสมสำหรับโมดูลนี้ นี่คือเหตุผลในการทำบทช่วยสอนนี้ ทำตามคำแนะนำที่นี่และคุณจะสามารถรับโมดูล ESP8266-01 ของคุณและทำงานได้ในเวลาไม่นานที่นี่เราจะใช้FTDI USB to TTL Serial Adapter Moduleเพื่อตั้งโปรแกรม ESP8266 ตรวจสอบวิดีโอโดยละเอียดในตอนท้ายของบทช่วยสอน
ก่อนที่จะเข้าสู่หัวข้อเรามาพูดถึงพื้นฐานบางประการเกี่ยวกับโมดูล ESP8266-01
ESP8266 คืออะไร
คนส่วนใหญ่เรียก ESP8266 ว่าเป็นโมดูล WIFI แต่จริงๆแล้วมันคือไมโครคอนโทรลเลอร์ ESP8266 เป็นชื่อของไมโครคอนโทรลเลอร์ที่พัฒนาโดย Espressif Systems ซึ่งเป็น บริษัท ที่ตั้งอยู่ในเซี่ยงไฮ้ ไมโครคอนโทรลเลอร์นี้มีความสามารถในการดำเนินกิจกรรมที่เกี่ยวข้องกับ WIFI จึงมีการใช้กันอย่างแพร่หลายเป็นโมดูล Wi-Fi
โมดูล ESP8266 มีให้เลือกหลายประเภทตั้งแต่ ESP8266-01 ถึง ESP8266-12 สิ่งที่เราใช้ในบทช่วยสอนคือ ESP8266-01 เนื่องจากเป็นรุ่นที่ถูกที่สุดและหาได้ง่าย อย่างไรก็ตามโมดูล ESP ทั้งหมดมีโปรเซสเซอร์ ESP เพียงประเภทเดียวสิ่งที่แตกต่างคือประเภทของแผงกั้นที่ใช้เท่านั้น บอร์ดฝ่าวงล้อมของ ESP8266-01 จะมีพิน GPIO เพียง 2 พินในขณะที่บอร์ดอื่นจะสูงกว่า
ข้อมูลจำเพาะทั้งหมดของโมดูลแสดงไว้ในตารางด้านล่าง
แรงดันไฟฟ้า |
3.3V |
การบริโภคในปัจจุบัน |
10uA-170mA |
การใช้กระแสไฟฟ้าสูงสุดระหว่างการกะพริบ |
800mA |
หน่วยความจำแฟลช |
16MB (ปกติ 512K) |
โปรเซสเซอร์ |
Tensilica L106 32 บิต |
ความเร็วโปรเซสเซอร์ |
80-160MHz |
แกะ |
32K + 80K |
GPIO |
17 (แต่ส่วนใหญ่เป็นมัลติเพล็กซ์) |
ตัวแปลงอนาล็อกเป็นดิจิตอล |
1 (10 บิต) |
การเชื่อมต่อ TCP สูงสุด |
5 |
โอเคบางสิ่งที่อาจทำให้คุณประหลาดใจเกี่ยวกับสเปคคือใช่โมดูล ESP8266 มาพร้อมกับตัวแปลง ADC และใช้กระแสไฟสูงมากถึง 0.8A ระหว่างการกระพริบอุปกรณ์ของคุณ
ตรวจสอบโครงการ IoT ที่น่าสนใจตาม ESP8266 ต่างๆของเราด้วย
พื้นฐานของทฤษฎี WiFi:
Transfer Control Protocol (TCP), Internet Protocol (IP), User Datagram Protocol (UDP), Access Point (AP), Station (Sta), Service Set Identifier (SSID), Application Programming Interface (API), เว็บเซิร์ฟเวอร์…..
เงื่อนไขทั้งหมดข้างต้นเหมาะสมกับคุณหรือไม่?
ถ้าใช่. จากนั้น BINGO คุณสามารถข้ามส่วนนี้และย้ายไปยังส่วนถัดไป
ถ้าไม่. ถ้าอย่างนั้นคุณต้องเป็นหนึ่งในนักเรียนไฟฟ้าจำนวนมากที่เพิ่งกระพริบตาผ่านคำศัพท์เหล่านี้ส่วนใหญ่เหมือนกับที่ฉันได้รับการแนะนำให้รู้จักกับสิ่งเหล่านี้เป็นครั้งแรก ดังนั้นให้เราอ่านข้อกำหนดเหล่านี้ทั้งหมดอย่างรวดเร็วเพราะจากนั้นเราก็สามารถเข้าสู่โลกของ IOT ได้
โปรโตคอลการควบคุมการถ่ายโอน (TCP):
พวกเราส่วนใหญ่จะรู้ว่านี่หมายถึงอะไร ใช่นี่คือชุดของกฎที่ขึ้นอยู่กับการทำงานของอินเทอร์เน็ต เนื่องจาก ESP8266 มีความสามารถในการตั้งค่าการเชื่อมต่อ WIFI ที่ Wi-Fi ระดับสูงคือความสามารถในการเข้าร่วมในการเชื่อมต่อ TCP / IP ผ่านลิงก์ไร้สาย คุณสามารถทำให้ ESP ของคุณทำงานบนโปรโตคอล TCP / IP หรือโปรโตคอล UDP
ผู้ใช้ Datagram Protocol (UDP):
UDP ยังเป็นอินเทอร์เน็ตโปรโตคอลอีกประเภทหนึ่ง การสื่อสารประเภทนี้เร็วกว่า TCP แต่มีความแม่นยำน้อยกว่า เหตุผลก็คือ TCP ใช้ Acknowledgement ระหว่างการสื่อสาร แต่ UDP ไม่ทำ TCP ส่วนใหญ่ใช้ในเครือข่ายที่ต้องการความน่าเชื่อถือสูง UDP ใช้ในสถานที่ที่ความเร็วมีลำดับความสำคัญสูงกว่าความน่าเชื่อถือ ตัวอย่างเช่น UDP ใช้ในการประชุมทางวิดีโอเนื่องจากแม้ว่าพิกเซลบางส่วนจะไม่ได้รับการส่ง แต่ก็จะไม่ส่งผลต่อคุณภาพของวิดีโอมากนัก แต่ความเร็วนั้นสำคัญมาก
โครงการและรหัส ESP8266 ส่วนใหญ่ทำงานรอบ TCP / IP, UDP จะถูกรบกวนน้อยที่สุด
จุดเชื่อมต่อ (AP) และสถานี (STA):
เมื่อคุณเริ่มทำงานกับโมดูล ESP คุณจะเจอสองคำนี้บ่อยๆ ให้เราบอกว่าคุณและเพื่อนของคุณต้องการท่องอินเทอร์เน็ตบนสมาร์ทโฟนของคุณ แต่เนื่องจากเขาไม่มีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานได้คุณจึงตัดสินใจที่จะเปิดฮอตสปอตและเพื่อนของคุณก็เชื่อมต่อกับมัน ที่นี่โทรศัพท์ของคุณที่จัดหาการเชื่อมต่ออินเทอร์เน็ตคือ Access Point (AP) และโทรศัพท์ของเพื่อนที่ใช้อินเทอร์เน็ตเรียกว่า Station (STA)
โมดูล ESP8266 สามารถใช้ได้ในสามโหมดโหมด AP โหมด STA หรือทั้งในโหมด STA และ AP (รวมกัน)
Service Set Identifier (SSID):
นี่เป็นคำที่ค่อนข้างง่าย พวกเราเกือบทุกคนเคยใช้ WIFI ชื่อของเครือข่าย Wi-Fi เรียกว่า SSID เมื่อเรามีจุดเชื่อมต่อหลายจุดสำหรับสถานีที่จะเชื่อมต่อสถานีควรทราบว่าจุดเชื่อมต่อใดที่ควรเชื่อมต่อด้วยเหตุนี้ Access Point (AP) แต่ละจุดจึงได้รับข้อมูลประจำตัวซึ่งเรียกว่า SSID
อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API):
พูดง่ายๆคือ API คือ Messenger ที่รับคำขอของคุณประมวลผลและส่งคืนผลลัพธ์ที่ต้องการให้กับระบบของคุณ กิจกรรมส่วนใหญ่ที่เราทำบนอินเทอร์เน็ตจะใช้ API เช่นเมื่อคุณจองเที่ยวบินทำการซื้อทางออนไลน์เป็นต้นทุกเว็บไซต์จะเชื่อมโยงคุณไปยัง API ซึ่งมีงานบางส่วนเช่นการสมัครใช้งานการชำระเงิน ฯลฯ สำหรับคุณ นั่นเอง
ESP8266 ใช้ API เพื่อพูดคุยกับโลกของอินเทอร์เน็ต ตัวอย่างเช่นหากต้องการทราบเวลาสภาพอากาศหรืออะไรก็ตามที่ควรขอในรูปแบบของ API ไปยังเว็บไซต์ที่เกี่ยวข้อง เว็บไซต์นั้นจะได้รับคำขอและให้ผลลัพธ์ที่ต้องการกลับไปที่โมดูล ESP ของเรา
เว็บเซิร์ฟเวอร์:
เว็บเซิร์ฟเวอร์คือสิ่งที่รับผิดชอบในการแสดงเนื้อหาของเว็บไซต์ เนื้อหาทั้งหมดของเว็บไซต์นั้นจะถูกโหลดลงในเว็บเซิร์ฟเวอร์ มีคอมพิวเตอร์เฉพาะที่มีหน้าที่ทำหน้าที่เป็นเว็บเซิร์ฟเวอร์เท่านั้น นอกจากนี้เรายังสามารถตั้งโปรแกรม ESP8266 ของเราให้ทำงานเป็นเว็บเซิร์ฟเวอร์และเชื่อมต่อได้จากทุกที่ในโลก
โอเคนี่เพียงพอแล้วสำหรับเราที่จะเริ่มต้น ตอนนี้ให้เราได้รับในมือของเราบนฮาร์ดแวร์
ประเภทของการเขียนโปรแกรมด้วย ESP8266:
มีสองวิธีในการทำงานกับโมดูล ESP8266 ของคุณ บทช่วยสอนนี้จะช่วยคุณในการเริ่มต้นใช้งานทั้งสองอย่าง วิธีหนึ่งคือใช้คำสั่ง AT วิธีอื่น ๆ คือการใช้ Arduino IDE ให้เราเข้าใจว่ามันหมายถึงอะไร
โมดูล ESP8266 ทั้งหมดที่ส่งมาจากโรงงานจะมีเฟิร์มแวร์เริ่มต้น (SDK + API) ที่โหลดไว้ เฟิร์มแวร์นี้จะช่วยคุณตั้งโปรแกรมโมดูล ESP8266 ผ่านคำสั่ง AT
อีกวิธีหนึ่งคือการเขียนโปรแกรมโมดูล ESP8266 โดยตรงโดยใช้ Arduino IDE (ไม่จำเป็นต้องใช้บอร์ด) และไลบรารี โครงการทั้งหมดสามารถทำได้ทั้งสองวิธี แต่ถ้าคุณเริ่มใช้ Arduino IDE สำหรับการเขียนโปรแกรม ESP8266 ของคุณคุณอาจไม่สามารถใช้คำสั่ง AT ได้เนื่องจาก SDK เริ่มต้นอาจเสียหาย ในกรณีนั้นคุณต้องแฟลช ESP ของคุณด้วยการตั้งค่าเริ่มต้น เราจะกล่าวถึงในบทช่วยสอนอื่น
ฮาร์ดแวร์เพื่อโปรแกรมโมดูล ESP8266:
ESP8266 เป็นโมดูลเทอร์มินัล 8 ตัว พินที่เหมือนกันแสดงอยู่ด้านล่าง
น่าเสียดายที่โมดูลนี้ไม่เป็นมิตรกับเขียงหั่นขนมดังนั้นเราจึงไม่สามารถติดตั้งเข้ากับเขียงหั่นขนมของเราได้โดยตรง นอกจากนี้ยังแตกต่างจาก Arduino ก็ไม่ได้มีการสร้างขึ้นใน USB เข้ากับไดรเวอร์แบบอนุกรม; ด้วยเหตุนี้เราต้องใช้“FTDI USB เพื่อ TTL อนุกรมอะแดปเตอร์โมดูล” เพื่อสื่อสารกับมัน ตรวจสอบให้แน่ใจว่าบอร์ด FTDI สามารถทำงานบน 3.3V ได้ด้วย สิ่งที่เราใช้ในบทช่วยสอนนี้แสดงไว้ด้านล่าง
ตอนนี้อย่างที่เราทราบกันดีว่าเราควรเปิดเครื่อง ESP8266 ด้วย 3.3V แต่ปริมาณการใช้ปัจจุบันคือ 0.8A ดังนั้นจึงอาจไม่ทำงานตามที่คาดไว้หากขับเคลื่อนจาก FTDI breakout board ดังนั้นเราต้องสร้างวงจรเปิดเครื่องของเราเอง ที่นี่เราใช้ LM317 เพื่อจุดประสงค์ในการเปิดเครื่อง รายละเอียดสำหรับการสร้างฮาร์ดแวร์ที่สมบูรณ์จะได้รับในส่วนต่อไป
วัสดุที่ต้องการ:
- คณะกรรมการ Perf
- ESP8266-01
- FTDI คณะกรรมการฝ่าวงล้อม
- LM317
- ตัวเก็บประจุ 0.1uf
- ตัวเก็บประจุ 10uf
- แจ็คบาร์เรล
- Bergstik ชายและหญิง
- ปุ่มกด
- การเชื่อมต่อสายไฟ
- อะแดปเตอร์ 12V เพื่อจ่ายไฟให้กับบอร์ด
คำอธิบายวงจร:
แผนผังของบอร์ดแสดงอยู่ด้านล่าง
บางคนอาจลองเปิดเครื่อง ESP ของคุณโดยตรงจาก FTDI ของคุณและทำให้มันใช้งานได้ แต่ต่อไปนี้เป็นเหตุผลในการสร้างบอร์ดของคุณเองโดยมีส่วนประกอบเพิ่มเติมบางส่วน:
- บอร์ด FTDI เพียงไม่กี่ตัวเท่านั้นที่สามารถจ่ายกระแสไฟฟ้าเพียงพอสำหรับโมดูล ESP โมดูล ESP เพียงไม่กี่โมดูลอาจใช้กระแสไฟฟ้าสูงกว่าโมดูลอื่นในระหว่างการกะพริบ ดังนั้นจึงปลอดภัยเสมอที่จะมีแหล่งพลังงานของคุณเองและจะง่ายกว่าที่จะรวมวงจรเปิดเครื่องบน Dot Board แทนที่จะเป็น breadboard
- เราควรรีเซ็ตโมดูล ESP ก่อนอัปโหลดโค้ดเสมอการสร้างบอร์ดของเราเองจะช่วยให้เรารีเซ็ตโมดูลได้อย่างง่ายดาย เรามีปุ่มกดที่ใช้การ Reset ESP8266
- ต้องต่อกราวด์พิน GPIO0 เมื่อเขียนโปรแกรมโดยใช้ Arduino และต้องปล่อยให้ว่างเมื่อใช้คำสั่ง AT ซึ่งสามารถสลับได้อย่างง่ายดายหากเราสร้างบอร์ดของเราเอง เราได้ใช้จัมเปอร์สำหรับการสลับระหว่างโหมดคำสั่ง AT และโหมดการเขียนโปรแกรม
- การเขียนโปรแกรมทั้งหมดทำได้โดยใช้การสื่อสารแบบอนุกรมหากคุณใช้เขียงหั่นขนมขั้วหลวมบางขั้วอาจทำให้เกิดข้อผิดพลาดครึ่งทางและบังคับให้เราแฟลชโมดูลเพื่อทำงานอีกครั้ง
ดังที่กล่าวไว้ว่าคุณสามารถเลือกระหว่างการใช้เขียงหั่นขนมและสร้างบอร์ดของคุณเองสำหรับการเขียนโปรแกรมโมดูล หากคุณยังต้องการใช้เขียงหั่นขนมวงจรเดียวกันที่แสดงด้านบนสามารถสร้างได้โดยใช้เขียงหั่นขนมของคุณ เฉพาะรูปลักษณ์เท่านั้นที่แตกต่างกันคำแนะนำอื่น ๆ ทั้งหมดในบทช่วยสอนนี้จะใช้เหมือนกัน
คณะกรรมการอาคารเพื่อโปรแกรม ESP8266:
ดังนั้นที่นี่เรากำลังสร้างบอร์ดเพื่อตั้งโปรแกรมโมดูล ESP8266 ซึ่งมีวงจรเปิดเครื่องของตัวเองเพื่อเปิดเครื่อง ESP8266
ดังที่กล่าวว่าโมดูลของเราจะต้องใช้เวลาประมาณ 800mA ในขณะที่เขียนโปรแกรม ดังนั้นเราจึงสร้างโมดูลพลังงานของเราเองโดยใช้ตัวควบคุมแรงดันไฟฟ้าตัวแปร LM317 เนื่องจากกระแสต้นทางของ LM317 เกือบ 1.2A แรงดันไฟฟ้าอินพุตของ LM317 จะเป็น 12V ซึ่งจะได้รับโดยใช้อะแดปเตอร์ติดผนัง 12V 2A เอาต์พุตของ LM317 จะถูกควบคุมเป็น 3.3V อย่างต่อเนื่องโดยใช้ตัวต้านทาน 220 โอห์มและ 360 โอห์ม ตรวจสอบวงจรเครื่องชาร์จแบตเตอรี่ของเราโดยใช้ LM317 เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ LM317
สูตรคำนวณแรงดันขาออกของ LM317 แสดงไว้ด้านล่าง:
Vout = 1.25 * (1+ (R2 / R1))
โดยที่ R1 คือ 220 โอห์มและ R2 คือ 360 โอห์ม
โมดูล ESP8266 เชื่อมต่อตามหมุดที่แสดงในตารางด้านล่าง
หมายเลขพิน |
ชื่อพิน ESP |
เชื่อมต่อกับ |
1 |
พื้น |
กราวด์ของโมดูล FTDI |
2 |
GPIO2 |
ปล่อยให้ว่างหรือเชื่อมต่อกับแท่ง Berg เพื่อใช้ในอนาคต |
3 |
GPIO0 |
สลับเพื่อสลับระหว่างโหมดการเขียนโปรแกรม |
4 |
Rx |
Tx ของโมดูล FTDI |
5 |
Tx |
Rx ของโมดูล FTDI |
6 |
CH_PH |
3.3V จาก LM317 |
7 |
รีเซ็ต |
ปุ่มกดเพื่อรีเซ็ตโมดูล |
8 |
Vcc |
3.3V จาก LM317 |
เพื่อให้สามารถสลับระหว่างโหมดคำสั่ง AT และโหมดการเขียนโปรแกรม Arduinoได้อย่างง่ายดายฉันได้วางสวิตช์ (จัมเปอร์) ซึ่งจะดึง GPIO 0 ลงกราวด์เมื่อใช้ Arduino IDE และจะปล่อยให้ลอยเมื่อใช้คำสั่ง AT
มีความเป็นปุ่มกดซึ่งเมื่อกดจะรีเซ็ตโมดูล ESP ทำได้โดยเพียงแค่เชื่อมต่อพิน RST ของโมดูล ESP กับรางกราวด์ผ่านปุ่มกด ทุกครั้งก่อนที่เราจะตั้งโปรแกรมโมดูล ESP เราควรรีเซ็ต
เมื่อคุณประกอบวงจรแล้วควรมีลักษณะดังนี้ด้านล่าง
ฉันใช้บอร์ด Perf แต่คุณยังสามารถใช้เขียงหั่นขนมได้หากสนใจ (ตามที่กล่าวไว้ข้างต้น) สร้างเสร็จสมบูรณ์และคำอธิบายที่ปรากฏอยู่ในวิดีโอด้านล่าง
เมื่อเสร็จสิ้นการเชื่อมต่อ เปิดบอร์ดโดยไม่มีบอร์ด ESP & FTDI และตรวจสอบว่าเราได้รับ 3.3V อย่างถูกต้องบนขั้ว Vcc และ Ground ของตำแหน่งโมดูล ESP หรือไม่ ตอนนี้ตรวจสอบให้แน่ใจว่าบอร์ด FTDI ของคุณอยู่ในโหมด 3.3V และเชื่อมต่อโมดูล FTDI และ ESP เข้ากับบอร์ดของคุณ
เปิดอะแดปเตอร์ของคุณและเชื่อมต่อกับบอร์ดของคุณโมดูล ESP ควรจะสว่างขึ้นด้วยสีแดง
จากนั้นเชื่อมต่อบอร์ด FTDI เข้ากับคอมพิวเตอร์โดยใช้สาย mini-USB เป็น USB และไปที่ Device manager บนคอมพิวเตอร์ของคุณและคุณจะพบว่าบอร์ด FTDI ของคุณเชื่อมต่อกับพอร์ต COM ของคุณดังที่แสดงด้านล่าง:
ตอนนี้ได้เวลาลงมือเขียนโปรแกรมโมดูล ESP8266 ของเราแล้ว คุณสามารถเริ่มต้นด้วยการใช้คำสั่ง AT จากนั้นย้ายไปใช้ Arduino IDE อย่าลืมตรวจสอบโครงการที่ใช้ ESP8266อื่น ๆ ของเรา