MicroPython ESP32 Web Server สร้างเว็บเซิร์ฟเวอร์เพื่อควบคุมเอาต์พุต
เรียนรู้วิธีสร้างเว็บเซิร์ฟเวอร์เพื่อควบคุมเอาต์พุตของบอร์ด ESP32 โดยใช้เฟรมเวิร์ก MicroPython ตัวอย่างเช่นเราจะสร้างเว็บเซิร์ฟเวอร์พร้อมปุ่มเปิดและปิดเพื่อควบคุม LED บนบอร์ดของ ESP32 โดยเราจะใช้ Sockets และ Python socket API
ESP32 เปิดปิดไฟ เครือข่าย WiFi ด้วย เว็บเพจ
ควบคุมทุกสรรพสิ่งภายในบ้านของคุณด้วย ESP32 หรือ Home Automation ระบบนี้เป็นระบบที่ใช้ควบคุมอุปกรณ์ไฟฟ้าต่างๆผ่าน WiFi จากอุปกรณ์อื่น ๆ เช่น Mobile , PC/Laptop , Tablet ใช้เว็บบราวเซอร์ เปิดเว็บเพจแล้วป้อน IP ของ ESP32 โดยที่สามารถควบคุมได้ผ่านระบบอินทราเน็ต (ที่ใช้ WiFi หรือ วง แลน หรือใช้ เราเตอร์ เดียวกัน เท่านั้น)
โดยมีขั้นตอนการทำงานดังนี้
1 : อุปกรณ์ที่ใช้
- 1. TTGO T8 V1.7 ESP32 Development Board 4MB PSRAM TF Card
- 2. Micro USB Cable Wire 1m for NodeMCU
- 3. หลอดไฟ LED 5mm สีแดง
- 4. รีซิสเตอร์ 220 OHM 1/4W 5%
- 5. Push Button Switch สวิตช์กดติดปล่อยดับ 2 ขา
- 6. Jumper (M2M) cable 20cm Male to Male
- 7. Breadboard 700 Points SYB-120 จำนวน 2 ชิ้น
2 : ทดลองใช้งาน โปรแกรมแรก Blink
โปรแกรมแรกของ การใช้งานไมโครคอนโทรลเลอร์มักจะเป็น Blink ไฟกะพริบ ซึ่งเป็นหนึ่งในโปรแกรมที่ง่ายที่สุดเท่าที่จะเป็นไปได้ในการเขียนภาษาโปรแกรมต่างๆ โดยทำตามขั้นตอนลิงค์ด้านล่าง
3 : Web Server ควบคุมเอาต์พุต ด้วย MicroPython
เชื่อมต่ออุปกรณ์ ตามรูปด้านล่าง
สร้างไฟล์ boot.py โดยจะสร้างไว้ คอมพิวเตอร์ของเรา
(ไฟล์ boot.py ถ้าอยู่ที่บอร์ด ESP32 จะทำงานโดยอัตโนมัติเมื่อมีการรีเซตบอร์ด และหลังจากนั้น ถ้ามีไฟล์ชื่อ main.py ก็จะทำงานเป็นลำดับถัดไป)
ไปที่ File -> New
เขียนโค้ดดังนี้
try:
import usocket as socket
except:
import socket
from machine import Pin
import network
import esp
esp.osdebug(None)
import gc
gc.collect()
ssid = 'REPLACE_WITH_YOUR_SSID'
password = 'REPLACE_WITH_YOUR_PASSWORD'
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
pass
print('Connection successful')
print(station.ifconfig())
led = Pin(27, Pin.OUT)
เราจะบันทึกไฟล์นี้ โดย ไปที่ File -> Save as…
ไปยังโฟลเดอร์ที่เราสร้างไว้ก่อนหน้านี้ ตั้งชื่อไฟล์เป็น boot -> Save
ไฟล์ boot.py จะเพิ่มเข้ามาในโฟลเดอร์
ก่อนการอัพโหลดต้องแก้ไขโค้ด ตามเครือข่าย WiFi ที่ใช้งาน โดย
ssid = ‘REPLACE_WITH_YOUR_SSID‘ แก้เป็น เครือข่าย Wi-Fi ที่ต้องการเชื่อมต่อ
password = ‘REPLACE_WITH_YOUR_PASSWORD‘ แก้เป็น รหัสผ่านเครือข่าย
ไปที่ File -> Save
คลิกขวาที่ไฟล์ boot.py -> Upload to / เพื่ออัพโหลดไฟล์โค้ดนี้ไปยังบอร์ด ESP32
OK
แก้ไขไฟล์ main.py ที่อยู่ที่คอมพิวเตอร์เรา ตามไฟล์โค้ด maim.py ด้านล่าง
คลิกขวาที่ไฟล์ main.py -> Upload to / เพื่ออัพโหลดไฟล์โค้ดนี้ไปยังบอร์ด ESP32
กดที่ปุ่ม RTS 1 ครั้ง เพื่อเริ่มการทำงาน ของ ESP32
ถ้าไม่มีอะไรผิดพลาด ที่ Shell จะแสดงข้อความ Connection successful และแสดง IP ของ ESP32 ในตัวอย่างนี้คือ 192.168.1.38
4 : ทดสอบการทำงาน
ใช้ คอมพิวเตอร์ หรือ สมาร์ทโฟน ที่เชื่อมต่อเครือข่าย WiFi เดียวกันกับ ESP32 แล้วเปิดเว็บบราวเซอร์ ที่ URL ป้อนไอพี ที่ได้มาจากข้อ 3 ในตัวอย่างนี้คือ 192.168.1.38
คลิกที่ปุ่ม ON
LED จะติด
คลิกที่ปุ่ม OFF
LED จะดับ
credit : https://randomnerdtutorials.com/esp32-esp8266-micropython-web-server/