หน้าแรก ดูโปรเจกต์ทั้งหมด
Easy

โปรเจกต์ ESP8266 WiFi range extender Arduino

คุณเคยเจอปัญหา WiFi ไม่สามารถส่งสัญญาณไปถึงบางห้องไหม? ผมเคยเจอปัญหานั้นมาก่อน และนั่นคือสาเหตุที่ผมสร้าง WiFi extender เครื่องนี้ขึ้นมา

โปรเจกต์ ESP8266 WiFi range extender Arduino
33,767 การดู
5 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x NodeMCU ESP8266 Breakout Board
-

แอปพลิเคชันและแพลตฟอร์ม

รายละเอียดและวิธีทำ

คุณแม่ของผมมีอุปกรณ์ WiFi แบบพกพาซึ่งส่วนใหญ่มักจะวางอยู่ในห้องของท่าน ทำให้สัญญาณ WiFi ส่งไปไม่ถึงห้องนั่งเล่น และนั่นคือปัญหา แต่ผมรักในการแก้ปัญหา ผมเลยได้ลอง googling และพบ GitHub repository สำหรับ ESP8266 repeater โดย martin-ger ใน repo นั้นมีไฟล์ binary สำหรับ repeater ผมเลยจัดการ flash มันลงใน esp8266 ของผมโดยใช้ esptool และมันทำงานได้เหมือนเวทมนตร์เลย คลิก ที่นี่ เพื่อเข้าถึง repository อย่างไรก็ตาม มีปัญหาบางอย่างที่ผมพบกับ repeater(extender) ตัวนี้:

  • หน้า Web UI interface ไม่สามารถ scan หาเครือข่าย WiFi ได้ ดังนั้นผมเลยไม่รู้ว่าเมื่อไหร่ที่ผมอยู่ในระยะของ router นอกจากจะใช้ serial interface.
  • หน้า Web UI interface ไม่สามารถ scan หาเครือข่าย WiFi ได้ ดังนั้นผมเลยไม่รู้ว่าเมื่อไหร่ที่ผมอยู่ในระยะของ router นอกจากจะใช้ serial interface.

การ Debugging สามารถทำได้โดยการสังเกตอัตราการกะพริบของ led แต่มีจุดสังเกตคือ สถานะของ led ตอนที่มันเชื่อมต่อกับ router และตอนที่โทรศัพท์ของผมเชื่อมต่อกับมันในฐานะ access point นั้นเหมือนกัน ทำให้ผมสับสนเพราะไม่สามารถบอกได้ว่ามันเชื่อมต่อกับ router อยู่ หรือโทรศัพท์ของผมกำลังเชื่อมต่อกับมันกันแน่

  • การ Debugging สามารถทำได้โดยการสังเกตอัตราการกะพริบของ led แต่มีจุดสังเกตคือ สถานะของ led ตอนที่มันเชื่อมต่อกับ router และตอนที่โทรศัพท์ของผมเชื่อมต่อกับมันในฐานะ access point นั้นเหมือนกัน ทำให้ผมสับสนเพราะไม่สามารถบอกได้ว่ามันเชื่อมต่อกับ router อยู่ หรือโทรศัพท์ของผมกำลังเชื่อมต่อกับมันกันแน่

ด้วยเหตุนี้ ผมจึงตัดสินใจสร้างมันขึ้นมาเอง และโชคดีที่ Arduino มี ตัวอย่าง สำหรับ WiFi range extender ผมจึงแค่เพิ่ม WiFi manager เข้าไป และเท่านี้คุณก็ได้ WiFi range extender แล้ว นี่คือฟีเจอร์บางส่วนของ WiFi range extender ของผม:

  • Scan หาเครือข่าย

WiFi manger ผ่าน web ui

  • WiFi manger ผ่าน web ui

led indicator สำหรับ debugging

  • led indicator สำหรับ debugging

ปุ่ม Reset เพื่อกลับสู่ค่า factory setting

  • ปุ่ม Reset เพื่อกลับสู่ค่า factory setting

ใช่ครับ! ทั้งหมดก็มีแค่นี้ ผมสร้าง extender ตัวนี้ขึ้นมาเพื่อตอบสนองความต้องการของตัวเอง และหวังว่ามันจะตอบโจทย์ความต้องการของคุณได้ ด้วยเหตุนี้ผมจึงไม่อาจพูดได้ว่า WiFi extender ของผมดีกว่า martin-ger esp-repeater ที่อัดแน่นไปด้วยฟีเจอร์มากมาย เช่น auto mesh, MQTT, web config interface, CLI, WPA2 Enterprise Config, TCP/IP Config ฯลฯ พอเรื่องของ martin-ger esp-repeater กันแค่นี้ แล้วกลับมาที่ WiFi extender ของผมกันดีกว่า 😥️.

การ Uploading code

คุณสามารถรับ code ได้จาก GitHub repository ของผม คุณจะเลือก flash esp8266 ของคุณด้วยไฟล์ bin หรือจะแก้ไขไฟล์ .ino ตามใจชอบก็ได้ (ผมจะคอยตรวจสอบ pull requests ต่างๆ แน่นอน) และ upload ลงบอร์ดของคุณ

การ flashing ด้วย esptool

ติดตั้ง esptool ก่อนpip3 install esptoolErase flashesptool.py --port /dev/ttyUSB0 erase_flash หากคุณใช้ windows ให้เปลี่ยน /dev/ttyUSB0 เป็น COM port ที่ esp8266 เชื่อมต่ออยู่Upload ไฟล์ binรันคำสั่งนี้บน terminal esptool.py --port /dev/ttyUSB0 write_flash -fs 4MB -fm dout 0x0 [ตำแหน่งไฟล์ bin] ไม่ต้องใส่เครื่องหมายวงเล็บใน terminal

การ Speed test

ก่อนที่เราจะเข้าสู่รายละเอียดเชิงลึกของบทความนี้ มาดูผล speed test กันก่อน ความเร็วลดลงประมาณ 80% 😥️😥️😥️ ใช่ครับ มันลดลงเยอะมาก นี่คือความเร็ว router ของผม

นี่คือความเร็วของ extender

ผมทำการทดสอบซ้ำสองครั้งซึ่งให้ผลว่าความเร็วลดลงประมาณ 80% ข้อดีคือความเร็วจะไม่ลดลงอีกเมื่อคุณเพิ่ม extender เข้าไปมากกว่านี้

การ Debugging ด้วยอัตราการกะพริบ

Led กะพริบทุกวินาที - ไม่มีไฟล์ config และ web portal กำลังทำงาน

  • Led กะพริบทุกวินาที - ไม่มีไฟล์ config และ web portal กำลังทำงาน

Led กะพริบทุกๆ 200ms - เชื่อมต่อสำเร็จและ repeater พร้อมทำงาน

  • Led กะพริบทุกๆ 200ms - เชื่อมต่อสำเร็จและ repeater พร้อมทำงาน

Led ดับ - เกิดปัญหากับ repeater

  • Led ดับ - เกิดปัญหากับ repeater

Led ติดค้าง (ไม่กะพริบ) - กำลังพยายามเชื่อมต่อกับ router

  • Led ติดค้าง (ไม่กะพริบ) - กำลังพยายามเชื่อมต่อกับ router

การตั้งค่าผ่าน web interface

IP address เริ่มต้นสำหรับอุปกรณ์คือ 192.168.4.1 (คุณสามารถตรวจสอบ IP address ได้จาก serial monitor เสมอ) ในระหว่างการรันอุปกรณ์ครั้งแรก ไฟล์ config (ไฟล์ที่มีรายละเอียดของ router ที่จะเชื่อมต่อ) จะยังไม่มีอยู่ ดังนั้นมันจะเริ่มทำงาน web server (led จะกะพริบทุกๆ หนึ่งวินาทีเพื่อระบุสถานะนี้) ชื่อเริ่มต้นของอุปกรณ์คือ Pius_Electronics_extender0001 ให้เชื่อมต่อกับเครือข่าย WiFi และพิมพ์ IP address ใน browser ของคุณ แล้วหน้าเว็บจะปรากฏขึ้นมา

คลิกที่ปุ่ม scan เพื่อค้นหาเครือข่าย เลือกเครือข่าย (router) ที่คุณต้องการเชื่อมต่อ ใส่รหัสผ่าน (รหัสผ่านของ router) และพิมพ์ชื่อที่คุณต้องการให้ extender มีในช่องข้อความที่ชื่อ AP name แล้วคลิก submit ตัว extender จะมีรหัสผ่านเดียวกับ router ที่เชื่อมต่อ หาก led เริ่มกะพริบในอัตราที่เร็ว (200ms) แสดงว่าการเชื่อมต่อสำเร็จ คุณสามารถเชื่อมต่อกับ extender และเริ่มใช้งานได้ทันที

Auto-mesh

extender ตัวนี้ไม่รองรับ auto mesh แต่ทางเลือกอื่นคือการเชื่อมต่อ extender ต่อกันไปเรื่อยๆ เช่น เชื่อมต่อ extender2 เข้ากับ extender1, extender3 เข้ากับ extender2, extender4 เข้ากับ extender3 ไปเรื่อยๆ ตามจำนวน extender ที่คุณต้องการ หากคุณมีวิธีที่ดีกว่านี้ คุณสามารถส่ง pull request มาที่ GitHub repository ของผม ได้เลย ดังนั้นหากคุณโอเคกับความเร็วที่ลดลง 80% คุณก็สามารถลองใช้ extender ตัวนี้ได้ครับ ขอบคุณมากที่สละเวลาอ่าน

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: esp8266-wifi-range-extender-arduino-522cf8
870 บาท
PromptPay QR Code