【MicroPython ESP8266】配网示例以及network模块功能介绍

【MicroPython ESP8266】配网示例


⛳配网模块

  • 🎈 esp8266配网依赖network模块。
  • 📍官方文档参考:https://docs.micropython.org/en/v1.9.4/esp8266/library/network.html

🧲通过Shell调试窗口,查询network模块的具体参数信息。

>>> import network
>>> help(network)
object <module 'network'> is of type module
  __name__ -- network
  WLAN -- <function>
  phy_mode -- <function>
  STA_IF -- 0 #STA站点模式
  AP_IF -- 1 #AP模式
  STAT_IDLE -- 0 # STA站点模式
  STAT_CONNECTING -- 1# STA站点模式下连接
  STAT_WRONG_PASSWORD -- 2 #STA站点模式下连接,密码错误返回的代码
  STAT_NO_AP_FOUND -- 3 # 站点模式下没有找到对应的WiFi信号
  STAT_CONNECT_FAIL -- 4 #STA站点模式下连接失败,返回的代码
  STAT_GOT_IP -- 5 # STA站点模式下获取到IP的返回代码
  MODE_11B -- 1 #wifi信号协议类别
  MODE_11G -- 2
  MODE_11N -- 3
  AUTH_OPEN -- 0
  AUTH_WEP -- 1
  AUTH_WPA_PSK -- 2 # 加密类型
  AUTH_WPA2_PSK -- 3
  AUTH_WPA_WPA2_PSK -- 4
  • 📌network.phy_mode([mode]):获取或设置 PHY 模式。

如果提供了mode参数,则将 mode 设置为其值。如果不带参数调用该函数,则返回当前模式。

  • 可能的模式定义为常量:
  • MODE_11B – IEEE 802.11b,
  • MODE_11G – IEEE 802.11g,
  • MODE_11N – IEEE 802.11n.

  • 📌wlan.active([is_active])

如果传递布尔参数,则激活(“向上”)或停用(“向下”)网络接口。否则,如果没有提供参数,则查询当前状态。大多数其他方法需要一个活动接口(未定义在非活动接口上调用它们的行为)。

sta_if.active(True)# 启用STA网络接口
sta_if.active(False)# 停用STA网络接口
sta_if.active()# 查询STA网络接口
  • 📌wlan.status([param]):查询接口的动态状态信息。当不带参数调用时,返回值描述网络链接状态。否则 param应该是一个字符串,命名要检索的特定状态参数。

返回类型和值取决于网络介质/技术。可能支持的一些参数是:

  • WiFi STA:用于’rssi’检索AP信号的RSSI
  • WiFi AP:用于 ‘stations’ 检索连接到该 AP 的所有 STA 的列表。该列表包含形式为 (MAC, RSSI) 的元组。
  • 📌wlan.ifconfig([(ip, subnet, gateway, dns)]):获取/设置 IP 级网络接口参数:IP 地址、子网掩码、网关和 DNS 服务器。当不带参数调用时,此方法返回一个包含上述信息的 4 元组。要设置上述值,请传递带有所需信息的 4 元组。例如:
wlan.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
  • 📌wlan.config('param').config(param=value, ...):获取或设置一般网络接口参数。这些方法允许使用超出标准 IP 配置的附加参数(如 处理 ifconfig())。这些包括特定于网络和特定于硬件的参数。设置参数时,应使用关键字参数语法,可以一次设置多个参数。查询时,参数名应以字符串形式引用,一次只能查询一个参数:
# Set WiFi access point name (formally known as ESSID) and WiFi channel
ap.config(essid='My AP', channel=11)
# Query params one by one
print(ap.config('essid'))
print(ap.config('channel'))

📖通过Shell调试窗口,一步一步配网全过程

MicroPython v1.19.1 on 2022-06-18; ESP module with ESP8266

Type "help()" for more information.

>>> import network
>>> wlan = network.WLAN(network.STA_IF)
>>> wlan.active(True) 
>>> wlan.scan()
[(b'MERCURY_2.4G_135F', b'\x90v\x9fP\x13_', 1, -80, 4, 0), (b'MERCURY_2.4G_135E', b'\x90v\x9fP\x13^', 1, -69, 4, 0), (b'MERCURY_D268G', b'D\xf9q\xdb\x87\xd9', 11, -57, 4, 0), (b'MERCURY_Guest', b'F\xf9q\xdb\x87\xd9', 11, -58, 4, 0), (b'CMCC-DyVv', b'\xa0\x91\xc8\xd1\xce\x90', 5, -68, 4, 0), (b'TP-LINK_F5D0', b'4\x96r\x18\xf5\xd0', 6, -80, 4, 0), (b'TP-LINK_2D07', b' k\xe7\xdc-\x07', 11, -87, 4, 0)]
>>> wlan.isconnected()
True
>>> print('network config:', wlan.ifconfig())
network config: ('192.168.0.120', '255.255.255.0', '192.168.0.1', '192.168.0.1')
>>> 
  • 📍如果在使用wlan.isconnected()命令查询本设备连接状态是为False时,可以执行这条命令:wlan.connect('wifi名称', 'WiFi密码')进行配网。需要在上述命令当中填写自己的WiFi信息,可以参考wlan.scan()查询到的周围网络环境下搜索到的WiFi信息进行填写。

📖完整程序配网示例

from machine import Pin
import utime # 延时使用
led = Pin(2, Pin.OUT) #用machine模块的pin功能设置引脚2为输出。板载led
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('WiFi名称', 'WiFi密码')# 填写WiFi信息
        while not sta_if.isconnected():
            pass
    print('network config:', sta_if.ifconfig())
 
def blink():
    led.value(not led.value()) #将引脚2状态取反
    utime.sleep(2) # 延时1print('perseverance')

do_connect()
if __name__ == "__main__":    
    while True:   
        blink()
        



  • 🎯Shell调试窗口打印信息
    在这里插入图片描述
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MicroPython是一种精简版的Python编程语言,专为嵌入式系统设计。ESP32是一款低功耗的Wi-Fi和蓝牙双模模块,可以与MicroPython结合使用来开发物联网项目。下面是一个Micropython ESP32项目的示例: ```python import network import machine import time from microdot import Microdot, RequestHandler # 连接到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(): pass print('Wi-Fi连接成功') print('IP地址:', wlan.ifconfig()[0]) # 创建一个Web服务器 def create_web_server(): app = Microdot() # 定义一个请求处理器 class MyRequestHandler(RequestHandler): def get(self): self.send('Hello, World!') # 将请求处理器添加到Web服务器 app.add_route('/', MyRequestHandler) # 启动Web服务器 app.run() # 主程序 def main(): ssid = 'your_wifi_ssid' password = 'your_wifi_password' connect_wifi(ssid, password) create_web_server() # 执行主程序 if __name__ == '__main__': main() ``` 这个示例演示了如何使用MicroPython和ESP32搭建一个简单的Web服务器。首先,通过`connect_wifi`函数连接到Wi-Fi网络。然后,使用`create_web_server`函数创建一个Web服务器,并定义一个请求处理器来处理根路径的GET请求。最后,在`main`函数中执行连接Wi-Fi和创建Web服务器的操作。 请注意,这只是一个简单的示例,你可以根据自己的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值