def do_connect():
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('essid', 'password')
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())
2. 根据实际情况连接
import network
def do_connect_network(ssid: str, password: str):
"""
连接Wi-Fi
:param ssid: Wi-Fi名字
:param password: Wi-Fi密码
:return: none
"""
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('network config:', wlan.ifconfig())
if __name__ == '__main__':
do_connect_network('your-wifi-name', 'your-wifi-password')
然后在Thonny上执行,可以得到如下输出结果:
connecting to network...
network config: ('192.168.50.145', '255.255.255.0', '192.168.50.254', '192.168.50.254')
三. 与服务端通信
Once the network is established the socket module can be used to create and use TCP/UDP sockets as usual, and the urequests module for convenient HTTP requests.
一. 前言
ESP32本身自带Wi-Fi模块,可以连接网络。虽说其本身存在一定程度的计算能力,但是在一些特定的场景,比如移动端的数据监控和模块控制,需要将数据ESP32本身的数据采集然后传输出来,也需要接收请求来完成特定指令。再比如小车的路径规划,该场景下,ESP32本身的计算能力是不够的,需要将其数据传输到服务端,在服务端计算完成之后由ESP32接收服务端的结果来执行。
本文主要讲解如何使用ESP32连接网络,且与服务端通信。此处的通信是
socket
通信,一些复杂场景可以使用MQTT
之类的通信,这将在后续文章继续分享。二. 连接网络
1. 官方示例
micropython官方文档上给出了一些方法和完整实例,我们先来看看。
首先是官方给出的方法,根据这些方法可以自由处理在连接网络需要的步骤,或者获得需要获取的信息
然后是官方给出了一个连接网络的完整示例。
2. 根据实际情况连接
然后在Thonny上执行,可以得到如下输出结果:
三. 与服务端通信
官方文档给出了说明,一旦网络建立起来,socket 模块就可以像往常一样用于创建和使用 TCP/UDP 套接字,而 urequests 模块则可以方便地进行 HTTP 请求。
TCP和UDP不同的一点在于,UDP发包无需在意包是否被接收,而TCP是发送和响应两个环节,需要在发送后接收到响应。
此处分别列举UDP和TCP的与服务端通信的案例。
1. UDP
此处将udp服务端放在esp32上,而udp客户端放在服务器/pc上,若是要将服务端放在服务器上运行,将代码按需求反置即可。
1)socket服务端和客户端代码
首先我们来看一下socket udp的服务端和客户端代码。
socket udp 服务端代码
socket udp 客户端代码
2)实际代码
接着,我们在ESP32中放入服务端代码,在电脑/服务器上放入客户端代码。代码如下:
ESP32代码
在esp32上运行服务端代码,输入如下:
内容包含服务端的ip地址,我们要将该地址写入客户端代码。
客户端代码
3)运行
运行客户端代码,发送消息,可以看到esp32输出如下:
2. TCP
1)socket服务端和客户端代码
首先我们来看一下socket tcp的服务端和客户端代码。
socket tcp 服务端代码
socket tcp 客户端代码
2)实际代码
接着,我们在ESP32中放入服务端代码,在电脑/服务器上放入客户端代码。代码如下:
ESP32代码
在esp32上运行服务端代码,输入如下:
内容包含服务端的ip地址,我们要将该地址写入客户端代码。
客户端代码
3)运行
运行客户端代码,发送消息,可以看到esp32输出如下:
而客户端输出如下:
四. 参考文档