4. 网络基础

网络模块用于配置 WiFi 连接。有两个 WiFi 接口,一个用于站点(当 ESP8266 连接到路由器时),一个用于接入点(用于其他设备连接到 ESP8266)。使用以下方法创建这些对象的实例:

>>> import network
>>> sta_if = network.WLAN(network.STA_IF)
>>> ap_if = network.WLAN(network.AP_IF)

您可以通过以下方式检查接口是否处于活动状态:

>>> sta_if.active()
False
>>> ap_if.active()
True

您还可以通过以下方式检查接口的网络设置:

>>> ap_if.ifconfig()
('192.168.4.1', '255.255.255.0', '192.168.4.1', '8.8.8.8')

返回值是:IP 地址、网络掩码、网关、DNS。

4.1. WiFi的配置

全新安装时,ESP8266 配置为接入点模式,因此 AP_IF 接口处于活动状态,而 STA_IF 接口处于非活动状态。您可以将模块配置为使用 STA_IF 接口连接到您自己的网络。

首先激活站台界面:

>>> sta_if.active(True)

然后连接到您的 WiFi 网络:

>>> sta_if.connect('<your ESSID>', '<your password>')

要检查连接是否已建立,请使用:

>>> sta_if.isconnected()

建立后,您可以检查 IP 地址:

>>> sta_if.ifconfig()
('192.168.0.2', '255.255.255.0', '192.168.0.1', '8.8.8.8')

如果您不再需要,您可以禁用接入点接口:

>>> ap_if.active(False)

这是您可以运行(或放入您的 boot.py 文件)自动连接到您的 WiFi 网络的功能:

def do_connect():
    import network
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        print('connecting to network...')
        sta_if.active(True)
        sta_if.connect('<essid>', '<password>')
        while not sta_if.isconnected():
            pass
    print('network config:', sta_if.ifconfig())

4.2. 插座

一旦设置了 WiFi,访问网络的方式就是使用套接字。一个套接字代表网络设备上的一个端点,当两个套接字连接在一起时,通信就可以进行。Internet 协议建立在套接字之上,例如电子邮件 (SMTP)、网络 (HTTP)、telnet、ssh 等。这些协议中的每一个都被分配了一个特定的端口,它只是一个整数。给定 IP 地址和端口号,您可以连接到远程设备并开始与其通话。

本教程的下一部分将讨论如何使用套接字来执行一些常见且有用的网络任务。