2018-11-9 13:37:36 [显示全部楼层]
19758浏览
查看: 19758|回复: 3

[ESP32系列教程] ESP32 MicroPython教程:连接Wi-Fi网络

[复制链接]
本MicroPython教程旨在阐释如何使用ESP32上的MicroPython连接Wi-Fi网络。

本文旨在阐释如何使用ESP32上的MicroPython连接Wi-Fi网络。本文所述步骤基于MicroPython 文档网站(http://docs.micropython.org/en/v1.8.7/esp8266/esp8266/tutorial/network_basics.html) 上的ESP8266指南,我建议你读一下该指南。

我们将通过向prompt发送命令来执行Python代码,如此将能够逐步查看进程。如果你还没有在ESP32上配置MicroPython,请查看教程:ESP32教程:MicroPython支持

我将使用Putty(http://www.putty.org/) 建立与Python prompt的串行连接,但你也可以用其他软件建立此连接。

代 码

首先,导入network模块(https://docs.micropython.org/en/latest/esp8266/library/network.html#module-network) 以获取建立Wi-Fi网络连接所需的所有功能。

 import network复制代码

导入模块后,控制台 (console) 上会打印部分信息,如图1所示。本教程用不到这些信息,但为便于说明,我将其保留了下来。

ESP32 MicroPython教程:连接Wi-Fi网络图1
图1 –导入MicroPython网络模块

因为我们要连接到Wi-Fi网络,所以我们的设备将以工作站 (station) 模式运行。因此,我们需要创建一个工作站Wi-Fi接口的实例[1]。为此,只需调用WLAN(https://docs.micropython.org/en/latest/esp8266/library/network.html#class-wlan) 类的构造函数,并以我们想要的接口的标识符作为输入值传递。在此情况下,我们将使用network.STA_IF接口。

  station = network.WLAN(network.STA_IF)复制代码

现在,我们将通过在工作站对象上调用激活方法(https://docs.micropython.org/en/latest/esp8266/library/network.html#network.wlan.active) 并以True作为输入值传递来激活网络接口,因为其接受Boolean值。

   station.active(True)复制代码

同样地,执行此命令后,你将在命令行上获得一个输出值,表明设备正处于工作站模式且接口已启动,如图2所示。

ESP32 MicroPython教程:连接Wi-Fi网络图2
图2 – 激活工作站模式

最后,我们将使用connect方法连接到Wi-Fi网络。该方法以SSID(网络名称)和密码作为输入值。

  station.connect("YourNetworkName", "YourNetworkPassword")复制代码

它将再次向控制台打印一些信息。要考虑到连接可能需要一段时间的情况。另请注意,一旦连接建立,将不会打印“>>>>”,因此打印完最后一条消息后,设备看起来像是仍在进行处理,如图3所示。你可以按回车键继续正常操作。

ESP32 MicroPython教程:连接Wi-Fi网络图3
图3 – 连接Wi-Fi网络。

最后,我们将通过调用isconnected方法(https://docs.micropython.org/en/latest/esp8266/library/network.html#network.wlan.isconnected) 确认连接,如果设备已连接Wi-Fi网络,则返回true [2]。我们还将调用ifconfig方法(https://docs.micropython.org/en/latest/esp8266/library/network.html#network.wlan.ifconfig) ,该方法返回IP地址、子网掩码、网关和DNS作为输出参数[2]。

  station.isconnected()
  station.ifconfig()复制代码

参看图4中这些命令的最终输出值,其表明我们已正确连接到Wi-Fi网络。

ESP32 MicroPython教程:连接Wi-Fi网络图4
图4 – 确认与Wi-Fi网络的连接。

请注意,分配给ESP32的IP是本地IP,因此在未进行路由器端口转发的情况下,不能用它来接收来自本地网络外的连接(https://superuser.com/questions/284051/what-is-port-forwarding-and-what-is-it-used-for)。

查看更多ESP32/ESP8266教程和项目,请点击 : ESP32教程 汇总贴

gada888  版主

发表于 2018-12-23 20:15:16

支持
回复

使用道具 举报

长得就像嵌入式  学徒

发表于 2019-11-17 22:12:05

大力支持
回复

使用道具 举报

chendonghao55  学徒

发表于 2020-12-8 20:48:14

支持,能把所有代码写到一个文件就好了,嘻嘻
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail