WebREPL
แนะนำการใช้งานไมโครไพธอนผ่านทาง WebREPL สำหรับบอร์ดไมโครคอนโทรลเลอร์ ESP8266 / ESP32 ซึ่งมีข้อดีคือ ผู้ใช้สามารถเชื่อมต่อกับอุปกรณ์ไมโครไพธอนในระบบเครือข่าย และอยู่ห่างออกไปได้
การใช้งาน WebREPL สำหรับ ESP8266 / ESP32
ในการเชื่อมต่อกับไมโครไพธอน หรือการทำงานของ MicroPython-REPL (Interactive Prompt) โดยทั่วไป เราก็จะใช้วิธีเชื่อมต่อผ่าน USB-to-Serial ด้วยสาย USB แต่ถ้าเลือกใช้ไมโครคอนโทรลเลอร์ อย่างเช่น ESP8266 หรือ ESP32 ของบริษัท Espressif ยังมีอีกหนึ่งช่องทางคือ WebREPL (Web-based REPL) เนื่องจากชิป SoC ประเภทนี้ มีวงจรสื่อสาร Wi-Fi (2.4GHz) อยู่ในตัวแล้ว
WebREPL ใช้รูปแบบการสื่อสารกับ REPL ของไมโครไพธอน ผ่านระบบเครือข่ายไร้สาย และใช้โพรโตคอล WebSocket ในการรับส่งข้อมูลกันระหว่างเว็บเบราว์เซอร์สำหรับคอมพิวเตอร์ของผู้ใช้งานกับอุปกรณ์ไมโครไพธอน
ขั้นตอนการเปิดใช้งาน WebREPL
การเปิดใช้งาน WebREPL สำหรับ ESP8266 / ESP32 ที่ได้ลงเฟิร์มแวร์ไว้ใช้งานแล้ว ก็ทำได้ไม่ยาก และมีขั้นตอนดังนี้
เชื่อมต่อกับ REPL โดยใช้โปรแกรม เช่น Thonny IDE ผ่าน USB-to-Serial
ทำคำสั่งเพื่อตั้งค่าการใช้งานเพื่อให้อุปกรณ์ทำงานในโหมด Wi-Fi Station (STA) เชื่อมต่อกับ Wi-Fi Access Point / Router และอยู่ในเครือข่ายเดียวกับคอมพิวเตอร์ของผู้ใช้ จากนั้นเมื่อเชื่อมต่อได้แล้ว อุปกรณ์ จะได้รับหมายเลข IP Address (IPv4) จาก DHCP Server
ทำคำสั่งใน REPL Shell เพื่อเปิดใช้งาน WebREPL
ทำคำสั่งเพื่อรีบูทการทำงานของไมโครไพธอนแบบ Soft Reset โดยกดคีย์ Ctrl+D
เปิดเว็บเบราว์เซอร์ ไปยัง http://micropython.org/webrepl/#
เชื่อมต่อโดยใช้ WebSocket (ws://) ระบุหมายเลข IP Address ของบอร์ด และพอร์ต 8266
ถ้าจะใช้งาน WebREPL ต้องทำให้อุปกรณ์เชื่อมต่อผ่าน Wi-Fi ไปยังระบบเครือข่ายและอินเทอร์เน็ตได้ให้ก่อน
โค้ดไมโครไพธอนต่อไปนี้ ใช้เพื่อคำสั่งในการตั้งค่าการใช้งาน Wi-Fi ของ ESP8266 / ESP32 ในโหมด STA สำหรับ ESP8266 / ESP32 และมีการตรวจสอบดูว่า สามารถเชื่อมต่อกับ Wi-Fi ได้สำเร็จหรือไม่ ถ้าได้ ให้แสดงข้อความระบุ หมายเลข IP Address ของอุปกรณ์ เป็นต้น
ให้นำโค้ดส่วนนี้ไปใส่ลงในไฟล์ boot.py ที่มีอยู่ใน Flash File Storage ของอุปกรณ์ไมโครไพธอน
อย่าลืมเปลี่ยนข้อความเพื่อระบุชื่อของ SSID และรหัสผ่านของ Wi-Fi สำหรับการทำคำสั่ง wifi.connect(…)
ให้ตรงกับอุปกรณ์ที่จะใช้งานจริง
บันทึกการแก้ไขลงไฟล์ boot.py จากนั้นกดปุ่ม Ctrl+D เพื่อทำขั้นตอน Soft Reset
เมื่อเชื่อมต่อได้แล้ว ถัดไปให้ทำคำสั่งใน REPL Shell เพื่อเปิดใช้งาน WebREPL
จากนั้นจะต้องเลือก Enable (E) และตั้งค่ารหัสผ่าน (ความยาว 4-9 ตัวอักขระ) ที่จะใช้สำหรับเชื่อมต่อกับ WebREPL แล้วจึงรีเซตระบบให้เริ่มต้นทำงานใหม่ และในกรณีที่เปิดใช้งาน Thonny IDE อยู่ในขณะนั้น ให้เปิดการเชื่อมต่อผ่านทาง USB-to-Serial
ข้อสังเกต: การทำคำสั่งดังกล่าว เป็นการเพิ่มคำสั่ง 2 บรรทัดต่อไปนี้ ลงในไฟล์ boot.py เพื่อเปิดใช้งาน WebREPL (daemon) โดยอัตโนมัติหลังจากเปิดหรือบูทระบบทุกครั้ง
เปิดเว็บเบราว์เซอร์ ไปยัง http://micropython.org/webrepl/#
และบนหน้าเว็บดังกล่าว ในช่อง ws://
ให้ใส่หมายเลข IP และพอร์ต 8266 ของอุปกรณ์ไมโครไพธอนที่เปิดใช้งาน WebREPL และเชื่อมต่อกับ Wi-Fi และอินเทอร์เน็ตได้แล้ว
จากนั้นกดปุ่ม Connect และใส่รหัสผ่านสำหรับ WebREPL ที่ได้ตั้งค่าไว้ ถ้าเชื่อมต่อได้สำเร็จ จะเห็นสัญลักษณ์ >>>
ให้ลองทำคำสั่งของไมโครไพธอน
ข้อสังเกต: ถ้าพบว่า หลังจากที่เชื่อมต่อกับ WebREPL ได้แล้ว แต่ไม่สามารถพิมพ์คำสั่งใด ๆ ในช่องรับ >>>
ในกรณีนี้ ให้กดปุ่ม Reset ของบอร์ด แล้วทำการเชื่อมต่อใหม่อีกครั้ง
นอกจากนั้นบนหน้าเว็บ (ทางด้านขวามือ) มีช่องให้เลือกทำคำสั่ง เพื่อจะสำเนาไฟล์ระหว่างคอมพิวเตอร์ของผู้ใช้กับอุปกรณ์ไมโครไพธอนผ่านทาง WebREPL
การใช้งาน WebSocket Client เชื่อมต่อกับ WebREPL
ก่อนหน้านี้เราได้ใช้เว็บเบราว์เซอร์ เชื่อมต่อไปยัง WebREPL ของไมโครไพธอนสำหรับอุปกรณ์ ESP8266 / ESP32 ในระบบเครือข่าย ถัดไปเป็นตัวอย่างการใช้โค้ดภาษาไพธอน เชื่อมต่อกับ WebREPL โดยใช้โพรโตคอล WebSocket ในลักษณะ Interactive Shell
ก่อนอื่นจะต้องติดตั้งไลบรารีสำหรับ Python 3 ดังนี้ (ทดลองใช้กับ Raspbian OS สำหรับบอร์ด Raspberry Pi 4B)
จากนั้นให้ดาวน์โหลดไฟล์ webrepl_client.py ที่มีผู้พัฒนาและแชร์ไว้ใน Github
เมื่อดาวน์โหลดไฟล์ดังกล่าวมายังคอมพิวเตอร์ของผู้ใช้แล้ว ให้ทำคำสั่งดังนี้
ในกรณีตัวอย่างนี้ เป็นการเชื่อมต่อไปยังอุปกรณ์ตามหมายเลข IP 192.168.1.176
และรหัสผ่าน 1234
(อย่าลืมเปลี่ยนการตั้งค่าให้ตรงกับที่ใช้งานจริง)
เมื่อเชื่อมต่อได้แล้วและมีสัญลักษณ์ >>>
ปรากฏขึ้น ก็ลองทำคำสั่งผ่านทาง REPL และถ้าต้องจบการทำงาน ก็พิมพ์คำสั่ง exit()
หรือพิมพ์ตัวอักขระ D เพียงตัวเดียวในหนึ่งบรรทัด (ซึ่งหมายถึง Ctrl+D) แล้วกด Enter
กล่าวสรุป
การใช้งาน WebREPL สำหรับไมโครไพธอน ก็เป็นอีกหนึ่งช่องทางเพื่อเชื่อมต่อไปยังอุปกรณ์ไมโครคอนโทรลเลอร์ในระบบเครือข่าย นอกเหนือจากการเชื่อมต่อด้วยสาย USB ผ่านทาง USB-to-Serial
Last updated