我们的ESP32开发板是拥有WIFI和蓝牙功能的。这里我们先告诉大家如何将ESP32开发板连接到我们家里的无线路由器上,并和连接到家里无线路由器的一台电脑进行通讯。
一、环境
ESP32开发板+Thonny IDE+Win10+网络调试助手工具
后面设备联网的基本信息:开发板IP: 192.168.104, 电脑IP: 192.168.0.101, 无线路由器为TP-Link(其他任意品牌也可)
二、整体通讯架构
三、ESP32开发板无线模式
分位两种模式:
Access Point(AP
) 无线接入点 模式,相当于手机开启了WIFI热点,其他的设备可以连接到这个WIFI上。或者说家里的无线路由器也是AP。
Station(STA
) 无线终端 模式, 相当于我们的手机连接到我们家里的无线路由器。
四、连接WIFI
大家可以参考官方文档,进行学习。记住,官方文档一定要看。
我们参考以上编写我们的代码,连接到家里的WIFI:
- import network
-
- # 为开发板创建网络,模式为STA模式
- wlan = network.WLAN(network.STA_IF) # create station interface
- # 激活STA
- wlan.active(True) # activate the interface
- # ESP32开发板扫描网络
- wlan.scan() # scan for access points
- # 判断是否连接。没连接上返回false
- wlan.isconnected() # check if the station is connected to an AP
- # 连接网络,ssid指WIFI名字,key指密码
- wlan.connect('ssid', 'key') # connect to an AP
- # 连接后,获取ESP32开发板的MAC地址
- wlan.config('mac') # get the interface's MAC address
- # 获取开发板的IP地址,子网掩码,网关,DNS
- wlan.ifconfig() # get the interface's IP/netmask/gw/DNS addresses
-
打开Thonny编辑器,输入以上代码,添加一些打印信息,方便知道是否连接成功,并获得一些信息。接着保存运行。
五、测试
我们应该怎么去测试开发板通过WIFI给我们的电脑,相互传数据呢?
下面我们使用一个工具: 网络调试助手,来实现。
下载链接:NetAssist网络调试助手 V5.0.3-软件工具-野人家园 (cmsoft.cn)http://www.cmsoft.cn/resource/102.html 1, 开发板给电脑发送数据
打开后如下设置即可:
点击open后,放在桌面上
下面准备进行测试,使用Thonny,从开发板给电脑发送数据
- from socket import *
-
- # 创建udp套接字
- udp_socket = socket(AF_INET, SOCK_DGRAM)
-
- # 准备接收方的地址,即家里电脑的IP地址
- dest_addr = ('192.168.31.56', 8080)
-
- # 从键盘获取数据
- send_data = "hello world"
-
- # 发送数据到指定的电脑上
- udp_socket.sendto(send_data.encode('utf-8'), dest_addr)
-
- # 5. 关闭套接字
- udp_socket.close()
这个时候我们看到返回了一个“12”(你也许是其他数字),即代表我们发送成功,然后在网络调试助手上就可以看到我们发送的数据:
2,电脑给开发板发送数据
那么我们可以通过电脑给开发板发送数据不?答案当然是可以的。
我们现在Thonny上,把开发板设为接收数据状态, 然后打开网络调试助手,输入我们想要发送的信息:
在网络助手上输入数据,然后发送:
发送后Thonny交互模式会发生变化
然后我们打印出接收到的数据:
到这里我们就可以实现开发板和电脑进行通讯,开发板拥有了网络功能就可以写很复杂的应用。是不是很有趣啊。
最后实验完成关闭我们的udp套接字: