# MicroPython คอนโทรลเลอร์

### Part 1: Hardware Setup

#### 1.1 hardware list

* USB Uploader (CH340C)
* WiFi ESP8266

#### 1.2 Connection

นำโมดูล ESP8266 แทนที่ลงในอินเทอร์เฟซการกำหนดค่าโมดูลของ USB uploader แล้วค้นหาพอร์ต COM ที่เกี่ยวข้องใน Windows device manager

<div><figure><img src="/files/trZDzxaYjIqFPbbUiLbZ" alt=""><figcaption></figcaption></figure> <figure><img src="/files/5FmN4PH0mnfwx3vh0WhZ" alt=""><figcaption></figcaption></figure></div>

### Part 2: Software Setup

#### 2.1 Download Thonny

ดาวน์โหลดเวอร์ชันล่าสุดของ Thonny ซึ่งเป็นตัวแก้ไข Python แบบติดตั้งพร้อมใช้งาน MicroPython ได้เลย

Download address: <https://thonny.org/>

<figure><img src="/files/B4kbAfYHHVfHhofwTFGK" alt=""><figcaption></figcaption></figure>

#### 2.2 Download the MicroPython firmware

ซอฟต์แวร์ ESP8266 ที่คอมไพล์แล้วถูกจัดหาไว้ในเว็บไซต์อย่างเป็นทางการของ MicroPython เนื่องจากโมดูล WiFi ของเราเป็นขนาด 4MB ดังนั้นโปรดเลือกซอฟต์แวร์ล่าสุดที่มีชื่อว่า ESP8266 พร้อมกับ 2MiB+ flash และดาวน์โหลดไฟล์ bin นั้น

Firmware download address: <https://micropython.org/download/esp8266/>

#### 2.3 Upload the MicroPython firmware to the ESP8266 module

มีวิธีการอัพโหลดซอฟต์แวร์ MicroPython ไปยังโมดูล ESP8266 2 วิธีด้วยกัน:

* การใช้เครื่องมือดาวน์โหลด ESPtool ช่วยให้คุณสามารถควบคุมพาร์ติชันและการใช้งาน Flash ได้อย่างแม่นยำมากกว่า
* การใช้เครื่องมือที่ซ่อนอยู่ใน Thonny

เพื่อความสะดวก เราจะใช้เครื่องมือที่ซ่อนอยู่ใน Thonny ขั้นตอนการใช้งานคือดังนี้:

1. เปิดโปรแกรม Thonny หน้าต่างหลักจะเป็นดังรูปด้านล่าง โดย Thonny จะใช้ Python interpreter ในไดเร็กทอรีการติดตั้งโดยปริยาย

   <br>

   <figure><img src="/files/oosZ6DFKbp2f80AcL0Zm" alt=""><figcaption></figcaption></figure>
2. เลือก **Tools -> Options** เพื่อเข้าสู่หน้าต่างตัวเลือก ในแท็บ **General** สามารถเลือกภาษาที่ต้องการได้ (ต้องรีสตาร์ทโปรแกรม)

   <br>

   <figure><img src="/files/utqAXsl6rfg71vwIBXYp" alt=""><figcaption></figcaption></figure>
3. เปิด Thonny และเลือกหัวข้อ Tools -> Options เพื่อเข้าสู่หน้าต่างตัวเลือก ในแท็บ General ให้เลือกภาษาที่เราต้องการ (จะต้องทำการรีสตาร์ท) และในแท็บ Interpreter เราจะเปลี่ยน Interpreter เริ่มต้นจาก Python3 มาเป็น **MicroPython (ESP8266)** และเลือกพอร์ตที่ถูกต้อง

   <figure><img src="/files/2TplFQ5WcTG27LY8VzLr" alt=""><figcaption></figcaption></figure>
4. ในขณะนี้โมดูล **ESP8266** ยังไม่ได้อัปโหลดฟิร์มแวร์ **MicroPython** ให้คลิกที่ "**Install or update firmware**" ที่มุมล่างขวาของรูปภาพด้านบนเพื่ออัปเดตฟิร์มแวร์โดยใช้เครื่องมือที่มีอยู่ในโปรแกรม **Thonny**
5. เลือกพอร์ต (**COMx**) ที่ **ESP8266 module** อยู่และเลือกตำแหน่งที่อยู่ของ **firmware MicroPython** (.bin file) ที่ดาวน์โหลดมา ตรวจสอบโหมดแฟลช: **from image file (keep)** (ความเร็วจะช้าลง แต่มันเพียงแค่ต้องไหวทนและไม่ง่ายต่อการทำผิดพลาด) และเลือกตัวเลือก **Erase flash before installing** กดปุ่ม **Install**

   <br>

   <figure><img src="/files/mvlBbwHVdqiXrayqsYBe" alt=""><figcaption></figcaption></figure>
6. ขั้นตอนนี้จะแสดงความคืบหน้าในมุมมองด้านล่างของอินเทอร์เฟซ โปรแกรมจะเริ่มลบ Flash ก่อนแล้วจึงเขียน Firmware จากนั้นจะแสดงคำว่า "**Done**" เมื่อการโปรแกรมเสร็จสมบูรณ์

   <figure><img src="/files/lINF5QoVrn5YbfiGtLeE" alt=""><figcaption></figcaption></figure>
7. การเตรียมซอฟต์แวร์เสร็จสิ้นแล้ว และหน้าจอด้านล่างจะปรากฏขึ้นหลังจากปิดอินเตอร์เฟซการดาวน์โหลด ข้อความสีแดงเป็นเกี่ยวกับการพิมพ์ของ ESP8266 เนื่องจาก ESP8266 จะพิมพ์สตริงของรหัสด้วยอัตราเร็ว baud ที่แตกต่างกับ 115200 เมื่อเริ่มต้น สตริงรหัสนี้ไม่สามารถรู้จักได้โดย MicroPython Shell การปรากฏเครื่องหมาย **>>>** ของ Python แสดงว่า Firmware ถูกอัปโหลดสำเร็จ

   <br>

   <figure><img src="/files/UVJQSOseKcyZY3FFIlJt" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.petoi.com/thai/api/micropython.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
