📃
micropython
  • Programming with MicroPython
  • MicroPython for BBC Micro:bit
    • BBC Micro:bit Overview
    • Micro:bit Code Examples
  • MicroPython for STM32
    • MicroPython Firmware Flashing for STM32
    • STM32 Code Examples
  • MicroPython for ESP32
    • WebREPL
    • ESP32 Code Examples
    • How To Blink LEDs with ESP32
    • ESP32 Programming with M5Stack Core
    • ESP32 with Dual-Channel DAC Output
    • ESP32 Networking
  • Arduino C/C++ versus MicroPython
  • Building MicroPython Firmware
  • MicroPython Benchmarking
  • MicroPython for RP2040 Pico
    • RPi Pico RP2040 Code Examples
    • PIO Programming
    • PIO Signaling and Measurement
  • CircuitPython
    • CircuitPython with Piper Make
    • CircuitPython for SAMD21
    • SAMD21 Code Examples
    • CircuitPython for STM32
    • STM32 Code Examples
    • CircuitPython for Pico RP2040
  • List of PDF Files
Powered by GitBook
On this page
  • การใช้งาน WebREPL สำหรับ ESP8266 / ESP32
  • ขั้นตอนการเปิดใช้งาน WebREPL
  • การใช้งาน WebSocket Client เชื่อมต่อกับ WebREPL
  • กล่าวสรุป

Was this helpful?

  1. MicroPython for ESP32

WebREPL

แนะนำการใช้งานไมโครไพธอนผ่านทาง WebREPL สำหรับบอร์ดไมโครคอนโทรลเลอร์ ESP8266 / ESP32 ซึ่งมีข้อดีคือ ผู้ใช้สามารถเชื่อมต่อกับอุปกรณ์ไมโครไพธอนในระบบเครือข่าย และอยู่ห่างออกไปได้

PreviousMicroPython for ESP32NextESP32 Code Examples

Last updated 4 years ago

Was this helpful?

การใช้งาน 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 ที่ได้ลงเฟิร์มแวร์ไว้ใช้งานแล้ว ก็ทำได้ไม่ยาก และมีขั้นตอนดังนี้

  1. เชื่อมต่อกับ REPL โดยใช้โปรแกรม เช่น Thonny IDE ผ่าน USB-to-Serial

  2. ทำคำสั่งเพื่อตั้งค่าการใช้งานเพื่อให้อุปกรณ์ทำงานในโหมด Wi-Fi Station (STA) เชื่อมต่อกับ Wi-Fi Access Point / Router และอยู่ในเครือข่ายเดียวกับคอมพิวเตอร์ของผู้ใช้ จากนั้นเมื่อเชื่อมต่อได้แล้ว อุปกรณ์ จะได้รับหมายเลข IP Address (IPv4) จาก DHCP Server

  3. ทำคำสั่งใน REPL Shell เพื่อเปิดใช้งาน WebREPL

  4. ทำคำสั่งเพื่อรีบูทการทำงานของไมโครไพธอนแบบ Soft Reset โดยกดคีย์ Ctrl+D

  5. เปิดเว็บเบราว์เซอร์ ไปยัง

  6. เชื่อมต่อโดยใช้ WebSocket (ws://) ระบุหมายเลข IP Address ของบอร์ด และพอร์ต 8266

ถ้าจะใช้งาน WebREPL ต้องทำให้อุปกรณ์เชื่อมต่อผ่าน Wi-Fi ไปยังระบบเครือข่ายและอินเทอร์เน็ตได้ให้ก่อน

โค้ดไมโครไพธอนต่อไปนี้ ใช้เพื่อคำสั่งในการตั้งค่าการใช้งาน Wi-Fi ของ ESP8266 / ESP32 ในโหมด STA สำหรับ ESP8266 / ESP32 และมีการตรวจสอบดูว่า สามารถเชื่อมต่อกับ Wi-Fi ได้สำเร็จหรือไม่ ถ้าได้ ให้แสดงข้อความระบุ หมายเลข IP Address ของอุปกรณ์ เป็นต้น

ให้นำโค้ดส่วนนี้ไปใส่ลงในไฟล์ boot.py ที่มีอยู่ใน Flash File Storage ของอุปกรณ์ไมโครไพธอน

import time
import network

WIFI_SSID   = 'YOUR_WIFI_SSID'
WIFI_PASSWD = 'YOUR_WIFI_PASSWORD'

wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect( WIFI_SSID, WIFI_PASSWD )
retry_count = 0
while retry_count < 20:
    time.sleep_ms(500)
    if wifi.isconnected():
        print( wifi.ifconfig() )
        break
    retry_count += 1

อย่าลืมเปลี่ยนข้อความเพื่อระบุชื่อของ SSID และรหัสผ่านของ Wi-Fi สำหรับการทำคำสั่ง wifi.connect(…) ให้ตรงกับอุปกรณ์ที่จะใช้งานจริง

บันทึกการแก้ไขลงไฟล์ boot.py จากนั้นกดปุ่ม Ctrl+D เพื่อทำขั้นตอน Soft Reset

เมื่อเชื่อมต่อได้แล้ว ถัดไปให้ทำคำสั่งใน REPL Shell เพื่อเปิดใช้งาน WebREPL

import webrepl_setup

จากนั้นจะต้องเลือก Enable (E) และตั้งค่ารหัสผ่าน (ความยาว 4-9 ตัวอักขระ) ที่จะใช้สำหรับเชื่อมต่อกับ WebREPL แล้วจึงรีเซตระบบให้เริ่มต้นทำงานใหม่ และในกรณีที่เปิดใช้งาน Thonny IDE อยู่ในขณะนั้น ให้เปิดการเชื่อมต่อผ่านทาง USB-to-Serial

ข้อสังเกต: การทำคำสั่งดังกล่าว เป็นการเพิ่มคำสั่ง 2 บรรทัดต่อไปนี้ ลงในไฟล์ boot.py เพื่อเปิดใช้งาน WebREPL (daemon) โดยอัตโนมัติหลังจากเปิดหรือบูทระบบทุกครั้ง

import webrepl
webrepl.start()

จากนั้นกดปุ่ม Connect และใส่รหัสผ่านสำหรับ WebREPL ที่ได้ตั้งค่าไว้ ถ้าเชื่อมต่อได้สำเร็จ จะเห็นสัญลักษณ์ >>> ให้ลองทำคำสั่งของไมโครไพธอน

ข้อสังเกต: ถ้าพบว่า หลังจากที่เชื่อมต่อกับ WebREPL ได้แล้ว แต่ไม่สามารถพิมพ์คำสั่งใด ๆ ในช่องรับ >>> ในกรณีนี้ ให้กดปุ่ม Reset ของบอร์ด แล้วทำการเชื่อมต่อใหม่อีกครั้ง

นอกจากนั้นบนหน้าเว็บ (ทางด้านขวามือ) มีช่องให้เลือกทำคำสั่ง เพื่อจะสำเนาไฟล์ระหว่างคอมพิวเตอร์ของผู้ใช้กับอุปกรณ์ไมโครไพธอนผ่านทาง WebREPL

การใช้งาน WebSocket Client เชื่อมต่อกับ WebREPL

ก่อนหน้านี้เราได้ใช้เว็บเบราว์เซอร์ เชื่อมต่อไปยัง WebREPL ของไมโครไพธอนสำหรับอุปกรณ์ ESP8266 / ESP32 ในระบบเครือข่าย ถัดไปเป็นตัวอย่างการใช้โค้ดภาษาไพธอน เชื่อมต่อกับ WebREPL โดยใช้โพรโตคอล WebSocket ในลักษณะ Interactive Shell

ก่อนอื่นจะต้องติดตั้งไลบรารีสำหรับ Python 3 ดังนี้ (ทดลองใช้กับ Raspbian OS สำหรับบอร์ด Raspberry Pi 4B)

$ sudo python3 -m pip install -U websocket websocket_client
$ wget https://github.com/Hermann-SW/webrepl/raw/master/webrepl_client.py

เมื่อดาวน์โหลดไฟล์ดังกล่าวมายังคอมพิวเตอร์ของผู้ใช้แล้ว ให้ทำคำสั่งดังนี้

$ python3 ./webrepl_client.py 192.168.1.176 -p 1234

ในกรณีตัวอย่างนี้ เป็นการเชื่อมต่อไปยังอุปกรณ์ตามหมายเลข IP 192.168.1.176 และรหัสผ่าน 1234 (อย่าลืมเปลี่ยนการตั้งค่าให้ตรงกับที่ใช้งานจริง)

เมื่อเชื่อมต่อได้แล้วและมีสัญลักษณ์ >>> ปรากฏขึ้น ก็ลองทำคำสั่งผ่านทาง REPL และถ้าต้องจบการทำงาน ก็พิมพ์คำสั่ง exit() หรือพิมพ์ตัวอักขระ D เพียงตัวเดียวในหนึ่งบรรทัด (ซึ่งหมายถึง Ctrl+D) แล้วกด Enter

กล่าวสรุป

การใช้งาน WebREPL สำหรับไมโครไพธอน ก็เป็นอีกหนึ่งช่องทางเพื่อเชื่อมต่อไปยังอุปกรณ์ไมโครคอนโทรลเลอร์ในระบบเครือข่าย นอกเหนือจากการเชื่อมต่อด้วยสาย USB ผ่านทาง USB-to-Serial

เปิดเว็บเบราว์เซอร์ ไปยัง และบนหน้าเว็บดังกล่าว ในช่อง ws:// ให้ใส่หมายเลข IP และพอร์ต 8266 ของอุปกรณ์ไมโครไพธอนที่เปิดใช้งาน WebREPL และเชื่อมต่อกับ Wi-Fi และอินเทอร์เน็ตได้แล้ว

จากนั้นให้ดาวน์โหลดไฟล์ ที่มีผู้พัฒนาและแชร์ไว้ใน Github

http://micropython.org/webrepl/#
http://micropython.org/webrepl/#
webrepl_client.py
รูปภาพ: ตัวอย่างการทำขั้นตอน webrepl_setup
รูปภาพ: โค้ดไมโครไพธอนในไฟล์ boot.py
รูปภาพ: ตัวอย่างการใช้ webrepl_client.py เชื่อมต่อกับ WebREPL