本帖最后由 LZY825597017 于 2023-12-22 16:26 编辑
ESP-WIFI扩展库使用说明
1-硬件概述(ASRPRO-Plus_ESP32-C3) ESP32-C3是一款安全稳定、低功耗、低成本的物联网芯片,搭配RISC-V 32位单核处理器,支持2.4GHz Wi-Fi和Bluetooth5(LE)。对这两者的双重支持降低了设备配网难度,适用于广泛的物联网应用场景。 下方是WiFi/BLE模块的原理图,可以得知,实际是通过PA5-TX2、PA6-RX2进行通讯。
ESP32通过AT指令进行串口通讯。由于AT指令较多,不易记忆,所以我们可以直接使用ESP32 的扩展库,AT 指令基于乐鑫AT_ Bin_ V2.3 ,有关对应的AT指令细节可以查看乐鑫对应的 在线文档资料。
2-引脚定义(ESP32-C3)
3-图形块说明 这条指令可以初始化ESP模块,上电初始化的过程需要一段时间,所以在程序中一般先等待2s。ESP32模块一般设置在串口2,默认波特率为115200。
2.ESP-WIFI模块连接确认 这条指令可以判断ESP模块是否已连接,即发送测试指令“AT”,如果正常连接则返回“OK\r\n”。
3.ESP-WIFI模块重置
第一条指令可以让ESP模块复位并返回,发送的AT指令是“AT+RST”;
第二条指令可以让ESP模块恢复出厂设置并复位,然后返回,发送的AT指令是“AT+RESTORE”,注意此条指令需要等待5s,确保重启完成。
4.ESP-WIFI模块工作模式设置 这条指令可以设置ESP模块是STA模式/AP模式/STA+AP共存模式。
所谓AP,也就是无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个AP。AP模式下,你可以把ESP模块看成一个又不能接网线、又不能接入网络的路由器,只能等待其他设备的链接。手机、PAD、电脑等 设备可以直接连上模块,可以很方便对用户设备进行控制。
STA,也就是站点(station)。每一个连接到无线AP的终端(如笔记本电脑、PDA及其它可以联网的用户设备)都可称为一个站点。站点在无线局域网中一般为客户端,可以是装有无线网卡的计算机,也可以是有Wi-Fi模块的智能手机,可以是移动的,也可以是固定的。当作为STA模式时,模块只能接入到路由器或者上位服务器进行数据上传。
而STA+AP模式下,Wi-Fi模块既可以作为AP,让客户的手机或者计算机接入,同时该模块又可以作为一个STA接入到路由器或者上位服务器进行数据上传。
需要注意的是,模块在AP和模块做STA时的MAC地址是不同的,所以在模块内部看到模块做AP时的MAC地址与在路由器里面去看到的模块作为STA时的MAC地址不同。
5.ESP模块连接WIFI
这条指令让ESP模块连接Wi-Fi。默认的账号和密码都需要是英文,不能使用中文。可以使用手机热点进行连接,但注意暂不支持5G。
6.ESP模块连接服务器
我们可以通过下方指令与服务器进行连接,可以选择TCP或者UDP协议。我们可以选择网络协议类型、是否开启多连接、填写服务器IP(severIP)和服务器端口(serverPort),然后通过AT指令“AT+CIPSTART”,也就是建立TCP连接、UDP传输。
TCP和UDP协议如果作简单区分,就是TCP在连接前会先发请求是否能发数据,就像打电话先拨号再建立连接,且只能是一对一,优点是服务比较可靠;而UDP则是发数据不需要建立连接,可以一对一、一对多的发送,与此同时不能保证数据可靠的交付。
7.ESP模块向服务器发送数据
与服务器连接后,我们就可以通过下方指令向服务器发送数据。这条指令对应的AT指令是“AT+CIPSEND”,也就是在普通传输模式或Wi-Fi 透传模式下发送数据,该指令默认是在非透传模式下发送。
8.判断接收到服务器数据
这条指令可以判断是否接收到服务器的一帧数据。
9.判断从服务器接收的数据是否已经处理完成并返回
这条指令可以确认接收消息完成并返回消息类型,不能用于透传模式。
10.从服务器接收的消息(必须在上一条图形块处理信息后使用)
这条指令是从服务器接收到的消息。
11.进入/退出透传模式
透传模式,通俗来讲就是透明传输,我发送什么数据,对方就收到什么数据,因此透传模式下AT指令发送无效,只有退出透传模式后才能使用AT指令。
12.GET/POST请求(使用HTTP)
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 两者最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数,通过表单提交不会显示在url上,隐蔽性更强。
GET是从指定的资源请求数据,而POST是向指定的资源提交被处理的数据。
13.查询本地IP地址
14.查询ESP版本信息
15.查询附近可用的AP
下面是与MQTT相关图形块(协议内容这里不多赘述,请查阅附件文档):
16.创建MQTT客户端以及设置需要连接到服务器的域名和端口
client_id:MQTT客户端的唯一的id,可不填,服务器会自动生成client_id。user以及passw可以省略,BIOT默认不需要,重要:超时时间(单位:秒),在超时时间内没有向服务器发送心跳包或者数据时,服务器会将设备踢下线;域名(server)以及端口必须正确填写,在本例中使用天问软件自带的BITO软件搭建MQTT本地服务器,server就是电脑IP,端口为1883,其他情况请自行查阅服务器相关资料。
17.订阅/取消订阅主题
18.向主题发送信息(订阅过相应主题才能发送)
19.断开MQTT连接
4-范例1
这里使用TCP/UDP调试时,可以使用网络调试助手方便查看信息。
(1)打开网络调试助手并找到自己电脑IP地址
(2)(ASRPRO扩展范例->TCP/UDP通信)修改部分代码,改成自己的
(3)现象
UDP同理,更改调试助手以及图形块的网络类型。
5-范例2
(1)(ASRPRO扩展范例->GET网络时间)修改部分代码,改成自己的
(2)现象
6-范例3
(电脑搜索BIOT软件并打开(安装天问BLOCK就会有))
(下面需要两个客户端,我这里演示两台ASRPROplus,可以使用MQTTX软件或者手机MQTT调试助手创建一个客户端,就能控制板载继电器状态)
这里无法继续贴图了。
7-注意事项1、获取消息的图形块一定要在处理信息并返回当前状态图形块后。
2、MQTT订阅主题后,才能发布消息
3、进入透传模式后,AT指令是无效的,只有退出透传才能使用AT指令。透传模式下,与常规串口通信一致。
|