1.引言
作为ESP32的主打功能,本篇我们来介绍WIFI的简单使用 。
2.环境介绍
ESP32 小板:
Micro USB线:
3.WIFI连接
我先用手机开了一个WIFI热点,名字是Honor 8,密码是12345678。通过以下语句去连接手机WIFI热点。
import network
wlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True) # activate the interface
wlan.scan() # scan for access points
wlan.isconnected() # check if the station is connected to an AP
wlan.connect('essid', 'password') # connect to an AP
wlan.config('mac') # get the interface's MAC address
wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses
其中第六条语句,这里对应为:
wlan.connect('Honor 8', '12345678')
之后可以查看连接情况:
再看一下分配的IP地址:
这样就表示连接成功了。
4.Socket通信
让我的电脑也连接到手机热点,查看下其IP地址:
之后就可以进行ESP32和PC机之间的UDP通信了。
代码如下:
import socket
port = 10086
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('192.168.43.25',port)) #绑定端口
print('waiting...')
while True: #接收数据
data,addr=s.recvfrom(1024)
print('received:',data,'from',addr)
s.sendto(data,addr)
PC端同时打开网络调试助手:
可以实现的功能为:ESP32接收PC发送的数据,同时回传到PC端。
再把上述代码合成一个整体,以后就可以直接运行了:
import network
import socket
port=10086
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('Honor 8', '12345678')
while not wlan.isconnected():
pass
ip = wlan.ifconfig()[0]
print(ip)
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((ip,port))
print('waiting....')
while True:
data,addr=s.recvfrom(1024)
print('received:',data,'from',addr)
s.sendto(data,addr)
5.总结
本篇介绍了ESP32 WIFI使用,实现了UDP通信功能 ,下一篇介绍如何获取天气信息。
6.参考资料
http://docs.micropython.org/en/latest/esp32/quickref.html#
https://www.jianshu.com/p/0613f3f3f4ba