from machine import Pin # เรียกใช้คำสั่ง Pin จากโมดูล machine ซึ่งช่วยให้ควบคุมขาของ (GPIO) บนไมโครคอนโทรลเลอร์
from utime import sleep # เรียกใช้คำสั่ง sleep จากโมดูล utime เพื่อสั่งให้โปรแกรมหยุดทำงานเป็นเวลาที่กำหนด
switch_pin = Pin(32, Pin.IN)# กำหนดขา GPIO ที่ใช้สำหรับสวิตซ์และกำหนดให้ขานี้เป็นขา(Input).
led_pin = Pin(2, Pin.OUT)# กำหนดขา GPIO ที่ใช้สำหรับ LED และกำหนดให้ขานี้เป็นขา(Output).
switch_state = False # กำหนดตัวแปร switch_state เป็น False เพื่อระบุสถานะปัจจุบันของสวิตช์ว่าเปิดหรือปิด (True คือเปิด, False คือปิด)
while True:# เริ่มต้นลูปการทำงานแบบไม่มีที่สิ้นสุด (infinite loop) เพื่อให้โปรแกรมทำงานตลอดเวลา
# ตรวจสอบสถานะของสวิตซ์
if switch_pin.value() == 0: # ตรวจสอบค่าที่อ่านได้จากสวิตช์ ถ้าค่าเป็น 0 (หรือสวิตช์ถูกกด) ให้ทำคำสั่งในบล็อกนี้
if switch_state == False: #ตรวจสอบสถานะของสวิตช์ว่าเปิดหรือปิด (False คือปิด) ถ้าเปิดให้ทำคำสั่งในบล็อกนี้
switch_state = True # กำหนดค่า switch_state เป็น True เพื่อระบุว่าสวิตช์เปิดอยู่
led_pin.on() # ทำให้ LED ติด
print("LED is ON") # แสดงข้อความ "LED is ON" บนหน้าจอเพื่อแสดงสถานะ LED เปิดอยู่.
else: # ถ้าสวิตซ์ไม่ถูกกด (ค่าสถานะเป็น 1) ให้ทำงานในส่วนนี้
if switch_state == True: # ตรวจสอบสถานะของสวิตช์ว่าเปิดหรือปิด (True คือเปิด) ถ้าปิดให้ทำคำสั่งในบล็อกนี้
switch_state = False # กำหนดค่า switch_state เป็น False เพื่อระบุว่าสวิตช์ปิดอยู่
led_pin.off() # ทำให้ LED ดับ
print("LED is OFF") #แสดงข้อความ "LED is OFF" บนหน้าจอเพื่อแสดงสถานะ LED ปิดอยู่.
sleep(0.1) # ให้ทำงานทุกๆ 0.1 วินาที