02-ESP32连接WIFI、PC控制LED
ESP32连接WIFI、PC控制LED一、连接WIFI二、PC控制LED一、连接WIFI查阅MicroPython官方文档可以找到连接wifi最基础的实例代码设置工作模式AP(AccessPoint)无线接入点即家里的路由器类似的功能。STA(Station)无线终端即连接到AP的装置手机、电脑等。这个模式不允许其他设备接入。通过以下代码可以扫描到附近的设备importnetwork wlannetwork.WLAN()#默认即为STA模式wlan.active(True)# 扫描附近的wifi 2.4G按照list形式返回wifiListwlan.scan()# 解包扫描的元组数据格式化打印(ssid, bssid, channel, RSSI, security, hidden)forssid,bssid,channel,rssi,security,hiddeninwifiList:print(fSSID:{ssid}, bssid:{bssid}, channel:{channel}, rssi:{rssi}dBm, security:{security}, hidden:{hidden})PC端通过python建立udp通道后可以直接等待ESP32发送数据这里需要一些python网络通信相关的知识PC配置python环境直接执行脚本等待单片机发送数据即可importsocketimporttime# 创建一个UDP套接字udp_socketsocket.socket(socket.AF_INET,socket.SOCK_DGRAM)# 绑定本地的相关信息local_addr(192.168.17.237,8081)#本机ipv4信息端口udp_socket.bind(local_addr)# 等待接收对方发送的数据recv_data,addrudp_socket.recvfrom(1024)# 打印接收到的数据print(f[From{addr[0]}:{addr[1]}]:{recv_data.decode(utf-8)})time.sleep(1)#收到单片机数据之后会送一次数据des_addr(192.168.17.122,8081)send_dataIm here, my esp32.#发送的数据udp_socket.sendto(send_data.encode(utf-8),des_addr)#通过socket发送# 关闭套接字udp_socket.close()基于之前已经连接的wifi向PC发送数据importnetworkimporttimefromsocketimport*wlannetwork.WLAN()wlan.active(True)# 扫描附近的wifi 2.4G按照list形式返回wifiListwlan.scan()importnetworkimporttimefromsocketimport*wlannetwork.WLAN()wlan.active(True)# 扫描附近的wifi 2.4G按照list形式返回wifiListwlan.scan()# 解包扫描的元组数据格式化打印(ssid, bssid, channel, RSSI, security, hidden)forssid,bssid,channel,rssi,security,hiddeninwifiList:# 解码SSIDbytes转stringssid_strssid.decode(utf-8)ifssidelse隐藏网络# 格式化BSSIDMAC地址bssid_str:.join([%02x%bforbinbssid])print(fSSID:{ssid_str},bssid:{bssid_str},channel:{channel},rssi:{rssi}dBm,\ security:{security},hidden:{hidden})print(MAC:str(wlan.config(mac)))print(IP:str(wlan.ipconfig(addr4)))# 未连接时地址为空print(wlan.isconnected())wlan.connect(find,0000000000)time.sleep(5)print(wlan.isconnected())#连接成功之后向指定IP发送数据udp_socketsocket(AF_INET,SOCK_DGRAM)des_addr(192.168.17.237,8081)send_datahello my pc#发送的数据udp_socket.sendto(send_data.encode(utf-8),des_addr)#通过socket发送#发送信息之后等待PC回信# 绑定本地的相关信息local_addr(192.168.17.122,8081)#本机ipv4信息端口udp_socket.bind(local_addr)# 等待接收对方发送的数据recv_data,addrudp_socket.recvfrom(1024)# 打印接收到的数据print(f[From{addr[0]}:{addr[1]}]:{recv_data.decode(utf-8)})udp_socket.close()#关闭资源运行效果二、PC控制LED结合一的知识可以实现一个简单的PC发送数据、ESP32接受数据的小Demo# PC端importsocket# 创建一个UDP套接字udp_socketsocket.socket(socket.AF_INET,socket.SOCK_DGRAM)des_addr(192.168.17.122,8081)print(Test Demo)print(imput - 0 to exit)whileTrue:send_datainput(input send data:)udp_socket.sendto(send_data.encode(utf-8),des_addr)#通过socket发送print(fsend:{send_data})ifsend_data0:break# 关闭套接字udp_socket.close()# ESP32端importnetworkimporttimefromsocketimport*wlannetwork.WLAN()wlan.active(True)print(wlan.isconnected())wlan.connect(find,0000000000)time.sleep(5)print(wlan.isconnected())print(MAC:str(wlan.config(mac)))ip,maskwlan.ipconfig(addr4)print(IP:str(ip))udp_socketsocket(AF_INET,SOCK_DGRAM)local_addr(ip,8081)#本机ipv4信息端口udp_socket.bind(local_addr)whileTrue:#持续接收PC的数据# 等待接收对方发送的数据recv_data,addrudp_socket.recvfrom(1024)r_strrecv_data.decode(utf-8)# 打印接收到的数据print(f[From{addr[0]}:{addr[1]}]:{r_str})ifr_str0:breakudp_socket.close()#关闭资源先后运行PC与ESP32实现PC与ESP32的多次通信只需要在此基础上对ESP32端进行稍加改造便可实现PC控制LED的能力importnetworkimporttimefromsocketimport*frommachineimportPin,PWM pwm2PWM(Pin(2),freq10000) 命令格式LT [is_on] [duty] is_on为LED状态 1-打开 0-关闭 duty为亮度 0-100% 可选 defsplit_input(re_str)-List[int]:commre_str.split( )ifcomm[0].startswith(LT)andlen(comm)3:return[int(comm[1]),int(comm[2])]return[];defcontrol_light(is_on,duty100):ifduty100orduty0:returnifis_on1:pwm2.duty(int(1023*(duty/100)))elifis_on0:pwm2.duty(0)wlannetwork.WLAN()wlan.active(True)wlan.connect(find,0000000000)# 自己的wifi名称和密码ifnotwlan.isconnected():time.sleep(5)print(wlan.isconnected())ip,maskwlan.ipconfig(addr4)print(IP:str(ip))udp_socketsocket(AF_INET,SOCK_DGRAM)local_addr(ip,8081)#本机ipv4信息端口udp_socket.bind(local_addr)whileTrue:#持续接收PC的数据# 等待接收对方发送的数据recv_data,addrudp_socket.recvfrom(1024)r_strrecv_data.decode(utf-8)# 打印接收到的数据print(f[From{addr[0]}:{addr[1]}]:{r_str})commssplit_input(r_str)iflen(comms)!0:control_light(comms[0],comms[1])ifr_str0:breakudp_socket.close()#关闭资源PC端运行脚本输入对应指令即可控制LED亮灭相关资料、代码

