当前位置: 首页 > news >正文

入门MicroPython+ESP32:ESP32链接WIFI全攻略

在科技飞速发展的今天,物联网设备越来越普及。MicroPython与ESP32的组合为物联网开发提供了便捷的途径。本文将详细介绍ESP32如何连接WIFI,帮助大家更好地入门相关开发。

一、设置工作模式

Wi-Fi 是基于 IEEE 802.11 标准的无线网络技术,它能让联网设备以无线电波的形式,加入采用 TCP/IP 通信协议的网络。Wi-Fi 网络环境通常有两种设备:

  • Access Point(AP):无线接入点,是提供无线接入的设备。家里的光猫就是结合WiFi和internet路由功能的AP,而且AP和AP之间可以相互连接。
  • Station(STA):无线终端,是连接到AP的装置。像手机、电脑等需要联网的设备都是处于STA模式,不过这个模式不允许其他设备接入。

二、查看官方文档

官方文档是我们学习的重要参考资料。文档地址为:http://docs.micropython.org/en/latest/esp32/quickref.html

1653011293617

三、SSID相关概念

在连接WIFI之前,我们需要了解几个重要概念:

  • BSSID:就是无线路由器的MAC地址(本质是一个MAC地址)。
  • SSID:就是手机上搜索到的wifi名字(本质是一串字符)。
  • ESSID:是一个比较抽象的概念,它实际上和ssid相同(本质也是一串字符)。如果有好几个无线路由器都叫这个名字,那么我们就相当于把这个ssid扩大了,所以这几个无线路由器共同的这个名字就叫ESSID。

打个比方:

  • SSID就好比是每个连锁店的门口招牌上写的字(例如:阿迪达斯)。
  • ESSID就是连锁店的牌子(例如:阿迪达斯)。
  • BSSID就是每个连锁店的地址(比如万达广场店,襄阳路店)。
    连锁店的品牌名与写到招牌上的名就相当于ESSID和SSID。

四、链接WIFI路由器

官方给出了连接WIFI的示例代码:

import networkwlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True)       # activate the interface
wlan.scan()             # scan for access points
wlan.isconnected()      # check if the station is connected to an AP
wlan.connect('essid', 'password') # connect to an AP
wlan.config('mac')      # get the interface's MAC address
wlan.ifconfig()         # get the interface's IP/netmask/gw/DNS addresses

我们需要将 essid 修改为 WiFi 的账号,password 修改为 WiFi 的密码。为了更直观地看到网络是否连接,我们可以用手机开热点进行测试。

image

注意:当前的 ESP32 不支持 5G 路由器,所以连接的时候要注意这一点,否则连不上。可以将自己的手机开热点让 ESP32 连接,并且热点需要设置为2.4频段G的。

五、测试

1. 工具下载

网络调试助手下载地址:https://doc.itprojects.cn/A0001.micropython.esp32/02.download/05.software/NetAssist5.0.8.zip

2. 学习资料

Python网络开发课件地址(不会网络编程的同学,建议先看,了解什么是socket、udp、tcp、ip等等):https://doc.itprojects.cn/0001.zhishi/python.0006.networkprogram/index.html

3. 测试代码

import socket
import network
import time# 连接到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)  # 等待连接print("Wi-Fi连接成功")# 发送UDP消息
def send_udp_message(udp_socket, dest_ip, dest_port, message):udp_socket.sendto(message.encode('utf-8'), (dest_ip, dest_port))print(f"消息 '{message}' 已发送到 {dest_ip}:{dest_port}")# 主程序
if __name__ == "__main__":# 配置Wi-Fi和目标地址connect_wifi('haohuadianzi', 'wangmingdong1225')  # 替换Wi-Fi名称和密码dest_ip = '192.168.0.115'dest_port = 8080# 创建UDP套接字udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)send_data = "hello world"send_udp_message(udp_socket, dest_ip, dest_port, send_data)time.sleep(1)  # 控制发送间隔# 5. 关闭套接字udp_socket.close()

image

4. 注意事项

image

5. 网络调试注释选择

image

更多学习内容可参考:https://www.itprojects.cn/study/detail/47.html?chapter=9

通过以上步骤,大家就可以让ESP32成功连接WIFI,开启MicroPython+ESP32的开发之旅啦!希望本文对大家有所帮助。

http://www.dtcms.com/a/313330.html

相关文章:

  • Dify中自定义工具类的类型
  • 多模态后训练反常识:长思维链SFT和RL的协同困境
  • GitLab 代码管理平台部署及使用
  • CCF-GESP 等级考试 2025年6月认证C++一级真题解析
  • 扩散模型(一)——综述
  • 介绍JAVA语言、介绍greenfoot 工具
  • 案例介绍|JSON数据格式的转换|pyecharts模块简介
  • noob靶机复现笔记
  • 纯JavaScript实现文本选择工具栏:功能详解与源码解析
  • RAG 知识库实战指南:基于 Spring AI 构建 AI 知识问答应用
  • Git用法记录
  • UE5的渲染Debug技巧
  • C语言字符串拷贝的三重境界:从下标到指针的华丽变身
  • 设备健康管理标准规范:技术架构与合规性实现指南
  • 《人形机器人的觉醒:技术革命与碳基未来》——类人关节设计:人工肌肉研发进展及一款超生物肌肉Hypermusclet的设计与制造
  • K8S服务发现原理及开发框架的配合
  • k8s黑马教程笔记
  • LeetCode 刷题【29. 两数相除】
  • 波士顿房价预测工具 - XGBoost实现
  • 2.4.1-2.4.3控制范围-控制进度-控制成本
  • C++ 生成动态库.dll 及 C++调用DLL,C++ 生成静态库.lib及 C++调用lib
  • 其它IO函数
  • 在 ArkUI 中实现丝滑嵌套滚动:让你的页面像抖音一样顺滑
  • Redis——运维篇
  • 避不开的数据拷贝
  • 北斗变形监测技术应用与优势
  • 【AI云原生】1、Function Calling:大模型幻觉破解与Agent底层架构全指南(附Go+Python实战代码)》
  • 子区间问题
  • 差分 前缀和
  • 无人机集群协同三维路径规划,采用冠豪猪优化器(Crested Porcupine Optimizer, CPO)实现,Matlab代码