惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
月光博客
月光博客
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
U
Unit 42
腾讯CDC
爱范儿
爱范儿
J
Java Code Geeks
有赞技术团队
有赞技术团队
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
B
Blog
Stack Overflow Blog
Stack Overflow Blog
GbyAI
GbyAI
T
The Blog of Author Tim Ferriss
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Microsoft Azure Blog
Microsoft Azure Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

博客园 - 小y

HP-Socket压力测试例子,用恐怖如斯来形容。 经典分类算法KNN的研究 用python自己回测股票策略 怎么让大模型查询本地数据库输出结果(Dify+豆包) OpenClaw工作原理解析【建议背诵】 AiAgent工具之网页搜索 怎么在百度搜索中屏蔽csdn 使用C#调用Yolo26模型的ONNX 使用Razor模板引擎实现自动生成代码 ESP32开发环境下载、USB驱动安装 2026年最新年会抽奖小程序 grafana+prometheus快速实现可视化大屏 PyAutoGUI库自动化测试脚本工具模拟键盘鼠标操作 性能卓越的开源时序数据库——QuestDB GitHub超 30000+ star , 超强大的开源项目Supervision DevExpress系列:dxValidationProvider和dxErrorProvider两种控件的用法和区别 实测:MySQL跑在Docker里会损失多少性能?寻找Docker优化点 用C# GDI编写粒子效果 动画图解嵌入式常见的通讯协议:SPI、I²C、UART、红外 C#中的MVVM框架 .net 9 中的WinUI3和MAUI有什么区别 Netty的高性能之道 一文搞定理解RPC CSS flex布局(弹性布局/弹性盒子) 为什么选择使用TypeScript?这篇文章讲透了
ESP32 使用MicroPython编写代码实现远程控制LED灯
小y · 2026-01-21 · via 博客园 - 小y

ESP32开发可以用Arduino也可以用MicroPython,但还是喜欢用python一点,因为后续集成AI更简单一些。

MicroPython 固件下载

官网地址:https://micropython.org/

Thonny编辑器下载:

官网地址:https://thonny.org/

ESP32的USB驱动下载请参考我另一篇文章:https://www.cnblogs.com/tuyile006/p/19436344

以下代码实现ESP32最核心最基础的功能,连接Wifi,实现TCP服务端,接收远程TCP请求执行命令控制LED灯亮和灭:

import socket
import network
import time
import machine

# 连接到Wi-Fi网络
def connect_wifi(ssid, password):
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    if not wlan.isconnected():
        wlan.connect(ssid, password)
        while not wlan.isconnected():
            time.sleep(1)  # 等待连接
    if wlan.isconnected():
        ip=wlan.ipconfig('addr4')
        print("Wi-Fi连接成功,ip为",ip[0])
        return ip[0]
    else:
        return ''

# 2. 启动网络UDP服务端
def start_udp():
    # 2.1. 创建udp套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2.2. 绑定本地信息
    udp_socket.bind(("0.0.0.0", 8899))

    return udp_socket

# 3.启动网络TCP服务端
def start_tcp():
    # 创建 socket 对象
    tcp_socket = socket.socket(
            socket.AF_INET, socket.SOCK_STREAM)
    # 绑定端口号
    tcp_socket.bind(("0.0.0.0", 8899))
    # 设置最大连接数,超过后排队
    tcp_socket.listen(5)
    
    return tcp_socket

#主程序
def main():
    # 1. 链接wifi
    connect_wifi('hcdl-1005-2','1qaz2wsx')
    # 2. 创建UDP
    #udp_socket = start_udp()
    #2.1创建TCP
    tcp_socket=start_tcp()
    
    # 3. 创建灯对象
    led = machine.Pin(2, machine.Pin.OUT)
    # 4. 接收网络数据
    while True:
        
        #recv_data, sender_info = udp_socket.recvfrom(1024)
        clientsocket,sender_info = tcp_socket.accept()
        print("Client {} connected".format(sender_info))
        while True:
            recv_data=clientsocket.recv(1024)
            if not recv_data:  # 客户端已断开
                print("Client disconnected")
                break
            print("{}发送{}".format(sender_info, recv_data))
            recv_data_str = recv_data.decode("utf-8")
            try:
                print(recv_data_str)
            except Exception as ret:
                print("decode error:", ret)
            
            # 5. 处理接收的数据
            if recv_data_str == "light on":
                print("这里是要灯亮的代码...")
                led.value(1)
            elif recv_data_str == "light off":
                print("这里是要灯灭的代码...")
                led.value(0)

if __name__=='__main__':
    main()

  既然可远程控制灯开灭,就可以远程控制舵机、电机、任何你能想到的远程控制功能。