MicroPython Wifi网络

ESP32自带了WiFi模块,因此我们可以很容易的让ESP32接入网络。

在MicroPython下,我们可以使用 network模块来配置ESP32的网络模式:

  • STA 作为站点接入WiFi网络

  • AP 作为热点,允许其他设备接入ESP32

本篇我们分别讲解这两种模式。

热点模式(AP)

热点模式允许用户将自己的ESP32配置为热点,这让多个ESP32芯片之间的无线连接在不借助外部路由器网络的情况下成为可能。

import network 
ap = network.wifi(network.AP_IF) # 创建一个热点 
ap.active(True) # 激活热点 
ap.config(essid='ESP-AP') # 为热点配置essid(即热点名称) 

以上三行代码,就简单的将你的ESP32配置成了一个开放的AP热点:

你现在可以在你手机或电脑的WiFi列表中找到它了。

站点模式(STA)

更多的情况下,我们会想要将ESP32连接到WiFi网络。

import network 
wifi = network.wifi(network.STA_IF) # 创建一个Wifi站点 
wifi.active(True) # 激活该站点 
wifi.scan() # 扫描周围的可用网络 

获取当前esp32的mac地址

>>> wifi.config('mac') 
b'0\xae\xa4\x84"d' 

检查你是否已经连接到网络

>>> wifi.isconnected() 
False 

连接到某个WiFi,essid指WiFi名称,password指WiFi密码
>>> wifi.connect('essid', 'password') 

获取当前WiFi连接的信息

IP/子网掩码/网关/DNS

>>> wifi.ifconfig() 
('192.168.0.117', '255.255.255.0', '192.168.0.1', '192.168.0.1') 

输出数据从左至右分别对应于:
  • 内外IP

  • 子网掩码

  • 网关

  • DNS

封装一个连接WiFi的函数

你可以将WiFi连接的步骤按照官网这样,写成一个函数:

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

    print('network config:', wifi.ifconfig()) 

network模块 API文档

class network.WLAN(mode)

mode:模式

  • network.STA_IF 站点模式,连接到上游WiFi接入点

  • network.AP_IF 热点模式,允许其他WiFi客户端连接

定义WLAN

import network 
wlan = network.WLAN(network.STA_IF) #创建WLAN对象 

函数

wlan.active(is_active)

函数说明:带有参数时,为是否激活WiFi,不带参数为查询当前状态。

is_active:是否激活

  • True 激活网络接口

  • False 停用网络接口

wlan.scan()

函数说明:扫描可用的无线网络(仅在STA接口上进行扫描),返回有关WiFi接入点信息的元组列表。

(ssid,bssid,channel,RSSI,authmode,hidden)
bssid:接入点的硬件地址,以二进制形式返回为字节对象。可以使用ubinascii.hexlify()将其转换为ASCII格式
authmode:

  • AUTH_OPEN = 0

  • AUTH_WEP = 1

  • AUTH_WPA_PSK = 2

  • AUTH_WPA2_PSK = 3

  • AUTH_WPA_WPA2_PSK = 4

  • AUTH_MAX = 6

hidden:

  • False 可见

  • True 隐藏

wlan.isconnected()

函数说明:检查站点是否连接到AP。
在STA模式下,如果连接到WiFi接入点并具有有效的IP地址则返回True,否则返回False。
在AP模式下,当站点连接时返回True,否则返回False。

wlan.connect(essid, password)

函数说明:连接到无线网络。

essid:WiFi名称
password:WiFi密码

wlan.config(essid, channel)

函数说明: 获取接口的MAC adddress或者设置WiFi接入点名称和WiFi通道。

essid:WiFi账户名
channel:WiFi通道

wlan.ifconfig([(ip,mask, gateway, dns)])

函数说明:
不带参数时,返回一个4元组(ip, subnet_mask, gateway, DNS_server)。

ip:IP地址
mask:子网掩码
gateway:网关

带参数时,配置静态IP。例如

wlan.ifconfig(config = ('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8') 

wlan.disconnect()

函数说明:断开与当前连接的无线网络的连接。

wlan.status()

函数说明:返回无线连接的当前状态。

- 本文内容来自网络,如有侵权,请联系本站处理。

2024-08   阅读(1)   评论(0)
 标签: 创客 MicroPython

涨知识
传感器

传感器是一种检测装置,能感受到被测量的信息,并按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。

评论:
相关文章
ESP32 MicroPython存储数据到闪存

在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。


MicroPython umqtt库的使用

umqtt 是 MicroPython 的一个轻量级 MQTT 客户端库,使得在微控制器上使用 MQTT 协议变得简单易行。本文将介绍 umqtt 的实用方法,帮助您更好地在项目中应用这一技术。


小鹏物联网 MicroPython 图像采集方案

本方案是一个基于ESP32-CAM + 物联网的图像采集方案。


esp32cam开发板烧录micropython固件

‌ESP32-CAM与MicroPython结合可实现摄像头图像采集、视频流传输等功能,不过Micropython官方没有支持ESP32-CAM的固件,需要烧录第三方的专有固件。


小鹏物联网 MicroPython 智能浇花方案

相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。


MicroPython 开发ESP32应用之线程介绍及实例分析

MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。


ESP32 MicroPython采集模拟传感器数值

使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。


Raspberry Pi Pico TFT LCD 触摸屏使用教程

本教程将向您展示如何使用micropython脚本设置Pico和TFT触摸显示屏。您将学习如何使用触摸屏控制Pico以及如何在屏幕上显示信息。


ESP32 MicroPython外部引脚中断处理

本文旨在介绍如何在运行MicroPython的ESP32上使用外部引脚中断功能。


ESP32外部中断原理详解及代码示例

在使用外部设备时,我们经常需要知道它们何时发生了变化,比如按钮是否按下,传感器是否检测到了某个信号。可以通过中断来检测这些变化,立即暂停当前任务并开始处理中断程序,大大提高系统的实时性和响应速度。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。