相关新闻

如何写好一个 AI Skill —— 从设计到发布的完整指南

如何写好一个 AI Skill —— 从设计到发布的完整指南

如何写好一个 AI Skill —— 从设计到发布的完整指南 一、引言 随着 Claude Code Skills、GPT Actions、Cursor Rules 等 AI Agent 工具的普及,**Skill(技能)** 正在成为 AI 时代最核心的「可复用能力单元」。一个 Skill 本质上是一组精心设计…

2026/7/23 14:13:29 阅读更多 →
核心功能模块 用户管理模块

核心功能模块 用户管理模块

支持用户的注册、登录、权限分配与角色管理。多种登录方式:账号密码、邮箱 / 短信验证码、OAuth2(GitHub / Google / QQ)、2FA(TOTP / 邮箱 / 短信)。 image image image image image RBAC权限控制模块 角色层级继承&a…

2026/7/23 8:16:07 阅读更多 →
网站建设四段合一:告别割裂式开发,一次搞定设计与落地

网站建设四段合一:告别割裂式开发,一次搞定设计与落地

网站建设四段合一:告别割裂式开发,一次搞定设计与落地

2026/7/23 10:45:42 阅读更多 →

最新新闻

提示词工程:提升AI对话质量的关键技术

提示词工程:提升AI对话质量的关键技术

1. 从"随便写点"到精准对话:提示词工程的人机协作密码上周帮朋友调试AI写作工具时,他对着对话框连发三条"写篇科技文章",得到的却是从半导体到航天技术的混乱内容。这个场景让我想起三年前刚接触AI写作时,自己…

2026/7/24 16:08:44 阅读更多 →
开源大模型实战:从性能评估到生产部署的工程化指南

开源大模型实战:从性能评估到生产部署的工程化指南

那天下午,团队里一位刚接触大模型的新同事跑来问我:“现在开源模型这么多,Kimi K3、Qwen 3.8 这些新发布的模型,真的能接近 Anthropic Fable 5 的水平吗?还是只是参数上的数字游戏?” 这个问题很典型&#…

2026/7/24 16:08:44 阅读更多 →
【2026最新】AI新物种FDE(前沿部署工程师)落地实战与面试指南

【2026最新】AI新物种FDE(前沿部署工程师)落地实战与面试指南

引言:AI时代的新兴关键角色 在AI技术浪潮席卷全球的2026年,一个全新的技术岗位正从幕后走向台前,成为连接AI研究与产业应用的关键桥梁——前沿部署工程师(Frontier Deployment Engineer,简称FDE)。他们不仅…

2026/7/24 16:08:44 阅读更多 →
京东抢购自动化脚本:3分钟配置实现高成功率秒杀

京东抢购自动化脚本:3分钟配置实现高成功率秒杀

京东抢购自动化脚本:3分钟配置实现高成功率秒杀 【免费下载链接】JDspyder 京东预约&抢购脚本,可以自定义商品链接 项目地址: https://gitcode.com/gh_mirrors/jd/JDspyder 在当今电商抢购热潮中,手动操作往往难以应对毫秒级的竞争…

2026/7/24 16:08:44 阅读更多 →
大模型成本为什么高?算力、数据、人力三大维度深度拆解

大模型成本为什么高?算力、数据、人力三大维度深度拆解

引言:大模型成本的冰山一角 近年来,以GPT、Llama、Gemini等为代表的大语言模型(LLM)在人工智能领域掀起了一场革命。然而,在这场技术盛宴的背后,是令人咋舌的研发和运营成本。OpenAI CEO Sam Altman曾公开…

2026/7/24 16:08:44 阅读更多 →
百度网盘高速下载终极指南:免费获取真实下载链接的3个步骤

百度网盘高速下载终极指南:免费获取真实下载链接的3个步骤

百度网盘高速下载终极指南:免费获取真实下载链接的3个步骤 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 还在为百度网盘蜗牛般的下载速度而烦恼吗?百…

2026/7/24 16:07:44 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