在微控制器上运行 Web 服务 —— 轻量、高效、开源
MicroPython 是 Python 3 的精简高效实现,专为微控制器和资源受限环境设计。通过内置的 socket、uasyncio 或第三方库(如 picoweb),你可以在 ESP32、ESP8266 等设备上搭建轻量级 Web 服务器。
这使得物联网设备能够直接响应 HTTP 请求、提供 Web 界面、接收传感器数据或远程控制硬件,无需依赖外部服务器。
以下是一个在 ESP8266 上运行的简单 HTTP 服务器:
import network
import socket
# 连接 Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect("你的SSID", "你的密码")
while not wlan.isconnected():
pass
print("IP 地址:", wlan.ifconfig()[0])
# 创建 Web 服务器
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('', 80))
s.listen(5)
def web_page():
return """<html><head><title>MicroPython Web</title></head>
<body><h1>Hello from MicroPython!</h1></body></html>"""
while True:
conn, addr = s.accept()
request = conn.recv(1024)
response = web_page()
conn.send('HTTP/1.1 200 OK\n')
conn.send('Content-Type: text/html\n\n')
conn.send(response)
conn.close()
将代码上传到设备后,访问其 IP 地址即可看到网页!
除了原生 socket,你还可以使用以下工具提升开发体验: