在MicroPython下,我们可以使用 network模块来配置ESP32的网络模式:
STA 作为站点接入WiFi网络
AP 作为热点,允许其他设备接入ESP32
本篇我们分别讲解这两种模式。
热点模式允许用户将自己的ESP32配置为热点,这让多个ESP32芯片之间的无线连接在不借助外部路由器网络的情况下成为可能。
import network
ap = network.wifi(network.AP_IF) # 创建一个热点
ap.active(True) # 激活热点
ap.config(essid='ESP-AP') # 为热点配置essid(即热点名称)
以上三行代码,就简单的将你的ESP32配置成了一个开放的AP热点:
你现在可以在你手机或电脑的WiFi列表中找到它了。
更多的情况下,我们会想要将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.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连接的步骤按照官网这样,写成一个函数:
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())
mode:模式
network.STA_IF 站点模式,连接到上游WiFi接入点
network.AP_IF 热点模式,允许其他WiFi客户端连接
import network
wlan = network.WLAN(network.STA_IF) #创建WLAN对象
函数说明:带有参数时,为是否激活WiFi,不带参数为查询当前状态。
is_active:是否激活
True 激活网络接口
False 停用网络接口
函数说明:扫描可用的无线网络(仅在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 隐藏
函数说明:检查站点是否连接到AP。
在STA模式下,如果连接到WiFi接入点并具有有效的IP地址则返回True,否则返回False。
在AP模式下,当站点连接时返回True,否则返回False。
函数说明:连接到无线网络。
essid:WiFi名称
password:WiFi密码
函数说明: 获取接口的MAC adddress或者设置WiFi接入点名称和WiFi通道。
essid:WiFi账户名
channel:WiFi通道
函数说明:
不带参数时,返回一个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')
函数说明:断开与当前连接的无线网络的连接。
函数说明:返回无线连接的当前状态。
传感器是一种检测装置,能感受到被测量的信息,并按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
在MicroPython的ESP32库中,NVS类用于管理非易失性存储,支持 32 位有符号整数和 二进制blob。
umqtt 是 MicroPython 的一个轻量级 MQTT 客户端库,使得在微控制器上使用 MQTT 协议变得简单易行。本文将介绍 umqtt 的实用方法,帮助您更好地在项目中应用这一技术。
本方案是一个基于ESP32-CAM + 物联网的图像采集方案。
ESP32-CAM与MicroPython结合可实现摄像头图像采集、视频流传输等功能,不过Micropython官方没有支持ESP32-CAM的固件,需要烧录第三方的专有固件。
相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。
MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。
使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。
本教程将向您展示如何使用micropython脚本设置Pico和TFT触摸显示屏。您将学习如何使用触摸屏控制Pico以及如何在屏幕上显示信息。
本文旨在介绍如何在运行MicroPython的ESP32上使用外部引脚中断功能。
在使用外部设备时,我们经常需要知道它们何时发生了变化,比如按钮是否按下,传感器是否检测到了某个信号。可以通过中断来检测这些变化,立即暂停当前任务并开始处理中断程序,大大提高系统的实时性和响应速度。